2020-10-29 08:54:01

by Paweł Chmiel

[permalink] [raw]
Subject: [PATCH] arm64: dts: exynos: Fix reboot/poweroff issues on Exynos7

In vendor sources for Exynos 7420, psci is not used to reboot or
poweroff device. Instead we should use syscon reboot/poweroff.
Previously it was not possible to poweroff (no syscon poweroff node) or
reboot (because it was handled by psci and this way is not working for
Exynos).

Fixes: fb026cb65247 ("arm64: dts: Add reboot node for exynos7")
Fixes: b9024cbc937d ("arm64: dts: Add initial device tree support for exynos7")
Signed-off-by: Paweł Chmiel <[email protected]>
---
arch/arm64/boot/dts/exynos/exynos7.dtsi | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi
index 959918f4ca45..47d54c369d03 100644
--- a/arch/arm64/boot/dts/exynos/exynos7.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi
@@ -117,8 +117,10 @@ cpu_atlas3: cpu@3 {
};

psci {
- compatible = "arm,psci-0.2";
+ compatible = "arm,psci";
method = "smc";
+ cpu_off = <0x84000002>;
+ cpu_on = <0xC4000003>;
};

soc: soc@0 {
@@ -552,6 +554,13 @@ pmu_system_controller: system-controller@105c0000 {
compatible = "samsung,exynos7-pmu", "syscon";
reg = <0x105c0000 0x5000>;

+ poweroff: syscon-poweroff {
+ compatible = "syscon-poweroff";
+ regmap = <&pmu_system_controller>;
+ offset = <0x330C>; /* PS_HOLD_CONTROL */
+ mask = <0x5200>; /* reset value */
+ };
+
reboot: syscon-reboot {
compatible = "syscon-reboot";
regmap = <&pmu_system_controller>;
--
2.27.0


2020-10-29 17:55:17

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: exynos: Fix reboot/poweroff issues on Exynos7

On Wed, Oct 28, 2020 at 10:08:13PM +0100, Paweł Chmiel wrote:
> In vendor sources for Exynos 7420, psci is not used to reboot or
> poweroff device. Instead we should use syscon reboot/poweroff.
> Previously it was not possible to poweroff (no syscon poweroff node) or
> reboot (because it was handled by psci and this way is not working for
> Exynos).

Do you want to say that PSCI cannot be used to power off or reboot?

>
> Fixes: fb026cb65247 ("arm64: dts: Add reboot node for exynos7")
> Fixes: b9024cbc937d ("arm64: dts: Add initial device tree support for exynos7")
> Signed-off-by: Paweł Chmiel <[email protected]>
> ---
> arch/arm64/boot/dts/exynos/exynos7.dtsi | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi
> index 959918f4ca45..47d54c369d03 100644
> --- a/arch/arm64/boot/dts/exynos/exynos7.dtsi
> +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi
> @@ -117,8 +117,10 @@ cpu_atlas3: cpu@3 {
> };
>
> psci {
> - compatible = "arm,psci-0.2";
> + compatible = "arm,psci";

Please explain how is it related to this issue? You onle mentioned
a problem of lacking syscon-reboot node.

> method = "smc";
> + cpu_off = <0x84000002>;
> + cpu_on = <0xC4000003>;

The same question.

> };
>
> soc: soc@0 {
> @@ -552,6 +554,13 @@ pmu_system_controller: system-controller@105c0000 {
> compatible = "samsung,exynos7-pmu", "syscon";
> reg = <0x105c0000 0x5000>;
>
> + poweroff: syscon-poweroff {
> + compatible = "syscon-poweroff";
> + regmap = <&pmu_system_controller>;
> + offset = <0x330C>; /* PS_HOLD_CONTROL */
> + mask = <0x5200>; /* reset value */
> + };
> +

Instead, please include arm/exynos-syscon-restart.dtsi.

Best regards,
Krzysztof

2020-11-04 21:28:23

by Paweł Chmiel

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: exynos: Fix reboot/poweroff issues on Exynos7

Hi

On 29.10.2020 18:50, Krzysztof Kozlowski wrote:
> On Wed, Oct 28, 2020 at 10:08:13PM +0100, Paweł Chmiel wrote:
>> In vendor sources for Exynos 7420, psci is not used to reboot or
>> poweroff device. Instead we should use syscon reboot/poweroff.
>> Previously it was not possible to poweroff (no syscon poweroff node) or
>> reboot (because it was handled by psci and this way is not working for
>> Exynos).
>
> Do you want to say that PSCI cannot be used to power off or reboot?
Yes
>
>>
>> Fixes: fb026cb65247 ("arm64: dts: Add reboot node for exynos7")
>> Fixes: b9024cbc937d ("arm64: dts: Add initial device tree support for exynos7")
>> Signed-off-by: Paweł Chmiel <[email protected]>
>> ---
>> arch/arm64/boot/dts/exynos/exynos7.dtsi | 11 ++++++++++-
>> 1 file changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi
>> index 959918f4ca45..47d54c369d03 100644
>> --- a/arch/arm64/boot/dts/exynos/exynos7.dtsi
>> +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi
>> @@ -117,8 +117,10 @@ cpu_atlas3: cpu@3 {
>> };
>>
>> psci {
>> - compatible = "arm,psci-0.2";
>> + compatible = "arm,psci";
>
> Please explain how is it related to this issue? You onle mentioned
> a problem of lacking syscon-reboot node.
>
>> method = "smc";
>> + cpu_off = <0x84000002>;
>> + cpu_on = <0xC4000003>;
>
> The same question.
Thanks for feedback. I'll split this patch into two - one for inclusion
of exynos-syscon-restart.dtsi and second one fixing psci compatible (so
syscon-poweroff/restart will be working).
>
>> };
>>
>> soc: soc@0 {
>> @@ -552,6 +554,13 @@ pmu_system_controller: system-controller@105c0000 {
>> compatible = "samsung,exynos7-pmu", "syscon";
>> reg = <0x105c0000 0x5000>;
>>
>> + poweroff: syscon-poweroff {
>> + compatible = "syscon-poweroff";
>> + regmap = <&pmu_system_controller>;
>> + offset = <0x330C>; /* PS_HOLD_CONTROL */
>> + mask = <0x5200>; /* reset value */
>> + };
>> +
>
> Instead, please include arm/exynos-syscon-restart.dtsi.
Will do this.
>
> Best regards,
> Krzysztof
>