I2C on RPi
Back in January I wrote about the Raspberry Pi’s I2C module having problems with a specific I2C feature: clock stretching. The planned workaround was using a NXP SC18IS600, since Cypress CP2120 only comes in a QFN package. I received the chips some time ago and use it since a month for our hackerspace’s access control system. Unfortunately the Linux kernel only came with a driver for NXP SC18IS602, which does the the other direction (I2C -> SPI). So I ended up writing a simple driver, which does not support the GPIOs for now. The driver comes with full DT support and is used with DT in my test setup. As a nice surprise the CP2120 uses almost the same interface as SC18IS600, so the driver should also support Cypress’ chip (that part is obviously untested).