ARM: dt: tegra: paz00: configure power off
diff mbox

Message ID 1457730000-11868-1-git-send-email-zombah@gmail.com
State Deferred
Headers show

Commit Message

Misha Komarovskiy March 11, 2016, 9 p.m. UTC
Add DT property to tell the regulator that it should provide
the pm_power_off() implementation. This fix "shutdown" issue
on this device.

Signed-off-by: Misha Komarovskiy <zombah@gmail.com>
---

Tested on current mainline version, ac100 models 116 and 117,
successful rate of "shutdown" increased from 10% to 90%.

 arch/arm/boot/dts/tegra20-paz00.dts | 2 ++
 1 file changed, 2 insertions(+)

Comments

Marc Dietrich March 12, 2016, 1:34 p.m. UTC | #1
Hi Micha,

Am Samstag, 12. März 2016, 00:00:00 CET schrieb Misha Komarovskiy:
> Add DT property to tell the regulator that it should provide
> the pm_power_off() implementation. This fix "shutdown" issue
> on this device.
> 
> Signed-off-by: Misha Komarovskiy <zombah@gmail.com>
> ---
> 
> Tested on current mainline version, ac100 models 116 and 117,
> successful rate of "shutdown" increased from 10% to 90%.
> 
>  arch/arm/boot/dts/tegra20-paz00.dts | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/tegra20-paz00.dts
> b/arch/arm/boot/dts/tegra20-paz00.dts index ed7e100..c82e3ae 100644
> --- a/arch/arm/boot/dts/tegra20-paz00.dts
> +++ b/arch/arm/boot/dts/tegra20-paz00.dts
> @@ -316,6 +316,8 @@
>  			#gpio-cells = <2>;
>  			gpio-controller;
> 
> +			ti,system-power-controller;
> +
>  			sys-supply = <&p5valw_reg>;
>  			vin-sm0-supply = <&sys_reg>;
>  			vin-sm1-supply = <&sys_reg>;

I think this is the wrong fix. The power_off hook is already occupied by nvec. 
So either the tps or nvec is responsible for shutting down the system. AFAIR, 
nvec has some hard wired connection to the tps for doing this, so in the end, 
it will shut down (but I can't find it now in the schematics). See paz00-
diag.c in the original sources on how the system is beeing shut down.

In any case, we can only have one power_off handler. Either via tps or nvec, 
not both.

Marc
Misha Komarovskiy March 12, 2016, 2:47 p.m. UTC | #2
Hello Marc,

On Sat, Mar 12, 2016 at 4:34 PM, Marc Dietrich <marvin24@gmx.de> wrote:
> Hi Micha,
>
> Am Samstag, 12. März 2016, 00:00:00 CET schrieb Misha Komarovskiy:
>> Add DT property to tell the regulator that it should provide
>> the pm_power_off() implementation. This fix "shutdown" issue
>> on this device.
>>
>> Signed-off-by: Misha Komarovskiy <zombah@gmail.com>
>> ---
>>
>> Tested on current mainline version, ac100 models 116 and 117,
>> successful rate of "shutdown" increased from 10% to 90%.
>>
>>  arch/arm/boot/dts/tegra20-paz00.dts | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/tegra20-paz00.dts
>> b/arch/arm/boot/dts/tegra20-paz00.dts index ed7e100..c82e3ae 100644
>> --- a/arch/arm/boot/dts/tegra20-paz00.dts
>> +++ b/arch/arm/boot/dts/tegra20-paz00.dts
>> @@ -316,6 +316,8 @@
>>                       #gpio-cells = <2>;
>>                       gpio-controller;
>>
>> +                     ti,system-power-controller;
>> +
>>                       sys-supply = <&p5valw_reg>;
>>                       vin-sm0-supply = <&sys_reg>;
>>                       vin-sm1-supply = <&sys_reg>;
>
> I think this is the wrong fix. The power_off hook is already occupied by nvec.
> So either the tps or nvec is responsible for shutting down the system. AFAIR,
> nvec has some hard wired connection to the tps for doing this, so in the end,
> it will shut down (but I can't find it now in the schematics). See paz00-
> diag.c in the original sources on how the system is beeing shut down.
>
> In any case, we can only have one power_off handler. Either via tps or nvec,
> not both.

Currently shutdown work very poor, lucky if i have one clean shutdown
of ten tries. With power_off handler by tps driver i have eight clean
shutdowns of ten tries.

Now it is possible to boot paz00 without nvec at all, in comparison to
downstream
kernels.
If such solution acceptable, i can test with disabled nvec power_off
hadler and compare results.

>
> Marc

Patch
diff mbox

diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts
index ed7e100..c82e3ae 100644
--- a/arch/arm/boot/dts/tegra20-paz00.dts
+++ b/arch/arm/boot/dts/tegra20-paz00.dts
@@ -316,6 +316,8 @@ 
 			#gpio-cells = <2>;
 			gpio-controller;
 
+			ti,system-power-controller;
+
 			sys-supply = <&p5valw_reg>;
 			vin-sm0-supply = <&sys_reg>;
 			vin-sm1-supply = <&sys_reg>;