Created attachment 154646 [details] patch i2c am335X Hello, This patch enhanced the i2c driver for AM335X. This add support for read(2), write(2) and the required ioctl by i2c(8) (I2CSTART, I2CSTOP, I2CRPTSTART). Now it is possible to dump the on-board eeprom with i2c : i2c -a 0x50 -d r -w 16 -c 4096 -o 0 -b > eeprom.bin Note: The write syscall use an internal buffer of 1024 because in sys/dev/iicbus/iic.c it's limited to 1024. Cheers,
I've explained to the OP on IRC that this change, as implemented here, has a few drawbacks: - We would need to copy the same code to all i2c controllers; - It does not do what an i2c user would expect. An I2CSTART call, for example, will not generate a start condition on i2c bus. I recommended that this logic (of using I2CRDWR instead of individual I2C events) could be moved to i2c(8), which in turn should support both methods for read, write and bus scan.
Closing this bug as https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198817 implement I2C_RDRW in i2c(8)