mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.4 KiB
100 lines
2.4 KiB
/*
|
|
* vidcio.h
|
|
*
|
|
* 32-bit Video Capture driver
|
|
*
|
|
* chip register access functions for Bravado card
|
|
*
|
|
* Geraint Davies, Feb 93
|
|
*/
|
|
|
|
/* port addresses within PCVideo chip - offset from port base
|
|
* - set index then read or write data
|
|
*/
|
|
#define PCV_INDEX 0
|
|
#define PCV_DATA 1
|
|
|
|
/* some popular register addresses within the PCVideo chip */
|
|
#define REG_PORT 0
|
|
#define REG_FBUF 6
|
|
#define REG_INTERRUPT 9
|
|
#define REG_PLLLOW 0x12
|
|
#define REG_PLLHIGH 0x13
|
|
#define REG_I2C 0x18
|
|
#define REG_ACQMODE 0x20
|
|
#define REG_ACQCTL 0x21
|
|
#define REG_ACQX1LO 0x22
|
|
#define REG_ACQX1HI 0x23
|
|
#define REG_ACQY1LO 0x24
|
|
#define REG_ACQY1HI 0x25
|
|
#define REG_ACQX2LO 0x26
|
|
#define REG_ACQX2HI 0x27
|
|
#define REG_ACQY2LO 0x28
|
|
#define REG_ACQY2HI 0x29
|
|
#define REG_SCALEX 0x2d
|
|
#define REG_SCALEY 0x2e
|
|
#define REG_SCALEODDY 0x2f
|
|
#define REG_DISPCTL 0x40
|
|
#define REG_DISPX1LO 0x41
|
|
#define REG_DISPX1HI 0x42
|
|
#define REG_DISPY1LO 0x43
|
|
#define REG_DISPY1HI 0x44
|
|
#define REG_DISPX2LO 0x45
|
|
#define REG_DISPX2HI 0x46
|
|
#define REG_DISPY2LO 0x47
|
|
#define REG_DISPY2HI 0x48
|
|
#define REG_PANXLO 0x49
|
|
#define REG_PANYLO 0x4a
|
|
#define REG_PANHI 0x4b
|
|
#define REG_SHIFTCLK 0x4c
|
|
#define REG_DISPZOOM 0x4d
|
|
#define REG_COLOUR 0x4e
|
|
#define REG_ENABLE 0xFF
|
|
|
|
/* I2C bus addresses of chips */
|
|
#define ADDR_9051 0x8a
|
|
#define ADDR_4680 0x88
|
|
|
|
|
|
/*
|
|
* write a byte to a given register on the I2C bus (used for 9051, 4680 access)
|
|
*/
|
|
VOID HW_SetI2CReg(PDEVICE_INFO pDevInfo, BYTE bI2cMAD, BYTE bI2cSAD, BYTE bData);
|
|
|
|
/*
|
|
* set a register on the 9051 signal digitiser chip that controls signal
|
|
* capture
|
|
*/
|
|
VOID HW_Set9051Reg(PDEVICE_INFO pDevInfo, BYTE bRegister, BYTE bData);
|
|
|
|
/* get back the value of a 9051 register */
|
|
BYTE HW_Get9051Reg(PDEVICE_INFO pDevInfo, BYTE bRegister);
|
|
|
|
|
|
/*
|
|
* set a register on the 4680 chip that controls overlay display
|
|
*/
|
|
VOID HW_Set4680Reg(PDEVICE_INFO pDevInfo, BYTE bRegister, BYTE bData);
|
|
|
|
/* get back the value of a 4680 register */
|
|
BYTE HW_Get4680Reg(PDEVICE_INFO pDevInfo, BYTE bRegister);
|
|
|
|
/*
|
|
* set a register on the main PCVideo chip
|
|
*/
|
|
VOID HW_SetPCVideoReg(PDEVICE_INFO pDevInfo, BYTE bRegister, BYTE bData);
|
|
|
|
/* get back the value of a PCVideo register */
|
|
BYTE HW_GetPCVideoReg(PDEVICE_INFO pDevInfo, BYTE bRegister);
|
|
|
|
|
|
/* for use at interrupt-time only */
|
|
/* the context arg points to one of these structs */
|
|
typedef struct _SYNC_REG_ARG {
|
|
PDEVICE_INFO pDevInfo;
|
|
BYTE bRegister;
|
|
BYTE bData;
|
|
} SYNC_REG_ARG, *PSYNC_REG_ARG;
|
|
|
|
BOOLEAN HW_SetPCVideoReg_Sync(PSYNC_REG_ARG);
|
|
|