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;
106 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)))
133 for (i = 0; i < size; i += 4)
135 if (bytesToReceive >= 4)
142 bytes = bytesToReceive;
148 while (!(ris = i2c->RIS.U))
153 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)))
158 for (k = 0; k < bytes; k++)
160 data[i + k] = bytePtrRxData[k];
167 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
174 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
202 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
208 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
219 for (i = 0; i < size; i += 4)
221 if (bytesToReceive >= 4)
228 bytes = bytesToReceive;
236 for (k = 0; k < bytes; k++)
238 data[i + k] = bytePtrRxData[k];
248 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
254 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
271 Ifx_I2C *i2c = i2cDevice->
i2c->
i2c;
274 sint32 bytesToSend = size + 1;
323 for (i = 0; i < size + 1; i += 4)
325 if (bytesToSend >= 4)
338 for (j = 0; j < bytes; j++)
340 if ((i == 0) && (j == 0))
342 bytePtrPacket[j] = slAddr;
346 bytePtrPacket[j] = data[i + j - 1];
356 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
362 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))
390 if (ris & (1 << IFX_I2C_RIS_I2C_P_INT_OFF))
396 if (ris & (1 << IFX_I2C_RIS_I2C_ERR_INT_OFF))