mfd: tps6586x: Register restart handler
authorBenjamin Bara <benjamin.bara@skidata.com>
Sat, 15 Jul 2023 07:53:27 +0000 (09:53 +0200)
committerLee Jones <lee@kernel.org>
Fri, 28 Jul 2023 10:33:20 +0000 (11:33 +0100)
commit510f276df2b91efd73f6c53be62b7e692ff533c1
tree6e2c7841db718025ba2bc0753ddccb74df54d0d0
parent8bd141b17cedcbcb7d336df6e0462e4f4a528ab1
mfd: tps6586x: Register restart handler

There are a couple of boards which use a tps6586x as
"ti,system-power-controller", e.g. the tegra20-tamonten.dtsi.
For these, the only registered restart handler is the warm reboot via
tegra's PMC. As the bootloader of the tegra20 requires the VDE, it must
be ensured that VDE is enabled (which is the case after a cold reboot).
For the "normal reboot", this is basically the case since 8f0c714ad9be.
However, this workaround is not executed in case of an emergency restart.
In case of an emergency restart, the system now simply hangs in the
bootloader, as VDE is not enabled (because it is not used).

The TPS658629-Q1 provides a SOFT RST bit in the SUPPLYENE reg to request
a (cold) reboot, which takes at least 20ms (as the data sheet states).
This avoids the hang-up.

Tested on a TPS658640.

Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
Link: https://lore.kernel.org/r/20230327-tegra-pmic-reboot-v7-5-18699d5dcd76@skidata.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/tps6586x.c