arm64: dts: exynos: add syscon reboot/reboot_mode support in ExynosAutov9
authorChanho Park <chanho61.park@samsung.com>
Mon, 23 May 2022 12:12:44 +0000 (21:12 +0900)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 6 Jun 2022 08:35:18 +0000 (10:35 +0200)
Reboot of exynosautov9 SoC can be handled by setting the
bit(SWRESET_SYSTEM[1]) of SYSTEM_CONFIGURATION register(PMU + 0x3a00).
syscon-reboot-mode can be used to indicate the reboot mode for
bootloader. SYSIP_DAT0 register(PMU + 0x810) will not be cleared after
reboot so bootloader can enter the boot mode according to the value.

Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Link: https://lore.kernel.org/r/20220523121244.67341-3-chanho61.park@samsung.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
arch/arm64/boot/dts/exynos/exynosautov9.dtsi

index 0ce46ec..3e23db8 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <dt-bindings/clock/samsung,exynosautov9.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/samsung,boot-mode.h>
 #include <dt-bindings/soc/samsung,exynos-usi.h>
 
 / {
                pmu_system_controller: system-controller@10460000 {
                        compatible = "samsung,exynos7-pmu", "syscon";
                        reg = <0x10460000 0x10000>;
+
+                       reboot: syscon-reboot {
+                               compatible = "syscon-reboot";
+                               regmap = <&pmu_system_controller>;
+                               offset = <0x3a00>; /* SYSTEM_CONFIGURATION */
+                               value = <0x2>;
+                               mask = <0x2>;
+                       };
+
+                       reboot-mode {
+                               compatible = "syscon-reboot-mode";
+                               offset = <0x810>; /* SYSIP_DAT0 */
+                               mode-bootloader = <EXYNOSAUTOV9_BOOT_BOOTLOADER>;
+                               mode-fastboot = <EXYNOSAUTOV9_BOOT_FASTBOOT>;
+                               mode-recovery = <EXYNOSAUTOV9_BOOT_RECOVERY>;
+                       };
                };
 
                syscon_fsys2: syscon@17c20000 {