On 20/10/23 03:40, Gregory CLEMENT wrote: > Hello Chris, > >> The AC5 SoC supports using a controller based I2C unstuck function for >> recovery. Use this instead of the generic GPIO recovery. >> >> Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> >> --- >> arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi | 14 ++++---------- >> 1 file changed, 4 insertions(+), 10 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi b/arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi >> index c9ce1010c415..e52d3c3496d5 100644 >> --- a/arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi >> +++ b/arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi >> @@ -137,7 +137,7 @@ mdio: mdio@22004 { >> >> i2c0: i2c@11000{ >> compatible = "marvell,mv78230-i2c"; >> - reg = <0x11000 0x20>; >> + reg = <0x11000 0x20>, <0x110a0 0x4>; >> #address-cells = <1>; >> #size-cells = <0>; >> >> @@ -146,17 +146,14 @@ i2c0: i2c@11000{ >> interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; >> clock-frequency=<100000>; >> >> - pinctrl-names = "default", "gpio"; >> + pinctrl-names = "default"; >> pinctrl-0 = <&i2c0_pins>; >> - pinctrl-1 = <&i2c0_gpio>; >> - scl-gpios = <&gpio0 26 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >> - sda-gpios = <&gpio0 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; > By doing this then older kernel won't be able to do recovery, while if > you keep it, the new kernels will still use new way to support recovery > thanks to the new reg filed added and old kernels will continue to work. > > However, what we try to maintain is running new kernel on old dtb not > the opposite which is just a nice to have. At the end it is up to you, > if you really want to remove this chunk I will apply it once the driver > part of the series will be accepted. The GPIO recovery triggers an Erratum where the SoC locks up so I'd prefer to see it gone (basically a version of that offload Erratum from the early Armada-XPs). I think it's all academic because I'm pretty sure I'm the only one actually running an upstream kernel on the AC5X. Marvell still ship a horribly out of date fork in their official SDK. > > Gregory > > >> status = "disabled"; >> }; >> >> i2c1: i2c@11100{ >> compatible = "marvell,mv78230-i2c"; >> - reg = <0x11100 0x20>; >> + reg = <0x11100 0x20>, <0x110a4 0x4>; >> #address-cells = <1>; >> #size-cells = <0>; >> >> @@ -165,11 +162,8 @@ i2c1: i2c@11100{ >> interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; >> clock-frequency=<100000>; >> >> - pinctrl-names = "default", "gpio"; >> + pinctrl-names = "default"; >> pinctrl-0 = <&i2c1_pins>; >> - pinctrl-1 = <&i2c1_gpio>; >> - scl-gpios = <&gpio0 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >> - sda-gpios = <&gpio0 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; >> status = "disabled"; >> }; >> >> -- >> 2.42.0 >>