diff mbox series

arm64: dts: exynoautov9: add syscon reboot/reboot_mode support

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

Commit Message

Chanho Park May 20, 2022, 4:52 a.m. UTC
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(+)

Comments

Krzysztof Kozlowski May 20, 2022, 10:46 a.m. UTC | #1
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
Chanho Park May 20, 2022, 11:15 a.m. UTC | #2
> > 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 mbox series

Patch

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 {