48 #include <drivers/i2c/adi_i2c.h> 50 #define ADI_I2C_NUM_INSTANCES (1u) 51 #define ADI_I2C_STATUS_ERROR_MASK ( (1u << BITP_I2C_MSTAT_NACKADDR) \ 52 | (1u << BITP_I2C_MSTAT_NACKDATA) \ 53 | (1u << BITP_I2C_MSTAT_ALOST) ) 67 #if defined(__ADUCM302x__) 71 typedef struct _ADI_SYS_STRUCT
73 ADI_SYS_TypeDef *pReg;
77 typedef struct _ADI_SYS_STRUCT ADI_SYS_REGISTERS;
84 typedef struct __ADI_I2C_CONFIG {
85 uint16_t MasterControlRegister;
86 uint16_t ClockDividerRegister;
87 uint16_t SharedControlRegister;
88 uint16_t TimingControlRegister;
89 uint16_t ClockStretchRegister;
90 uint16_t TargetSlaveAddress;
95 typedef struct __ADI_I2C_DEVICE_INFO {
97 ADI_I2C_TypeDef *pDev;
98 ADI_I2C_CONFIG *pConfig;
100 } ADI_I2C_DEVICE_INFO;
103 typedef struct __ADI_I2C_DEV_DATA_TYPE {
108 ADI_I2C_TypeDef *pDev;
109 ADI_I2C_DEVICE_INFO *pDevInfo;
115 uint16_t i2cDeviceAddress;
116 uint16_t i2cEncodedDeviceAddress;
120 volatile uint8_t *pNextPrologueByte;
121 volatile uint16_t remainingPrologueCount;
124 volatile uint8_t *pNextWriteByte;
125 volatile uint16_t remainingWriteCount;
128 volatile uint8_t *pNextReadByte;
129 volatile uint16_t remainingReadCount;
136 } ADI_I2C_DEV_DATA_TYPE;
struct __ADI_I2C_DEV_DATA_TYPE * ADI_I2C_HANDLE