csl_usbf.h
来自「dsp在音频处理中的运用」· C头文件 代码 · 共 1,251 行 · 第 1/4 页
H
1,251 行
typedef enum CSL_UsbfEpType {
/** Bulk or __irq endpoint */
CSL_USBF_EPTYPE_NON_ISO = 0,
/** Isochronous endpoint */
CSL_USBF_EPTYPE_ISO = 1
} CSL_UsbfEpType;
/** @brief Structure that is used to setup endpoint 0
*
* This structure is part of endpoint setup */
typedef struct CSL_UsbfEp0Properties {
/** Endpoint 0 FIFO size */
CSL_UsbfEpSize size ;
/** The address of the endpoint 0 pointer */
Uint8 ptr ;
} CSL_UsbfEp0Properties;
/** @brief Structure that is used to setup endpoints other than endpoint 0
*
* This structure is part of endpoint setup */
typedef struct CSL_UsbfEpProperties {
/** Is endpoint valid fopr USB transfers? */
Bool valid ;
/** Endpoint buffering. Valid only if endpoint is Non-ISO */
Bool doubleBuffered;
/** Endpoint FIFO size value */
CSL_UsbfEpSize size ;
/** Endpoint type: Isochronous OR bulk or __irq */
CSL_UsbfEpType type;
/** Address of endpoint pointer */
Uint16 ptr ;
} CSL_UsbfEpProperties;
/** @brief Structure that is used to setup endpoints */
typedef struct CSL_UsbfEpSetup {
/** Endpoint 0 setup */
CSL_UsbfEp0Properties *ep0 ;
/** Recieve endpoints setup */
CSL_UsbfEpProperties *rxEp[15];
/** Transmit endpoints setup */
CSL_UsbfEpProperties *txEp[15];
} CSL_UsbfEpSetup;
/** @brief Enumerations for endianness */
typedef enum CSL_UsbfEndian {
/** Little endian */
CSL_USBF_ENDIAN_LITTLE,
/** Big endian */
CSL_USBF_ENDIAN_BIG
} CSL_UsbfEndian;
/** @brief Structure that is used for system configuration */
typedef struct CSL_UsbfSystemSetup {
/** Device configuration lock */
Bool cfgLocked ;
/** Data endianness */
CSL_UsbfEndian dataEndian;
/** DMA data endianness */
CSL_UsbfEndian dmaEndian;
/** NAK enabling */
Bool nakEnabled;
/** Auto deocde process activation */
Bool noAutoDecode;
/** Device self powered or not */
Bool selfPowered;
/** Power shutoff circuitry setting */
Bool powershutoffDisabled;
/** Device connectivity to USB bus */
Bool deviceConnected;
} CSL_UsbfSystemSetup;
/** @brief Structure that is used to setup USB Function overall*/
typedef struct CSL_UsbfHwSetup {
/** Endpoint setup */
CSL_UsbfEpSetup *epSetup ;
/** DMA setup */
CSL_UsbfDmaSetup *dmaSetup;
/** System configuration */
CSL_UsbfSystemSetup *systemSetup;
} CSL_UsbfHwSetup;
/**
* @brief Default values for the ep0properties
*/
#define CSL_USBF_EP0PROPERTIES_DEFAULTS { \
(CSL_UsbfEpSize)CSL_USBF_EP0_SIZE_RESETVAL, \
CSL_USBF_EP0_PTR_RESETVAL \
}
/**
* @brief Default values for the Rxepproperties
*/
#define CSL_USBF_RXEPPROPERTIES_DEFAULTS { \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL , \
(Bool)CSL_USBF_RX_EP_VALID_RESETVAL,(Bool) CSL_USBF_RX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_RX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_RX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_RX_EP_PTR_RESETVAL \
}
/**
* @brief Default values for the Txepproperties
*/
#define CSL_USBF_TXEPPROPERTIES_DEFAULTS { \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL, \
(Bool)CSL_USBF_TX_EP_VALID_RESETVAL,(Bool)CSL_USBF_TX_EP_SIZEDB_RESETVAL, \
(CSL_UsbfEpSize)CSL_USBF_TX_EP_SIZE_RESETVAL , (CSL_UsbfEpType)CSL_USBF_TX_EP_ISO_RESETVAL, \
(Uint16)CSL_USBF_TX_EP_PTR_RESETVAL \
}
/**
* @brief Default values for the TxchSetup-structure
*/
#define CSL_USBF_TXCHSETUP_DEFAULTS { \
(CSL_UsbfEpNum)CSL_USBF_TXDMA_CFG_TXDMA2_EP_RESETVAL, \
(CSL_UsbfDmaTxSizeType)CSL_USBF_TXDMA2_TX2_TSC_RESETVAL, \
CSL_USBF_TXDMA2_TX2_EOT_RESETVAL, \
(CSL_UsbfEpNum)CSL_USBF_TXDMA_CFG_TXDMA1_EP_RESETVAL, \
(CSL_UsbfDmaTxSizeType)CSL_USBF_TXDMA1_TX1_TSC_RESETVAL, \
CSL_USBF_TXDMA1_TX1_EOT_RESETVAL, \
(CSL_UsbfEpNum)CSL_USBF_TXDMA_CFG_TXDMA0_EP_RESETVAL, \
(CSL_UsbfDmaTxSizeType)CSL_USBF_TXDMA0_TX0_TSC_RESETVAL, \
CSL_USBF_TXDMA0_TX0_EOT_RESETVAL \
}
/**
* @brief Default values for the RxchSetup-structure
*/
#define CSL_USBF_RXCHSETUP_DEFAULTS { \
(CSL_UsbfEpNum)CSL_USBF_RXDMA_CFG_RXDMA2_EP_RESETVAL, \
CSL_USBF_RXDMA2_RX2_TC_RESETVAL, \
(CSL_UsbfEpNum)CSL_USBF_RXDMA_CFG_RXDMA1_EP_RESETVAL, \
CSL_USBF_RXDMA1_RX1_TC_RESETVAL, \
(CSL_UsbfEpNum)CSL_USBF_RXDMA_CFG_RXDMA0_EP_RESETVAL, \
CSL_USBF_RXDMA0_RX0_TC_RESETVAL \
}
/**
* @brief Default values for the systemSetup-structure
*/
#define CSL_USBF_SYSTEMSETUP_DEFAULTS { \
CSL_USBF_SYSCON1_CFG_LOCK_RESETVAL, \
(CSL_UsbfEndian)CSL_USBF_SYSCON1_DATA_ENDIAN_RESETVAL, \
(CSL_UsbfEndian)CSL_USBF_SYSCON1_DMA_ENDIAN_RESETVAL, \
CSL_USBF_SYSCON1_NAK_EN_RESETVAL, \
CSL_USBF_SYSCON1_AUTODEC_DIS_RESETVAL, \
CSL_USBF_SYSCON1_SELF_PWR_RESETVAL, \
CSL_USBF_SYSCON1_SOFF_DIS_RESETVAL, \
CSL_USBF_SYSCON1_PULLUP_EN_RESETVAL \
}
/**
* @brief The config-structure
*
* Used to configure the USBF using CSL_usbfHwSetupRaw(..)
*/
typedef struct {
Uint16 EPNUM;
Uint16 CTRL;
Uint16 SYSCON1;
Uint16 SYSCON2;
Uint16 IRQ_EN;
Uint16 DMA_IRQ_EN;
Uint16 RXDMA_CFG;
Uint16 TXDMA_CFG;
Uint16 TXDMA0;
Uint16 TXDMA1;
Uint16 TXDMA2;
Uint16 RXDMA0;
Uint16 RXDMA1;
Uint16 RXDMA2;
Uint16 EP0;
Uint16 RX_EP[15];
Uint16 TX_EP[15];
} CSL_UsbfConfig;
/**
* @brief Default values for the config-structure
*/
#define CSL_USBF_CONFIG_DEFAULTS { \
CSL_USBF_EPNUM_RESETVAL, \
CSL_USBF_CTRL_RESETVAL, \
CSL_USBF_SYSCON1_RESETVAL, \
CSL_USBF_SYSCON2_RESETVAL, \
CSL_USBF_IRQ_EN_RESETVAL, \
CSL_USBF_DMA_IRQ_EN_RESETVAL, \
CSL_USBF_RXDMA_CFG_RESETVAL, \
CSL_USBF_TXDMA_CFG_RESETVAL, \
CSL_USBF_TXDMA0_RESETVAL, \
CSL_USBF_TXDMA1_RESETVAL, \
CSL_USBF_TXDMA2_RESETVAL, \
CSL_USBF_RXDMA0_RESETVAL, \
CSL_USBF_RXDMA1_RESETVAL, \
CSL_USBF_RXDMA2_RESETVAL, \
CSL_USBF_EP0_RESETVAL, \
{ \
CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, \
CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, \
CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, \
CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL, CSL_USBF_RX_EP_RESETVAL \
}, \
{ \
CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, \
CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, \
CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, \
CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL, CSL_USBF_TX_EP_RESETVAL \
} \
}
/** @brief Structure that is used store setup packet data*/
typedef struct CSL_UsbfSetupPacket {
/** if true, structure holds new setup data */
Bool new_packet;
/** Byte 0 of setup packet */
Uint16 bmRequestType;
/** Byte 1 of setup packet */
Uint16 bRequest;
/** Byte 2 and 3 of setup packet */
Uint16 wValue;
/** Byte 4 and 5 of setup packet */
Uint16 wIndex;
/** Byte 6 and 7 of setup packet */
Uint16 wLength;
} CSL_UsbfSetupPacket ;
/** @brief Structure that is used to hold data for transmission and reception
* through FIFO
*/
typedef struct CSL_UsbfRxTxFifo {
/** Data to be sent or received */
Uint8 *data;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?