Re: [PATCH v2 3/3] i2c: mpc: implement erratum A-004447 workaround
From: Andy Shevchenko <hidden>
Date: 2021-05-07 11:46:47
Also in:
linux-devicetree, linuxppc-dev, lkml
From: Andy Shevchenko <hidden>
Date: 2021-05-07 11:46:47
Also in:
linux-devicetree, linuxppc-dev, lkml
On Fri, May 7, 2021 at 3:40 AM Chris Packham [off-list ref] wrote:
The P2040/P2041 has an erratum where the normal i2c recovery mechanism does not work. Implement the alternative recovery mechanism documented in the P2040 Chip Errata Rev Q.
Thanks.
+static int i2c_mpc_wait_sr(struct mpc_i2c *i2c, int mask)
+{
+ int ret;
+ u8 val;
+
+ ret = readb_poll_timeout(i2c->base + MPC_I2C_SR, val,
+ val & mask, 0, 100);
+
+ return ret;
+}
So, now you may shrink it even further, i.e.
void __iomem *sr = i2c->base + MPC_I2C_SR;
u8 val;
return readb_poll_timeout(sr, val, val & mask, 0, 100);
--
With Best Regards,
Andy Shevchenko