* [PATCH v2 0/3] add power off driver for i.mx6 @ 2014-09-12 8:48 Robin Gong 2014-09-12 8:48 ` [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips Robin Gong ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Robin Gong @ 2014-09-12 8:48 UTC (permalink / raw) To: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, shawn.guo, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux Cc: devicetree, linux-kernel, linux-pm, linux-arm-kernel Add simple power off driver for i.mx6, including: - add basic imx-snvs-poweroff driver in drivers/power/reset - add device node in all dts files of i.mx6. - enable in config file Robin Gong (3): ARM: dts: imx6: add pm_power_off support for i.mx6 chips power: reset: imx-snvs-poweroff: add power off driver for i.mx6 ARM: configs: imx_v6_v7_defconfig: add power off driver arch/arm/boot/dts/imx6qdl.dtsi | 5 +++ arch/arm/boot/dts/imx6sl.dtsi | 5 +++ arch/arm/boot/dts/imx6sx.dtsi | 5 +++ arch/arm/configs/imx_v6_v7_defconfig | 3 ++ drivers/power/reset/Kconfig | 5 +++ drivers/power/reset/Makefile | 1 + drivers/power/reset/imx-snvs-poweroff.c | 69 +++++++++++++++++++++++++++++++++ 7 files changed, 93 insertions(+) create mode 100644 drivers/power/reset/imx-snvs-poweroff.c -- 1.9.1 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips 2014-09-12 8:48 [PATCH v2 0/3] add power off driver for i.mx6 Robin Gong @ 2014-09-12 8:48 ` Robin Gong [not found] ` <1410511739-31122-2-git-send-email-b38343-KZfg59tc24xl57MIdRCFDg@public.gmane.org> 2014-09-17 2:10 ` Shawn Guo 2014-09-12 8:48 ` [PATCH v2 2/3] power: reset: imx-snvs-poweroff: add power off driver for i.mx6 Robin Gong 2014-09-12 8:48 ` [PATCH v2 3/3] ARM: configs: imx_v6_v7_defconfig: add power off driver Robin Gong 2 siblings, 2 replies; 15+ messages in thread From: Robin Gong @ 2014-09-12 8:48 UTC (permalink / raw) To: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, shawn.guo, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux Cc: devicetree, linux-kernel, linux-pm, linux-arm-kernel 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> --- .../bindings/power_supply/imx-snvs-poweroff.txt | 21 +++++++++++++++++++++ arch/arm/boot/dts/imx6qdl.dtsi | 5 +++++ arch/arm/boot/dts/imx6sl.dtsi | 5 +++++ arch/arm/boot/dts/imx6sx.dtsi | 5 +++++ 4 files changed, 36 insertions(+) create mode 100644 Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt diff --git a/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt new file mode 100644 index 0000000..1a3ab9a --- /dev/null +++ b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt @@ -0,0 +1,21 @@ +i.mx6 Poweroff Driver + +SNVS_LPCR in SNVS module can power off the whole system by pull +PMIC_ON_REQ low. + +Required Properties: +-compatible: "fsl,sec-v4.0-poweroff" +-reg: Specifies the physical address of the SNVS_LPCR register + +Example: + snvs@020cc000 { + compatible = "fsl,sec-v4.0-mon", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x020cc000 0x4000>; + ..... + snvs-poweroff@38 { + compatible = "fsl,sec-v4.0-poweroff"; + reg = <0x38 0x4>; + }; + } diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index 70d7207..d2d7563 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi @@ -650,6 +650,11 @@ interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, <0 20 IRQ_TYPE_LEVEL_HIGH>; }; + + snvs-poweroff@38 { + compatible = "fsl,sec-v4.0-poweroff"; + reg = <0x38 0x4>; + }; }; epit1: epit@020d0000 { /* EPIT1 */ diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi index ba67714..6e1d8f6 100644 --- a/arch/arm/boot/dts/imx6sl.dtsi +++ b/arch/arm/boot/dts/imx6sl.dtsi @@ -568,6 +568,11 @@ interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, <0 20 IRQ_TYPE_LEVEL_HIGH>; }; + + snvs-poweroff@38 { + compatible = "fsl,sec-v4.0-poweroff"; + reg = <0x38 0x4>; + }; }; epit1: epit@020d0000 { diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi index d137caca..c1f937e 100644 --- a/arch/arm/boot/dts/imx6sx.dtsi +++ b/arch/arm/boot/dts/imx6sx.dtsi @@ -671,6 +671,11 @@ reg = <0x34 0x58>; interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; }; + + snvs-poweroff@38 { + compatible = "fsl,sec-v4.0-poweroff"; + reg = <0x38 0x4>; + }; }; epit1: epit@020d0000 { -- 1.9.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
[parent not found: <1410511739-31122-2-git-send-email-b38343-KZfg59tc24xl57MIdRCFDg@public.gmane.org>]
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips [not found] ` <1410511739-31122-2-git-send-email-b38343-KZfg59tc24xl57MIdRCFDg@public.gmane.org> @ 2014-09-17 1:47 ` Shawn Guo 2014-09-17 3:32 ` Robin Gong 0 siblings, 1 reply; 15+ messages in thread From: Shawn Guo @ 2014-09-17 1:47 UTC (permalink / raw) To: Robin Gong Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg, galak-sgV2jX0FEOL9JmXXK+q4OQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, sre-DgEjT+Ai2ygdnm+yROfE0A, dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ, grant.likely-QSEj5FYQhm4dnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Fri, Sep 12, 2014 at 04:48:57PM +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-KZfg59tc24xl57MIdRCFDg@public.gmane.org> > --- > .../bindings/power_supply/imx-snvs-poweroff.txt | 21 +++++++++++++++++++++ Binding docs should be generally a separate patch or in the driver patch, which uses the bindings. Shawn > arch/arm/boot/dts/imx6qdl.dtsi | 5 +++++ > arch/arm/boot/dts/imx6sl.dtsi | 5 +++++ > arch/arm/boot/dts/imx6sx.dtsi | 5 +++++ > 4 files changed, 36 insertions(+) > create mode 100644 Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > diff --git a/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > new file mode 100644 > index 0000000..1a3ab9a > --- /dev/null > +++ b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > @@ -0,0 +1,21 @@ > +i.mx6 Poweroff Driver > + > +SNVS_LPCR in SNVS module can power off the whole system by pull > +PMIC_ON_REQ low. > + > +Required Properties: > +-compatible: "fsl,sec-v4.0-poweroff" > +-reg: Specifies the physical address of the SNVS_LPCR register > + > +Example: > + snvs@020cc000 { > + compatible = "fsl,sec-v4.0-mon", "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0 0x020cc000 0x4000>; > + ..... > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > + } > diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi > index 70d7207..d2d7563 100644 > --- a/arch/arm/boot/dts/imx6qdl.dtsi > +++ b/arch/arm/boot/dts/imx6qdl.dtsi > @@ -650,6 +650,11 @@ > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > <0 20 IRQ_TYPE_LEVEL_HIGH>; > }; > + > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > }; > > epit1: epit@020d0000 { /* EPIT1 */ > diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi > index ba67714..6e1d8f6 100644 > --- a/arch/arm/boot/dts/imx6sl.dtsi > +++ b/arch/arm/boot/dts/imx6sl.dtsi > @@ -568,6 +568,11 @@ > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > <0 20 IRQ_TYPE_LEVEL_HIGH>; > }; > + > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > }; > > epit1: epit@020d0000 { > diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi > index d137caca..c1f937e 100644 > --- a/arch/arm/boot/dts/imx6sx.dtsi > +++ b/arch/arm/boot/dts/imx6sx.dtsi > @@ -671,6 +671,11 @@ > reg = <0x34 0x58>; > interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; > }; > + > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > }; > > epit1: epit@020d0000 { > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips 2014-09-17 1:47 ` Shawn Guo @ 2014-09-17 3:32 ` Robin Gong 0 siblings, 0 replies; 15+ messages in thread From: Robin Gong @ 2014-09-17 3:32 UTC (permalink / raw) To: Shawn Guo Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg, galak-sgV2jX0FEOL9JmXXK+q4OQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, sre-DgEjT+Ai2ygdnm+yROfE0A, dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ, grant.likely-QSEj5FYQhm4dnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Wed, Sep 17, 2014 at 09:47:24AM +0800, Shawn Guo wrote: > On Fri, Sep 12, 2014 at 04:48:57PM +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-KZfg59tc24xl57MIdRCFDg@public.gmane.org> > > --- > > .../bindings/power_supply/imx-snvs-poweroff.txt | 21 +++++++++++++++++++++ > > Binding docs should be generally a separate patch or in the driver > patch, which uses the bindings. > > Shawn > Ok, I'll split it. > > arch/arm/boot/dts/imx6qdl.dtsi | 5 +++++ > > arch/arm/boot/dts/imx6sl.dtsi | 5 +++++ > > arch/arm/boot/dts/imx6sx.dtsi | 5 +++++ > > 4 files changed, 36 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > > > diff --git a/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > new file mode 100644 > > index 0000000..1a3ab9a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > @@ -0,0 +1,21 @@ > > +i.mx6 Poweroff Driver > > + > > +SNVS_LPCR in SNVS module can power off the whole system by pull > > +PMIC_ON_REQ low. > > + > > +Required Properties: > > +-compatible: "fsl,sec-v4.0-poweroff" > > +-reg: Specifies the physical address of the SNVS_LPCR register > > + > > +Example: > > + snvs@020cc000 { > > + compatible = "fsl,sec-v4.0-mon", "simple-bus"; > > + #address-cells = <1>; > > + #size-cells = <1>; > > + ranges = <0 0x020cc000 0x4000>; > > + ..... > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > + } > > diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi > > index 70d7207..d2d7563 100644 > > --- a/arch/arm/boot/dts/imx6qdl.dtsi > > +++ b/arch/arm/boot/dts/imx6qdl.dtsi > > @@ -650,6 +650,11 @@ > > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > > <0 20 IRQ_TYPE_LEVEL_HIGH>; > > }; > > + > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > }; > > > > epit1: epit@020d0000 { /* EPIT1 */ > > diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi > > index ba67714..6e1d8f6 100644 > > --- a/arch/arm/boot/dts/imx6sl.dtsi > > +++ b/arch/arm/boot/dts/imx6sl.dtsi > > @@ -568,6 +568,11 @@ > > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > > <0 20 IRQ_TYPE_LEVEL_HIGH>; > > }; > > + > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > }; > > > > epit1: epit@020d0000 { > > diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi > > index d137caca..c1f937e 100644 > > --- a/arch/arm/boot/dts/imx6sx.dtsi > > +++ b/arch/arm/boot/dts/imx6sx.dtsi > > @@ -671,6 +671,11 @@ > > reg = <0x34 0x58>; > > interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; > > }; > > + > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > }; > > > > epit1: epit@020d0000 { > > -- > > 1.9.1 > > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips 2014-09-12 8:48 ` [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips Robin Gong [not found] ` <1410511739-31122-2-git-send-email-b38343-KZfg59tc24xl57MIdRCFDg@public.gmane.org> @ 2014-09-17 2:10 ` Shawn Guo 2014-09-17 3:45 ` Robin Gong 1 sibling, 1 reply; 15+ messages in thread From: Shawn Guo @ 2014-09-17 2:10 UTC (permalink / raw) To: Robin Gong Cc: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux, devicetree, linux-kernel, linux-pm, linux-arm-kernel On Fri, Sep 12, 2014 at 04:48:57PM +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. What's the behavior for those boards on which PMIC_ON_REQ isn't connected to anywhere? BTW, the commit log of the driver patch [[PATCH v2 2/3] ] should be improved. Shawn > > Signed-off-by: Robin Gong <b38343@freescale.com> > --- > .../bindings/power_supply/imx-snvs-poweroff.txt | 21 +++++++++++++++++++++ > arch/arm/boot/dts/imx6qdl.dtsi | 5 +++++ > arch/arm/boot/dts/imx6sl.dtsi | 5 +++++ > arch/arm/boot/dts/imx6sx.dtsi | 5 +++++ > 4 files changed, 36 insertions(+) > create mode 100644 Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > diff --git a/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > new file mode 100644 > index 0000000..1a3ab9a > --- /dev/null > +++ b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > @@ -0,0 +1,21 @@ > +i.mx6 Poweroff Driver > + > +SNVS_LPCR in SNVS module can power off the whole system by pull > +PMIC_ON_REQ low. > + > +Required Properties: > +-compatible: "fsl,sec-v4.0-poweroff" > +-reg: Specifies the physical address of the SNVS_LPCR register > + > +Example: > + snvs@020cc000 { > + compatible = "fsl,sec-v4.0-mon", "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0 0x020cc000 0x4000>; > + ..... > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > + } > diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi > index 70d7207..d2d7563 100644 > --- a/arch/arm/boot/dts/imx6qdl.dtsi > +++ b/arch/arm/boot/dts/imx6qdl.dtsi > @@ -650,6 +650,11 @@ > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > <0 20 IRQ_TYPE_LEVEL_HIGH>; > }; > + > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > }; > > epit1: epit@020d0000 { /* EPIT1 */ > diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi > index ba67714..6e1d8f6 100644 > --- a/arch/arm/boot/dts/imx6sl.dtsi > +++ b/arch/arm/boot/dts/imx6sl.dtsi > @@ -568,6 +568,11 @@ > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > <0 20 IRQ_TYPE_LEVEL_HIGH>; > }; > + > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > }; > > epit1: epit@020d0000 { > diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi > index d137caca..c1f937e 100644 > --- a/arch/arm/boot/dts/imx6sx.dtsi > +++ b/arch/arm/boot/dts/imx6sx.dtsi > @@ -671,6 +671,11 @@ > reg = <0x34 0x58>; > interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; > }; > + > + snvs-poweroff@38 { > + compatible = "fsl,sec-v4.0-poweroff"; > + reg = <0x38 0x4>; > + }; > }; > > epit1: epit@020d0000 { > -- > 1.9.1 > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips 2014-09-17 2:10 ` Shawn Guo @ 2014-09-17 3:45 ` Robin Gong 2014-09-17 4:50 ` Shawn Guo 2014-09-17 6:06 ` Sascha Hauer 0 siblings, 2 replies; 15+ messages in thread From: Robin Gong @ 2014-09-17 3:45 UTC (permalink / raw) To: Shawn Guo Cc: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux, devicetree, linux-kernel, linux-pm, linux-arm-kernel On Wed, Sep 17, 2014 at 10:10:45AM +0800, Shawn Guo wrote: > On Fri, Sep 12, 2014 at 04:48:57PM +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. > > What's the behavior for those boards on which PMIC_ON_REQ isn't > connected to anywhere? > System can't be powered off if not connect PMIC_ON_REQ. Although all of our reference design for i.mx6 chips are connecting PMIC_ON_REQ with external PMIC, we need consider others may not use external PMIC. I'll add the info into commit log or Kconfig. > BTW, the commit log of the driver patch [[PATCH v2 2/3] ] should be > improved. > > Shawn > You mean the above info need added into commit log ,right? > > > > Signed-off-by: Robin Gong <b38343@freescale.com> > > --- > > .../bindings/power_supply/imx-snvs-poweroff.txt | 21 +++++++++++++++++++++ > > arch/arm/boot/dts/imx6qdl.dtsi | 5 +++++ > > arch/arm/boot/dts/imx6sl.dtsi | 5 +++++ > > arch/arm/boot/dts/imx6sx.dtsi | 5 +++++ > > 4 files changed, 36 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > > > diff --git a/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > new file mode 100644 > > index 0000000..1a3ab9a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/power_supply/imx-snvs-poweroff.txt > > @@ -0,0 +1,21 @@ > > +i.mx6 Poweroff Driver > > + > > +SNVS_LPCR in SNVS module can power off the whole system by pull > > +PMIC_ON_REQ low. > > + > > +Required Properties: > > +-compatible: "fsl,sec-v4.0-poweroff" > > +-reg: Specifies the physical address of the SNVS_LPCR register > > + > > +Example: > > + snvs@020cc000 { > > + compatible = "fsl,sec-v4.0-mon", "simple-bus"; > > + #address-cells = <1>; > > + #size-cells = <1>; > > + ranges = <0 0x020cc000 0x4000>; > > + ..... > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > + } > > diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi > > index 70d7207..d2d7563 100644 > > --- a/arch/arm/boot/dts/imx6qdl.dtsi > > +++ b/arch/arm/boot/dts/imx6qdl.dtsi > > @@ -650,6 +650,11 @@ > > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > > <0 20 IRQ_TYPE_LEVEL_HIGH>; > > }; > > + > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > }; > > > > epit1: epit@020d0000 { /* EPIT1 */ > > diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi > > index ba67714..6e1d8f6 100644 > > --- a/arch/arm/boot/dts/imx6sl.dtsi > > +++ b/arch/arm/boot/dts/imx6sl.dtsi > > @@ -568,6 +568,11 @@ > > interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, > > <0 20 IRQ_TYPE_LEVEL_HIGH>; > > }; > > + > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > }; > > > > epit1: epit@020d0000 { > > diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi > > index d137caca..c1f937e 100644 > > --- a/arch/arm/boot/dts/imx6sx.dtsi > > +++ b/arch/arm/boot/dts/imx6sx.dtsi > > @@ -671,6 +671,11 @@ > > reg = <0x34 0x58>; > > interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; > > }; > > + > > + snvs-poweroff@38 { > > + compatible = "fsl,sec-v4.0-poweroff"; > > + reg = <0x38 0x4>; > > + }; > > }; > > > > epit1: epit@020d0000 { > > -- > > 1.9.1 > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips 2014-09-17 3:45 ` Robin Gong @ 2014-09-17 4:50 ` Shawn Guo 2014-09-17 6:06 ` Sascha Hauer 1 sibling, 0 replies; 15+ messages in thread From: Shawn Guo @ 2014-09-17 4:50 UTC (permalink / raw) To: Robin Gong Cc: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux, devicetree, linux-kernel, linux-pm, linux-arm-kernel On Wed, Sep 17, 2014 at 11:45:15AM +0800, Robin Gong wrote: > > BTW, the commit log of the driver patch [[PATCH v2 2/3] ] should be > > improved. > > > > Shawn > > > You mean the above info need added into commit log ,right? Yes, that's what I mean. Shawn ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips 2014-09-17 3:45 ` Robin Gong 2014-09-17 4:50 ` Shawn Guo @ 2014-09-17 6:06 ` Sascha Hauer [not found] ` <20140917060649.GJ4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 1 sibling, 1 reply; 15+ messages in thread From: Sascha Hauer @ 2014-09-17 6:06 UTC (permalink / raw) To: Robin Gong Cc: Shawn Guo, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg, galak-sgV2jX0FEOL9JmXXK+q4OQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, sre-DgEjT+Ai2ygdnm+yROfE0A, dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ, grant.likely-QSEj5FYQhm4dnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Wed, Sep 17, 2014 at 11:45:15AM +0800, Robin Gong wrote: > On Wed, Sep 17, 2014 at 10:10:45AM +0800, Shawn Guo wrote: > > On Fri, Sep 12, 2014 at 04:48:57PM +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. > > > > What's the behavior for those boards on which PMIC_ON_REQ isn't > > connected to anywhere? > > > System can't be powered off if not connect PMIC_ON_REQ. Although all of our > reference design for i.mx6 chips are connecting PMIC_ON_REQ with external > PMIC, we need consider others may not use external PMIC. I'll add the info > into commit log or Kconfig. You should add the information to the dtsi file in form of a status = "disabled" property so that boards that actually have the feature can enable it. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <20140917060649.GJ4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips [not found] ` <20140917060649.GJ4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2014-09-17 7:17 ` Robin Gong 2014-09-17 7:24 ` Sascha Hauer 0 siblings, 1 reply; 15+ messages in thread From: Robin Gong @ 2014-09-17 7:17 UTC (permalink / raw) To: Sascha Hauer Cc: Shawn Guo, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg, galak-sgV2jX0FEOL9JmXXK+q4OQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, sre-DgEjT+Ai2ygdnm+yROfE0A, dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ, grant.likely-QSEj5FYQhm4dnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Wed, Sep 17, 2014 at 08:06:49AM +0200, Sascha Hauer wrote: > On Wed, Sep 17, 2014 at 11:45:15AM +0800, Robin Gong wrote: > > On Wed, Sep 17, 2014 at 10:10:45AM +0800, Shawn Guo wrote: > > > On Fri, Sep 12, 2014 at 04:48:57PM +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. > > > > > > What's the behavior for those boards on which PMIC_ON_REQ isn't > > > connected to anywhere? > > > > > System can't be powered off if not connect PMIC_ON_REQ. Although all of our > > reference design for i.mx6 chips are connecting PMIC_ON_REQ with external > > PMIC, we need consider others may not use external PMIC. I'll add the info > > into commit log or Kconfig. > > You should add the information to the dtsi file in form of a > status = "disabled" property so that boards that actually have the > feature can enable it. > > Sascha Hi Sacha, but that's SOC level feature and it's harmless even if others don't want to use this pin to control external PMIC. > > -- > Pengutronix e.K. | | > Industrial Linux Solutions | http://www.pengutronix.de/ | > Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips 2014-09-17 7:17 ` Robin Gong @ 2014-09-17 7:24 ` Sascha Hauer [not found] ` <20140917072437.GP4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 0 siblings, 1 reply; 15+ messages in thread From: Sascha Hauer @ 2014-09-17 7:24 UTC (permalink / raw) To: Robin Gong Cc: Shawn Guo, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg, galak-sgV2jX0FEOL9JmXXK+q4OQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, sre-DgEjT+Ai2ygdnm+yROfE0A, dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ, grant.likely-QSEj5FYQhm4dnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Wed, Sep 17, 2014 at 03:17:38PM +0800, Robin Gong wrote: > On Wed, Sep 17, 2014 at 08:06:49AM +0200, Sascha Hauer wrote: > > On Wed, Sep 17, 2014 at 11:45:15AM +0800, Robin Gong wrote: > > > On Wed, Sep 17, 2014 at 10:10:45AM +0800, Shawn Guo wrote: > > > > On Fri, Sep 12, 2014 at 04:48:57PM +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. > > > > > > > > What's the behavior for those boards on which PMIC_ON_REQ isn't > > > > connected to anywhere? > > > > > > > System can't be powered off if not connect PMIC_ON_REQ. Although all of our > > > reference design for i.mx6 chips are connecting PMIC_ON_REQ with external > > > PMIC, we need consider others may not use external PMIC. I'll add the info > > > into commit log or Kconfig. > > > > You should add the information to the dtsi file in form of a > > status = "disabled" property so that boards that actually have the > > feature can enable it. > > > > Sascha > Hi Sacha, but that's SOC level feature and it's harmless even if others don't > want to use this pin to control external PMIC. Harmless? If a pm_power_off hook is registered I expect it to work, but it doesn't work when my board does not have the connection between the PMIC and the SoC. Even worse, if my board has some custom power of method you overwrite my method in the snvs poweroff driver with a method that does not work on my board. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
[parent not found: <20140917072437.GP4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips [not found] ` <20140917072437.GP4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2014-09-17 8:16 ` Robin Gong 0 siblings, 0 replies; 15+ messages in thread From: Robin Gong @ 2014-09-17 8:16 UTC (permalink / raw) To: Sascha Hauer Cc: Shawn Guo, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg, galak-sgV2jX0FEOL9JmXXK+q4OQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, sre-DgEjT+Ai2ygdnm+yROfE0A, dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ, grant.likely-QSEj5FYQhm4dnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Wed, Sep 17, 2014 at 09:24:37AM +0200, Sascha Hauer wrote: > On Wed, Sep 17, 2014 at 03:17:38PM +0800, Robin Gong wrote: > > On Wed, Sep 17, 2014 at 08:06:49AM +0200, Sascha Hauer wrote: > > > On Wed, Sep 17, 2014 at 11:45:15AM +0800, Robin Gong wrote: > > > > On Wed, Sep 17, 2014 at 10:10:45AM +0800, Shawn Guo wrote: > > > > > On Fri, Sep 12, 2014 at 04:48:57PM +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. > > > > > > > > > > What's the behavior for those boards on which PMIC_ON_REQ isn't > > > > > connected to anywhere? > > > > > > > > > System can't be powered off if not connect PMIC_ON_REQ. Although all of our > > > > reference design for i.mx6 chips are connecting PMIC_ON_REQ with external > > > > PMIC, we need consider others may not use external PMIC. I'll add the info > > > > into commit log or Kconfig. > > > > > > You should add the information to the dtsi file in form of a > > > status = "disabled" property so that boards that actually have the > > > feature can enable it. > > > > > > Sascha > > Hi Sacha, but that's SOC level feature and it's harmless even if others don't > > want to use this pin to control external PMIC. > > Harmless? If a pm_power_off hook is registered I expect it to work, but > it doesn't work when my board does not have the connection between the > PMIC and the SoC. Even worse, if my board has some custom power of > method you overwrite my method in the snvs poweroff driver with a method > that does not work on my board. > > Sascha Sorry, I suppose PMIC_ON_REQ is the only way to control external power ON/OFF. If they don't use PMIC_ON_REQ, I assume they drop poweroff feature. Yes, I agree with you that set status as 'disable' in DTS make things clear if they want to use other pins to control external power. But I'm not sure whether we need consider this special case to 'disable' the soc level feature and re-enable on many boards level DTS? Also, I don't understand why they give up PMIC_ON_REQ and consume another pin to do the same thing....But I'm ok if both you and Shawn agree with it. > > -- > Pengutronix e.K. | | > Industrial Linux Solutions | http://www.pengutronix.de/ | > Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 2/3] power: reset: imx-snvs-poweroff: add power off driver for i.mx6 2014-09-12 8:48 [PATCH v2 0/3] add power off driver for i.mx6 Robin Gong 2014-09-12 8:48 ` [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips Robin Gong @ 2014-09-12 8:48 ` Robin Gong 2014-09-17 2:06 ` Shawn Guo 2014-09-12 8:48 ` [PATCH v2 3/3] ARM: configs: imx_v6_v7_defconfig: add power off driver Robin Gong 2 siblings, 1 reply; 15+ messages in thread From: Robin Gong @ 2014-09-12 8:48 UTC (permalink / raw) To: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, shawn.guo, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux Cc: devicetree, linux-kernel, linux-pm, linux-arm-kernel Add simple power off driver for i.mx6. Signed-off-by: Robin Gong <b38343@freescale.com> --- drivers/power/reset/Kconfig | 6 +++ drivers/power/reset/Makefile | 1 + drivers/power/reset/imx-snvs-poweroff.c | 69 +++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 drivers/power/reset/imx-snvs-poweroff.c diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig index ca41523..c48d9ba 100644 --- a/drivers/power/reset/Kconfig +++ b/drivers/power/reset/Kconfig @@ -45,6 +45,12 @@ config POWER_RESET_HISI help Reboot support for Hisilicon boards. +config POWER_RESET_IMX + bool "IMX6 power-off driver" + depends on POWER_RESET && SOC_IMX6 + help + Power off support for i.mx6 boards. + config POWER_RESET_MSM bool "Qualcomm MSM power-off driver" depends on POWER_RESET && ARCH_QCOM diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile index a42e70e..2524daf 100644 --- a/drivers/power/reset/Makefile +++ b/drivers/power/reset/Makefile @@ -3,6 +3,7 @@ obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.o +obj-$(CONFIG_POWER_RESET_IMX) += imx-snvs-poweroff.o obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o diff --git a/drivers/power/reset/imx-snvs-poweroff.c b/drivers/power/reset/imx-snvs-poweroff.c new file mode 100644 index 0000000..55603ba --- /dev/null +++ b/drivers/power/reset/imx-snvs-poweroff.c @@ -0,0 +1,69 @@ +/* Power off driver for i.mx6 + * Copyright (c) 2014, FREESCALE CORPORATION. All rights reserved. + * + * based on msm-poweroff.c + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include <linux/delay.h> +#include <linux/err.h> +#include <linux/init.h> +#include <linux/io.h> +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/of.h> +#include <linux/of_address.h> +#include <linux/platform_device.h> + +#include <asm/system_misc.h> + +static void __iomem *snvs_base; + +static void do_imx_poweroff(void) +{ + u32 value = readl(snvs_base); + + /* set TOP and DP_EN bit */ + writel(value | 0x60, snvs_base); +} + +static int imx_poweroff_probe(struct platform_device *pdev) +{ + snvs_base = of_iomap(pdev->dev.of_node, 0); + if (!snvs_base) { + dev_err(&pdev->dev, "failed to get memory\n"); + return -EIO; + } + + pm_power_off = do_imx_poweroff; + return 0; +} + +static const struct of_device_id of_imx_poweroff_match[] = { + { .compatible = "fsl,sec-v4.0-poweroff", }, + {}, +}; +MODULE_DEVICE_TABLE(of, of_imx_poweroff_match); + +static struct platform_driver imx_poweroff_driver = { + .probe = imx_poweroff_probe, + .driver = { + .name = "imx-snvs-poweroff", + .of_match_table = of_match_ptr(of_imx_poweroff_match), + }, +}; + +static int __init imx_poweroff_init(void) +{ + return platform_driver_register(&imx_poweroff_driver); +} +device_initcall(imx_poweroff_init); -- 1.9.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 2/3] power: reset: imx-snvs-poweroff: add power off driver for i.mx6 2014-09-12 8:48 ` [PATCH v2 2/3] power: reset: imx-snvs-poweroff: add power off driver for i.mx6 Robin Gong @ 2014-09-17 2:06 ` Shawn Guo 2014-09-17 3:35 ` Robin Gong 0 siblings, 1 reply; 15+ messages in thread From: Shawn Guo @ 2014-09-17 2:06 UTC (permalink / raw) To: Robin Gong Cc: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux, devicetree, linux-kernel, linux-pm, linux-arm-kernel On Fri, Sep 12, 2014 at 04:48:58PM +0800, Robin Gong wrote: > Add simple power off driver for i.mx6. > > Signed-off-by: Robin Gong <b38343@freescale.com> > --- > drivers/power/reset/Kconfig | 6 +++ > drivers/power/reset/Makefile | 1 + > drivers/power/reset/imx-snvs-poweroff.c | 69 +++++++++++++++++++++++++++++++++ > 3 files changed, 76 insertions(+) > create mode 100644 drivers/power/reset/imx-snvs-poweroff.c > > diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig > index ca41523..c48d9ba 100644 > --- a/drivers/power/reset/Kconfig > +++ b/drivers/power/reset/Kconfig > @@ -45,6 +45,12 @@ config POWER_RESET_HISI > help > Reboot support for Hisilicon boards. > > +config POWER_RESET_IMX > + bool "IMX6 power-off driver" > + depends on POWER_RESET && SOC_IMX6 > + help > + Power off support for i.mx6 boards. > + > config POWER_RESET_MSM > bool "Qualcomm MSM power-off driver" > depends on POWER_RESET && ARCH_QCOM > diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile > index a42e70e..2524daf 100644 > --- a/drivers/power/reset/Makefile > +++ b/drivers/power/reset/Makefile > @@ -3,6 +3,7 @@ obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o > obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o > obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o > obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.o > +obj-$(CONFIG_POWER_RESET_IMX) += imx-snvs-poweroff.o > obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o > obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o > obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o > diff --git a/drivers/power/reset/imx-snvs-poweroff.c b/drivers/power/reset/imx-snvs-poweroff.c > new file mode 100644 > index 0000000..55603ba > --- /dev/null > +++ b/drivers/power/reset/imx-snvs-poweroff.c > @@ -0,0 +1,69 @@ > +/* Power off driver for i.mx6 > + * Copyright (c) 2014, FREESCALE CORPORATION. All rights reserved. > + * > + * based on msm-poweroff.c > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 and > + * only version 2 as published by the Free Software Foundation. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + */ > + > +#include <linux/delay.h> Is it really needed? > +#include <linux/err.h> > +#include <linux/init.h> > +#include <linux/io.h> > +#include <linux/kernel.h> > +#include <linux/module.h> > +#include <linux/of.h> > +#include <linux/of_address.h> > +#include <linux/platform_device.h> > + > +#include <asm/system_misc.h> Ditto Shawn > + > +static void __iomem *snvs_base; > + > +static void do_imx_poweroff(void) > +{ > + u32 value = readl(snvs_base); > + > + /* set TOP and DP_EN bit */ > + writel(value | 0x60, snvs_base); > +} > + > +static int imx_poweroff_probe(struct platform_device *pdev) > +{ > + snvs_base = of_iomap(pdev->dev.of_node, 0); > + if (!snvs_base) { > + dev_err(&pdev->dev, "failed to get memory\n"); > + return -EIO; > + } > + > + pm_power_off = do_imx_poweroff; > + return 0; > +} > + > +static const struct of_device_id of_imx_poweroff_match[] = { > + { .compatible = "fsl,sec-v4.0-poweroff", }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, of_imx_poweroff_match); > + > +static struct platform_driver imx_poweroff_driver = { > + .probe = imx_poweroff_probe, > + .driver = { > + .name = "imx-snvs-poweroff", > + .of_match_table = of_match_ptr(of_imx_poweroff_match), > + }, > +}; > + > +static int __init imx_poweroff_init(void) > +{ > + return platform_driver_register(&imx_poweroff_driver); > +} > +device_initcall(imx_poweroff_init); > -- > 1.9.1 > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 2/3] power: reset: imx-snvs-poweroff: add power off driver for i.mx6 2014-09-17 2:06 ` Shawn Guo @ 2014-09-17 3:35 ` Robin Gong 0 siblings, 0 replies; 15+ messages in thread From: Robin Gong @ 2014-09-17 3:35 UTC (permalink / raw) To: Shawn Guo Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8, mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg, galak-sgV2jX0FEOL9JmXXK+q4OQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, sre-DgEjT+Ai2ygdnm+yROfE0A, dbaryshkov-Re5JQEeQqe8AvxtiuMwx3w, dwmw2-wEGCiKHe2LqWVfeAwA7xHQ, grant.likely-QSEj5FYQhm4dnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-pm-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Wed, Sep 17, 2014 at 10:06:57AM +0800, Shawn Guo wrote: > On Fri, Sep 12, 2014 at 04:48:58PM +0800, Robin Gong wrote: > > Add simple power off driver for i.mx6. > > > > Signed-off-by: Robin Gong <b38343-KZfg59tc24xl57MIdRCFDg@public.gmane.org> > > --- > > drivers/power/reset/Kconfig | 6 +++ > > drivers/power/reset/Makefile | 1 + > > drivers/power/reset/imx-snvs-poweroff.c | 69 +++++++++++++++++++++++++++++++++ > > 3 files changed, 76 insertions(+) > > create mode 100644 drivers/power/reset/imx-snvs-poweroff.c > > > > diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig > > index ca41523..c48d9ba 100644 > > --- a/drivers/power/reset/Kconfig > > +++ b/drivers/power/reset/Kconfig > > @@ -45,6 +45,12 @@ config POWER_RESET_HISI > > help > > Reboot support for Hisilicon boards. > > > > +config POWER_RESET_IMX > > + bool "IMX6 power-off driver" > > + depends on POWER_RESET && SOC_IMX6 > > + help > > + Power off support for i.mx6 boards. > > + > > config POWER_RESET_MSM > > bool "Qualcomm MSM power-off driver" > > depends on POWER_RESET && ARCH_QCOM > > diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile > > index a42e70e..2524daf 100644 > > --- a/drivers/power/reset/Makefile > > +++ b/drivers/power/reset/Makefile > > @@ -3,6 +3,7 @@ obj-$(CONFIG_POWER_RESET_AXXIA) += axxia-reset.o > > obj-$(CONFIG_POWER_RESET_BRCMSTB) += brcmstb-reboot.o > > obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o > > obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.o > > +obj-$(CONFIG_POWER_RESET_IMX) += imx-snvs-poweroff.o > > obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o > > obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o > > obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o > > diff --git a/drivers/power/reset/imx-snvs-poweroff.c b/drivers/power/reset/imx-snvs-poweroff.c > > new file mode 100644 > > index 0000000..55603ba > > --- /dev/null > > +++ b/drivers/power/reset/imx-snvs-poweroff.c > > @@ -0,0 +1,69 @@ > > +/* Power off driver for i.mx6 > > + * Copyright (c) 2014, FREESCALE CORPORATION. All rights reserved. > > + * > > + * based on msm-poweroff.c > > + * > > + * This program is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License version 2 and > > + * only version 2 as published by the Free Software Foundation. > > + * > > + * This program is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > + * GNU General Public License for more details. > > + * > > + */ > > + > > +#include <linux/delay.h> > > Is it really needed? > > > +#include <linux/err.h> > > +#include <linux/init.h> > > +#include <linux/io.h> > > +#include <linux/kernel.h> > > +#include <linux/module.h> > > +#include <linux/of.h> > > +#include <linux/of_address.h> > > +#include <linux/platform_device.h> > > + > > +#include <asm/system_misc.h> > > Ditto > > Shawn > Yes, will remove both. > > + > > +static void __iomem *snvs_base; > > + > > +static void do_imx_poweroff(void) > > +{ > > + u32 value = readl(snvs_base); > > + > > + /* set TOP and DP_EN bit */ > > + writel(value | 0x60, snvs_base); > > +} > > + > > +static int imx_poweroff_probe(struct platform_device *pdev) > > +{ > > + snvs_base = of_iomap(pdev->dev.of_node, 0); > > + if (!snvs_base) { > > + dev_err(&pdev->dev, "failed to get memory\n"); > > + return -EIO; > > + } > > + > > + pm_power_off = do_imx_poweroff; > > + return 0; > > +} > > + > > +static const struct of_device_id of_imx_poweroff_match[] = { > > + { .compatible = "fsl,sec-v4.0-poweroff", }, > > + {}, > > +}; > > +MODULE_DEVICE_TABLE(of, of_imx_poweroff_match); > > + > > +static struct platform_driver imx_poweroff_driver = { > > + .probe = imx_poweroff_probe, > > + .driver = { > > + .name = "imx-snvs-poweroff", > > + .of_match_table = of_match_ptr(of_imx_poweroff_match), > > + }, > > +}; > > + > > +static int __init imx_poweroff_init(void) > > +{ > > + return platform_driver_register(&imx_poweroff_driver); > > +} > > +device_initcall(imx_poweroff_init); > > -- > > 1.9.1 > > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 3/3] ARM: configs: imx_v6_v7_defconfig: add power off driver 2014-09-12 8:48 [PATCH v2 0/3] add power off driver for i.mx6 Robin Gong 2014-09-12 8:48 ` [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips Robin Gong 2014-09-12 8:48 ` [PATCH v2 2/3] power: reset: imx-snvs-poweroff: add power off driver for i.mx6 Robin Gong @ 2014-09-12 8:48 ` Robin Gong 2 siblings, 0 replies; 15+ messages in thread From: Robin Gong @ 2014-09-12 8:48 UTC (permalink / raw) To: robh+dt, pawel.moll, mark.rutland, ijc+devicetree, galak, shawn.guo, kernel, sre, dbaryshkov, dwmw2, grant.likely, linux Cc: devicetree, linux-kernel, linux-pm, linux-arm-kernel Add power off driver in config file. Signed-off-by: Robin Gong <b38343@freescale.com> --- arch/arm/configs/imx_v6_v7_defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig index 16cfec4..a310e61 100644 --- a/arch/arm/configs/imx_v6_v7_defconfig +++ b/arch/arm/configs/imx_v6_v7_defconfig @@ -165,6 +165,9 @@ CONFIG_SPI_IMX=y CONFIG_GPIO_SYSFS=y CONFIG_GPIO_MC9S08DZ60=y CONFIG_GPIO_STMPE=y +CONFIG_POWER_SUPPLY=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_IMX=y # CONFIG_HWMON is not set CONFIG_WATCHDOG=y CONFIG_IMX2_WDT=y -- 1.9.1 ^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2014-09-17 8:16 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-09-12 8:48 [PATCH v2 0/3] add power off driver for i.mx6 Robin Gong 2014-09-12 8:48 ` [PATCH v2 1/3] ARM: dts: imx6: add pm_power_off support for i.mx6 chips Robin Gong [not found] ` <1410511739-31122-2-git-send-email-b38343-KZfg59tc24xl57MIdRCFDg@public.gmane.org> 2014-09-17 1:47 ` Shawn Guo 2014-09-17 3:32 ` Robin Gong 2014-09-17 2:10 ` Shawn Guo 2014-09-17 3:45 ` Robin Gong 2014-09-17 4:50 ` Shawn Guo 2014-09-17 6:06 ` Sascha Hauer [not found] ` <20140917060649.GJ4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2014-09-17 7:17 ` Robin Gong 2014-09-17 7:24 ` Sascha Hauer [not found] ` <20140917072437.GP4992-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2014-09-17 8:16 ` Robin Gong 2014-09-12 8:48 ` [PATCH v2 2/3] power: reset: imx-snvs-poweroff: add power off driver for i.mx6 Robin Gong 2014-09-17 2:06 ` Shawn Guo 2014-09-17 3:35 ` Robin Gong 2014-09-12 8:48 ` [PATCH v2 3/3] ARM: configs: imx_v6_v7_defconfig: add power off driver Robin Gong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).