📄 td1120p.h
字号:
#define TD1120_DEV_EP_VALID_CODE_0_BYTE 0x7
/*------------------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : DEVICE CONTROL SET/CLEAR REGISTER
------------------------------------------------------------------------------*/
#define TD1120_DEV_CTRL_FORCE_FULL_SPEED 0x0001
#define TD1120_DEV_CTRL_CONNECT_RESISTOR 0x0002
#define TD1120_DEV_CTRL_SUSPEND_XCEIVER 0x0004
#define TD1120_DEV_CTRL_RESUME_XCEIVER 0x0008
#define TD1120_DEV_CTRL_READ_DWORD_EN 0x0010
#define TD1120_DEV_CTRL_PSEUDO_SOF_EN 0x0020
#define TD1120_DEV_CTRL_OUT_FULL_EN 0x0040
#define TD1120_DEV_CTRL_IN_FIFO_EMPTY_EN 0x0080
#define TD1120_DEV_CTRL_SOFT_RESET 0x0100
#define TD1120_DEV_CTRL_OUT_PKT_EN 0x0200
#define TD1120_DEV_CTRL_UTMI_CLK_GOOD 0x1000
#define TD1120_DEV_CTRL_SUSPENDED 0x2000
#define TD1120_DEV_CTRL_SPEED 0x4000
#define TD1120_DEV_CTRL_VBUS 0x8000
/*------------------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS :DEVICE INTERRUPT STATUS/CLEAR ENABLES/CLEAR REGISTER
------------------------------------------------------------------------------*/
/* #ifdef NEW_WITH_CHANGES */
#define TD1120_DEV_INTR_SETUP_TKN_RX 0x0001
#define TD1120_DEV_INTR_OUT_XFER_RX 0x0002
#define TD1120_DEV_INTR_OUT_THRSHLD_FILLED 0x0004
#define TD1120_DEV_INTR_IN_XFER_SENT 0x0010
#define TD1120_DEV_INTR_IN_THRSHLD_EMPTIED 0x0020
#define TD1120_DEV_INTR_DMA0_EVENT 0x0100
#define TD1120_DEV_INTR_DMA1_EVENT 0x0200
#define TD1120_DEV_INTR_VBUS_CHANGE 0x0400
#define TD1120_DEV_INTR_RESET_STARTED 0x0800
#define TD1120_DEV_INTR_RESET_FINISHED 0x1000
#define TD1120_DEV_INTR_SUSPEND_DETECTED 0x2000
#define TD1120_DEV_INTR_RESUME_DETECTED 0x4000
#define TD1120_DEV_INTR_SOF_DETECTED 0x8000
/*----------------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : DEVICE DMA CONFIGURATION REGISTER
----------------------------------------------------------------------------*/
#define TD1120_DEV_DMA_CONFIG_EOT_POLARITY 0x0001
#define TD1120_DEV_DMA_CONFIG_ACK_POLARITY 0x0002
#define TD1120_DEV_DMA_CONFIG_RD_POLARITY 0x0003
#define TD1120_DEV_DMA_CONFIG_WR_POLARITY 0x0008
#define TD1120_DEV_DMA_CONFIG_REQ_POLARITY 0x0010
#define TD1120_DEV_DMA_CONFIG_EOT_EN 0x0020
#define TD1120_DEV_DMA_RD_WR_EN 0x0040
#define TD1120_DEV_DMA_CONT_BURST_EN 0x0080
#define TD1120_DEV_DMA_BURST_COUNT_MASK 0x0F00
/*--------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : DEVICE DMA CONTROL REGISTER
--------------------------------------------------------------------*/
#define TD1120_DEV_DMA_CTRL_EP_NUM_MASK 0x000F
#define TD1120_DEV_DMA_CTRL_XFER_DIRECTION 0x0010
#define TD1120_DEV_DMA_CTRL_AUTO_FILL_EN 0x0020
#define TD1120_DEV_DMA_CTRL_XFER_EN 0x0040
#define TD1120_DEV_DMA_CONFIG_RD_POLARITY 0x0003
/*--------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : DEVICE DMA INTERRUPT REGISTER
--------------------------------------------------------------------*/
#define TD1120_DEV_DMA_INTR_XFER_COMPLETE 0x0001
#define TD1120_DEV_DMA_INTR_XFER_EN_RESET 0x0002
#define TD1120_DEV_DMA_INTR_AUTO_FILL_EN_RESET 0x0004
#define TD1120_DEV_DMA_INTR_EOT_RX 0x0008
/*--------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : DEVICE DMA TRANSFER LENGTH REGISTER
--------------------------------------------------------------------*/
#define TD1120_DEV_DMA_XFER_LEN_MASK 0xFFFF
/*--------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : TEST MODE REGISTER
--------------------------------------------------------------------*/
#define TD1120_DEV_TEST_MODE_MASK 0x0003
#define TD1120_DEV_TEST_MODE_EN 0x0008
/*--------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : OUT BYTE COUNT REGISTER
--------------------------------------------------------------------*/
#define TD1120_DEV_OUT_BYTE_COUNT_MASK 0x3FFC
#define TD1120_DEV_OUT_PKT_ERR_MASK 0x8000
#define TD1120_DEV_OUT_CRC_ERR_MASK 0x4000
#define TD1120_DEV_OUT_VALID_BYTE_MASK 0x0003
/*--------------------------------------------------------------------
TAHAA CHIP LEVEL REGISTERS : IN BYTE COUNT REGISTER
--------------------------------------------------------------------*/
#define TD1120_DEV_IN_BYTE_COUNT_MASK 0x3FFF
#define ISOUT 0
#define ISIN 1
#define ISSETUP 2
/******************************************************************************
Public Data Types
******************************************************************************/
/******************************************************************************
Public Functions
******************************************************************************/
SctStatus TD1120P_Create(U32 baseAddress, TdiPeriphController**);
SctStatus TD1120P_Destroy(TdiPeriphController*);
SctBool TD1120P_VerifyId(U32 baseAddress);
SctStatus TD1120P_RegisterEventCallback(TdiPeriphController* pc, U32 eventType,\
void (*eventCallbackFunction)(TdiPeriphController* pc, U32 eventType, void* eventData));
SctBool TD1120P_IsVBusOn(TdiPeriphController*);
SctStatus TD1120P_ResetController(TdiPeriphController*);
SctStatus TD1120P_DisableControllerIntr(TdiPeriphController*);
SctStatus TD1120P_EnableControllerIntr(TdiPeriphController*);
SctStatus TD1120P_SetAddress(TdiPeriphController*, U32 usbAddress);
SctStatus TD1120P_InitSetupPhase(TdiPeriphController*, U32 epNum, U8* setupPacketBuffer);
SctStatus TD1120P_GetSetupPacket(TdiPeriphController*, U32 epNumber, PeriphSetupRequest*);
SctStatus TD1120P_Transfer(TdiPeriphController*, TdiPurb*);
SctStatus TD1120P_GetTransferStatus(TdiPeriphController*, TdiPurb*, U32* transferStatus);
SctStatus TD1120P_CancelTransfer(TdiPeriphController*, TdiPurb*);
SctStatus TD1120P_CancelAllEpTransfers(TdiPeriphController* pc, TdiPeriphEp* ep);
SctStatus TD1120P_DeviceConfigurationSet(TdiPeriphController*, U32 configNum);
SctStatus TD1120P_DeviceConfigurationClear(TdiPeriphController*);
SctStatus TD1120P_ConfigEp(TdiPeriphController*, U32 epNum, U32 epCommand, TdiPeriphEp*);
SctStatus TD1120P_CreateEp(TdiPeriphController*, U32 epAddr, U32 epDir, \
U32 epType, U32 eMps, TdiPeriphEp**);
SctStatus TD1120P_DestroyEp(TdiPeriphController*, TdiPeriphEp*);
SctStatus TD1120P_GetEpStatus(TdiPeriphController*, TdiPeriphEp*);
SctStatus TD1120P_GetDeviceState(TdiPeriphController*, U32* deviceState);
SctStatus TD1120P_SetDeviceState(TdiPeriphController*, U32 deviceState);
SctStatus TD1120P_GetFrameNumber(TdiPeriphController*, U32* frameNumber);
SctStatus TD1120P_ControlBusParams(TdiPeriphController*, U32 controlCommand, U8 mode);
SctStatus TD1120P_GetSpeed(TdiPeriphController*, U32* busSpeed);
SctStatus TD1120P_DescriptorRegister(TdiPeriphController*, U32 type, U8* descriptor, U8 index);
#endif /* _TDI_PCD1120_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -