📄 sx2usbdrv.h
字号:
/* sx2UsbDrv.h - header file for low level VxWorks USB driver for Cypress SX2 */
/*
modification history
--------------------
01a,05nov01,hab Created
*/
#ifndef __INCsx2UsbDrvh
#define __INCsx2UsbDrvh
#ifdef __cplusplus
extern "C" {
#endif
/* function prototypes */
/* externally callable API functions */
STATUS sx2DrvInit (UINT32 options);
STATUS sx2ReadReg (UINT8 reg, UINT8 *data);
STATUS sx2WriteReg (UINT8 reg, UINT8 data);
STATUS sx2ReadFifo(UINT8 fifo, UINT8 *buf, UINT32 numBytes);
STATUS sx2WriteFifo(UINT8 fifo, UINT8 *buf, UINT32 numBytes);
STATUS sx2SetDescriptor(UINT8 *descr, UINT16 numBytes);
STATUS sx2GetDescriptor(UINT8 *descr, UINT16 numBytes);
STATUS sx2Configure(INT16 regs[][]);
STATUS sx2GetSetupData(UINT8 *buf, UINT8 numBytes);
STATUS sx2SetEp0Data(UINT8 *buf, UINT8 numBytes);
UINT32 sx2GetEp0Data(UINT8 *buf, UINT8 numBytes, BOOL flag);
UINT8 sx2GetFifoStatus(UINT8 fifo, UINT8 method);
STATUS sx2SetPktend(UINT8 fifo, UINT8 method);
STATUS sx2Suspend(VOID);
STATUS sx2Wakeup(VOID);
STATUS sx2Reset(VOID);
STATUS sx2SetIntHook(STATUS (*hookFunc)(UINT16));
FUNCPTR sx2GetIntHook(VOID);
STATUS sx2SetNotifyHook(UINT8 hookType, STATUS (*hookFunc)(UINT32));
FUNCPTR sx2GetNotifyHook(UINT8 hookType);
/* SX2 register definitions */
#define SX2_REG_BOTTOM 0x01
#define SX2_REG_TOP 0x33
#define IFCONFIG 0x01
#define FLAGSAB 0x02
#define FLAGSCD 0x03
#define POLAR 0x04
#define REVID 0x05
#define EP2CFG 0x06
#define EP4CFG 0x07
#define EP6CFG 0x08
#define EP8CFG 0x09
#define EP2PKTLENH 0x0A
#define EP2PKTLENL 0x0B
#define EP4PKTLENH 0x0C
#define EP4PKTLENL 0x0D
#define EP6PKTLENH 0x0E
#define EP6PKTLENL 0x0F
#define EP8PKTLENH 0x10
#define EP8PKTLENL 0x11
#define EP2PFH 0x12
#define EP2PFL 0x13
#define EP4PFH 0x14
#define EP4PFL 0x15
#define EP6PFH 0x16
#define EP6PFL 0x17
#define EP8PFH 0x18
#define EP8PFL 0x19
#define EP2ISOINPKTS 0x1A
#define EP4ISOINPKTS 0x1B
#define EP6ISOINPKTS 0x1C
#define EP8ISOINPKTS 0x1D
#define EP24FLAGS 0x1E
#define EP68FLAGS 0x1F
#define INPKTENDFLUSH 0x20
#define USBFRAMEH 0x2A
#define USBFRAMEL 0x2B
#define MICROFRAME 0x2C
#define FNADDR 0x2D
#define INTENABLE 0x2E
#define IRQ 0x2F
#define DESC 0x30
#define EP0BUF 0x31
#define SETUP 0x32
#define EP0BC 0x33
/* SX2 register bit definitions */
#define STANDBY 0x04
#define EP2FF 0x01
#define EP2EF 0x02
#define EP2PF 0x04
#define EP4FF 0x10
#define EP4EF 0x20
#define EP4PF 0x40
#define EP6FF 0x01
#define EP6EF 0x02
#define EP6PF 0x04
#define EP8FF 0x10
#define EP8EF 0x20
#define EP8PF 0x40
#define WORDWIDE 0x10
#define EP2PKTEND 0x01
#define EP4PKTEND 0x02
#define EP6PKTEND 0x04
#define EP8PKTEND 0x08
#define FIFO2FLUSH 0x10
#define FIFO4FLUSH 0x20
#define FIFO6FLUSH 0x40
#define FIFO8FLUSH 0x80
/* SX2 interrupt definitions */
#define SETUP_INT 0x80
#define EP0BUF_INT 0x40
#define FLAGS_INT 0x20
#define ENUMOK_INT 0x04
#define BUSACTIVITY_INT 0x02
#define READY_INT 0x01
/* SX2 misc definitions */
#define SX2_CMD_ADDR 0x80
#define SX2_CMD_DATA 0x7F
#define SX2_CMD_READ 0x40
#define SX2_CMD_WRITE 0xBF
#define EP0_MAX_DATA 0x40
#define SX2_FIFO2 0x00
#define SX2_FIFO4 0x01
#define SX2_FIFO6 0x02
#define SX2_FIFO8 0x03
#define SX2_CMD_REG 0x04
/* USB specific definitions */
#define SETUP_PKT_SIZE 0x08
/* misc other definitions */
#define READER_IS_INT 0x4000
#define READER_IS_TASK 0x8000
#define READY_TIMEOUT 1000
#define USE_REGS 0x01
#define USE_PINS 0x02
#define SX2_REGS_INIT 0x01
#define SX2_ENUMERATE 0x02
#define SX2_FLUSH_FIFOS 0x04
#define READ_REG_NOTIFY 0x01
#define WRITE_REG_NOTIFY 0x02
#define READ_FIFO_NOTIFY 0x04
#define WRITE_FIFO_NOTIFY 0x08
#ifdef __cplusplus
}
#endif
#endif /* __INCsx2UsbDrvh */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -