Message ID | 20220520045210.55132-1-chanho61.park@samsung.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | arm64: dts: exynoautov9: add syscon reboot/reboot_mode support | expand |
On 20/05/2022 06:52, Chanho Park wrote: > 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> > --- > arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi > index 0ce46ec5cdc3..d99e53406ee0 100644 > --- a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi > +++ b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi > @@ -312,6 +312,22 @@ pinctrl_peric1: pinctrl@10830000 { > 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: syscon-reboot-mode { Node name: just "reboot-mode" > + compatible = "syscon-reboot-mode"; > + offset = <0x810>; /* SYSIP_DAT0 */ > + mode-bootloader = <0xfc>; > + mode-fastboot = <0xfa>; > + mode-recovery = <0xff>; These are magic values understood by firmware, so please add a header for them (something like include/dt-bindings/soc/rockchip,boot-mode.h but with some prefixes like EXYNOSAUTOV9_BOOT_FASTBOOT)) > + }; > }; > > syscon_fsys2: syscon@17c20000 { Best regards, Krzysztof
> > diff --git a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi > > b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi > > index 0ce46ec5cdc3..d99e53406ee0 100644 > > --- a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi > > +++ b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi > > @@ -312,6 +312,22 @@ pinctrl_peric1: pinctrl@10830000 { > > 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: syscon-reboot-mode { > > Node name: just "reboot-mode" Okay. I'll just put "reboot-mode {" without the label. > > > + compatible = "syscon-reboot-mode"; > > + offset = <0x810>; /* SYSIP_DAT0 */ > > + mode-bootloader = <0xfc>; > > + mode-fastboot = <0xfa>; > > + mode-recovery = <0xff>; > > These are magic values understood by firmware, so please add a header for > them (something like include/dt-bindings/soc/rockchip,boot-mode.h > but with some prefixes like EXYNOSAUTOV9_BOOT_FASTBOOT)) Okay. I'll add samsung,boot-mode.h and put them with the prefix. Best Regards, Chanho Park
diff --git a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi index 0ce46ec5cdc3..d99e53406ee0 100644 --- a/arch/arm64/boot/dts/exynos/exynosautov9.dtsi +++ b/arch/arm64/boot/dts/exynos/exynosautov9.dtsi @@ -312,6 +312,22 @@ pinctrl_peric1: pinctrl@10830000 { 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: syscon-reboot-mode { + compatible = "syscon-reboot-mode"; + offset = <0x810>; /* SYSIP_DAT0 */ + mode-bootloader = <0xfc>; + mode-fastboot = <0xfa>; + mode-recovery = <0xff>; + }; }; syscon_fsys2: syscon@17c20000 {
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> --- arch/arm64/boot/dts/exynos/exynosautov9.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)