123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- typedef void (*SpiIsrFunc)(void);
- typedef enum {
-
- IOT_SPI_ID_0 = 0,
-
- IOT_SPI_ID_1,
- } IotSpiIdx;
- typedef enum {
-
- IOT_SPI_CFG_CLOCK_CPOL_0,
-
- IOT_SPI_CFG_CLOCK_CPOL_1,
- }IotSpiCfgClockCpol;
- typedef enum {
-
- IOT_SPI_CFG_CLOCK_CPHA_0,
-
- IOT_SPI_CFG_CLOCK_CPHA_1,
- } IotSpiCfgClockCpha;
- typedef enum {
-
- IOT_SPI_CFG_FRAM_MODE_MOTOROLA,
-
- IOT_SPI_CFG_FRAM_MODE_TI,
-
- IOT_SPI_CFG_FRAM_MODE_MICROWIRE,
- } IotSpiCfgFramMode;
- typedef enum {
-
- IOT_SPI_CFG_DATA_WIDTH_E_4BIT = 0x3,
-
- IOT_SPI_CFG_DATA_WIDTH_E_5BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_6BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_7BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_8BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_9BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_10BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_11BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_12BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_13BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_14BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_15BIT,
-
- IOT_SPI_CFG_DATA_WIDTH_E_16BIT,
- } IotSpiCfgDataWidth;
- typedef enum {
-
- IOT_SPI_CFG_ENDIAN_LITTLE,
-
- IOT_SPI_CFG_ENDIAN_BIG,
- } IotSpiCfgEndian;
- typedef struct {
-
- unsigned int cpol : 1;
-
- unsigned int cpha : 1;
-
- unsigned int framMode : 2;
-
- unsigned int dataWidth : 4;
-
- unsigned int endian : 1;
-
- unsigned int pad : 23;
-
- unsigned int freq;
- } IotSpiCfgBasicInfo;
- typedef struct {
-
- unsigned int isSlave : 1;
-
- unsigned int pad : 31;
- } IotSpiCfgInitParam;
- unsigned int IoTSpiSlaveWrite(IotSpiIdx spiId, char *writeData, unsigned int byteLen, unsigned int timeOutMs);
- unsigned int IoTSpiSlaveRead(IotSpiIdx spiId, char *readData, unsigned int byteLen, unsigned int timeOutMs);
- unsigned int IoTSpiHostWrite(IotSpiIdx spiId, char *writeData, unsigned int byteLen);
- unsigned int IoTSpiHostRead(IotSpiIdx spiId, char *readData, unsigned int byteLen);
- unsigned int IoTSpiHostWriteread(IotSpiIdx spiId, char *writeData, char *readData, unsigned int byteLen);
- unsigned int IoTSpiSetBasicInfo(IotSpiIdx spiId, const IotSpiCfgBasicInfo *param);
- unsigned int IoTSpiInit(IotSpiIdx spiId, IotSpiCfgInitParam initParam, const IotSpiCfgBasicInfo *param);
- unsigned int IoTSpiDeinit(IotSpiIdx spiId);
- unsigned int IoTSpiSetIrqMode(IotSpiIdx spiId, unsigned char irqEn);
- unsigned int IoTSpiSetDmaMode(IotSpiIdx spiId, unsigned char dmaEn);
- unsigned int IoTSpiRegisterUsrFunc(IotSpiIdx spiId, SpiIsrFunc prepareF, SpiIsrFunc restoreF);
- unsigned int IoTSpiSetLoopBackMode(IotSpiIdx spiId, unsigned char lbEn);
|