Hi,
I'm using LS1028A and I'm wondering on how to recover from the situation when one of the devices connected to I2C hangs and makes the I2C bus inoperable.
From what I see in the source code of i2c-imx (the one used by LS1028a), the driver is capable of recovering from I2C hangs. The idea is simple - reconfigure pinctrl subsystem to its GPIO function and do some bitbaging.
However the thing that worries me is that I haven't found any pinctrl configuration in LS1028a's device-tree. Why is that? Is it possible to reconfigure in runtime pinctrl function for I2C peripherals of this SoC?
I know that pinctrl can be configured through RCW but what if I need to update it in the runtime?
The second question - is RCW meant to be updatable at some point while the device is operational on the field?
Unlike LS1043/LS1046 processors, LS1028A doesn't have Extended RCW PinMux Control Register(SCFG_RCWPMUXCR0), so it is impossible to reconfigure in runtime pinctrl function for I2C peripherals.
So LS1028A can't get pinctrl, bus recovery is not supported.