diff mbox

[1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips

Message ID 1415780439-29728-2-git-send-email-b38343@freescale.com (mailing list archive)
State New, archived
Headers show

Commit Message

Robin Gong Nov. 12, 2014, 8:20 a.m. UTC
All chips of i.mx6 can be powered off by programming SNVS.
For example :
On i.mx6q-sabresd board, PMIC_ON_REQ connect with external
pmic ON/OFF pin, that will cause the whole PMIC powered off
except VSNVS. And system can restart once PMIC_ON_REQ goes
high by push POWRER key.

Signed-off-by: Robin Gong <b38343@freescale.com>
---
 arch/arm/boot/dts/imx6qdl-sabresd.dtsi |    4 ++++
 arch/arm/boot/dts/imx6qdl.dtsi         |    6 ++++++
 arch/arm/boot/dts/imx6sl-evk.dts       |    4 ++++
 arch/arm/boot/dts/imx6sl.dtsi          |    6 ++++++
 arch/arm/boot/dts/imx6sx-sdb.dts       |    4 ++++
 arch/arm/boot/dts/imx6sx.dtsi          |    6 ++++++
 6 files changed, 30 insertions(+)

Comments

Shawn Guo Nov. 19, 2014, 3:18 a.m. UTC | #1
On Wed, Nov 12, 2014 at 04:20:37PM +0800, Robin Gong wrote:
> All chips of i.mx6 can be powered off by programming SNVS.
> For example :
> On i.mx6q-sabresd board, PMIC_ON_REQ connect with external
> pmic ON/OFF pin, that will cause the whole PMIC powered off
> except VSNVS. And system can restart once PMIC_ON_REQ goes
> high by push POWRER key.
> 
> Signed-off-by: Robin Gong <b38343@freescale.com>
> ---
>  arch/arm/boot/dts/imx6qdl-sabresd.dtsi |    4 ++++
>  arch/arm/boot/dts/imx6qdl.dtsi         |    6 ++++++
>  arch/arm/boot/dts/imx6sl-evk.dts       |    4 ++++
>  arch/arm/boot/dts/imx6sl.dtsi          |    6 ++++++
>  arch/arm/boot/dts/imx6sx-sdb.dts       |    4 ++++
>  arch/arm/boot/dts/imx6sx.dtsi          |    6 ++++++
>  6 files changed, 30 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> index 07fb302..ba12cc6 100644
> --- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> @@ -531,6 +531,10 @@
>  	status = "okay";
>  };
>  
> +&snvs-poweroff {
> +	status = "okay";
> +};
> +
>  &ssi2 {
>  	status = "okay";
>  };
> diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
> index c701af9..3a032d1 100644
> --- a/arch/arm/boot/dts/imx6qdl.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl.dtsi
> @@ -645,6 +645,12 @@
>  					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
>  						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
>  				};
> +
> +				snvs-poweroff: snvs-poweroff@38 {

I'm not sure if it's because my DTC version is too low or you didn't
test, the DTC reports error in label name 'snvs-poweroff'.  IIRC, hyphen
'-' cannot be used in label name, but underscore '_' can.

Shawn

> +					compatible = "fsl,sec-v4.0-poweroff";
> +					reg = <0x38 0x4>;
> +					status = "disabled";
> +				};
>  			};
>  
>  			epit1: epit@020d0000 { /* EPIT1 */
> diff --git a/arch/arm/boot/dts/imx6sl-evk.dts b/arch/arm/boot/dts/imx6sl-evk.dts
> index 3f9e041..dab588f 100644
> --- a/arch/arm/boot/dts/imx6sl-evk.dts
> +++ b/arch/arm/boot/dts/imx6sl-evk.dts
> @@ -488,6 +488,10 @@
>  	status = "okay";
>  };
>  
> +&snvs-poweroff {
> +	status = "okay";
> +};
> +
>  &ssi2 {
>  	status = "okay";
>  };
> diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
> index 505da9e..5e5ed07 100644
> --- a/arch/arm/boot/dts/imx6sl.dtsi
> +++ b/arch/arm/boot/dts/imx6sl.dtsi
> @@ -565,6 +565,12 @@
>  					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
>  						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
>  				};
> +
> +				snvs-poweroff: snvs-poweroff@38 {
> +					compatible = "fsl,sec-v4.0-poweroff";
> +					reg = <0x38 0x4>;
> +					status = "disabled";
> +				};
>  			};
>  
>  			epit1: epit@020d0000 {
> diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts
> index a3980d9..78dc031 100644
> --- a/arch/arm/boot/dts/imx6sx-sdb.dts
> +++ b/arch/arm/boot/dts/imx6sx-sdb.dts
> @@ -251,6 +251,10 @@
>  	};
>  };
>  
> +&snvs-poweroff {
> +	status = "okay";
> +};
> +
>  &ssi2 {
>  	status = "okay";
>  };
> diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
> index f4b9da6..652be9f 100644
> --- a/arch/arm/boot/dts/imx6sx.dtsi
> +++ b/arch/arm/boot/dts/imx6sx.dtsi
> @@ -668,6 +668,12 @@
>  					reg = <0x34 0x58>;
>  					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
>  				};
> +
> +				snvs-poweroff: snvs-poweroff@38 {
> +					compatible = "fsl,sec-v4.0-poweroff";
> +					reg = <0x38 0x4>;
> +					status = "disabled";
> +				};
>  			};
>  
>  			epit1: epit@020d0000 {
> -- 
> 1.7.9.5
>
Soeren Moch Nov. 19, 2014, 5:26 a.m. UTC | #2
On 19.11.2014 04:18, Shawn Guo wrote:
> On Wed, Nov 12, 2014 at 04:20:37PM +0800, Robin Gong wrote:
>> All chips of i.mx6 can be powered off by programming SNVS.
>> For example :
>> On i.mx6q-sabresd board, PMIC_ON_REQ connect with external
>> pmic ON/OFF pin, that will cause the whole PMIC powered off
>> except VSNVS. And system can restart once PMIC_ON_REQ goes
>> high by push POWRER key.
>>
>> Signed-off-by: Robin Gong <b38343@freescale.com>
>> ---
>>  arch/arm/boot/dts/imx6qdl-sabresd.dtsi |    4 ++++
>>  arch/arm/boot/dts/imx6qdl.dtsi         |    6 ++++++
>>  arch/arm/boot/dts/imx6sl-evk.dts       |    4 ++++
>>  arch/arm/boot/dts/imx6sl.dtsi          |    6 ++++++
>>  arch/arm/boot/dts/imx6sx-sdb.dts       |    4 ++++
>>  arch/arm/boot/dts/imx6sx.dtsi          |    6 ++++++
>>  6 files changed, 30 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
>> index 07fb302..ba12cc6 100644
>> --- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
>> +++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
>> @@ -531,6 +531,10 @@
>>  	status = "okay";
>>  };
>>  
>> +&snvs-poweroff {
>> +	status = "okay";
>> +};"
>> +
>>  &ssi2 {
>>  	status = "okay";
>>  };
>> diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
>> index c701af9..3a032d1 100644
>> --- a/arch/arm/boot/dts/imx6qdl.dtsi
>> +++ b/arch/arm/boot/dts/imx6qdl.dtsi
>> @@ -645,6 +645,12 @@
>>  					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
>>  						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
>>  				};
>> +
>> +				snvs-poweroff: snvs-poweroff@38 {
> 
> I'm not sure if it's because my DTC version is too low or you didn't
> test, the DTC reports error in label name 'snvs-poweroff'.  IIRC, hyphen
> '-' cannot be used in label name, but underscore '_' can.
> 
> Shawn

In the patch series "[PATCH v4 0/3] add power off driver for i.mx6" from
Sep 26 (what I have tested) snvs_poweroff was used. This worked as expected.

So this series "[PATCH v4 0/3] add power off driver for i.mx6" (sent on
Nov 12) apparently contains old patches and is not simply resent as
stated in the cover letter.

Soeren
Robin Gong Nov. 19, 2014, 5:50 a.m. UTC | #3
Sorry, the patch resent wrongly...
Hi Shawn, Can you apply the first v4 patches on Sep 26, or I resend it again? 
On Wed, Nov 19, 2014 at 06:26:43AM +0100, Soeren Moch wrote:
> 
> On 19.11.2014 04:18, Shawn Guo wrote:
> > On Wed, Nov 12, 2014 at 04:20:37PM +0800, Robin Gong wrote:
> >> All chips of i.mx6 can be powered off by programming SNVS.
> >> For example :
> >> On i.mx6q-sabresd board, PMIC_ON_REQ connect with external
> >> pmic ON/OFF pin, that will cause the whole PMIC powered off
> >> except VSNVS. And system can restart once PMIC_ON_REQ goes
> >> high by push POWRER key.
> >>
> >> Signed-off-by: Robin Gong <b38343@freescale.com>
> >> ---
> >>  arch/arm/boot/dts/imx6qdl-sabresd.dtsi |    4 ++++
> >>  arch/arm/boot/dts/imx6qdl.dtsi         |    6 ++++++
> >>  arch/arm/boot/dts/imx6sl-evk.dts       |    4 ++++
> >>  arch/arm/boot/dts/imx6sl.dtsi          |    6 ++++++
> >>  arch/arm/boot/dts/imx6sx-sdb.dts       |    4 ++++
> >>  arch/arm/boot/dts/imx6sx.dtsi          |    6 ++++++
> >>  6 files changed, 30 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> >> index 07fb302..ba12cc6 100644
> >> --- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> >> +++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
> >> @@ -531,6 +531,10 @@
> >>  	status = "okay";
> >>  };
> >>  
> >> +&snvs-poweroff {
> >> +	status = "okay";
> >> +};"
> >> +
> >>  &ssi2 {
> >>  	status = "okay";
> >>  };
> >> diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
> >> index c701af9..3a032d1 100644
> >> --- a/arch/arm/boot/dts/imx6qdl.dtsi
> >> +++ b/arch/arm/boot/dts/imx6qdl.dtsi
> >> @@ -645,6 +645,12 @@
> >>  					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
> >>  						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
> >>  				};
> >> +
> >> +				snvs-poweroff: snvs-poweroff@38 {
> > 
> > I'm not sure if it's because my DTC version is too low or you didn't
> > test, the DTC reports error in label name 'snvs-poweroff'.  IIRC, hyphen
> > '-' cannot be used in label name, but underscore '_' can.
> > 
> > Shawn
> 
> In the patch series "[PATCH v4 0/3] add power off driver for i.mx6" from
> Sep 26 (what I have tested) snvs_poweroff was used. This worked as expected.
> 
> So this series "[PATCH v4 0/3] add power off driver for i.mx6" (sent on
> Nov 12) apparently contains old patches and is not simply resent as
> stated in the cover letter.
> 
> Soeren
Shawn Guo Nov. 19, 2014, 6:04 a.m. UTC | #4
On Wed, Nov 19, 2014 at 01:50:07PM +0800, Robin Gong wrote:
> Sorry, the patch resent wrongly...
> Hi Shawn, Can you apply the first v4 patches on Sep 26, or I resend it again? 

I fixed it up and tested the series on my imx6q-sabresd board.

Applied the series.

Shawn
Robin Gong Nov. 21, 2014, 9 a.m. UTC | #5
Thanks Shawn and Soeren. :)
On Wed, Nov 19, 2014 at 02:04:43PM +0800, Shawn Guo wrote:
> On Wed, Nov 19, 2014 at 01:50:07PM +0800, Robin Gong wrote:
> > Sorry, the patch resent wrongly...
> > Hi Shawn, Can you apply the first v4 patches on Sep 26, or I resend it again? 
> 
> I fixed it up and tested the series on my imx6q-sabresd board.
> 
> Applied the series.
> 
> Shawn
diff mbox

