Does the Xilinx AXI IIC IP support reading from I2C slaves that have internal I2C register maps? For example, I am interfacing to multiple video encoder/decoder chips which require the I2C master to specify an internal register address _after_ sending the device slave address in order to specify which internal register to read.
The datasheet for the encoder/decoders specifies a high-level I2C protocol for register reads as follows (acknowledge bits not included for sake of brevity):
Start bit (sent by I2C master)
7-bit device slave address + R/W bit (Byte 1, sent by I2C master)
8-bit slave Internal Register Address (Byte 2, sent by I2C master)
Register data (Bytes 3-N, sent by I2C slave)
Stop bit (sent by I2C master)
Additionally, the I2C master may _not_ send a stop bit at any point between steps 2-4, or the slave device will return to the IDLE state and the sequence must be started over.
From reading the Xilinx AXI IIC IP product guide it would seem that for I2C reads the only method supported is (very high-level):
User writes device slave address and r/w bit to TX_FIFO
User writes the number (N) of bytes to be received (read) from slave device