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


Reply via email to