45 i2cDevice->
i2c = i2cDeviceConfig->
i2c;
52 i2cDeviceConfig->
i2c = i2c;
59 Ifx_I2C *i2cSFR = config->
i2c;
77 Ifx_I2C *i2c = i2cDevice->
i2c->
i2c;
82 sint32 bytesToReceive = size;
109 while ((i2c->PIRQSM.U & ((1 << IFX_I2C_PIRQSS_AL_OFF) | (1 << IFX_I2C_PIRQSS_NACK_OFF) | (1 << IFX_I2C_PIRQSS_RX_OFF) || i2c->ERRIRQSS.U)))
136 for (i = 0; i < size; i += 4)
138 if (bytesToReceive >= 4)
145 bytes = bytesToReceive;
151 while (!(ris = i2c->RIS.U))
156 if (ris & ((1 << IFX_I2C_RIS_LSREQ_INT_OFF) | (1 << IFX_I2C_RIS_SREQ_INT_OFF) | (1 << IFX_I2C_RIS_LBREQ_INT_OFF) | (1 << IFX_I2C_RIS_BREQ_INT_OFF)))
161 for (k = 0; k < bytes; k++)
163 data[i + k] = bytePtrRxData[k];
173 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
180 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
208 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
214 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
225 for (i = 0; i < size; i += 4)
227 if (bytesToReceive >= 4)
234 bytes = bytesToReceive;
245 for (k = 0; k < bytes; k++)
247 data[i + k] = bytePtrRxData[k];
257 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
263 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
280 Ifx_I2C *i2c = i2cDevice->
i2c->
i2c;
283 sint32 bytesToSend = size + 1;
336 for (i = 0; i < size + 1; i += 4)
338 if (bytesToSend >= 4)
351 for (j = 0; j < bytes; j++)
353 if ((i == 0) && (j == 0))
355 bytePtrPacket[j] = (
uint8)slAddr;
360 bytePtrPacket[j] = (
uint8)data[i + j - 1];
370 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
376 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
407 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
413 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))