Hi
We are doing ESD-Testing with or product and have blocked i2c-Busses.
This should be no problem because there is the i2c_bus_recovery that should recover from “most” cases.
But I discovered that the recover mechanism is not called in case of blocked bus.
The debugging showed that the i2c_imx_init_recovery_info() is not running correctly.
Here we try to get the state of the PINCTRL_STATE_DEFAULT and the “gpio” i2c-imx.c:1016
But when you check the dts imx6qdl-colibri.dtsi:392 you see that the name is “recovery” and not “gpio”.
Changing the name in the driver or the dts fix the problem.
I saw that the problem applies not only for colibri imx6 but also for apalis, eventually for more.
The same applies also for the mainline-kernel (I’m currently using 4.19.36)
In the documentation i2c-imx.txt the correct state should be “gpio” so the dts should be changed.
Almost all boards in mainline uses “gpio” also imx6ull-colibri.dtsi
I have locally fixed it but it should be fixed in linux-toradex and mainline.
How we should proceed ?
Regards Stefan