On Wed, 2021-05-12 at 09:20 +1200, Chris Packham wrote:
The P2040/P2041 has an erratum where the i2c recovery scheme
documented in the reference manual (and currently implemented
in the i2c-mpc.c driver) does not work. The errata document
provides an alternative that does work. This series implements
that alternative and uses a property in the devicetree to
decide when the alternative mechanism is needed.
Chris Packham (4):
dt-bindings: i2c: mpc: Add fsl,i2c-erratum-a004447 flag
powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c
controllers
powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 i2c
controllers
i2c: mpc: implement erratum A-004447 workaround
.../devicetree/bindings/i2c/i2c-mpc.yaml | 7 ++
arch/powerpc/boot/dts/fsl/p1010si-post.dtsi | 8 ++
arch/powerpc/boot/dts/fsl/p2041si-post.dtsi | 16 ++++
drivers/i2c/busses/i2c-mpc.c | 81 ++++++++++++++++++-
4 files changed, 110 insertions(+), 2 deletions(-)
This now reminds me about the current I2C reset procedure, it didn't work for us and I came up with this one:
https://www.spinics.net/lists/linux-i2c/msg29490.html
it never got in but we are still using it.
Jocke