Re: [PATCH 1/2] i2c: pxa: migrate to new i2c_slave APIs

From: Andy Shevchenko
Date: Tue Oct 01 2019 - 12:29:26 EST




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