Patch

diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
index 07fb302..ba12cc6 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -531,6 +531,10 @@ 
 	status = "okay";
 };
 
+&snvs-poweroff {
+	status = "okay";
+};
+
 &ssi2 {
 	status = "okay";
 };
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index c701af9..3a032d1 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -645,6 +645,12 @@ 
 					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
 						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
 				};
+
+				snvs-poweroff: snvs-poweroff@38 {
+					compatible = "fsl,sec-v4.0-poweroff";
+					reg = <0x38 0x4>;
+					status = "disabled";
+				};
 			};
 
 			epit1: epit@020d0000 { /* EPIT1 */
diff --git a/arch/arm/boot/dts/imx6sl-evk.dts b/arch/arm/boot/dts/imx6sl-evk.dts
index 3f9e041..dab588f 100644
--- a/arch/arm/boot/dts/imx6sl-evk.dts
+++ b/arch/arm/boot/dts/imx6sl-evk.dts
@@ -488,6 +488,10 @@ 
 	status = "okay";
 };
 
+&snvs-poweroff {
+	status = "okay";
+};
+
 &ssi2 {
 	status = "okay";
 };
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index 505da9e..5e5ed07 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -565,6 +565,12 @@ 
 					interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
 						     <0 20 IRQ_TYPE_LEVEL_HIGH>;
 				};
+
+				snvs-poweroff: snvs-poweroff@38 {
+					compatible = "fsl,sec-v4.0-poweroff";
+					reg = <0x38 0x4>;
+					status = "disabled";
+				};
 			};
 
 			epit1: epit@020d0000 {
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts
index a3980d9..78dc031 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dts
+++ b/arch/arm/boot/dts/imx6sx-sdb.dts
@@ -251,6 +251,10 @@ 
 	};
 };
 
+&snvs-poweroff {
+	status = "okay";
+};
+
 &ssi2 {
 	status = "okay";
 };
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index f4b9da6..652be9f 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -668,6 +668,12 @@ 
 					reg = <0x34 0x58>;
 					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 				};
+
+				snvs-poweroff: snvs-poweroff@38 {
+					compatible = "fsl,sec-v4.0-poweroff";
+					reg = <0x38 0x4>;
+					status = "disabled";
+				};
 			};
 
 			epit1: epit@020d0000 {