On Tue, Oct 01, 2019 at 10:59:59AM -0500, Patrick Williams wrote: > The i2c subsystem was enhanced circa 2015 to support operating as > an i2c-slave device. Prior to that, the i2c-pxa driver supported > an i2c-slave but had its own APIs. There are no existing in-kernel > drivers or platforms that utilize the i2c-pxa APIs. > > Migrate the i2c-pxa driver to the general i2c-slave APIs so that > existing drivers, such as the i2c-slave-eeprom, can be used. > > This has been tested with a Marvell EspressoBin, using i2c-pxa and > i2c-slave-eeprom, acting as a slave, and a RaspeberryPi 3, using the > at24 driver, acting as a master. There are quite a few people in the Cc list. I'm not sure they all are interested in this. I deliberately dropped few names, sorry, if I was mistaken. > + if (isr & ISR_RWM) { > + u8 byte = 0; > + > + i2c_slave_event(i2c->slave, I2C_SLAVE_READ_REQUESTED, > + &byte); > + writel(byte, _IDBR(i2c)); > + } else { > + i2c_slave_event(i2c->slave, I2C_SLAVE_WRITE_REQUESTED, > + NULL); > + } Hmm... Perhaps u8 byte = 0; i2c_slave_event(i2c->slave, I2C_SLAVE_READ_REQUESTED, &byte); if (isr & ISR_RWM) writel(byte, _IDBR(i2c)); -- With Best Regards, Andy Shevchenko