With the reboot mode infrastructure in place, lets add the first in-tree
user. The STM32MP1 SoCs have general purpose registers in the TAMP
peripheral. Register 20 there is used by the vendor's U-Boot for storing
a forced boot mode. We will use the same location for our reboot mode.
Consistency between barebox and OS is maintained by having barebox fixup
the device tree with the same reboot mode information it used itself, so
we are free to choose our own mode identifiers.

Signed-off-by: Ahmad Fatoum <[email protected]>
---
 arch/arm/dts/stm32mp151.dtsi | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/dts/stm32mp151.dtsi b/arch/arm/dts/stm32mp151.dtsi
index cc2540047591..ca11492de564 100644
--- a/arch/arm/dts/stm32mp151.dtsi
+++ b/arch/arm/dts/stm32mp151.dtsi
@@ -28,6 +28,7 @@
                pwm15 = &{/soc/timer@44006000/pwm};
                pwm16 = &{/soc/timer@44007000/pwm};
                pwm17 = &{/soc/timer@44008000/pwm};
+               tamp.reboot_mode = &reboot_mode_tamp;
        };
 
 };
@@ -42,6 +43,20 @@
                compatible = "st,stm32mp1-ddr";
                reg = <0x5a003000 0x1000>;
        };
+
+       tamp@5c00a000 {
+               compatible = "simple-bus", "syscon", "simple-mfd";
+               reg = <0x5c00a000 0x400>;
+
+               reboot_mode_tamp: reboot-mode {
+                       compatible = "syscon-reboot-mode";
+                       offset = <0x150>; /* reg20 */
+                       mask = <0xff>;
+                       mode-normal = <0>;
+                       mode-loader = <0xBB>;
+                       mode-recovery = <0xBC>;
+               };
+       };
 };
 
 &bsec {
-- 
2.28.0


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to