I'm using MCUXpresso with an MIMXRT1064 processor. I am able to write data to my I2C device just fine, I can even read (according to sniffing the I2C bus) but the data is not removed from the stream and placed in my buffer.
The calls are:
uint8_t val = 0;
val = 0xee;
BOARD_LPI2C_Send(base, SSM4567_ADDR, SSM4567_REG_DAC_VOLUME, 1, (uint8_t *) &val, sizeof(val));
val = 0;
BOARD_LPI2C_Receive(base, SSM4567_ADDR, SSM4567_REG_DAC_VOLUME, 1, (uint8_t *) &val, sizeof(val));
Setting the device's volume to 0xee works just fine, reading it back works fine too as the 0xee data is returned in the I2C stream. However, the LPI2C driver doesn't move that data to my buffer.
Am I missing something?