18 #include <drivers/i2c/adi_i2c.h> 20 #define ADI_I2C_NUM_INSTANCES (1u) 21 #define ADI_I2C_STATUS_ERROR_MASK ( (1u << BITP_I2C_MSTAT_NACKADDR) \ 22 | (1u << BITP_I2C_MSTAT_NACKDATA) \ 23 | (1u << BITP_I2C_MSTAT_MRXOVR) \ 24 | (1u << BITP_I2C_MSTAT_MTXUNDR) \ 25 | (1u << BITP_I2C_MSTAT_ALOST) ) 39 #if defined(__ADUCM302x__) 43 typedef struct _ADI_SYS_STRUCT
45 ADI_SYS_TypeDef *pReg;
49 typedef struct _ADI_SYS_STRUCT ADI_SYS_REGISTERS;
56 typedef struct __ADI_I2C_CONFIG {
57 uint16_t MasterControlRegister;
58 uint16_t ClockDividerRegister;
59 uint16_t SharedControlRegister;
60 uint16_t TimingControlRegister;
61 uint16_t ClockStretchRegister;
62 uint16_t TargetSlaveAddress;
67 typedef struct __ADI_I2C_DEVICE_INFO {
69 ADI_I2C_TypeDef *pDev;
70 ADI_I2C_CONFIG *pConfig;
72 } ADI_I2C_DEVICE_INFO;
75 typedef struct __ADI_I2C_DEV_DATA_TYPE {
80 ADI_I2C_TypeDef *pDev;
81 ADI_I2C_DEVICE_INFO *pDevInfo;
87 uint16_t i2cDeviceAddress;
88 uint16_t i2cEncodedDeviceAddress;
92 volatile uint8_t *pNextPrologueByte;
93 volatile uint16_t remainingPrologueCount;
96 volatile uint8_t *pNextWriteByte;
97 volatile uint16_t remainingWriteCount;
100 volatile uint8_t *pNextReadByte;
101 volatile uint16_t remainingReadCount;
103 volatile uint16_t nBytesProcessed;
111 } ADI_I2C_DEV_DATA_TYPE;
struct __ADI_I2C_DEV_DATA_TYPE * ADI_I2C_HANDLE