I have an i2c device on an FMC card that I need to control. Because it's on FMC I need to use an I2C core in logic. Using baremetal everything is fine. But, when I try to use it with Linux (meta-xilinx) it seems to want to only send on byte at a time. Looking at kernel code I see a transmit error inside i2c-xiic.c. Specifically, this is true
pend & XIIC_INTR_TX_ERROR_MASK
Is there something wrong with my device tree?
axi_iic_0: i2c@41600000 {
compatible = "xlnx,axi-iic-1.01.b", "xlnx,xps-iic-2.00.a";
interrupt-parent = <&ps7_scugic_0>;
interrupts = <0 59 4>;
reg = <0x41600000 0x10000>;
#size-cells = <0>;
#address-cells = <1>;
} ;