* [PATCH v8 0/6] provide power off support for iMX6 with external PMIC @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Oleksij Rempel, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, linux-imx, yibin.gong, A.s. Dong 2018.07.26: v8 is a rebase against kernel v4.18-rc6. No other changes are made. Added: linux-imx@nxp.com and yibin.gong@nxp.com to the CC. 2018.05.17: update patches to version v7 This patch series is providing power off support for Freescale/NXP iMX6 based boards with external power management integrated circuit (PMIC). As a first step the PMIC is configured to turn off the system if the standby pin is asserted. On second step we assert the standby pin. For this reason we need to use pm_power_off_prepare. Usage of stnadby pin for power off is described in official iMX6 documentation. 2018.03.05: As this patch set touches multiple subsystems I think it would make sense for Shawn Guo to take the all patch set. The only part which didn't receive an ACK is regulator stuff. So I would hope that Mark Brown can ACK it. Kind regards, Oleksij Rempel 2017.12.06: Adding Linus. Probably there is no maintainer for this patch set. No changes are made, tested on v4.15-rc1. 2017.10.27: Last version of this patch set was send at 20 Jun 2017, this is a rebase against kernel v4.14-rc6. Probably this set got lost. If I forgot to address some comments, please point me. changes: v7: - use EXPORT_SYMBOL_GPL(pm_power_off_prepare) instead of EXPORT_SYMBOL - call imx6q_suspend_finish() directly without cpu_suspend() v6: - rename imx6_pm_poweroff to imx6_pm_stby_poweroff - fix "MPIC_STBY_REQ" typo in the comment. v5: - remove useless includes from pm-imx6.c patch - add Acked-by to "regulator: pfuze100: add fsl,pmic-stby-poweroff property" patch v4: - update comment in "regulator: pfuze100: add fsl,pmic-stby-poweroff ..." patch - add Acked-by to "ARM: imx6q: provide documentation for new ..." patch v3: - set pm_power_off_prepare = NULL on .remove. - documentation and spelling fixes. - use %pf instead of lookup_symbol_name. Oleksij Rempel (6): ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set kernel/reboot.c: export pm_power_off_prepare regulator: pfuze100: add fsl,pmic-stby-poweroff property regulator: pfuze100-regulator: provide pm_power_off_prepare handler ARM: dts: imx6: RIoTboard provide standby on power off option .../devicetree/bindings/clock/imx6q-clock.txt | 8 ++ .../bindings/regulator/pfuze100.txt | 7 ++ arch/arm/boot/dts/imx6dl-riotboard.dts | 5 + arch/arm/mach-imx/pm-imx6.c | 25 +++++ drivers/regulator/pfuze100-regulator.c | 92 +++++++++++++++++++ kernel/reboot.c | 1 + 6 files changed, 138 insertions(+) -- 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 0/6] provide power off support for iMX6 with external PMIC @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: linux-arm-kernel 2018.07.26: v8 is a rebase against kernel v4.18-rc6. No other changes are made. Added: linux-imx at nxp.com and yibin.gong at nxp.com to the CC. 2018.05.17: update patches to version v7 This patch series is providing power off support for Freescale/NXP iMX6 based boards with external power management integrated circuit (PMIC). As a first step the PMIC is configured to turn off the system if the standby pin is asserted. On second step we assert the standby pin. For this reason we need to use pm_power_off_prepare. Usage of stnadby pin for power off is described in official iMX6 documentation. 2018.03.05: As this patch set touches multiple subsystems I think it would make sense for Shawn Guo to take the all patch set. The only part which didn't receive an ACK is regulator stuff. So I would hope that Mark Brown can ACK it. Kind regards, Oleksij Rempel 2017.12.06: Adding Linus. Probably there is no maintainer for this patch set. No changes are made, tested on v4.15-rc1. 2017.10.27: Last version of this patch set was send at 20 Jun 2017, this is a rebase against kernel v4.14-rc6. Probably this set got lost. If I forgot to address some comments, please point me. changes: v7: - use EXPORT_SYMBOL_GPL(pm_power_off_prepare) instead of EXPORT_SYMBOL - call imx6q_suspend_finish() directly without cpu_suspend() v6: - rename imx6_pm_poweroff to imx6_pm_stby_poweroff - fix "MPIC_STBY_REQ" typo in the comment. v5: - remove useless includes from pm-imx6.c patch - add Acked-by to "regulator: pfuze100: add fsl,pmic-stby-poweroff property" patch v4: - update comment in "regulator: pfuze100: add fsl,pmic-stby-poweroff ..." patch - add Acked-by to "ARM: imx6q: provide documentation for new ..." patch v3: - set pm_power_off_prepare = NULL on .remove. - documentation and spelling fixes. - use %pf instead of lookup_symbol_name. Oleksij Rempel (6): ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set kernel/reboot.c: export pm_power_off_prepare regulator: pfuze100: add fsl,pmic-stby-poweroff property regulator: pfuze100-regulator: provide pm_power_off_prepare handler ARM: dts: imx6: RIoTboard provide standby on power off option .../devicetree/bindings/clock/imx6q-clock.txt | 8 ++ .../bindings/regulator/pfuze100.txt | 7 ++ arch/arm/boot/dts/imx6dl-riotboard.dts | 5 + arch/arm/mach-imx/pm-imx6.c | 25 +++++ drivers/regulator/pfuze100-regulator.c | 92 +++++++++++++++++++ kernel/reboot.c | 1 + 6 files changed, 138 insertions(+) -- 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-26 9:22 ` Oleksij Rempel @ 2018-07-26 9:22 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Oleksij Rempel, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, linux-imx, yibin.gong, A.s. Dong Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Acked-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt index a45ca67a9d5f..e1308346e00d 100644 --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt @@ -6,6 +6,14 @@ Required properties: - interrupts: Should contain CCM interrupt - #clock-cells: Should be <1> +Optional properties: +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal + on power off. + Use this property if the SoC should be powered off by external power + management IC (PMIC) triggered via PMIC_STBY_REQ signal. + Boards that are designed to initiate poweroff on PMIC_ON_REQ signal should + be using "syscon-poweroff" driver instead. + The clock consumer should specify the desired clock by having the clock ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h for the full list of i.MX6 Quad and DualLite clock IDs. -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl, pmic-stby-poweroff property @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: linux-arm-kernel Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Acked-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt index a45ca67a9d5f..e1308346e00d 100644 --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt @@ -6,6 +6,14 @@ Required properties: - interrupts: Should contain CCM interrupt - #clock-cells: Should be <1> +Optional properties: +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal + on power off. + Use this property if the SoC should be powered off by external power + management IC (PMIC) triggered via PMIC_STBY_REQ signal. + Boards that are designed to initiate poweroff on PMIC_ON_REQ signal should + be using "syscon-poweroff" driver instead. + The clock consumer should specify the desired clock by having the clock ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h for the full list of i.MX6 Quad and DualLite clock IDs. -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-26 9:22 ` [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl, pmic-stby-poweroff property Oleksij Rempel (?) (?) @ 2018-07-26 9:51 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-26 9:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > Acked-by: Rob Herring <robh@kernel.org> > --- > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > index a45ca67a9d5f..e1308346e00d 100644 > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > @@ -6,6 +6,14 @@ Required properties: > - interrupts: Should contain CCM interrupt > - #clock-cells: Should be <1> > > +Optional properties: > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal > + on power off. > + Use this property if the SoC should be powered off by external power > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. PMIC_ON_REQ didn't connect to any pin of PMIC in your case? Don't understand why not follow normal board design guide to power off pmic by PMIC_ON_REQ. How to power on board again then? > + Boards that are designed to initiate poweroff on PMIC_ON_REQ signal > +should > + be using "syscon-poweroff" driver instead. > + > The clock consumer should specify the desired clock by having the clock ID in > its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h > for the full list of i.MX6 Quad and DualLite clock IDs. > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-26 9:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-26 9:51 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > Sent: 2018?7?26? 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > Acked-by: Rob Herring <robh@kernel.org> > --- > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > index a45ca67a9d5f..e1308346e00d 100644 > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > @@ -6,6 +6,14 @@ Required properties: > - interrupts: Should contain CCM interrupt > - #clock-cells: Should be <1> > > +Optional properties: > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal > + on power off. > + Use this property if the SoC should be powered off by external power > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. PMIC_ON_REQ didn't connect to any pin of PMIC in your case? Don't understand why not follow normal board design guide to power off pmic by PMIC_ON_REQ. How to power on board again then? > + Boards that are designed to initiate poweroff on PMIC_ON_REQ signal > +should > + be using "syscon-poweroff" driver instead. > + > The clock consumer should specify the desired clock by having the clock ID in > its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h > for the full list of i.MX6 Quad and DualLite clock IDs. > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-26 9:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-26 9:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xla3NpaiBSZW1wZWwg W21haWx0bzpvLnJlbXBlbEBwZW5ndXRyb25peC5kZV0NCj4gU2VudDogMjAxOMTqN9TCMjbI1SAx NzoyMg0KPiBUbzogU2hhd24gR3VvIDxzaGF3bmd1b0BrZXJuZWwub3JnPjsgTWFyayBCcm93biA8 YnJvb25pZUBrZXJuZWwub3JnPjsNCj4gUmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29j a2lAaW50ZWwuY29tPg0KPiBDYzogT2xla3NpaiBSZW1wZWwgPG8ucmVtcGVsQHBlbmd1dHJvbml4 LmRlPjsga2VybmVsQHBlbmd1dHJvbml4LmRlOw0KPiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9y ZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOw0KPiBsaW51eC1jbGtAdmdl ci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBBbmRyZXcgTW9ydG9u DQo+IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPjsgTGlhbSBHaXJkd29vZCA8bGdpcmR3b29k QGdtYWlsLmNvbT47DQo+IExlb25hcmQgQ3Jlc3RleiA8bGVvbmFyZC5jcmVzdGV6QG54cC5jb20+ OyBSb2IgSGVycmluZw0KPiA8cm9iaCtkdEBrZXJuZWwub3JnPjsgTWFyayBSdXRsYW5kIDxtYXJr LnJ1dGxhbmRAYXJtLmNvbT47IE1pY2hhZWwNCj4gVHVycXVldHRlIDxtdHVycXVldHRlQGJheWxp YnJlLmNvbT47IFN0ZXBoZW4gQm95ZA0KPiA8c2JveWRAY29kZWF1cm9yYS5vcmc+OyBGYWJpbyBF c3RldmFtIDxmYWJpby5lc3RldmFtQG54cC5jb20+OyBSdXNzZWxsDQo+IEtpbmcgPGxpbnV4QGFy bWxpbnV4Lm9yZy51az47IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+OyBSb2JpbiBH b25nDQo+IDx5aWJpbi5nb25nQG54cC5jb20+OyBBLnMuIERvbmcgPGFpc2hlbmcuZG9uZ0BueHAu Y29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjggMS82XSBBUk06IGlteDZxOiBwcm92aWRlIGRvY3Vt ZW50YXRpb24gZm9yIG5ldw0KPiBmc2wscG1pYy1zdGJ5LXBvd2Vyb2ZmIHByb3BlcnR5DQo+IA0K PiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lqIFJlbXBlbCA8by5yZW1wZWxAcGVuZ3V0cm9uaXguZGU+ DQo+IEFja2VkLWJ5OiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPg0KPiAtLS0NCj4gIERv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9pbXg2cS1jbG9jay50eHQgfCA4 ICsrKysrKysrDQo+ICAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL2lteDZxLWNs b2NrLnR4dA0KPiBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9pbXg2 cS1jbG9jay50eHQNCj4gaW5kZXggYTQ1Y2E2N2E5ZDVmLi5lMTMwODM0NmUwMGQgMTAwNjQ0DQo+ IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9pbXg2cS1jbG9j ay50eHQNCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL2lt eDZxLWNsb2NrLnR4dA0KPiBAQCAtNiw2ICs2LDE0IEBAIFJlcXVpcmVkIHByb3BlcnRpZXM6DQo+ ICAtIGludGVycnVwdHM6IFNob3VsZCBjb250YWluIENDTSBpbnRlcnJ1cHQNCj4gIC0gI2Nsb2Nr LWNlbGxzOiBTaG91bGQgYmUgPDE+DQo+IA0KPiArT3B0aW9uYWwgcHJvcGVydGllczoNCj4gKy0g ZnNsLHBtaWMtc3RieS1wb3dlcm9mZjogQ29uZmlndXJlIENDTSB0byBhc3NlcnQgUE1JQ19TVEJZ X1JFUSBzaWduYWwNCj4gKyAgb24gcG93ZXIgb2ZmLg0KPiArICBVc2UgdGhpcyBwcm9wZXJ0eSBp ZiB0aGUgU29DIHNob3VsZCBiZSBwb3dlcmVkIG9mZiBieSBleHRlcm5hbCBwb3dlcg0KPiArICBt YW5hZ2VtZW50IElDIChQTUlDKSB0cmlnZ2VyZWQgdmlhIFBNSUNfU1RCWV9SRVEgc2lnbmFsLg0K UE1JQ19PTl9SRVEgZGlkbid0IGNvbm5lY3QgdG8gYW55IHBpbiBvZiBQTUlDIGluIHlvdXIgY2Fz ZT8gRG9uJ3QgdW5kZXJzdGFuZA0Kd2h5IG5vdCBmb2xsb3cgbm9ybWFsIGJvYXJkIGRlc2lnbiBn dWlkZSB0byBwb3dlciBvZmYgcG1pYyBieSBQTUlDX09OX1JFUS4NCkhvdyB0byBwb3dlciBvbiBi b2FyZCBhZ2FpbiB0aGVuPw0KPiArICBCb2FyZHMgdGhhdCBhcmUgZGVzaWduZWQgdG8gaW5pdGlh dGUgcG93ZXJvZmYgb24gUE1JQ19PTl9SRVEgc2lnbmFsDQo+ICtzaG91bGQNCj4gKyAgYmUgdXNp bmcgInN5c2Nvbi1wb3dlcm9mZiIgZHJpdmVyIGluc3RlYWQuDQo+ICsNCj4gIFRoZSBjbG9jayBj b25zdW1lciBzaG91bGQgc3BlY2lmeSB0aGUgZGVzaXJlZCBjbG9jayBieSBoYXZpbmcgdGhlIGNs b2NrICBJRCBpbg0KPiBpdHMgImNsb2NrcyIgcGhhbmRsZSBjZWxsLiAgU2VlIGluY2x1ZGUvZHQt YmluZGluZ3MvY2xvY2svaW14NnFkbC1jbG9jay5oDQo+ICBmb3IgdGhlIGZ1bGwgbGlzdCBvZiBp Lk1YNiBRdWFkIGFuZCBEdWFsTGl0ZSBjbG9jayBJRHMuDQo+IC0tDQo+IDIuMTguMA0KDQo= ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-26 9:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-26 9:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > Acked-by: Rob Herring <robh@kernel.org> > --- > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > index a45ca67a9d5f..e1308346e00d 100644 > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > @@ -6,6 +6,14 @@ Required properties: > - interrupts: Should contain CCM interrupt > - #clock-cells: Should be <1> > > +Optional properties: > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal > + on power off. > + Use this property if the SoC should be powered off by external power > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. PMIC_ON_REQ didn't connect to any pin of PMIC in your case? Don't understand why not follow normal board design guide to power off pmic by PMIC_ON_REQ. How to power on board again then? > + Boards that are designed to initiate poweroff on PMIC_ON_REQ signal > +should > + be using "syscon-poweroff" driver instead. > + > The clock consumer should specify the desired clock by having the clock ID in > its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h > for the full list of i.MX6 Quad and DualLite clock IDs. > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-26 9:51 ` Robin Gong (?) @ 2018-07-26 11:37 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 11:37 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 2723 bytes --] Hi, On 26.07.2018 11:51, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new >> fsl,pmic-stby-poweroff property >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> Acked-by: Rob Herring <robh@kernel.org> >> --- >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> index a45ca67a9d5f..e1308346e00d 100644 >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> @@ -6,6 +6,14 @@ Required properties: >> - interrupts: Should contain CCM interrupt >> - #clock-cells: Should be <1> >> >> +Optional properties: >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal >> + on power off. >> + Use this property if the SoC should be powered off by external power >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? No. First, it was only one customer specific issue. After some research I found even publicly available boards (for example RioTboard) which has same/similar design. After seeing this in imx6 documentation as valid power off way, I have no doubts - there should be even more devices doin this in the wild. > Don't understand > why not follow normal board design guide to power off pmic by PMIC_ON_REQ. > How to power on board again then? Power cycle. Without this patch, power of is not real power off. So, power cycle, is expected behavior for user interaction. On usual PC, reset button will not enable PC as well. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-26 11:37 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 11:37 UTC (permalink / raw) To: linux-arm-kernel Hi, On 26.07.2018 11:51, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] >> Sent: 2018?7?26? 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new >> fsl,pmic-stby-poweroff property >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> Acked-by: Rob Herring <robh@kernel.org> >> --- >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> index a45ca67a9d5f..e1308346e00d 100644 >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> @@ -6,6 +6,14 @@ Required properties: >> - interrupts: Should contain CCM interrupt >> - #clock-cells: Should be <1> >> >> +Optional properties: >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal >> + on power off. >> + Use this property if the SoC should be powered off by external power >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? No. First, it was only one customer specific issue. After some research I found even publicly available boards (for example RioTboard) which has same/similar design. After seeing this in imx6 documentation as valid power off way, I have no doubts - there should be even more devices doin this in the wild. > Don't understand > why not follow normal board design guide to power off pmic by PMIC_ON_REQ. > How to power on board again then? Power cycle. Without this patch, power of is not real power off. So, power cycle, is expected behavior for user interaction. On usual PC, reset button will not enable PC as well. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180726/6ad7dea8/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-26 11:37 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 11:37 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 2723 bytes --] Hi, On 26.07.2018 11:51, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new >> fsl,pmic-stby-poweroff property >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> Acked-by: Rob Herring <robh@kernel.org> >> --- >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> index a45ca67a9d5f..e1308346e00d 100644 >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >> @@ -6,6 +6,14 @@ Required properties: >> - interrupts: Should contain CCM interrupt >> - #clock-cells: Should be <1> >> >> +Optional properties: >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal >> + on power off. >> + Use this property if the SoC should be powered off by external power >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? No. First, it was only one customer specific issue. After some research I found even publicly available boards (for example RioTboard) which has same/similar design. After seeing this in imx6 documentation as valid power off way, I have no doubts - there should be even more devices doin this in the wild. > Don't understand > why not follow normal board design guide to power off pmic by PMIC_ON_REQ. > How to power on board again then? Power cycle. Without this patch, power of is not real power off. So, power cycle, is expected behavior for user interaction. On usual PC, reset button will not enable PC as well. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-26 11:37 ` Oleksij Rempel (?) (?) @ 2018-07-27 1:51 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 1:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 19:38 > To: Robin Gong <yibin.gong@nxp.com>; Shawn Guo <shawnguo@kernel.org>; > Mark Brown <broonie@kernel.org>; Rafael J. Wysocki > <rafael.j.wysocki@intel.com> > Cc: kernel@pengutronix.de; devicetree@vger.kernel.org; > linux-arm-kernel@lists.infradead.org; linux-clk@vger.kernel.org; > linux-kernel@vger.kernel.org; Andrew Morton <akpm@linux-foundation.org>; > Liam Girdwood <lgirdwood@gmail.com>; Leonard Crestez > <leonard.crestez@nxp.com>; Rob Herring <robh+dt@kernel.org>; Mark > Rutland <mark.rutland@arm.com>; Michael Turquette > <mturquette@baylibre.com>; Stephen Boyd <sboyd@codeaurora.org>; Fabio > Estevam <fabio.estevam@nxp.com>; Russell King <linux@armlinux.org.uk>; > dl-linux-imx <linux-imx@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Hi, > > On 26.07.2018 11:51, Robin Gong wrote: > > > > > >> -----Original Message----- > >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > >> Sent: 2018年7月26日 17:22 > >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown > <broonie@kernel.org>; > >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew > >> Morton <akpm@linux-foundation.org>; Liam Girdwood > >> <lgirdwood@gmail.com>; Leonard Crestez <leonard.crestez@nxp.com>; > Rob > >> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; > >> Russell King <linux@armlinux.org.uk>; dl-linux-imx > >> <linux-imx@nxp.com>; Robin Gong <yibin.gong@nxp.com>; A.s. Dong > >> <aisheng.dong@nxp.com> > >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > >> fsl,pmic-stby-poweroff property > >> > >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > >> Acked-by: Rob Herring <robh@kernel.org> > >> --- > >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > >> 1 file changed, 8 insertions(+) > >> > >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> index a45ca67a9d5f..e1308346e00d 100644 > >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> @@ -6,6 +6,14 @@ Required properties: > >> - interrupts: Should contain CCM interrupt > >> - #clock-cells: Should be <1> > >> > >> +Optional properties: > >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > >> +signal > >> + on power off. > >> + Use this property if the SoC should be powered off by external > >> +power > >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > No. First, it was only one customer specific issue. After some research I found > even publicly available boards (for example RioTboard) which has same/similar > design. After seeing this in imx6 documentation as valid power off way, I have > no doubts - there should be even more devices doin this in the wild. Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, not power off....I am not sure if we need this patchset to 'workaround' the board issue. > > > Don't understand > > why not follow normal board design guide to power off pmic by > PMIC_ON_REQ. > > How to power on board again then? > > Power cycle. Without this patch, power of is not real power off. So, power cycle, > is expected behavior for user interaction. On usual PC, reset button will not > enable PC as well. Your board can't support wakeup by RTC alarm if not use PMIC_ON_REQ to power off. Again, why your board not follow the design guide? ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 1:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 1:51 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > Sent: 2018?7?26? 19:38 > To: Robin Gong <yibin.gong@nxp.com>; Shawn Guo <shawnguo@kernel.org>; > Mark Brown <broonie@kernel.org>; Rafael J. Wysocki > <rafael.j.wysocki@intel.com> > Cc: kernel at pengutronix.de; devicetree at vger.kernel.org; > linux-arm-kernel at lists.infradead.org; linux-clk at vger.kernel.org; > linux-kernel at vger.kernel.org; Andrew Morton <akpm@linux-foundation.org>; > Liam Girdwood <lgirdwood@gmail.com>; Leonard Crestez > <leonard.crestez@nxp.com>; Rob Herring <robh+dt@kernel.org>; Mark > Rutland <mark.rutland@arm.com>; Michael Turquette > <mturquette@baylibre.com>; Stephen Boyd <sboyd@codeaurora.org>; Fabio > Estevam <fabio.estevam@nxp.com>; Russell King <linux@armlinux.org.uk>; > dl-linux-imx <linux-imx@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Hi, > > On 26.07.2018 11:51, Robin Gong wrote: > > > > > >> -----Original Message----- > >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > >> Sent: 2018?7?26? 17:22 > >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown > <broonie@kernel.org>; > >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; > >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew > >> Morton <akpm@linux-foundation.org>; Liam Girdwood > >> <lgirdwood@gmail.com>; Leonard Crestez <leonard.crestez@nxp.com>; > Rob > >> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; > >> Russell King <linux@armlinux.org.uk>; dl-linux-imx > >> <linux-imx@nxp.com>; Robin Gong <yibin.gong@nxp.com>; A.s. Dong > >> <aisheng.dong@nxp.com> > >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > >> fsl,pmic-stby-poweroff property > >> > >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > >> Acked-by: Rob Herring <robh@kernel.org> > >> --- > >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > >> 1 file changed, 8 insertions(+) > >> > >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> index a45ca67a9d5f..e1308346e00d 100644 > >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> @@ -6,6 +6,14 @@ Required properties: > >> - interrupts: Should contain CCM interrupt > >> - #clock-cells: Should be <1> > >> > >> +Optional properties: > >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > >> +signal > >> + on power off. > >> + Use this property if the SoC should be powered off by external > >> +power > >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > No. First, it was only one customer specific issue. After some research I found > even publicly available boards (for example RioTboard) which has same/similar > design. After seeing this in imx6 documentation as valid power off way, I have > no doubts - there should be even more devices doin this in the wild. Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, not power off....I am not sure if we need this patchset to 'workaround' the board issue. > > > Don't understand > > why not follow normal board design guide to power off pmic by > PMIC_ON_REQ. > > How to power on board again then? > > Power cycle. Without this patch, power of is not real power off. So, power cycle, > is expected behavior for user interaction. On usual PC, reset button will not > enable PC as well. Your board can't support wakeup by RTC alarm if not use PMIC_ON_REQ to power off. Again, why your board not follow the design guide? ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 1:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 1:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xla3NpaiBSZW1wZWwg W21haWx0bzpvLnJlbXBlbEBwZW5ndXRyb25peC5kZV0NCj4gU2VudDogMjAxOMTqN9TCMjbI1SAx OTozOA0KPiBUbzogUm9iaW4gR29uZyA8eWliaW4uZ29uZ0BueHAuY29tPjsgU2hhd24gR3VvIDxz aGF3bmd1b0BrZXJuZWwub3JnPjsNCj4gTWFyayBCcm93biA8YnJvb25pZUBrZXJuZWwub3JnPjsg UmFmYWVsIEouIFd5c29ja2kNCj4gPHJhZmFlbC5qLnd5c29ja2lAaW50ZWwuY29tPg0KPiBDYzog a2VybmVsQHBlbmd1dHJvbml4LmRlOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZzsNCj4gbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51eC1jbGtAdmdlci5rZXJuZWwu b3JnOw0KPiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBBbmRyZXcgTW9ydG9uIDxha3Bt QGxpbnV4LWZvdW5kYXRpb24ub3JnPjsNCj4gTGlhbSBHaXJkd29vZCA8bGdpcmR3b29kQGdtYWls LmNvbT47IExlb25hcmQgQ3Jlc3Rleg0KPiA8bGVvbmFyZC5jcmVzdGV6QG54cC5jb20+OyBSb2Ig SGVycmluZyA8cm9iaCtkdEBrZXJuZWwub3JnPjsgTWFyaw0KPiBSdXRsYW5kIDxtYXJrLnJ1dGxh bmRAYXJtLmNvbT47IE1pY2hhZWwgVHVycXVldHRlDQo+IDxtdHVycXVldHRlQGJheWxpYnJlLmNv bT47IFN0ZXBoZW4gQm95ZCA8c2JveWRAY29kZWF1cm9yYS5vcmc+OyBGYWJpbw0KPiBFc3RldmFt IDxmYWJpby5lc3RldmFtQG54cC5jb20+OyBSdXNzZWxsIEtpbmcgPGxpbnV4QGFybWxpbnV4Lm9y Zy51az47DQo+IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+OyBBLnMuIERvbmcgPGFp c2hlbmcuZG9uZ0BueHAuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY4IDEvNl0gQVJNOiBp bXg2cTogcHJvdmlkZSBkb2N1bWVudGF0aW9uIGZvciBuZXcNCj4gZnNsLHBtaWMtc3RieS1wb3dl cm9mZiBwcm9wZXJ0eQ0KPiANCj4gSGksDQo+IA0KPiBPbiAyNi4wNy4yMDE4IDExOjUxLCBSb2Jp biBHb25nIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPj4gRnJvbTogT2xla3NpaiBSZW1wZWwgW21haWx0bzpvLnJlbXBlbEBwZW5ndXRyb25peC5k ZV0NCj4gPj4gU2VudDogMjAxOMTqN9TCMjbI1SAxNzoyMg0KPiA+PiBUbzogU2hhd24gR3VvIDxz aGF3bmd1b0BrZXJuZWwub3JnPjsgTWFyayBCcm93bg0KPiA8YnJvb25pZUBrZXJuZWwub3JnPjsN Cj4gPj4gUmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29ja2lAaW50ZWwuY29tPg0KPiA+ PiBDYzogT2xla3NpaiBSZW1wZWwgPG8ucmVtcGVsQHBlbmd1dHJvbml4LmRlPjsga2VybmVsQHBl bmd1dHJvbml4LmRlOw0KPiA+PiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZzsgbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOw0KPiA+PiBsaW51eC1jbGtAdmdlci5rZXJuZWwu b3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBBbmRyZXcNCj4gPj4gTW9ydG9uIDxh a3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPjsgTGlhbSBHaXJkd29vZA0KPiA+PiA8bGdpcmR3b29k QGdtYWlsLmNvbT47IExlb25hcmQgQ3Jlc3RleiA8bGVvbmFyZC5jcmVzdGV6QG54cC5jb20+Ow0K PiBSb2INCj4gPj4gSGVycmluZyA8cm9iaCtkdEBrZXJuZWwub3JnPjsgTWFyayBSdXRsYW5kIDxt YXJrLnJ1dGxhbmRAYXJtLmNvbT47DQo+ID4+IE1pY2hhZWwgVHVycXVldHRlIDxtdHVycXVldHRl QGJheWxpYnJlLmNvbT47IFN0ZXBoZW4gQm95ZA0KPiA+PiA8c2JveWRAY29kZWF1cm9yYS5vcmc+ OyBGYWJpbyBFc3RldmFtIDxmYWJpby5lc3RldmFtQG54cC5jb20+Ow0KPiA+PiBSdXNzZWxsIEtp bmcgPGxpbnV4QGFybWxpbnV4Lm9yZy51az47IGRsLWxpbnV4LWlteA0KPiA+PiA8bGludXgtaW14 QG54cC5jb20+OyBSb2JpbiBHb25nIDx5aWJpbi5nb25nQG54cC5jb20+OyBBLnMuIERvbmcNCj4g Pj4gPGFpc2hlbmcuZG9uZ0BueHAuY29tPg0KPiA+PiBTdWJqZWN0OiBbUEFUQ0ggdjggMS82XSBB Uk06IGlteDZxOiBwcm92aWRlIGRvY3VtZW50YXRpb24gZm9yIG5ldw0KPiA+PiBmc2wscG1pYy1z dGJ5LXBvd2Vyb2ZmIHByb3BlcnR5DQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzaWog UmVtcGVsIDxvLnJlbXBlbEBwZW5ndXRyb25peC5kZT4NCj4gPj4gQWNrZWQtYnk6IFJvYiBIZXJy aW5nIDxyb2JoQGtlcm5lbC5vcmc+DQo+ID4+IC0tLQ0KPiA+PiAgRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL2Nsb2NrL2lteDZxLWNsb2NrLnR4dCB8IDggKysrKysrKysNCj4gPj4g IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9pbXg2cS1jbG9jay50eHQN Cj4gPj4gYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svaW14NnEtY2xv Y2sudHh0DQo+ID4+IGluZGV4IGE0NWNhNjdhOWQ1Zi4uZTEzMDgzNDZlMDBkIDEwMDY0NA0KPiA+ PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svaW14NnEtY2xv Y2sudHh0DQo+ID4+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9j ay9pbXg2cS1jbG9jay50eHQNCj4gPj4gQEAgLTYsNiArNiwxNCBAQCBSZXF1aXJlZCBwcm9wZXJ0 aWVzOg0KPiA+PiAgLSBpbnRlcnJ1cHRzOiBTaG91bGQgY29udGFpbiBDQ00gaW50ZXJydXB0DQo+ ID4+ICAtICNjbG9jay1jZWxsczogU2hvdWxkIGJlIDwxPg0KPiA+Pg0KPiA+PiArT3B0aW9uYWwg cHJvcGVydGllczoNCj4gPj4gKy0gZnNsLHBtaWMtc3RieS1wb3dlcm9mZjogQ29uZmlndXJlIEND TSB0byBhc3NlcnQgUE1JQ19TVEJZX1JFUQ0KPiA+PiArc2lnbmFsDQo+ID4+ICsgIG9uIHBvd2Vy IG9mZi4NCj4gPj4gKyAgVXNlIHRoaXMgcHJvcGVydHkgaWYgdGhlIFNvQyBzaG91bGQgYmUgcG93 ZXJlZCBvZmYgYnkgZXh0ZXJuYWwNCj4gPj4gK3Bvd2VyDQo+ID4+ICsgIG1hbmFnZW1lbnQgSUMg KFBNSUMpIHRyaWdnZXJlZCB2aWEgUE1JQ19TVEJZX1JFUSBzaWduYWwuDQo+ID4gUE1JQ19PTl9S RVEgZGlkbid0IGNvbm5lY3QgdG8gYW55IHBpbiBvZiBQTUlDIGluIHlvdXIgY2FzZT8NCj4gDQo+ IE5vLiBGaXJzdCwgaXQgd2FzIG9ubHkgb25lIGN1c3RvbWVyIHNwZWNpZmljIGlzc3VlLiBBZnRl ciBzb21lIHJlc2VhcmNoIEkgZm91bmQNCj4gZXZlbiBwdWJsaWNseSBhdmFpbGFibGUgYm9hcmRz IChmb3IgZXhhbXBsZSBSaW9UYm9hcmQpIHdoaWNoIGhhcyBzYW1lL3NpbWlsYXINCj4gZGVzaWdu LiBBZnRlciBzZWVpbmcgdGhpcyBpbiBpbXg2IGRvY3VtZW50YXRpb24gYXMgdmFsaWQgcG93ZXIg b2ZmIHdheSwgSSBoYXZlDQo+IG5vIGRvdWJ0cyAtIHRoZXJlIHNob3VsZCBiZSBldmVuIG1vcmUg ZGV2aWNlcyBkb2luIHRoaXMgaW4gdGhlIHdpbGQuDQpOb3Qgc3VyZSB3aHkgdGhlIGN1c3RvbWVy IGRpZG4ndCBmb2xsb3cgcmVmZXJlbmNlIGRlc2lnbiwgc2luY2UgUE1JQ19PTl9SRVEgY2FuDQpw cm92aWRlIHBvd2VyIG9mZi9vbiBmZWF0dXJlIGJ5IHByZXNzaW5nIE9OT0ZGIGtleSB3aGljaCBj b25uZWN0ZWQgT05PRkYNCnBpbiBvZiBpLm14NihPTk9GRiB3aWxsIHRvZ2dsZSBQTUlDX09OX1JF USB0byBwb3dlciBvZmYvb24gUE1JQykuIFRoZSBvZmZpY2lhbA0KcG93ZXIgb2ZmL29uIHdheSAo UE1JQ19PTl9SRVEpIGNhbiBhbHNvIHBvd2VyIG9mZiBhbGwgcG93ZXIgcmFpbHMgb2YgUEZVWkUg ZXhjZXB0DQpzbnZzIGFzIHlvdXIgcGF0Y2ggZGlkIG9uIFBNSUNfU1RCWV9SRVEuICBQTUlDX1NU QllfUkVRIGlzIHVzZWQgdG8gbm90aWZ5IHBtaWMNCnN3aXRjaCBwb3dlciBtb2RlIChQRk0vQVBT KSBvciBkZWNyZWFzZSB2b2x0YWdlIHRvIHNhdmUgcG93ZXIgaW4ga2VybmVsIHN1c3BlbmQsDQpu b3QgcG93ZXIgb2ZmLi4uLkkgYW0gbm90IHN1cmUgaWYgd2UgbmVlZCB0aGlzIHBhdGNoc2V0IHRv ICd3b3JrYXJvdW5kJyB0aGUgYm9hcmQgaXNzdWUuDQo+IA0KPiA+IERvbid0IHVuZGVyc3RhbmQN Cj4gPiB3aHkgbm90IGZvbGxvdyBub3JtYWwgYm9hcmQgZGVzaWduIGd1aWRlIHRvIHBvd2VyIG9m ZiBwbWljIGJ5DQo+IFBNSUNfT05fUkVRLg0KPiA+IEhvdyB0byBwb3dlciBvbiBib2FyZCBhZ2Fp biB0aGVuPw0KPiANCj4gUG93ZXIgY3ljbGUuIFdpdGhvdXQgdGhpcyBwYXRjaCwgcG93ZXIgb2Yg aXMgbm90IHJlYWwgcG93ZXIgb2ZmLiBTbywgcG93ZXIgY3ljbGUsDQo+IGlzIGV4cGVjdGVkIGJl aGF2aW9yIGZvciB1c2VyIGludGVyYWN0aW9uLiBPbiB1c3VhbCBQQywgcmVzZXQgYnV0dG9uIHdp bGwgbm90DQo+IGVuYWJsZSBQQyBhcyB3ZWxsLg0KWW91ciBib2FyZCBjYW4ndCBzdXBwb3J0IHdh a2V1cCBieSBSVEMgYWxhcm0gaWYgbm90IHVzZSBQTUlDX09OX1JFUSB0byBwb3dlciBvZmYuDQpB Z2Fpbiwgd2h5IHlvdXIgYm9hcmQgbm90IGZvbGxvdyB0aGUgZGVzaWduIGd1aWRlPw0K ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 1:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 1:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 19:38 > To: Robin Gong <yibin.gong@nxp.com>; Shawn Guo <shawnguo@kernel.org>; > Mark Brown <broonie@kernel.org>; Rafael J. Wysocki > <rafael.j.wysocki@intel.com> > Cc: kernel@pengutronix.de; devicetree@vger.kernel.org; > linux-arm-kernel@lists.infradead.org; linux-clk@vger.kernel.org; > linux-kernel@vger.kernel.org; Andrew Morton <akpm@linux-foundation.org>; > Liam Girdwood <lgirdwood@gmail.com>; Leonard Crestez > <leonard.crestez@nxp.com>; Rob Herring <robh+dt@kernel.org>; Mark > Rutland <mark.rutland@arm.com>; Michael Turquette > <mturquette@baylibre.com>; Stephen Boyd <sboyd@codeaurora.org>; Fabio > Estevam <fabio.estevam@nxp.com>; Russell King <linux@armlinux.org.uk>; > dl-linux-imx <linux-imx@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Hi, > > On 26.07.2018 11:51, Robin Gong wrote: > > > > > >> -----Original Message----- > >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > >> Sent: 2018年7月26日 17:22 > >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown > <broonie@kernel.org>; > >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> > >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew > >> Morton <akpm@linux-foundation.org>; Liam Girdwood > >> <lgirdwood@gmail.com>; Leonard Crestez <leonard.crestez@nxp.com>; > Rob > >> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; > >> Russell King <linux@armlinux.org.uk>; dl-linux-imx > >> <linux-imx@nxp.com>; Robin Gong <yibin.gong@nxp.com>; A.s. Dong > >> <aisheng.dong@nxp.com> > >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > >> fsl,pmic-stby-poweroff property > >> > >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > >> Acked-by: Rob Herring <robh@kernel.org> > >> --- > >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > >> 1 file changed, 8 insertions(+) > >> > >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> index a45ca67a9d5f..e1308346e00d 100644 > >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > >> @@ -6,6 +6,14 @@ Required properties: > >> - interrupts: Should contain CCM interrupt > >> - #clock-cells: Should be <1> > >> > >> +Optional properties: > >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > >> +signal > >> + on power off. > >> + Use this property if the SoC should be powered off by external > >> +power > >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > No. First, it was only one customer specific issue. After some research I found > even publicly available boards (for example RioTboard) which has same/similar > design. After seeing this in imx6 documentation as valid power off way, I have > no doubts - there should be even more devices doin this in the wild. Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, not power off....I am not sure if we need this patchset to 'workaround' the board issue. > > > Don't understand > > why not follow normal board design guide to power off pmic by > PMIC_ON_REQ. > > How to power on board again then? > > Power cycle. Without this patch, power of is not real power off. So, power cycle, > is expected behavior for user interaction. On usual PC, reset button will not > enable PC as well. Your board can't support wakeup by RTC alarm if not use PMIC_ON_REQ to power off. Again, why your board not follow the design guide? ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-27 1:51 ` Robin Gong (?) (?) @ 2018-07-27 8:30 ` Lucas Stach -1 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-07-27 8:30 UTC (permalink / raw) To: Robin Gong, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Hi Robin, Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: [...] > > > > --- > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > > > 1 file changed, 8 insertions(+) > > > > > > > > diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > @@ -6,6 +6,14 @@ Required properties: > > > > - interrupts: Should contain CCM interrupt > > > > - #clock-cells: Should be <1> > > > > > > > > +Optional properties: > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > +signal > > > > + on power off. > > > > + Use this property if the SoC should be powered off by external > > > > +power > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > Not all boards follow the reference design, that's a fact of life. Please look at the i.MX6Q reference manual. The sequence implemented in this patchset can be found as a valid way to power off the system in "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so there is hardly any way to argue that this is a board specific quirk. This is one of the Freescale/NXP recommended sequences to turn off the system. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:30 ` Lucas Stach 0 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-07-27 8:30 UTC (permalink / raw) To: linux-arm-kernel Hi Robin, Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: [...] > > > > --- > > > > ?Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > > > ?1 file changed, 8 insertions(+) > > > > > > > > diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > @@ -6,6 +6,14 @@ Required properties: > > > > ?- interrupts: Should contain CCM interrupt > > > > ?- #clock-cells: Should be <1> > > > > > > > > +Optional properties: > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > +signal > > > > +??on power off. > > > > +??Use this property if the SoC should be powered off by external > > > > +power > > > > +??management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ.??PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > Not all boards follow the reference design, that's a fact of life. Please look at the i.MX6Q reference manual. The sequence implemented in this patchset can be found as a valid way to power off the system in "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so there is hardly any way to argue that this is a board specific quirk. This is one of the Freescale/NXP recommended sequences to turn off the system. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:30 ` Lucas Stach 0 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-07-27 8:30 UTC (permalink / raw) To: Robin Gong, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Hi Robin, Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: [...] > > > > --- > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > > > 1 file changed, 8 insertions(+) > > > > > > > > diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > @@ -6,6 +6,14 @@ Required properties: > > > > - interrupts: Should contain CCM interrupt > > > > - #clock-cells: Should be <1> > > > > > > > > +Optional properties: > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > +signal > > > > + on power off. > > > > + Use this property if the SoC should be powered off by external > > > > +power > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > Not all boards follow the reference design, that's a fact of life. Please look at the i.MX6Q reference manual. The sequence implemented in this patchset can be found as a valid way to power off the system in "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so there is hardly any way to argue that this is a board specific quirk. This is one of the Freescale/NXP recommended sequences to turn off the system. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:30 ` Lucas Stach 0 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-07-27 8:30 UTC (permalink / raw) To: Robin Gong, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Hi Robin, Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: [...] > > > > --- > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > > > 1 file changed, 8 insertions(+) > > > > > > > > diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > @@ -6,6 +6,14 @@ Required properties: > > > > - interrupts: Should contain CCM interrupt > > > > - #clock-cells: Should be <1> > > > > > > > > +Optional properties: > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > +signal > > > > + on power off. > > > > + Use this property if the SoC should be powered off by external > > > > +power > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > Not all boards follow the reference design, that's a fact of life. Please look at the i.MX6Q reference manual. The sequence implemented in this patchset can be found as a valid way to power off the system in "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so there is hardly any way to argue that this is a board specific quirk. This is one of the Freescale/NXP recommended sequences to turn off the system. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-27 8:30 ` Lucas Stach (?) (?) @ 2018-07-27 8:58 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 8:58 UTC (permalink / raw) To: Lucas Stach, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel > -----Original Message----- > From: Lucas Stach [mailto:l.stach@pengutronix.de] > Sent: 2018年7月27日 16:30 > To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel > <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark > Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Mark Rutland <mark.rutland@arm.com>; devicetree@vger.kernel.org; > Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; linux-kernel@vger.kernel.org; Liam Girdwood > <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx > <linux-imx@nxp.com>; kernel@pengutronix.de; A.s. Dong > <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; > Leonard Crestez <leonard.crestez@nxp.com>; linux-clk@vger.kernel.org; > linux-arm-kernel@lists.infradead.org > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Hi Robin, > > Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: > [...] > > > > > --- > > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 > > > > > ++++++++ > > > > > 1 file changed, 8 insertions(+) > > > > > > > > > > diff --git > > > > > a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > @@ -6,6 +6,14 @@ Required properties: > > > > > - interrupts: Should contain CCM interrupt > > > > > - #clock-cells: Should be <1> > > > > > > > > > > +Optional properties: > > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > > +signal > > > > > + on power off. > > > > > + Use this property if the SoC should be powered off by > > > > > +external power > > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > > > No. First, it was only one customer specific issue. After some > > > research I found even publicly available boards (for example > > > RioTboard) which has same/similar design. After seeing this in imx6 > > > documentation as valid power off way, I have no doubts - there should be > even more devices doin this in the wild. > > > > Not sure why the customer didn't follow reference design, since > > PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key > > which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to > > power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can > > also power off all power rails of PFUZE except snvs as your patch did > > on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power > > mode (PFM/APS) or decrease voltage to save power in kernel suspend, not > power off....I am not sure if we need this patchset to 'workaround' the board > issue. > > > Not all boards follow the reference design, that's a fact of life. > > Please look at the i.MX6Q reference manual. The sequence implemented in this > patchset can be found as a valid way to power off the system in > "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so > there is hardly any way to argue that this is a board specific quirk. This is one of > the Freescale/NXP recommended sequences to turn off the system. Okay, but could you add one more comment for this solution? RTC alarm and ONOFF Button wakeup feature can't be support in this case. > > Regards, > Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:58 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 8:58 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: Lucas Stach [mailto:l.stach at pengutronix.de] > Sent: 2018?7?27? 16:30 > To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel > <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark > Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Mark Rutland <mark.rutland@arm.com>; devicetree at vger.kernel.org; > Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; linux-kernel at vger.kernel.org; Liam Girdwood > <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx > <linux-imx@nxp.com>; kernel at pengutronix.de; A.s. Dong > <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; > Leonard Crestez <leonard.crestez@nxp.com>; linux-clk at vger.kernel.org; > linux-arm-kernel at lists.infradead.org > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Hi Robin, > > Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: > [...] > > > > > --- > > > > > ?Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 > > > > > ++++++++ > > > > > ?1 file changed, 8 insertions(+) > > > > > > > > > > diff --git > > > > > a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > @@ -6,6 +6,14 @@ Required properties: > > > > > ?- interrupts: Should contain CCM interrupt > > > > > ?- #clock-cells: Should be <1> > > > > > > > > > > +Optional properties: > > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > > +signal > > > > > +??on power off. > > > > > +??Use this property if the SoC should be powered off by > > > > > +external power > > > > > +??management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > > > No. First, it was only one customer specific issue. After some > > > research I found even publicly available boards (for example > > > RioTboard) which has same/similar design. After seeing this in imx6 > > > documentation as valid power off way, I have no doubts - there should be > even more devices doin this in the wild. > > > > Not sure why the customer didn't follow reference design, since > > PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key > > which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to > > power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can > > also power off all power rails of PFUZE except snvs as your patch did > > on PMIC_STBY_REQ.??PMIC_STBY_REQ is used to notify pmic switch power > > mode (PFM/APS) or decrease voltage to save power in kernel suspend, not > power off....I am not sure if we need this patchset to 'workaround' the board > issue. > > > Not all boards follow the reference design, that's a fact of life. > > Please look at the i.MX6Q reference manual. The sequence implemented in this > patchset can be found as a valid way to power off the system in > "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so > there is hardly any way to argue that this is a board specific quirk. This is one of > the Freescale/NXP recommended sequences to turn off the system. Okay, but could you add one more comment for this solution? RTC alarm and ONOFF Button wakeup feature can't be support in this case. > > Regards, > Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:58 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 8:58 UTC (permalink / raw) To: Lucas Stach, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTHVjYXMgU3RhY2ggW21h aWx0bzpsLnN0YWNoQHBlbmd1dHJvbml4LmRlXQ0KPiBTZW50OiAyMDE45bm0N+aciDI35pelIDE2 OjMwDQo+IFRvOiBSb2JpbiBHb25nIDx5aWJpbi5nb25nQG54cC5jb20+OyBPbGVrc2lqIFJlbXBl bA0KPiA8by5yZW1wZWxAcGVuZ3V0cm9uaXguZGU+OyBTaGF3biBHdW8gPHNoYXduZ3VvQGtlcm5l bC5vcmc+OyBNYXJrDQo+IEJyb3duIDxicm9vbmllQGtlcm5lbC5vcmc+OyBSYWZhZWwgSi4gV3lz b2NraSA8cmFmYWVsLmoud3lzb2NraUBpbnRlbC5jb20+DQo+IENjOiBNYXJrIFJ1dGxhbmQgPG1h cmsucnV0bGFuZEBhcm0uY29tPjsgZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmc7DQo+IE1pY2hh ZWwgVHVycXVldHRlIDxtdHVycXVldHRlQGJheWxpYnJlLmNvbT47IFN0ZXBoZW4gQm95ZA0KPiA8 c2JveWRAY29kZWF1cm9yYS5vcmc+OyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBMaWFt IEdpcmR3b29kDQo+IDxsZ2lyZHdvb2RAZ21haWwuY29tPjsgUm9iIEhlcnJpbmcgPHJvYmgrZHRA a2VybmVsLm9yZz47IGRsLWxpbnV4LWlteA0KPiA8bGludXgtaW14QG54cC5jb20+OyBrZXJuZWxA cGVuZ3V0cm9uaXguZGU7IEEucy4gRG9uZw0KPiA8YWlzaGVuZy5kb25nQG54cC5jb20+OyBGYWJp byBFc3RldmFtIDxmYWJpby5lc3RldmFtQG54cC5jb20+OyBSdXNzZWxsDQo+IEtpbmcgPGxpbnV4 QGFybWxpbnV4Lm9yZy51az47IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5v cmc+Ow0KPiBMZW9uYXJkIENyZXN0ZXogPGxlb25hcmQuY3Jlc3RlekBueHAuY29tPjsgbGludXgt Y2xrQHZnZXIua2VybmVsLm9yZzsNCj4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjggMS82XSBBUk06IGlteDZxOiBwcm92aWRlIGRv Y3VtZW50YXRpb24gZm9yIG5ldw0KPiBmc2wscG1pYy1zdGJ5LXBvd2Vyb2ZmIHByb3BlcnR5DQo+ IA0KPiBIaSBSb2JpbiwNCj4gDQo+IEFtIEZyZWl0YWcsIGRlbiAyNy4wNy4yMDE4LCAwMTo1MSAr MDAwMCBzY2hyaWViIFJvYmluIEdvbmc6DQo+IFsuLi5dDQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ ID4gwqBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svaW14NnEtY2xvY2su dHh0IHwgOA0KPiA+ID4gPiA+ICsrKysrKysrDQo+ID4gPiA+ID4gwqAxIGZpbGUgY2hhbmdlZCwg OCBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ ID4gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svaW14NnEtY2xvY2su dHh0DQo+ID4gPiA+ID4gYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2sv aW14NnEtY2xvY2sudHh0DQo+ID4gPiA+ID4gaW5kZXggYTQ1Y2E2N2E5ZDVmLi5lMTMwODM0NmUw MGQgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL2Nsb2NrL2lteDZxLWNsb2NrLnR4dA0KPiA+ID4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9pbXg2cS1jbG9jay50eHQNCj4gPiA+ID4gPiBAQCAt Niw2ICs2LDE0IEBAIFJlcXVpcmVkIHByb3BlcnRpZXM6DQo+ID4gPiA+ID4gwqAtIGludGVycnVw dHM6IFNob3VsZCBjb250YWluIENDTSBpbnRlcnJ1cHQNCj4gPiA+ID4gPiDCoC0gI2Nsb2NrLWNl bGxzOiBTaG91bGQgYmUgPDE+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArT3B0aW9uYWwgcHJvcGVy dGllczoNCj4gPiA+ID4gPiArLSBmc2wscG1pYy1zdGJ5LXBvd2Vyb2ZmOiBDb25maWd1cmUgQ0NN IHRvIGFzc2VydCBQTUlDX1NUQllfUkVRDQo+ID4gPiA+ID4gK3NpZ25hbA0KPiA+ID4gPiA+ICvC oMKgb24gcG93ZXIgb2ZmLg0KPiA+ID4gPiA+ICvCoMKgVXNlIHRoaXMgcHJvcGVydHkgaWYgdGhl IFNvQyBzaG91bGQgYmUgcG93ZXJlZCBvZmYgYnkNCj4gPiA+ID4gPiArZXh0ZXJuYWwgcG93ZXIN Cj4gPiA+ID4gPiArwqDCoG1hbmFnZW1lbnQgSUMgKFBNSUMpIHRyaWdnZXJlZCB2aWEgUE1JQ19T VEJZX1JFUSBzaWduYWwuDQo+ID4gPiA+DQo+ID4gPiA+IFBNSUNfT05fUkVRIGRpZG4ndCBjb25u ZWN0IHRvIGFueSBwaW4gb2YgUE1JQyBpbiB5b3VyIGNhc2U/DQo+ID4gPg0KPiA+ID4gTm8uIEZp cnN0LCBpdCB3YXMgb25seSBvbmUgY3VzdG9tZXIgc3BlY2lmaWMgaXNzdWUuIEFmdGVyIHNvbWUN Cj4gPiA+IHJlc2VhcmNoIEkgZm91bmQgZXZlbiBwdWJsaWNseSBhdmFpbGFibGUgYm9hcmRzIChm b3IgZXhhbXBsZQ0KPiA+ID4gUmlvVGJvYXJkKSB3aGljaCBoYXMgc2FtZS9zaW1pbGFyIGRlc2ln bi4gQWZ0ZXIgc2VlaW5nIHRoaXMgaW4gaW14Ng0KPiA+ID4gZG9jdW1lbnRhdGlvbiBhcyB2YWxp ZCBwb3dlciBvZmYgd2F5LCBJIGhhdmUgbm8gZG91YnRzIC0gdGhlcmUgc2hvdWxkIGJlDQo+IGV2 ZW4gbW9yZSBkZXZpY2VzIGRvaW4gdGhpcyBpbiB0aGUgd2lsZC4NCj4gPg0KPiA+IE5vdCBzdXJl IHdoeSB0aGUgY3VzdG9tZXIgZGlkbid0IGZvbGxvdyByZWZlcmVuY2UgZGVzaWduLCBzaW5jZQ0K PiA+IFBNSUNfT05fUkVRIGNhbiBwcm92aWRlIHBvd2VyIG9mZi9vbiBmZWF0dXJlIGJ5IHByZXNz aW5nIE9OT0ZGIGtleQ0KPiA+IHdoaWNoIGNvbm5lY3RlZCBPTk9GRiBwaW4gb2YgaS5teDYoT05P RkYgd2lsbCB0b2dnbGUgUE1JQ19PTl9SRVEgdG8NCj4gPiBwb3dlciBvZmYvb24gUE1JQykuIFRo ZSBvZmZpY2lhbCBwb3dlciBvZmYvb24gd2F5IChQTUlDX09OX1JFUSkgY2FuDQo+ID4gYWxzbyBw b3dlciBvZmYgYWxsIHBvd2VyIHJhaWxzIG9mIFBGVVpFIGV4Y2VwdCBzbnZzIGFzIHlvdXIgcGF0 Y2ggZGlkDQo+ID4gb24gUE1JQ19TVEJZX1JFUS7CoMKgUE1JQ19TVEJZX1JFUSBpcyB1c2VkIHRv IG5vdGlmeSBwbWljIHN3aXRjaCBwb3dlcg0KPiA+IG1vZGUgKFBGTS9BUFMpIG9yIGRlY3JlYXNl IHZvbHRhZ2UgdG8gc2F2ZSBwb3dlciBpbiBrZXJuZWwgc3VzcGVuZCwgbm90DQo+IHBvd2VyIG9m Zi4uLi5JIGFtIG5vdCBzdXJlIGlmIHdlIG5lZWQgdGhpcyBwYXRjaHNldCB0byAnd29ya2Fyb3Vu ZCcgdGhlIGJvYXJkDQo+IGlzc3VlLg0KPiA+DQo+IE5vdCBhbGwgYm9hcmRzIGZvbGxvdyB0aGUg cmVmZXJlbmNlIGRlc2lnbiwgdGhhdCdzIGEgZmFjdCBvZiBsaWZlLg0KPiANCj4gUGxlYXNlIGxv b2sgYXQgdGhlIGkuTVg2USByZWZlcmVuY2UgbWFudWFsLiBUaGUgc2VxdWVuY2UgaW1wbGVtZW50 ZWQgaW4gdGhpcw0KPiBwYXRjaHNldCBjYW4gYmUgZm91bmQgYXMgYSB2YWxpZCB3YXkgdG8gcG93 ZXIgb2ZmIHRoZSBzeXN0ZW0gaW4NCj4gIjYwLjQuMyBQb3dlciBtb2RlIHRyYW5zaXRpb25zIiAi Tm9ybWFsIE9OIHRvIE9GRiB3aXRoIGV4dGVybmFsIFBNSUMiLCBzbw0KPiB0aGVyZSBpcyBoYXJk bHkgYW55IHdheSB0byBhcmd1ZSB0aGF0IHRoaXMgaXMgYSBib2FyZCBzcGVjaWZpYyBxdWlyay4g VGhpcyBpcyBvbmUgb2YNCj4gdGhlIEZyZWVzY2FsZS9OWFAgcmVjb21tZW5kZWQgc2VxdWVuY2Vz IHRvIHR1cm4gb2ZmIHRoZSBzeXN0ZW0uDQpPa2F5LCBidXQgY291bGQgeW91IGFkZCBvbmUgbW9y ZSBjb21tZW50IGZvciB0aGlzIHNvbHV0aW9uPyBSVEMgYWxhcm0gYW5kIE9OT0ZGDQpCdXR0b24g d2FrZXVwIGZlYXR1cmUgY2FuJ3QgYmUgc3VwcG9ydCBpbiB0aGlzIGNhc2UuDQo+IA0KPiBSZWdh cmRzLA0KPiBMdWNhcw0K ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:58 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 8:58 UTC (permalink / raw) To: Lucas Stach, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel > -----Original Message----- > From: Lucas Stach [mailto:l.stach@pengutronix.de] > Sent: 2018年7月27日 16:30 > To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel > <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark > Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Mark Rutland <mark.rutland@arm.com>; devicetree@vger.kernel.org; > Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; linux-kernel@vger.kernel.org; Liam Girdwood > <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx > <linux-imx@nxp.com>; kernel@pengutronix.de; A.s. Dong > <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; > Leonard Crestez <leonard.crestez@nxp.com>; linux-clk@vger.kernel.org; > linux-arm-kernel@lists.infradead.org > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > fsl,pmic-stby-poweroff property > > Hi Robin, > > Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: > [...] > > > > > --- > > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 > > > > > ++++++++ > > > > > 1 file changed, 8 insertions(+) > > > > > > > > > > diff --git > > > > > a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > @@ -6,6 +6,14 @@ Required properties: > > > > > - interrupts: Should contain CCM interrupt > > > > > - #clock-cells: Should be <1> > > > > > > > > > > +Optional properties: > > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > > +signal > > > > > + on power off. > > > > > + Use this property if the SoC should be powered off by > > > > > +external power > > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > > > No. First, it was only one customer specific issue. After some > > > research I found even publicly available boards (for example > > > RioTboard) which has same/similar design. After seeing this in imx6 > > > documentation as valid power off way, I have no doubts - there should be > even more devices doin this in the wild. > > > > Not sure why the customer didn't follow reference design, since > > PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key > > which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to > > power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can > > also power off all power rails of PFUZE except snvs as your patch did > > on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power > > mode (PFM/APS) or decrease voltage to save power in kernel suspend, not > power off....I am not sure if we need this patchset to 'workaround' the board > issue. > > > Not all boards follow the reference design, that's a fact of life. > > Please look at the i.MX6Q reference manual. The sequence implemented in this > patchset can be found as a valid way to power off the system in > "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so > there is hardly any way to argue that this is a board specific quirk. This is one of > the Freescale/NXP recommended sequences to turn off the system. Okay, but could you add one more comment for this solution? RTC alarm and ONOFF Button wakeup feature can't be support in this case. > > Regards, > Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-27 8:58 ` Robin Gong (?) (?) @ 2018-07-27 9:06 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 9:06 UTC (permalink / raw) To: Robin Gong Cc: Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki, Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel [-- Attachment #1: Type: text/plain, Size: 4410 bytes --] On Fri, Jul 27, 2018 at 08:58:22AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Lucas Stach [mailto:l.stach@pengutronix.de] > > Sent: 2018年7月27日 16:30 > > To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel > > <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark > > Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Cc: Mark Rutland <mark.rutland@arm.com>; devicetree@vger.kernel.org; > > Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > <sboyd@codeaurora.org>; linux-kernel@vger.kernel.org; Liam Girdwood > > <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx > > <linux-imx@nxp.com>; kernel@pengutronix.de; A.s. Dong > > <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > > King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; > > Leonard Crestez <leonard.crestez@nxp.com>; linux-clk@vger.kernel.org; > > linux-arm-kernel@lists.infradead.org > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi Robin, > > > > Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: > > [...] > > > > > > --- > > > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 > > > > > > ++++++++ > > > > > > 1 file changed, 8 insertions(+) > > > > > > > > > > > > diff --git > > > > > > a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > @@ -6,6 +6,14 @@ Required properties: > > > > > > - interrupts: Should contain CCM interrupt > > > > > > - #clock-cells: Should be <1> > > > > > > > > > > > > +Optional properties: > > > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > > > +signal > > > > > > + on power off. > > > > > > + Use this property if the SoC should be powered off by > > > > > > +external power > > > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > > > > > No. First, it was only one customer specific issue. After some > > > > research I found even publicly available boards (for example > > > > RioTboard) which has same/similar design. After seeing this in imx6 > > > > documentation as valid power off way, I have no doubts - there should be > > even more devices doin this in the wild. > > > > > > Not sure why the customer didn't follow reference design, since > > > PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key > > > which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to > > > power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can > > > also power off all power rails of PFUZE except snvs as your patch did > > > on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power > > > mode (PFM/APS) or decrease voltage to save power in kernel suspend, not > > power off....I am not sure if we need this patchset to 'workaround' the board > > issue. > > > > > Not all boards follow the reference design, that's a fact of life. > > > > Please look at the i.MX6Q reference manual. The sequence implemented in this > > patchset can be found as a valid way to power off the system in > > "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so > > there is hardly any way to argue that this is a board specific quirk. This is one of > > the Freescale/NXP recommended sequences to turn off the system. > Okay, but could you add one more comment for this solution? RTC alarm and ONOFF > Button wakeup feature can't be support in this case. Sure, at least it will power off. It make no sense to have power off functionality which use same amount of power as power on system. -- 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 9:06 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 9:06 UTC (permalink / raw) To: linux-arm-kernel On Fri, Jul 27, 2018 at 08:58:22AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Lucas Stach [mailto:l.stach at pengutronix.de] > > Sent: 2018?7?27? 16:30 > > To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel > > <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark > > Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Cc: Mark Rutland <mark.rutland@arm.com>; devicetree at vger.kernel.org; > > Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > <sboyd@codeaurora.org>; linux-kernel at vger.kernel.org; Liam Girdwood > > <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx > > <linux-imx@nxp.com>; kernel at pengutronix.de; A.s. Dong > > <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > > King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; > > Leonard Crestez <leonard.crestez@nxp.com>; linux-clk at vger.kernel.org; > > linux-arm-kernel at lists.infradead.org > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi Robin, > > > > Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: > > [...] > > > > > > --- > > > > > > ?Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 > > > > > > ++++++++ > > > > > > ?1 file changed, 8 insertions(+) > > > > > > > > > > > > diff --git > > > > > > a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > @@ -6,6 +6,14 @@ Required properties: > > > > > > ?- interrupts: Should contain CCM interrupt > > > > > > ?- #clock-cells: Should be <1> > > > > > > > > > > > > +Optional properties: > > > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > > > +signal > > > > > > +??on power off. > > > > > > +??Use this property if the SoC should be powered off by > > > > > > +external power > > > > > > +??management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > > > > > No. First, it was only one customer specific issue. After some > > > > research I found even publicly available boards (for example > > > > RioTboard) which has same/similar design. After seeing this in imx6 > > > > documentation as valid power off way, I have no doubts - there should be > > even more devices doin this in the wild. > > > > > > Not sure why the customer didn't follow reference design, since > > > PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key > > > which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to > > > power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can > > > also power off all power rails of PFUZE except snvs as your patch did > > > on PMIC_STBY_REQ.??PMIC_STBY_REQ is used to notify pmic switch power > > > mode (PFM/APS) or decrease voltage to save power in kernel suspend, not > > power off....I am not sure if we need this patchset to 'workaround' the board > > issue. > > > > > Not all boards follow the reference design, that's a fact of life. > > > > Please look at the i.MX6Q reference manual. The sequence implemented in this > > patchset can be found as a valid way to power off the system in > > "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so > > there is hardly any way to argue that this is a board specific quirk. This is one of > > the Freescale/NXP recommended sequences to turn off the system. > Okay, but could you add one more comment for this solution? RTC alarm and ONOFF > Button wakeup feature can't be support in this case. Sure, at least it will power off. It make no sense to have power off functionality which use same amount of power as power on system. -- 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 | -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180727/d9058557/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 9:06 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 9:06 UTC (permalink / raw) To: Robin Gong Cc: Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki, Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel [-- Attachment #1: Type: text/plain, Size: 4410 bytes --] On Fri, Jul 27, 2018 at 08:58:22AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Lucas Stach [mailto:l.stach@pengutronix.de] > > Sent: 2018年7月27日 16:30 > > To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel > > <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark > > Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Cc: Mark Rutland <mark.rutland@arm.com>; devicetree@vger.kernel.org; > > Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > <sboyd@codeaurora.org>; linux-kernel@vger.kernel.org; Liam Girdwood > > <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx > > <linux-imx@nxp.com>; kernel@pengutronix.de; A.s. Dong > > <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > > King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; > > Leonard Crestez <leonard.crestez@nxp.com>; linux-clk@vger.kernel.org; > > linux-arm-kernel@lists.infradead.org > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi Robin, > > > > Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: > > [...] > > > > > > --- > > > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 > > > > > > ++++++++ > > > > > > 1 file changed, 8 insertions(+) > > > > > > > > > > > > diff --git > > > > > > a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > @@ -6,6 +6,14 @@ Required properties: > > > > > > - interrupts: Should contain CCM interrupt > > > > > > - #clock-cells: Should be <1> > > > > > > > > > > > > +Optional properties: > > > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > > > +signal > > > > > > + on power off. > > > > > > + Use this property if the SoC should be powered off by > > > > > > +external power > > > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > > > > > No. First, it was only one customer specific issue. After some > > > > research I found even publicly available boards (for example > > > > RioTboard) which has same/similar design. After seeing this in imx6 > > > > documentation as valid power off way, I have no doubts - there should be > > even more devices doin this in the wild. > > > > > > Not sure why the customer didn't follow reference design, since > > > PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key > > > which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to > > > power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can > > > also power off all power rails of PFUZE except snvs as your patch did > > > on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power > > > mode (PFM/APS) or decrease voltage to save power in kernel suspend, not > > power off....I am not sure if we need this patchset to 'workaround' the board > > issue. > > > > > Not all boards follow the reference design, that's a fact of life. > > > > Please look at the i.MX6Q reference manual. The sequence implemented in this > > patchset can be found as a valid way to power off the system in > > "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so > > there is hardly any way to argue that this is a board specific quirk. This is one of > > the Freescale/NXP recommended sequences to turn off the system. > Okay, but could you add one more comment for this solution? RTC alarm and ONOFF > Button wakeup feature can't be support in this case. Sure, at least it will power off. It make no sense to have power off functionality which use same amount of power as power on system. -- 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 9:06 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 9:06 UTC (permalink / raw) To: Robin Gong Cc: Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki, Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez [-- Attachment #1: Type: text/plain, Size: 4410 bytes --] On Fri, Jul 27, 2018 at 08:58:22AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Lucas Stach [mailto:l.stach@pengutronix.de] > > Sent: 2018年7月27日 16:30 > > To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel > > <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark > > Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Cc: Mark Rutland <mark.rutland@arm.com>; devicetree@vger.kernel.org; > > Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > <sboyd@codeaurora.org>; linux-kernel@vger.kernel.org; Liam Girdwood > > <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx > > <linux-imx@nxp.com>; kernel@pengutronix.de; A.s. Dong > > <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > > King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; > > Leonard Crestez <leonard.crestez@nxp.com>; linux-clk@vger.kernel.org; > > linux-arm-kernel@lists.infradead.org > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi Robin, > > > > Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: > > [...] > > > > > > --- > > > > > > Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 > > > > > > ++++++++ > > > > > > 1 file changed, 8 insertions(+) > > > > > > > > > > > > diff --git > > > > > > a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > index a45ca67a9d5f..e1308346e00d 100644 > > > > > > --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > > > > > @@ -6,6 +6,14 @@ Required properties: > > > > > > - interrupts: Should contain CCM interrupt > > > > > > - #clock-cells: Should be <1> > > > > > > > > > > > > +Optional properties: > > > > > > +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > > > > > +signal > > > > > > + on power off. > > > > > > + Use this property if the SoC should be powered off by > > > > > > +external power > > > > > > + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > > > > > > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > > > > > No. First, it was only one customer specific issue. After some > > > > research I found even publicly available boards (for example > > > > RioTboard) which has same/similar design. After seeing this in imx6 > > > > documentation as valid power off way, I have no doubts - there should be > > even more devices doin this in the wild. > > > > > > Not sure why the customer didn't follow reference design, since > > > PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key > > > which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to > > > power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can > > > also power off all power rails of PFUZE except snvs as your patch did > > > on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power > > > mode (PFM/APS) or decrease voltage to save power in kernel suspend, not > > power off....I am not sure if we need this patchset to 'workaround' the board > > issue. > > > > > Not all boards follow the reference design, that's a fact of life. > > > > Please look at the i.MX6Q reference manual. The sequence implemented in this > > patchset can be found as a valid way to power off the system in > > "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so > > there is hardly any way to argue that this is a board specific quirk. This is one of > > the Freescale/NXP recommended sequences to turn off the system. > Okay, but could you add one more comment for this solution? RTC alarm and ONOFF > Button wakeup feature can't be support in this case. Sure, at least it will power off. It make no sense to have power off functionality which use same amount of power as power on system. -- 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-27 8:58 ` Robin Gong (?) @ 2018-07-30 8:03 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 8:03 UTC (permalink / raw) To: Robin Gong, Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel [-- Attachment #1.1: Type: text/plain, Size: 3846 bytes --] On 27.07.2018 10:58, Robin Gong wrote: > > >> -----Original Message----- >> From: Lucas Stach [mailto:l.stach@pengutronix.de] >> Sent: 2018年7月27日 16:30 >> To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel >> <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark >> Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Mark Rutland <mark.rutland@arm.com>; devicetree@vger.kernel.org; >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; linux-kernel@vger.kernel.org; Liam Girdwood >> <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx >> <linux-imx@nxp.com>; kernel@pengutronix.de; A.s. Dong >> <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; >> Leonard Crestez <leonard.crestez@nxp.com>; linux-clk@vger.kernel.org; >> linux-arm-kernel@lists.infradead.org >> Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new >> fsl,pmic-stby-poweroff property >> >> Hi Robin, >> >> Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: >> [...] >>>>>> --- >>>>>> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 >>>>>> ++++++++ >>>>>> 1 file changed, 8 insertions(+) >>>>>> >>>>>> diff --git >>>>>> a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> index a45ca67a9d5f..e1308346e00d 100644 >>>>>> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> @@ -6,6 +6,14 @@ Required properties: >>>>>> - interrupts: Should contain CCM interrupt >>>>>> - #clock-cells: Should be <1> >>>>>> >>>>>> +Optional properties: >>>>>> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ >>>>>> +signal >>>>>> + on power off. >>>>>> + Use this property if the SoC should be powered off by >>>>>> +external power >>>>>> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. >>>>> >>>>> PMIC_ON_REQ didn't connect to any pin of PMIC in your case? >>>> >>>> No. First, it was only one customer specific issue. After some >>>> research I found even publicly available boards (for example >>>> RioTboard) which has same/similar design. After seeing this in imx6 >>>> documentation as valid power off way, I have no doubts - there should be >> even more devices doin this in the wild. >>> >>> Not sure why the customer didn't follow reference design, since >>> PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key >>> which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to >>> power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can >>> also power off all power rails of PFUZE except snvs as your patch did >>> on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power >>> mode (PFM/APS) or decrease voltage to save power in kernel suspend, not >> power off....I am not sure if we need this patchset to 'workaround' the board >> issue. >>> >> Not all boards follow the reference design, that's a fact of life. >> >> Please look at the i.MX6Q reference manual. The sequence implemented in this >> patchset can be found as a valid way to power off the system in >> "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so >> there is hardly any way to argue that this is a board specific quirk. This is one of >> the Freescale/NXP recommended sequences to turn off the system. > Okay, but could you add one more comment for this solution? RTC alarm and ONOFF > Button wakeup feature can't be support in this case. Enough to add it in to changelog? or should it go to the binding documentation? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-30 8:03 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 8:03 UTC (permalink / raw) To: linux-arm-kernel On 27.07.2018 10:58, Robin Gong wrote: > > >> -----Original Message----- >> From: Lucas Stach [mailto:l.stach at pengutronix.de] >> Sent: 2018?7?27? 16:30 >> To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel >> <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark >> Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Mark Rutland <mark.rutland@arm.com>; devicetree at vger.kernel.org; >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; linux-kernel at vger.kernel.org; Liam Girdwood >> <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx >> <linux-imx@nxp.com>; kernel at pengutronix.de; A.s. Dong >> <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; >> Leonard Crestez <leonard.crestez@nxp.com>; linux-clk at vger.kernel.org; >> linux-arm-kernel at lists.infradead.org >> Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new >> fsl,pmic-stby-poweroff property >> >> Hi Robin, >> >> Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: >> [...] >>>>>> --- >>>>>> ?Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 >>>>>> ++++++++ >>>>>> ?1 file changed, 8 insertions(+) >>>>>> >>>>>> diff --git >>>>>> a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> index a45ca67a9d5f..e1308346e00d 100644 >>>>>> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> @@ -6,6 +6,14 @@ Required properties: >>>>>> ?- interrupts: Should contain CCM interrupt >>>>>> ?- #clock-cells: Should be <1> >>>>>> >>>>>> +Optional properties: >>>>>> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ >>>>>> +signal >>>>>> +??on power off. >>>>>> +??Use this property if the SoC should be powered off by >>>>>> +external power >>>>>> +??management IC (PMIC) triggered via PMIC_STBY_REQ signal. >>>>> >>>>> PMIC_ON_REQ didn't connect to any pin of PMIC in your case? >>>> >>>> No. First, it was only one customer specific issue. After some >>>> research I found even publicly available boards (for example >>>> RioTboard) which has same/similar design. After seeing this in imx6 >>>> documentation as valid power off way, I have no doubts - there should be >> even more devices doin this in the wild. >>> >>> Not sure why the customer didn't follow reference design, since >>> PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key >>> which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to >>> power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can >>> also power off all power rails of PFUZE except snvs as your patch did >>> on PMIC_STBY_REQ.??PMIC_STBY_REQ is used to notify pmic switch power >>> mode (PFM/APS) or decrease voltage to save power in kernel suspend, not >> power off....I am not sure if we need this patchset to 'workaround' the board >> issue. >>> >> Not all boards follow the reference design, that's a fact of life. >> >> Please look at the i.MX6Q reference manual. The sequence implemented in this >> patchset can be found as a valid way to power off the system in >> "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so >> there is hardly any way to argue that this is a board specific quirk. This is one of >> the Freescale/NXP recommended sequences to turn off the system. > Okay, but could you add one more comment for this solution? RTC alarm and ONOFF > Button wakeup feature can't be support in this case. Enough to add it in to changelog? or should it go to the binding documentation? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180730/20996431/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-30 8:03 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 8:03 UTC (permalink / raw) To: Robin Gong, Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel [-- Attachment #1.1: Type: text/plain, Size: 3846 bytes --] On 27.07.2018 10:58, Robin Gong wrote: > > >> -----Original Message----- >> From: Lucas Stach [mailto:l.stach@pengutronix.de] >> Sent: 2018年7月27日 16:30 >> To: Robin Gong <yibin.gong@nxp.com>; Oleksij Rempel >> <o.rempel@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Mark >> Brown <broonie@kernel.org>; Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Mark Rutland <mark.rutland@arm.com>; devicetree@vger.kernel.org; >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; linux-kernel@vger.kernel.org; Liam Girdwood >> <lgirdwood@gmail.com>; Rob Herring <robh+dt@kernel.org>; dl-linux-imx >> <linux-imx@nxp.com>; kernel@pengutronix.de; A.s. Dong >> <aisheng.dong@nxp.com>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; Andrew Morton <akpm@linux-foundation.org>; >> Leonard Crestez <leonard.crestez@nxp.com>; linux-clk@vger.kernel.org; >> linux-arm-kernel@lists.infradead.org >> Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new >> fsl,pmic-stby-poweroff property >> >> Hi Robin, >> >> Am Freitag, den 27.07.2018, 01:51 +0000 schrieb Robin Gong: >> [...] >>>>>> --- >>>>>> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 >>>>>> ++++++++ >>>>>> 1 file changed, 8 insertions(+) >>>>>> >>>>>> diff --git >>>>>> a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> index a45ca67a9d5f..e1308346e00d 100644 >>>>>> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt >>>>>> @@ -6,6 +6,14 @@ Required properties: >>>>>> - interrupts: Should contain CCM interrupt >>>>>> - #clock-cells: Should be <1> >>>>>> >>>>>> +Optional properties: >>>>>> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ >>>>>> +signal >>>>>> + on power off. >>>>>> + Use this property if the SoC should be powered off by >>>>>> +external power >>>>>> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. >>>>> >>>>> PMIC_ON_REQ didn't connect to any pin of PMIC in your case? >>>> >>>> No. First, it was only one customer specific issue. After some >>>> research I found even publicly available boards (for example >>>> RioTboard) which has same/similar design. After seeing this in imx6 >>>> documentation as valid power off way, I have no doubts - there should be >> even more devices doin this in the wild. >>> >>> Not sure why the customer didn't follow reference design, since >>> PMIC_ON_REQ can provide power off/on feature by pressing ONOFF key >>> which connected ONOFF pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to >>> power off/on PMIC). The official power off/on way (PMIC_ON_REQ) can >>> also power off all power rails of PFUZE except snvs as your patch did >>> on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic switch power >>> mode (PFM/APS) or decrease voltage to save power in kernel suspend, not >> power off....I am not sure if we need this patchset to 'workaround' the board >> issue. >>> >> Not all boards follow the reference design, that's a fact of life. >> >> Please look at the i.MX6Q reference manual. The sequence implemented in this >> patchset can be found as a valid way to power off the system in >> "60.4.3 Power mode transitions" "Normal ON to OFF with external PMIC", so >> there is hardly any way to argue that this is a board specific quirk. This is one of >> the Freescale/NXP recommended sequences to turn off the system. > Okay, but could you add one more comment for this solution? RTC alarm and ONOFF > Button wakeup feature can't be support in this case. Enough to add it in to changelog? or should it go to the binding documentation? [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-30 8:03 ` Oleksij Rempel (?) (?) @ 2018-08-06 2:34 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:34 UTC (permalink / raw) To: Oleksij Rempel, Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel > >> Not all boards follow the reference design, that's a fact of life. > >> > >> Please look at the i.MX6Q reference manual. The sequence implemented > >> in this patchset can be found as a valid way to power off the system > >> in > >> "60.4.3 Power mode transitions" "Normal ON to OFF with external > >> PMIC", so there is hardly any way to argue that this is a board > >> specific quirk. This is one of the Freescale/NXP recommended sequences to > turn off the system. > > > Okay, but could you add one more comment for this solution? RTC alarm > > and ONOFF Button wakeup feature can't be support in this case. > > Enough to add it in to changelog? or should it go to the binding documentation? The binding doc is better. ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-08-06 2:34 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:34 UTC (permalink / raw) To: linux-arm-kernel > >> Not all boards follow the reference design, that's a fact of life. > >> > >> Please look at the i.MX6Q reference manual. The sequence implemented > >> in this patchset can be found as a valid way to power off the system > >> in > >> "60.4.3 Power mode transitions" "Normal ON to OFF with external > >> PMIC", so there is hardly any way to argue that this is a board > >> specific quirk. This is one of the Freescale/NXP recommended sequences to > turn off the system. > > > Okay, but could you add one more comment for this solution? RTC alarm > > and ONOFF Button wakeup feature can't be support in this case. > > Enough to add it in to changelog? or should it go to the binding documentation? The binding doc is better. ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-08-06 2:34 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:34 UTC (permalink / raw) To: Oleksij Rempel, Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel DQoNCj4gPj4gTm90IGFsbCBib2FyZHMgZm9sbG93IHRoZSByZWZlcmVuY2UgZGVzaWduLCB0aGF0 J3MgYSBmYWN0IG9mIGxpZmUuDQo+ID4+DQo+ID4+IFBsZWFzZSBsb29rIGF0IHRoZSBpLk1YNlEg cmVmZXJlbmNlIG1hbnVhbC4gVGhlIHNlcXVlbmNlIGltcGxlbWVudGVkDQo+ID4+IGluIHRoaXMg cGF0Y2hzZXQgY2FuIGJlIGZvdW5kIGFzIGEgdmFsaWQgd2F5IHRvIHBvd2VyIG9mZiB0aGUgc3lz dGVtDQo+ID4+IGluDQo+ID4+ICI2MC40LjMgUG93ZXIgbW9kZSB0cmFuc2l0aW9ucyIgIk5vcm1h bCBPTiB0byBPRkYgd2l0aCBleHRlcm5hbA0KPiA+PiBQTUlDIiwgc28gdGhlcmUgaXMgaGFyZGx5 IGFueSB3YXkgdG8gYXJndWUgdGhhdCB0aGlzIGlzIGEgYm9hcmQNCj4gPj4gc3BlY2lmaWMgcXVp cmsuIFRoaXMgaXMgb25lIG9mIHRoZSBGcmVlc2NhbGUvTlhQIHJlY29tbWVuZGVkIHNlcXVlbmNl cyB0bw0KPiB0dXJuIG9mZiB0aGUgc3lzdGVtLg0KPiANCj4gPiBPa2F5LCBidXQgY291bGQgeW91 IGFkZCBvbmUgbW9yZSBjb21tZW50IGZvciB0aGlzIHNvbHV0aW9uPyBSVEMgYWxhcm0NCj4gPiBh bmQgT05PRkYgQnV0dG9uIHdha2V1cCBmZWF0dXJlIGNhbid0IGJlIHN1cHBvcnQgaW4gdGhpcyBj YXNlLg0KPiANCj4gRW5vdWdoIHRvIGFkZCBpdCBpbiB0byBjaGFuZ2Vsb2c/IG9yIHNob3VsZCBp dCBnbyB0byB0aGUgYmluZGluZyBkb2N1bWVudGF0aW9uPw0KVGhlIGJpbmRpbmcgZG9jIGlzIGJl dHRlci4NCg0K ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-08-06 2:34 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:34 UTC (permalink / raw) To: Oleksij Rempel, Lucas Stach, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel > >> Not all boards follow the reference design, that's a fact of life. > >> > >> Please look at the i.MX6Q reference manual. The sequence implemented > >> in this patchset can be found as a valid way to power off the system > >> in > >> "60.4.3 Power mode transitions" "Normal ON to OFF with external > >> PMIC", so there is hardly any way to argue that this is a board > >> specific quirk. This is one of the Freescale/NXP recommended sequences to > turn off the system. > > > Okay, but could you add one more comment for this solution? RTC alarm > > and ONOFF Button wakeup feature can't be support in this case. > > Enough to add it in to changelog? or should it go to the binding documentation? The binding doc is better. ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-08-06 2:34 ` Robin Gong (?) (?) @ 2018-08-06 16:49 ` Lucas Stach -1 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-08-06 16:49 UTC (permalink / raw) To: Robin Gong, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Am Montag, den 06.08.2018, 02:34 +0000 schrieb Robin Gong: > > > > Not all boards follow the reference design, that's a fact of > > > > life. > > > > > > > > Please look at the i.MX6Q reference manual. The sequence > > > > implemented > > > > in this patchset can be found as a valid way to power off the > > > > system > > > > in > > > > "60.4.3 Power mode transitions" "Normal ON to OFF with external > > > > PMIC", so there is hardly any way to argue that this is a board > > > > specific quirk. This is one of the Freescale/NXP recommended > > > > sequences to > > > > turn off the system. > > > > > Okay, but could you add one more comment for this solution? RTC > > > alarm > > > and ONOFF Button wakeup feature can't be support in this case. > > > > Enough to add it in to changelog? or should it go to the binding > > documentation? > > The binding doc is better. Sorry, I disagree. A binding is a way to describe a specific hardware layout, it isn't the right place to advice a hardware designer on the implications of a specific hardware implementation. The NXP hardware design guide is a more suitable place for this information. We also don't mention in random bindings that the system won't be able to brew a fresh cup of coffee. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-08-06 16:49 ` Lucas Stach 0 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-08-06 16:49 UTC (permalink / raw) To: linux-arm-kernel Am Montag, den 06.08.2018, 02:34 +0000 schrieb Robin Gong: > > > > Not all boards follow the reference design, that's a fact of > > > > life. > > > > > > > > Please look at the i.MX6Q reference manual. The sequence > > > > implemented > > > > in this patchset can be found as a valid way to power off the > > > > system > > > > in > > > > "60.4.3 Power mode transitions" "Normal ON to OFF with external > > > > PMIC", so there is hardly any way to argue that this is a board > > > > specific quirk. This is one of the Freescale/NXP recommended > > > > sequences to > > > > turn off the system. > > > > > Okay, but could you add one more comment for this solution? RTC > > > alarm > > > and ONOFF Button wakeup feature can't be support in this case. > > > > Enough to add it in to changelog? or should it go to the binding > > documentation? > > The binding doc is better. Sorry, I disagree. A binding is a way to describe a specific hardware layout, it isn't the right place to advice a hardware designer on the implications of a specific hardware implementation. The NXP hardware design guide is a more suitable place for this information. We also don't mention in random bindings that the system won't be able to brew a fresh cup of coffee. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-08-06 16:49 ` Lucas Stach 0 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-08-06 16:49 UTC (permalink / raw) To: Robin Gong, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Am Montag, den 06.08.2018, 02:34 +0000 schrieb Robin Gong: > > > > Not all boards follow the reference design, that's a fact of > > > > life. > > > > > > > > Please look at the i.MX6Q reference manual. The sequence > > > > implemented > > > > in this patchset can be found as a valid way to power off the > > > > system > > > > in > > > > "60.4.3 Power mode transitions" "Normal ON to OFF with external > > > > PMIC", so there is hardly any way to argue that this is a board > > > > specific quirk. This is one of the Freescale/NXP recommended > > > > sequences to > > > > turn off the system. > > > > > Okay, but could you add one more comment for this solution? RTC > > > alarm > > > and ONOFF Button wakeup feature can't be support in this case. > > > > Enough to add it in to changelog? or should it go to the binding > > documentation? > > The binding doc is better. Sorry, I disagree. A binding is a way to describe a specific hardware layout, it isn't the right place to advice a hardware designer on the implications of a specific hardware implementation. The NXP hardware design guide is a more suitable place for this information. We also don't mention in random bindings that the system won't be able to brew a fresh cup of coffee. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-08-06 16:49 ` Lucas Stach 0 siblings, 0 replies; 95+ messages in thread From: Lucas Stach @ 2018-08-06 16:49 UTC (permalink / raw) To: Robin Gong, Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Am Montag, den 06.08.2018, 02:34 +0000 schrieb Robin Gong: > > > > Not all boards follow the reference design, that's a fact of > > > > life. > > > > > > > > Please look at the i.MX6Q reference manual. The sequence > > > > implemented > > > > in this patchset can be found as a valid way to power off the > > > > system > > > > in > > > > "60.4.3 Power mode transitions" "Normal ON to OFF with external > > > > PMIC", so there is hardly any way to argue that this is a board > > > > specific quirk. This is one of the Freescale/NXP recommended > > > > sequences to > > > > turn off the system. > > > > > Okay, but could you add one more comment for this solution? RTC > > > alarm > > > and ONOFF Button wakeup feature can't be support in this case. > > > > Enough to add it in to changelog? or should it go to the binding > > documentation? > > The binding doc is better. Sorry, I disagree. A binding is a way to describe a specific hardware layout, it isn't the right place to advice a hardware designer on the implications of a specific hardware implementation. The NXP hardware design guide is a more suitable place for this information. We also don't mention in random bindings that the system won't be able to brew a fresh cup of coffee. Regards, Lucas ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property 2018-07-27 1:51 ` Robin Gong (?) (?) @ 2018-07-27 8:41 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 8:41 UTC (permalink / raw) To: Robin Gong Cc: Shawn Guo, Mark Brown, Rafael J. Wysocki, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1: Type: text/plain, Size: 5675 bytes --] On Fri, Jul 27, 2018 at 01:51:35AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > > Sent: 2018年7月26日 19:38 > > To: Robin Gong <yibin.gong@nxp.com>; Shawn Guo <shawnguo@kernel.org>; > > Mark Brown <broonie@kernel.org>; Rafael J. Wysocki > > <rafael.j.wysocki@intel.com> > > Cc: kernel@pengutronix.de; devicetree@vger.kernel.org; > > linux-arm-kernel@lists.infradead.org; linux-clk@vger.kernel.org; > > linux-kernel@vger.kernel.org; Andrew Morton <akpm@linux-foundation.org>; > > Liam Girdwood <lgirdwood@gmail.com>; Leonard Crestez > > <leonard.crestez@nxp.com>; Rob Herring <robh+dt@kernel.org>; Mark > > Rutland <mark.rutland@arm.com>; Michael Turquette > > <mturquette@baylibre.com>; Stephen Boyd <sboyd@codeaurora.org>; Fabio > > Estevam <fabio.estevam@nxp.com>; Russell King <linux@armlinux.org.uk>; > > dl-linux-imx <linux-imx@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi, > > > > On 26.07.2018 11:51, Robin Gong wrote: > > > > > > > > >> -----Original Message----- > > >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > > >> Sent: 2018年7月26日 17:22 > > >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown > > <broonie@kernel.org>; > > >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > > >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > > >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew > > >> Morton <akpm@linux-foundation.org>; Liam Girdwood > > >> <lgirdwood@gmail.com>; Leonard Crestez <leonard.crestez@nxp.com>; > > Rob > > >> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > > >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; > > >> Russell King <linux@armlinux.org.uk>; dl-linux-imx > > >> <linux-imx@nxp.com>; Robin Gong <yibin.gong@nxp.com>; A.s. Dong > > >> <aisheng.dong@nxp.com> > > >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > >> fsl,pmic-stby-poweroff property > > >> > > >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > > >> Acked-by: Rob Herring <robh@kernel.org> > > >> --- > > >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > >> 1 file changed, 8 insertions(+) > > >> > > >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> index a45ca67a9d5f..e1308346e00d 100644 > > >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> @@ -6,6 +6,14 @@ Required properties: > > >> - interrupts: Should contain CCM interrupt > > >> - #clock-cells: Should be <1> > > >> > > >> +Optional properties: > > >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > >> +signal > > >> + on power off. > > >> + Use this property if the SoC should be powered off by external > > >> +power > > >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > > > > > Don't understand > > > why not follow normal board design guide to power off pmic by > > PMIC_ON_REQ. > > > How to power on board again then? > > > > Power cycle. Without this patch, power of is not real power off. So, power cycle, > > is expected behavior for user interaction. On usual PC, reset button will not > > enable PC as well. > Your board can't support wakeup by RTC alarm if not use PMIC_ON_REQ to power off. > Again, why your board not follow the design guide? Just wild assumption: you haven't read comment provided in patch: Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set One of the Freescale recommended sequences for power off with external PMIC is the following: ... 3. SoC is programming PMIC for power off when standby is asserted. 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. See: http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf page 5083 This patch implements step 4. of this sequence. -- 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:41 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 8:41 UTC (permalink / raw) To: linux-arm-kernel On Fri, Jul 27, 2018 at 01:51:35AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > > Sent: 2018?7?26? 19:38 > > To: Robin Gong <yibin.gong@nxp.com>; Shawn Guo <shawnguo@kernel.org>; > > Mark Brown <broonie@kernel.org>; Rafael J. Wysocki > > <rafael.j.wysocki@intel.com> > > Cc: kernel at pengutronix.de; devicetree at vger.kernel.org; > > linux-arm-kernel at lists.infradead.org; linux-clk at vger.kernel.org; > > linux-kernel at vger.kernel.org; Andrew Morton <akpm@linux-foundation.org>; > > Liam Girdwood <lgirdwood@gmail.com>; Leonard Crestez > > <leonard.crestez@nxp.com>; Rob Herring <robh+dt@kernel.org>; Mark > > Rutland <mark.rutland@arm.com>; Michael Turquette > > <mturquette@baylibre.com>; Stephen Boyd <sboyd@codeaurora.org>; Fabio > > Estevam <fabio.estevam@nxp.com>; Russell King <linux@armlinux.org.uk>; > > dl-linux-imx <linux-imx@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi, > > > > On 26.07.2018 11:51, Robin Gong wrote: > > > > > > > > >> -----Original Message----- > > >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > > >> Sent: 2018?7?26? 17:22 > > >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown > > <broonie@kernel.org>; > > >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; > > >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > > >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew > > >> Morton <akpm@linux-foundation.org>; Liam Girdwood > > >> <lgirdwood@gmail.com>; Leonard Crestez <leonard.crestez@nxp.com>; > > Rob > > >> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > > >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; > > >> Russell King <linux@armlinux.org.uk>; dl-linux-imx > > >> <linux-imx@nxp.com>; Robin Gong <yibin.gong@nxp.com>; A.s. Dong > > >> <aisheng.dong@nxp.com> > > >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > >> fsl,pmic-stby-poweroff property > > >> > > >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > > >> Acked-by: Rob Herring <robh@kernel.org> > > >> --- > > >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > >> 1 file changed, 8 insertions(+) > > >> > > >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> index a45ca67a9d5f..e1308346e00d 100644 > > >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> @@ -6,6 +6,14 @@ Required properties: > > >> - interrupts: Should contain CCM interrupt > > >> - #clock-cells: Should be <1> > > >> > > >> +Optional properties: > > >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > >> +signal > > >> + on power off. > > >> + Use this property if the SoC should be powered off by external > > >> +power > > >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > > > > > Don't understand > > > why not follow normal board design guide to power off pmic by > > PMIC_ON_REQ. > > > How to power on board again then? > > > > Power cycle. Without this patch, power of is not real power off. So, power cycle, > > is expected behavior for user interaction. On usual PC, reset button will not > > enable PC as well. > Your board can't support wakeup by RTC alarm if not use PMIC_ON_REQ to power off. > Again, why your board not follow the design guide? Just wild assumption: you haven't read comment provided in patch: Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set One of the Freescale recommended sequences for power off with external PMIC is the following: ... 3. SoC is programming PMIC for power off when standby is asserted. 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. See: http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf page 5083 This patch implements step 4. of this sequence. -- 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 | -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180727/a3fc763c/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:41 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 8:41 UTC (permalink / raw) To: Robin Gong Cc: Shawn Guo, Mark Brown, Rafael J. Wysocki, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1: Type: text/plain, Size: 5675 bytes --] On Fri, Jul 27, 2018 at 01:51:35AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > > Sent: 2018年7月26日 19:38 > > To: Robin Gong <yibin.gong@nxp.com>; Shawn Guo <shawnguo@kernel.org>; > > Mark Brown <broonie@kernel.org>; Rafael J. Wysocki > > <rafael.j.wysocki@intel.com> > > Cc: kernel@pengutronix.de; devicetree@vger.kernel.org; > > linux-arm-kernel@lists.infradead.org; linux-clk@vger.kernel.org; > > linux-kernel@vger.kernel.org; Andrew Morton <akpm@linux-foundation.org>; > > Liam Girdwood <lgirdwood@gmail.com>; Leonard Crestez > > <leonard.crestez@nxp.com>; Rob Herring <robh+dt@kernel.org>; Mark > > Rutland <mark.rutland@arm.com>; Michael Turquette > > <mturquette@baylibre.com>; Stephen Boyd <sboyd@codeaurora.org>; Fabio > > Estevam <fabio.estevam@nxp.com>; Russell King <linux@armlinux.org.uk>; > > dl-linux-imx <linux-imx@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi, > > > > On 26.07.2018 11:51, Robin Gong wrote: > > > > > > > > >> -----Original Message----- > > >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > > >> Sent: 2018年7月26日 17:22 > > >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown > > <broonie@kernel.org>; > > >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > > >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > > >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew > > >> Morton <akpm@linux-foundation.org>; Liam Girdwood > > >> <lgirdwood@gmail.com>; Leonard Crestez <leonard.crestez@nxp.com>; > > Rob > > >> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > > >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; > > >> Russell King <linux@armlinux.org.uk>; dl-linux-imx > > >> <linux-imx@nxp.com>; Robin Gong <yibin.gong@nxp.com>; A.s. Dong > > >> <aisheng.dong@nxp.com> > > >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > >> fsl,pmic-stby-poweroff property > > >> > > >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > > >> Acked-by: Rob Herring <robh@kernel.org> > > >> --- > > >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > >> 1 file changed, 8 insertions(+) > > >> > > >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> index a45ca67a9d5f..e1308346e00d 100644 > > >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> @@ -6,6 +6,14 @@ Required properties: > > >> - interrupts: Should contain CCM interrupt > > >> - #clock-cells: Should be <1> > > >> > > >> +Optional properties: > > >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > >> +signal > > >> + on power off. > > >> + Use this property if the SoC should be powered off by external > > >> +power > > >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > > > > > Don't understand > > > why not follow normal board design guide to power off pmic by > > PMIC_ON_REQ. > > > How to power on board again then? > > > > Power cycle. Without this patch, power of is not real power off. So, power cycle, > > is expected behavior for user interaction. On usual PC, reset button will not > > enable PC as well. > Your board can't support wakeup by RTC alarm if not use PMIC_ON_REQ to power off. > Again, why your board not follow the design guide? Just wild assumption: you haven't read comment provided in patch: Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set One of the Freescale recommended sequences for power off with external PMIC is the following: ... 3. SoC is programming PMIC for power off when standby is asserted. 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. See: http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf page 5083 This patch implements step 4. of this sequence. -- 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property @ 2018-07-27 8:41 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-27 8:41 UTC (permalink / raw) To: Robin Gong Cc: Shawn Guo, Mark Brown, Rafael J. Wysocki, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King [-- Attachment #1: Type: text/plain, Size: 5675 bytes --] On Fri, Jul 27, 2018 at 01:51:35AM +0000, Robin Gong wrote: > > > > -----Original Message----- > > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > > Sent: 2018年7月26日 19:38 > > To: Robin Gong <yibin.gong@nxp.com>; Shawn Guo <shawnguo@kernel.org>; > > Mark Brown <broonie@kernel.org>; Rafael J. Wysocki > > <rafael.j.wysocki@intel.com> > > Cc: kernel@pengutronix.de; devicetree@vger.kernel.org; > > linux-arm-kernel@lists.infradead.org; linux-clk@vger.kernel.org; > > linux-kernel@vger.kernel.org; Andrew Morton <akpm@linux-foundation.org>; > > Liam Girdwood <lgirdwood@gmail.com>; Leonard Crestez > > <leonard.crestez@nxp.com>; Rob Herring <robh+dt@kernel.org>; Mark > > Rutland <mark.rutland@arm.com>; Michael Turquette > > <mturquette@baylibre.com>; Stephen Boyd <sboyd@codeaurora.org>; Fabio > > Estevam <fabio.estevam@nxp.com>; Russell King <linux@armlinux.org.uk>; > > dl-linux-imx <linux-imx@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > > Subject: Re: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > fsl,pmic-stby-poweroff property > > > > Hi, > > > > On 26.07.2018 11:51, Robin Gong wrote: > > > > > > > > >> -----Original Message----- > > >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > > >> Sent: 2018年7月26日 17:22 > > >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown > > <broonie@kernel.org>; > > >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > > >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > > >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew > > >> Morton <akpm@linux-foundation.org>; Liam Girdwood > > >> <lgirdwood@gmail.com>; Leonard Crestez <leonard.crestez@nxp.com>; > > Rob > > >> Herring <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; > > >> Michael Turquette <mturquette@baylibre.com>; Stephen Boyd > > >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; > > >> Russell King <linux@armlinux.org.uk>; dl-linux-imx > > >> <linux-imx@nxp.com>; Robin Gong <yibin.gong@nxp.com>; A.s. Dong > > >> <aisheng.dong@nxp.com> > > >> Subject: [PATCH v8 1/6] ARM: imx6q: provide documentation for new > > >> fsl,pmic-stby-poweroff property > > >> > > >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > > >> Acked-by: Rob Herring <robh@kernel.org> > > >> --- > > >> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 8 ++++++++ > > >> 1 file changed, 8 insertions(+) > > >> > > >> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> index a45ca67a9d5f..e1308346e00d 100644 > > >> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt > > >> @@ -6,6 +6,14 @@ Required properties: > > >> - interrupts: Should contain CCM interrupt > > >> - #clock-cells: Should be <1> > > >> > > >> +Optional properties: > > >> +- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ > > >> +signal > > >> + on power off. > > >> + Use this property if the SoC should be powered off by external > > >> +power > > >> + management IC (PMIC) triggered via PMIC_STBY_REQ signal. > > > PMIC_ON_REQ didn't connect to any pin of PMIC in your case? > > > > No. First, it was only one customer specific issue. After some research I found > > even publicly available boards (for example RioTboard) which has same/similar > > design. After seeing this in imx6 documentation as valid power off way, I have > > no doubts - there should be even more devices doin this in the wild. > Not sure why the customer didn't follow reference design, since PMIC_ON_REQ can > provide power off/on feature by pressing ONOFF key which connected ONOFF > pin of i.mx6(ONOFF will toggle PMIC_ON_REQ to power off/on PMIC). The official > power off/on way (PMIC_ON_REQ) can also power off all power rails of PFUZE except > snvs as your patch did on PMIC_STBY_REQ. PMIC_STBY_REQ is used to notify pmic > switch power mode (PFM/APS) or decrease voltage to save power in kernel suspend, > not power off....I am not sure if we need this patchset to 'workaround' the board issue. > > > > > Don't understand > > > why not follow normal board design guide to power off pmic by > > PMIC_ON_REQ. > > > How to power on board again then? > > > > Power cycle. Without this patch, power of is not real power off. So, power cycle, > > is expected behavior for user interaction. On usual PC, reset button will not > > enable PC as well. > Your board can't support wakeup by RTC alarm if not use PMIC_ON_REQ to power off. > Again, why your board not follow the design guide? Just wild assumption: you haven't read comment provided in patch: Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set One of the Freescale recommended sequences for power off with external PMIC is the following: ... 3. SoC is programming PMIC for power off when standby is asserted. 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. See: http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf page 5083 This patch implements step 4. of this sequence. -- 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 | [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set 2018-07-26 9:22 ` Oleksij Rempel @ 2018-07-26 9:22 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Oleksij Rempel, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, linux-imx, yibin.gong, A.s. Dong One of the Freescale recommended sequences for power off with external PMIC is the following: ... 3. SoC is programming PMIC for power off when standby is asserted. 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. See: http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf page 5083 This patch implements step 4. of this sequence. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c index 017539dd712b..2f5c643f62fb 100644 --- a/arch/arm/mach-imx/pm-imx6.c +++ b/arch/arm/mach-imx/pm-imx6.c @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct imx6_pm_socdata IMX6Q_GPR1_GINT); } +static void imx6_pm_stby_poweroff(void) +{ + imx6_set_lpm(STOP_POWER_OFF); + imx6q_suspend_finish(0); + + mdelay(1000); + + pr_emerg("Unable to poweroff system\n"); +} + +static int imx6_pm_stby_poweroff_probe(void) +{ + if (pm_power_off) { + pr_warn("%s: pm_power_off already claimed %p %pf!\n", + __func__, pm_power_off, pm_power_off); + return -EBUSY; + } + + pm_power_off = imx6_pm_stby_poweroff; + return 0; +} + void __init imx6_pm_ccm_init(const char *ccm_compat) { struct device_node *np; @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char *ccm_compat) val = readl_relaxed(ccm_base + CLPCR); val &= ~BM_CLPCR_LPM; writel_relaxed(val, ccm_base + CLPCR); + + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) + imx6_pm_stby_poweroff_probe(); } void __init imx6q_pm_init(void) -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl, pmic-stby-poweroff" is set @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: linux-arm-kernel One of the Freescale recommended sequences for power off with external PMIC is the following: ... 3. SoC is programming PMIC for power off when standby is asserted. 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. See: http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf page 5083 This patch implements step 4. of this sequence. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c index 017539dd712b..2f5c643f62fb 100644 --- a/arch/arm/mach-imx/pm-imx6.c +++ b/arch/arm/mach-imx/pm-imx6.c @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct imx6_pm_socdata IMX6Q_GPR1_GINT); } +static void imx6_pm_stby_poweroff(void) +{ + imx6_set_lpm(STOP_POWER_OFF); + imx6q_suspend_finish(0); + + mdelay(1000); + + pr_emerg("Unable to poweroff system\n"); +} + +static int imx6_pm_stby_poweroff_probe(void) +{ + if (pm_power_off) { + pr_warn("%s: pm_power_off already claimed %p %pf!\n", + __func__, pm_power_off, pm_power_off); + return -EBUSY; + } + + pm_power_off = imx6_pm_stby_poweroff; + return 0; +} + void __init imx6_pm_ccm_init(const char *ccm_compat) { struct device_node *np; @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char *ccm_compat) val = readl_relaxed(ccm_base + CLPCR); val &= ~BM_CLPCR_LPM; writel_relaxed(val, ccm_base + CLPCR); + + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) + imx6_pm_stby_poweroff_probe(); } void __init imx6q_pm_init(void) -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* RE: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set 2018-07-26 9:22 ` [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl, pmic-stby-poweroff" " Oleksij Rempel (?) (?) @ 2018-07-27 9:15 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:15 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if > "fsl,pmic-stby-poweroff" is set > > One of the Freescale recommended sequences for power off with external > PMIC is the following: > ... > 3. SoC is programming PMIC for power off when standby is asserted. > 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. > > See: > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww. > nxp.com%2Fassets%2Fdocuments%2Fdata%2Fen%2Freference-manuals%2FIM > X6DQRM.pdf&data=02%7C01%7Cyibin.gong%40nxp.com%7C193fd19e3a > 40416ffa4a08d5f2d9583c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1 > %7C636681937661914076&sdata=lICAelYpUh4%2Ft%2Fs7N9mdk2cLQMi > cHcOqQ07vTOUoyNY%3D&reserved=0 > page 5083 > > This patch implements step 4. of this sequence. > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c > index 017539dd712b..2f5c643f62fb 100644 > --- a/arch/arm/mach-imx/pm-imx6.c > +++ b/arch/arm/mach-imx/pm-imx6.c > @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct > imx6_pm_socdata > IMX6Q_GPR1_GINT); > } > > +static void imx6_pm_stby_poweroff(void) { > + imx6_set_lpm(STOP_POWER_OFF); > + imx6q_suspend_finish(0); > + > + mdelay(1000); > + > + pr_emerg("Unable to poweroff system\n"); } > + > +static int imx6_pm_stby_poweroff_probe(void) { > + if (pm_power_off) { > + pr_warn("%s: pm_power_off already claimed %p %pf!\n", > + __func__, pm_power_off, pm_power_off); 'syscon-poweroff' and 'pmic-stby-poweroff ' should be chosen as a single Poweroff way for any i.mx6 board. Why not delete directly 'syscon-poweroff' in dts to avoid such two power off ways coexist? > + return -EBUSY; > + } > + > + pm_power_off = imx6_pm_stby_poweroff; > + return 0; > +} > + > void __init imx6_pm_ccm_init(const char *ccm_compat) { > struct device_node *np; > @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char > *ccm_compat) > val = readl_relaxed(ccm_base + CLPCR); > val &= ~BM_CLPCR_LPM; > writel_relaxed(val, ccm_base + CLPCR); > + > + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) > + imx6_pm_stby_poweroff_probe(); > } > > void __init imx6q_pm_init(void) > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set @ 2018-07-27 9:15 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:15 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > Sent: 2018?7?26? 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if > "fsl,pmic-stby-poweroff" is set > > One of the Freescale recommended sequences for power off with external > PMIC is the following: > ... > 3. SoC is programming PMIC for power off when standby is asserted. > 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. > > See: > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww. > nxp.com%2Fassets%2Fdocuments%2Fdata%2Fen%2Freference-manuals%2FIM > X6DQRM.pdf&data=02%7C01%7Cyibin.gong%40nxp.com%7C193fd19e3a > 40416ffa4a08d5f2d9583c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1 > %7C636681937661914076&sdata=lICAelYpUh4%2Ft%2Fs7N9mdk2cLQMi > cHcOqQ07vTOUoyNY%3D&reserved=0 > page 5083 > > This patch implements step 4. of this sequence. > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c > index 017539dd712b..2f5c643f62fb 100644 > --- a/arch/arm/mach-imx/pm-imx6.c > +++ b/arch/arm/mach-imx/pm-imx6.c > @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct > imx6_pm_socdata > IMX6Q_GPR1_GINT); > } > > +static void imx6_pm_stby_poweroff(void) { > + imx6_set_lpm(STOP_POWER_OFF); > + imx6q_suspend_finish(0); > + > + mdelay(1000); > + > + pr_emerg("Unable to poweroff system\n"); } > + > +static int imx6_pm_stby_poweroff_probe(void) { > + if (pm_power_off) { > + pr_warn("%s: pm_power_off already claimed %p %pf!\n", > + __func__, pm_power_off, pm_power_off); 'syscon-poweroff' and 'pmic-stby-poweroff ' should be chosen as a single Poweroff way for any i.mx6 board. Why not delete directly 'syscon-poweroff' in dts to avoid such two power off ways coexist? > + return -EBUSY; > + } > + > + pm_power_off = imx6_pm_stby_poweroff; > + return 0; > +} > + > void __init imx6_pm_ccm_init(const char *ccm_compat) { > struct device_node *np; > @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char > *ccm_compat) > val = readl_relaxed(ccm_base + CLPCR); > val &= ~BM_CLPCR_LPM; > writel_relaxed(val, ccm_base + CLPCR); > + > + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) > + imx6_pm_stby_poweroff_probe(); > } > > void __init imx6q_pm_init(void) > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set @ 2018-07-27 9:15 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:15 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xla3NpaiBSZW1wZWwg W21haWx0bzpvLnJlbXBlbEBwZW5ndXRyb25peC5kZV0NCj4gU2VudDogMjAxOMTqN9TCMjbI1SAx NzoyMg0KPiBUbzogU2hhd24gR3VvIDxzaGF3bmd1b0BrZXJuZWwub3JnPjsgTWFyayBCcm93biA8 YnJvb25pZUBrZXJuZWwub3JnPjsNCj4gUmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29j a2lAaW50ZWwuY29tPg0KPiBDYzogT2xla3NpaiBSZW1wZWwgPG8ucmVtcGVsQHBlbmd1dHJvbml4 LmRlPjsga2VybmVsQHBlbmd1dHJvbml4LmRlOw0KPiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9y ZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOw0KPiBsaW51eC1jbGtAdmdl ci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBBbmRyZXcgTW9ydG9u DQo+IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPjsgTGlhbSBHaXJkd29vZCA8bGdpcmR3b29k QGdtYWlsLmNvbT47DQo+IExlb25hcmQgQ3Jlc3RleiA8bGVvbmFyZC5jcmVzdGV6QG54cC5jb20+ OyBSb2IgSGVycmluZw0KPiA8cm9iaCtkdEBrZXJuZWwub3JnPjsgTWFyayBSdXRsYW5kIDxtYXJr LnJ1dGxhbmRAYXJtLmNvbT47IE1pY2hhZWwNCj4gVHVycXVldHRlIDxtdHVycXVldHRlQGJheWxp YnJlLmNvbT47IFN0ZXBoZW4gQm95ZA0KPiA8c2JveWRAY29kZWF1cm9yYS5vcmc+OyBGYWJpbyBF c3RldmFtIDxmYWJpby5lc3RldmFtQG54cC5jb20+OyBSdXNzZWxsDQo+IEtpbmcgPGxpbnV4QGFy bWxpbnV4Lm9yZy51az47IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+OyBSb2JpbiBH b25nDQo+IDx5aWJpbi5nb25nQG54cC5jb20+OyBBLnMuIERvbmcgPGFpc2hlbmcuZG9uZ0BueHAu Y29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjggMi82XSBBUk06IGlteDY6IHJlZ2lzdGVyIHBtX3Bv d2VyX29mZiBoYW5kbGVyIGlmDQo+ICJmc2wscG1pYy1zdGJ5LXBvd2Vyb2ZmIiBpcyBzZXQNCj4g DQo+IE9uZSBvZiB0aGUgRnJlZXNjYWxlIHJlY29tbWVuZGVkIHNlcXVlbmNlcyBmb3IgcG93ZXIg b2ZmIHdpdGggZXh0ZXJuYWwNCj4gUE1JQyBpcyB0aGUgZm9sbG93aW5nOg0KPiAuLi4NCj4gMy4g IFNvQyBpcyBwcm9ncmFtbWluZyBQTUlDIGZvciBwb3dlciBvZmYgd2hlbiBzdGFuZGJ5IGlzIGFz c2VydGVkLg0KPiA0LiAgSW4gQ0NNIFNUT1AgbW9kZSwgU3RhbmRieSBpcyBhc3NlcnRlZCwgUE1J QyBnYXRlcyBTb0Mgc3VwcGxpZXMuDQo+IA0KPiBTZWU6DQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVs aW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRnd3dy4NCj4gbnhw LmNvbSUyRmFzc2V0cyUyRmRvY3VtZW50cyUyRmRhdGElMkZlbiUyRnJlZmVyZW5jZS1tYW51YWxz JTJGSU0NCj4gWDZEUVJNLnBkZiZhbXA7ZGF0YT0wMiU3QzAxJTdDeWliaW4uZ29uZyU0MG54cC5j b20lN0MxOTNmZDE5ZTNhDQo+IDQwNDE2ZmZhNGEwOGQ1ZjJkOTU4M2MlN0M2ODZlYTFkM2JjMmI0 YzZmYTkyY2Q5OWM1YzMwMTYzNSU3QzAlN0MxDQo+ICU3QzYzNjY4MTkzNzY2MTkxNDA3NiZhbXA7 c2RhdGE9bElDQWVsWXBVaDQlMkZ0JTJGczdOOW1kazJjTFFNaQ0KPiBjSGNPcVEwN3ZUT1VveU5Z JTNEJmFtcDtyZXNlcnZlZD0wDQo+IHBhZ2UgNTA4Mw0KPiANCj4gVGhpcyBwYXRjaCBpbXBsZW1l bnRzIHN0ZXAgNC4gb2YgdGhpcyBzZXF1ZW5jZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE9sZWtz aWogUmVtcGVsIDxvLnJlbXBlbEBwZW5ndXRyb25peC5kZT4NCj4gLS0tDQo+ICBhcmNoL2FybS9t YWNoLWlteC9wbS1pbXg2LmMgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAxIGZp bGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21hY2gtaW14L3BtLWlteDYuYyBiL2FyY2gvYXJtL21hY2gtaW14L3BtLWlteDYuYw0KPiBpbmRl eCAwMTc1MzlkZDcxMmIuLjJmNWM2NDNmNjJmYiAxMDA2NDQNCj4gLS0tIGEvYXJjaC9hcm0vbWFj aC1pbXgvcG0taW14Ni5jDQo+ICsrKyBiL2FyY2gvYXJtL21hY2gtaW14L3BtLWlteDYuYw0KPiBA QCAtNjAxLDYgKzYwMSwyOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgaW14Nl9wbV9jb21tb25faW5p dChjb25zdCBzdHJ1Y3QNCj4gaW14Nl9wbV9zb2NkYXRhDQo+ICAJCQkJICAgSU1YNlFfR1BSMV9H SU5UKTsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgdm9pZCBpbXg2X3BtX3N0YnlfcG93ZXJvZmYodm9p ZCkgew0KPiArCWlteDZfc2V0X2xwbShTVE9QX1BPV0VSX09GRik7DQo+ICsJaW14NnFfc3VzcGVu ZF9maW5pc2goMCk7DQo+ICsNCj4gKwltZGVsYXkoMTAwMCk7DQo+ICsNCj4gKwlwcl9lbWVyZygi VW5hYmxlIHRvIHBvd2Vyb2ZmIHN5c3RlbVxuIik7IH0NCj4gKw0KPiArc3RhdGljIGludCBpbXg2 X3BtX3N0YnlfcG93ZXJvZmZfcHJvYmUodm9pZCkgew0KPiArCWlmIChwbV9wb3dlcl9vZmYpIHsN Cj4gKwkJcHJfd2FybigiJXM6IHBtX3Bvd2VyX29mZiBhbHJlYWR5IGNsYWltZWQgICVwICVwZiFc biIsDQo+ICsJCQlfX2Z1bmNfXywgcG1fcG93ZXJfb2ZmLCBwbV9wb3dlcl9vZmYpOw0KJ3N5c2Nv bi1wb3dlcm9mZicgYW5kICdwbWljLXN0YnktcG93ZXJvZmYgJyBzaG91bGQgYmUgY2hvc2VuIGFz IGEgc2luZ2xlDQpQb3dlcm9mZiB3YXkgZm9yIGFueSBpLm14NiBib2FyZC4gV2h5IG5vdCBkZWxl dGUgZGlyZWN0bHkgJ3N5c2Nvbi1wb3dlcm9mZicgaW4gZHRzIA0KdG8gYXZvaWQgc3VjaCB0d28g cG93ZXIgb2ZmIHdheXMgY29leGlzdD8NCj4gKwkJcmV0dXJuIC1FQlVTWTsNCj4gKwl9DQo+ICsN Cj4gKwlwbV9wb3dlcl9vZmYgPSBpbXg2X3BtX3N0YnlfcG93ZXJvZmY7DQo+ICsJcmV0dXJuIDA7 DQo+ICt9DQo+ICsNCj4gIHZvaWQgX19pbml0IGlteDZfcG1fY2NtX2luaXQoY29uc3QgY2hhciAq Y2NtX2NvbXBhdCkgIHsNCj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wOw0KPiBAQCAtNjE3LDYg KzYzOSw5IEBAIHZvaWQgX19pbml0IGlteDZfcG1fY2NtX2luaXQoY29uc3QgY2hhcg0KPiAqY2Nt X2NvbXBhdCkNCj4gIAl2YWwgPSByZWFkbF9yZWxheGVkKGNjbV9iYXNlICsgQ0xQQ1IpOw0KPiAg CXZhbCAmPSB+Qk1fQ0xQQ1JfTFBNOw0KPiAgCXdyaXRlbF9yZWxheGVkKHZhbCwgY2NtX2Jhc2Ug KyBDTFBDUik7DQo+ICsNCj4gKwlpZiAob2ZfcHJvcGVydHlfcmVhZF9ib29sKG5wLCAiZnNsLHBt aWMtc3RieS1wb3dlcm9mZiIpKQ0KPiArCQlpbXg2X3BtX3N0YnlfcG93ZXJvZmZfcHJvYmUoKTsN Cj4gIH0NCj4gDQo+ICB2b2lkIF9faW5pdCBpbXg2cV9wbV9pbml0KHZvaWQpDQo+IC0tDQo+IDIu MTguMA0KDQo= ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set @ 2018-07-27 9:15 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:15 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if > "fsl,pmic-stby-poweroff" is set > > One of the Freescale recommended sequences for power off with external > PMIC is the following: > ... > 3. SoC is programming PMIC for power off when standby is asserted. > 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. > > See: > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww. > nxp.com%2Fassets%2Fdocuments%2Fdata%2Fen%2Freference-manuals%2FIM > X6DQRM.pdf&data=02%7C01%7Cyibin.gong%40nxp.com%7C193fd19e3a > 40416ffa4a08d5f2d9583c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1 > %7C636681937661914076&sdata=lICAelYpUh4%2Ft%2Fs7N9mdk2cLQMi > cHcOqQ07vTOUoyNY%3D&reserved=0 > page 5083 > > This patch implements step 4. of this sequence. > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c > index 017539dd712b..2f5c643f62fb 100644 > --- a/arch/arm/mach-imx/pm-imx6.c > +++ b/arch/arm/mach-imx/pm-imx6.c > @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct > imx6_pm_socdata > IMX6Q_GPR1_GINT); > } > > +static void imx6_pm_stby_poweroff(void) { > + imx6_set_lpm(STOP_POWER_OFF); > + imx6q_suspend_finish(0); > + > + mdelay(1000); > + > + pr_emerg("Unable to poweroff system\n"); } > + > +static int imx6_pm_stby_poweroff_probe(void) { > + if (pm_power_off) { > + pr_warn("%s: pm_power_off already claimed %p %pf!\n", > + __func__, pm_power_off, pm_power_off); 'syscon-poweroff' and 'pmic-stby-poweroff ' should be chosen as a single Poweroff way for any i.mx6 board. Why not delete directly 'syscon-poweroff' in dts to avoid such two power off ways coexist? > + return -EBUSY; > + } > + > + pm_power_off = imx6_pm_stby_poweroff; > + return 0; > +} > + > void __init imx6_pm_ccm_init(const char *ccm_compat) { > struct device_node *np; > @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char > *ccm_compat) > val = readl_relaxed(ccm_base + CLPCR); > val &= ~BM_CLPCR_LPM; > writel_relaxed(val, ccm_base + CLPCR); > + > + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) > + imx6_pm_stby_poweroff_probe(); > } > > void __init imx6q_pm_init(void) > -- > 2.18.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set 2018-07-27 9:15 ` Robin Gong (?) @ 2018-07-30 7:57 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:57 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 3722 bytes --] On 27.07.2018 11:15, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if >> "fsl,pmic-stby-poweroff" is set >> >> One of the Freescale recommended sequences for power off with external >> PMIC is the following: >> ... >> 3. SoC is programming PMIC for power off when standby is asserted. >> 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. >> >> See: >> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww. >> nxp.com%2Fassets%2Fdocuments%2Fdata%2Fen%2Freference-manuals%2FIM >> X6DQRM.pdf&data=02%7C01%7Cyibin.gong%40nxp.com%7C193fd19e3a >> 40416ffa4a08d5f2d9583c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1 >> %7C636681937661914076&sdata=lICAelYpUh4%2Ft%2Fs7N9mdk2cLQMi >> cHcOqQ07vTOUoyNY%3D&reserved=0 >> page 5083 >> >> This patch implements step 4. of this sequence. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ >> 1 file changed, 25 insertions(+) >> >> diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c >> index 017539dd712b..2f5c643f62fb 100644 >> --- a/arch/arm/mach-imx/pm-imx6.c >> +++ b/arch/arm/mach-imx/pm-imx6.c >> @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct >> imx6_pm_socdata >> IMX6Q_GPR1_GINT); >> } >> >> +static void imx6_pm_stby_poweroff(void) { >> + imx6_set_lpm(STOP_POWER_OFF); >> + imx6q_suspend_finish(0); >> + >> + mdelay(1000); >> + >> + pr_emerg("Unable to poweroff system\n"); } >> + >> +static int imx6_pm_stby_poweroff_probe(void) { >> + if (pm_power_off) { >> + pr_warn("%s: pm_power_off already claimed %p %pf!\n", >> + __func__, pm_power_off, pm_power_off); > 'syscon-poweroff' and 'pmic-stby-poweroff ' should be chosen as a single > Poweroff way for any i.mx6 board. Why not delete directly 'syscon-poweroff' in dts > to avoid such two power off ways coexist? pm_power_off can be registred by any part of the kernel. So, we need it to avoid conflicts or at least to be able see them. On other hand, you are right. syscon-poweroff should be disabled for this board. >> + return -EBUSY; >> + } >> + >> + pm_power_off = imx6_pm_stby_poweroff; >> + return 0; >> +} >> + >> void __init imx6_pm_ccm_init(const char *ccm_compat) { >> struct device_node *np; >> @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char >> *ccm_compat) >> val = readl_relaxed(ccm_base + CLPCR); >> val &= ~BM_CLPCR_LPM; >> writel_relaxed(val, ccm_base + CLPCR); >> + >> + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) >> + imx6_pm_stby_poweroff_probe(); >> } >> >> void __init imx6q_pm_init(void) >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set @ 2018-07-30 7:57 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:57 UTC (permalink / raw) To: linux-arm-kernel On 27.07.2018 11:15, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] >> Sent: 2018?7?26? 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if >> "fsl,pmic-stby-poweroff" is set >> >> One of the Freescale recommended sequences for power off with external >> PMIC is the following: >> ... >> 3. SoC is programming PMIC for power off when standby is asserted. >> 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. >> >> See: >> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww. >> nxp.com%2Fassets%2Fdocuments%2Fdata%2Fen%2Freference-manuals%2FIM >> X6DQRM.pdf&data=02%7C01%7Cyibin.gong%40nxp.com%7C193fd19e3a >> 40416ffa4a08d5f2d9583c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1 >> %7C636681937661914076&sdata=lICAelYpUh4%2Ft%2Fs7N9mdk2cLQMi >> cHcOqQ07vTOUoyNY%3D&reserved=0 >> page 5083 >> >> This patch implements step 4. of this sequence. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ >> 1 file changed, 25 insertions(+) >> >> diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c >> index 017539dd712b..2f5c643f62fb 100644 >> --- a/arch/arm/mach-imx/pm-imx6.c >> +++ b/arch/arm/mach-imx/pm-imx6.c >> @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct >> imx6_pm_socdata >> IMX6Q_GPR1_GINT); >> } >> >> +static void imx6_pm_stby_poweroff(void) { >> + imx6_set_lpm(STOP_POWER_OFF); >> + imx6q_suspend_finish(0); >> + >> + mdelay(1000); >> + >> + pr_emerg("Unable to poweroff system\n"); } >> + >> +static int imx6_pm_stby_poweroff_probe(void) { >> + if (pm_power_off) { >> + pr_warn("%s: pm_power_off already claimed %p %pf!\n", >> + __func__, pm_power_off, pm_power_off); > 'syscon-poweroff' and 'pmic-stby-poweroff ' should be chosen as a single > Poweroff way for any i.mx6 board. Why not delete directly 'syscon-poweroff' in dts > to avoid such two power off ways coexist? pm_power_off can be registred by any part of the kernel. So, we need it to avoid conflicts or at least to be able see them. On other hand, you are right. syscon-poweroff should be disabled for this board. >> + return -EBUSY; >> + } >> + >> + pm_power_off = imx6_pm_stby_poweroff; >> + return 0; >> +} >> + >> void __init imx6_pm_ccm_init(const char *ccm_compat) { >> struct device_node *np; >> @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char >> *ccm_compat) >> val = readl_relaxed(ccm_base + CLPCR); >> val &= ~BM_CLPCR_LPM; >> writel_relaxed(val, ccm_base + CLPCR); >> + >> + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) >> + imx6_pm_stby_poweroff_probe(); >> } >> >> void __init imx6q_pm_init(void) >> -- >> 2.18.0 > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180730/aaa2e745/attachment-0001.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set @ 2018-07-30 7:57 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:57 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 3722 bytes --] On 27.07.2018 11:15, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if >> "fsl,pmic-stby-poweroff" is set >> >> One of the Freescale recommended sequences for power off with external >> PMIC is the following: >> ... >> 3. SoC is programming PMIC for power off when standby is asserted. >> 4. In CCM STOP mode, Standby is asserted, PMIC gates SoC supplies. >> >> See: >> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww. >> nxp.com%2Fassets%2Fdocuments%2Fdata%2Fen%2Freference-manuals%2FIM >> X6DQRM.pdf&data=02%7C01%7Cyibin.gong%40nxp.com%7C193fd19e3a >> 40416ffa4a08d5f2d9583c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C1 >> %7C636681937661914076&sdata=lICAelYpUh4%2Ft%2Fs7N9mdk2cLQMi >> cHcOqQ07vTOUoyNY%3D&reserved=0 >> page 5083 >> >> This patch implements step 4. of this sequence. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/mach-imx/pm-imx6.c | 25 +++++++++++++++++++++++++ >> 1 file changed, 25 insertions(+) >> >> diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c >> index 017539dd712b..2f5c643f62fb 100644 >> --- a/arch/arm/mach-imx/pm-imx6.c >> +++ b/arch/arm/mach-imx/pm-imx6.c >> @@ -601,6 +601,28 @@ static void __init imx6_pm_common_init(const struct >> imx6_pm_socdata >> IMX6Q_GPR1_GINT); >> } >> >> +static void imx6_pm_stby_poweroff(void) { >> + imx6_set_lpm(STOP_POWER_OFF); >> + imx6q_suspend_finish(0); >> + >> + mdelay(1000); >> + >> + pr_emerg("Unable to poweroff system\n"); } >> + >> +static int imx6_pm_stby_poweroff_probe(void) { >> + if (pm_power_off) { >> + pr_warn("%s: pm_power_off already claimed %p %pf!\n", >> + __func__, pm_power_off, pm_power_off); > 'syscon-poweroff' and 'pmic-stby-poweroff ' should be chosen as a single > Poweroff way for any i.mx6 board. Why not delete directly 'syscon-poweroff' in dts > to avoid such two power off ways coexist? pm_power_off can be registred by any part of the kernel. So, we need it to avoid conflicts or at least to be able see them. On other hand, you are right. syscon-poweroff should be disabled for this board. >> + return -EBUSY; >> + } >> + >> + pm_power_off = imx6_pm_stby_poweroff; >> + return 0; >> +} >> + >> void __init imx6_pm_ccm_init(const char *ccm_compat) { >> struct device_node *np; >> @@ -617,6 +639,9 @@ void __init imx6_pm_ccm_init(const char >> *ccm_compat) >> val = readl_relaxed(ccm_base + CLPCR); >> val &= ~BM_CLPCR_LPM; >> writel_relaxed(val, ccm_base + CLPCR); >> + >> + if (of_property_read_bool(np, "fsl,pmic-stby-poweroff")) >> + imx6_pm_stby_poweroff_probe(); >> } >> >> void __init imx6q_pm_init(void) >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 3/6] kernel/reboot.c: export pm_power_off_prepare 2018-07-26 9:22 ` Oleksij Rempel @ 2018-07-26 9:22 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Oleksij Rempel, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, linux-imx, yibin.gong, A.s. Dong Export pm_power_off_prepare. It is needed to implement power off on Freescale/NXP iMX6 based boards with external power management integrated circuit (PMIC). Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- kernel/reboot.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/reboot.c b/kernel/reboot.c index e4ced883d8de..83810d726f3e 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -49,6 +49,7 @@ int reboot_force; */ void (*pm_power_off_prepare)(void); +EXPORT_SYMBOL_GPL(pm_power_off_prepare); /** * emergency_restart - reboot the system -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 3/6] kernel/reboot.c: export pm_power_off_prepare @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: linux-arm-kernel Export pm_power_off_prepare. It is needed to implement power off on Freescale/NXP iMX6 based boards with external power management integrated circuit (PMIC). Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- kernel/reboot.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/reboot.c b/kernel/reboot.c index e4ced883d8de..83810d726f3e 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -49,6 +49,7 @@ int reboot_force; */ void (*pm_power_off_prepare)(void); +EXPORT_SYMBOL_GPL(pm_power_off_prepare); /** * emergency_restart - reboot the system -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 4/6] regulator: pfuze100: add fsl,pmic-stby-poweroff property 2018-07-26 9:22 ` Oleksij Rempel (?) @ 2018-07-26 9:22 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Oleksij Rempel, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, linux-imx, yibin.gong, A.s. Dong Document the new optional "fsl,pmic-stby-poweroff" property. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Acked-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/regulator/pfuze100.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt index f0ada3b14d70..f3b922f5a11f 100644 --- a/Documentation/devicetree/bindings/regulator/pfuze100.txt +++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt @@ -4,6 +4,13 @@ Required properties: - compatible: "fsl,pfuze100", "fsl,pfuze200", "fsl,pfuze3000" - reg: I2C slave address +Optional properties: +- fsl,pmic-stby-poweroff: if present, configure the PMIC to shutdown all + power rails when PMIC_STBY_REQ line is asserted during the power off sequence. + Use this option if the SoC should be powered off by external power + management IC (PMIC) on PMIC_STBY_REQ signal. + As opposite to PMIC_STBY_REQ boards can implement PMIC_ON_REQ signal. + Required child node: - regulators: This is the list of child nodes that specify the regulator initialization data for defined regulators. Please refer to below doc -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 4/6] regulator: pfuze100: add fsl, pmic-stby-poweroff property @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: linux-arm-kernel Document the new optional "fsl,pmic-stby-poweroff" property. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Acked-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/regulator/pfuze100.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt index f0ada3b14d70..f3b922f5a11f 100644 --- a/Documentation/devicetree/bindings/regulator/pfuze100.txt +++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt @@ -4,6 +4,13 @@ Required properties: - compatible: "fsl,pfuze100", "fsl,pfuze200", "fsl,pfuze3000" - reg: I2C slave address +Optional properties: +- fsl,pmic-stby-poweroff: if present, configure the PMIC to shutdown all + power rails when PMIC_STBY_REQ line is asserted during the power off sequence. + Use this option if the SoC should be powered off by external power + management IC (PMIC) on PMIC_STBY_REQ signal. + As opposite to PMIC_STBY_REQ boards can implement PMIC_ON_REQ signal. + Required child node: - regulators: This is the list of child nodes that specify the regulator initialization data for defined regulators. Please refer to below doc -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 4/6] regulator: pfuze100: add fsl, pmic-stby-poweroff property @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, yibin.gong, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Oleksij Rempel, Rob Herring, linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Document the new optional "fsl,pmic-stby-poweroff" property. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Acked-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/regulator/pfuze100.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/pfuze100.txt b/Documentation/devicetree/bindings/regulator/pfuze100.txt index f0ada3b14d70..f3b922f5a11f 100644 --- a/Documentation/devicetree/bindings/regulator/pfuze100.txt +++ b/Documentation/devicetree/bindings/regulator/pfuze100.txt @@ -4,6 +4,13 @@ Required properties: - compatible: "fsl,pfuze100", "fsl,pfuze200", "fsl,pfuze3000" - reg: I2C slave address +Optional properties: +- fsl,pmic-stby-poweroff: if present, configure the PMIC to shutdown all + power rails when PMIC_STBY_REQ line is asserted during the power off sequence. + Use this option if the SoC should be powered off by external power + management IC (PMIC) on PMIC_STBY_REQ signal. + As opposite to PMIC_STBY_REQ boards can implement PMIC_ON_REQ signal. + Required child node: - regulators: This is the list of child nodes that specify the regulator initialization data for defined regulators. Please refer to below doc -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler 2018-07-26 9:22 ` Oleksij Rempel @ 2018-07-26 9:22 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Oleksij Rempel, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, linux-imx, yibin.gong, A.s. Dong On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC about state changes. In this case internal state of PMIC must be preconfigured for upcomming state change. It works fine with the current regulator framework, except with the power-off case. This patch is providing an optional pm_power_off_prepare handler which will configure standby state of the PMIC to disable all power lines. In my power consumption test on RIoTBoard, I got the following results: power off without this patch: 320 mA power off with this patch: 2 mA suspend to ram: 40 mA Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/drivers/regulator/pfuze100-regulator.c b/drivers/regulator/pfuze100-regulator.c index 8d9dbcc775ea..e386e9acb3f7 100644 --- a/drivers/regulator/pfuze100-regulator.c +++ b/drivers/regulator/pfuze100-regulator.c @@ -15,6 +15,7 @@ #include <linux/regulator/pfuze100.h> #include <linux/i2c.h> #include <linux/slab.h> +#include <linux/kallsyms.h> #include <linux/regmap.h> #define PFUZE_NUMREGS 128 @@ -29,11 +30,17 @@ #define PFUZE100_COINVOL 0x1a #define PFUZE100_SW1ABVOL 0x20 +#define PFUZE100_SW1ABMODE 0x23 #define PFUZE100_SW1CVOL 0x2e +#define PFUZE100_SW1CMODE 0x31 #define PFUZE100_SW2VOL 0x35 +#define PFUZE100_SW2MODE 0x38 #define PFUZE100_SW3AVOL 0x3c +#define PFUZE100_SW3AMODE 0x3f #define PFUZE100_SW3BVOL 0x43 +#define PFUZE100_SW3BMODE 0x46 #define PFUZE100_SW4VOL 0x4a +#define PFUZE100_SW4MODE 0x4d #define PFUZE100_SWBSTCON1 0x66 #define PFUZE100_VREFDDRCON 0x6a #define PFUZE100_VSNVSVOL 0x6b @@ -44,6 +51,13 @@ #define PFUZE100_VGEN5VOL 0x70 #define PFUZE100_VGEN6VOL 0x71 +#define PFUZE100_SWxMODE_MASK 0xf +#define PFUZE100_SWxMODE_APS_APS 0x8 +#define PFUZE100_SWxMODE_APS_OFF 0x4 + +#define PFUZE100_VGENxLPWR BIT(6) +#define PFUZE100_VGENxSTBY BIT(5) + enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; struct pfuze_regulator { @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int index) } #endif +static struct pfuze_chip *syspm_pfuze_chip; + +static void pfuze_power_off_prepare(void) +{ + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power off"); + + /* Switch from default mode: APS/APS to APS/Off */ + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW1ABMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW1CMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW3AMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW3BMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); +} + +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) +{ + if (pfuze_chip->chip_id != PFUZE100) { + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n"); + return -ENODEV; + } + + if (pm_power_off_prepare) { + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already registered.\n"); + return -EBUSY; + } + + if (syspm_pfuze_chip) { + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); + return -EBUSY; + } + + syspm_pfuze_chip = pfuze_chip; + pm_power_off_prepare = pfuze_power_off_prepare; + + return 0; +} + static int pfuze_identify(struct pfuze_chip *pfuze_chip) { unsigned int value; @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client *client, } } + if (of_property_read_bool(client->dev.of_node, + "fsl,pmic-stby-poweroff")) + return pfuze_power_off_prepare_init(pfuze_chip); + + return 0; +} + +static int pfuze100_regulator_remove(struct i2c_client *client) +{ + if (syspm_pfuze_chip) { + syspm_pfuze_chip = NULL; + pm_power_off_prepare = NULL; + } + return 0; } @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { .of_match_table = pfuze_dt_ids, }, .probe = pfuze100_regulator_probe, + .remove = pfuze100_regulator_remove, }; module_i2c_driver(pfuze_driver); -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: linux-arm-kernel On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC about state changes. In this case internal state of PMIC must be preconfigured for upcomming state change. It works fine with the current regulator framework, except with the power-off case. This patch is providing an optional pm_power_off_prepare handler which will configure standby state of the PMIC to disable all power lines. In my power consumption test on RIoTBoard, I got the following results: power off without this patch: 320 mA power off with this patch: 2 mA suspend to ram: 40 mA Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/drivers/regulator/pfuze100-regulator.c b/drivers/regulator/pfuze100-regulator.c index 8d9dbcc775ea..e386e9acb3f7 100644 --- a/drivers/regulator/pfuze100-regulator.c +++ b/drivers/regulator/pfuze100-regulator.c @@ -15,6 +15,7 @@ #include <linux/regulator/pfuze100.h> #include <linux/i2c.h> #include <linux/slab.h> +#include <linux/kallsyms.h> #include <linux/regmap.h> #define PFUZE_NUMREGS 128 @@ -29,11 +30,17 @@ #define PFUZE100_COINVOL 0x1a #define PFUZE100_SW1ABVOL 0x20 +#define PFUZE100_SW1ABMODE 0x23 #define PFUZE100_SW1CVOL 0x2e +#define PFUZE100_SW1CMODE 0x31 #define PFUZE100_SW2VOL 0x35 +#define PFUZE100_SW2MODE 0x38 #define PFUZE100_SW3AVOL 0x3c +#define PFUZE100_SW3AMODE 0x3f #define PFUZE100_SW3BVOL 0x43 +#define PFUZE100_SW3BMODE 0x46 #define PFUZE100_SW4VOL 0x4a +#define PFUZE100_SW4MODE 0x4d #define PFUZE100_SWBSTCON1 0x66 #define PFUZE100_VREFDDRCON 0x6a #define PFUZE100_VSNVSVOL 0x6b @@ -44,6 +51,13 @@ #define PFUZE100_VGEN5VOL 0x70 #define PFUZE100_VGEN6VOL 0x71 +#define PFUZE100_SWxMODE_MASK 0xf +#define PFUZE100_SWxMODE_APS_APS 0x8 +#define PFUZE100_SWxMODE_APS_OFF 0x4 + +#define PFUZE100_VGENxLPWR BIT(6) +#define PFUZE100_VGENxSTBY BIT(5) + enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; struct pfuze_regulator { @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int index) } #endif +static struct pfuze_chip *syspm_pfuze_chip; + +static void pfuze_power_off_prepare(void) +{ + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power off"); + + /* Switch from default mode: APS/APS to APS/Off */ + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW1ABMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW1CMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW3AMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW3BMODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, + PFUZE100_SWxMODE_MASK, PFUZE100_SWxMODE_APS_OFF); + + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, + PFUZE100_VGENxSTBY); +} + +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) +{ + if (pfuze_chip->chip_id != PFUZE100) { + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n"); + return -ENODEV; + } + + if (pm_power_off_prepare) { + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already registered.\n"); + return -EBUSY; + } + + if (syspm_pfuze_chip) { + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); + return -EBUSY; + } + + syspm_pfuze_chip = pfuze_chip; + pm_power_off_prepare = pfuze_power_off_prepare; + + return 0; +} + static int pfuze_identify(struct pfuze_chip *pfuze_chip) { unsigned int value; @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client *client, } } + if (of_property_read_bool(client->dev.of_node, + "fsl,pmic-stby-poweroff")) + return pfuze_power_off_prepare_init(pfuze_chip); + + return 0; +} + +static int pfuze100_regulator_remove(struct i2c_client *client) +{ + if (syspm_pfuze_chip) { + syspm_pfuze_chip = NULL; + pm_power_off_prepare = NULL; + } + return 0; } @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { .of_match_table = pfuze_dt_ids, }, .probe = pfuze100_regulator_probe, + .remove = pfuze100_regulator_remove, }; module_i2c_driver(pfuze_driver); -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* RE: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler 2018-07-26 9:22 ` Oleksij Rempel (?) (?) @ 2018-07-27 9:32 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:32 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide > pm_power_off_prepare handler > > On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC > about state changes. In this case internal state of PMIC must be preconfigured > for upcomming state change. > It works fine with the current regulator framework, except with the power-off > case. > > This patch is providing an optional pm_power_off_prepare handler which will > configure standby state of the PMIC to disable all power lines. > > In my power consumption test on RIoTBoard, I got the following results: > power off without this patch: 320 mA > power off with this patch: 2 mA > suspend to ram: 40 mA > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ > 1 file changed, 92 insertions(+) > > diff --git a/drivers/regulator/pfuze100-regulator.c > b/drivers/regulator/pfuze100-regulator.c > index 8d9dbcc775ea..e386e9acb3f7 100644 > --- a/drivers/regulator/pfuze100-regulator.c > +++ b/drivers/regulator/pfuze100-regulator.c > @@ -15,6 +15,7 @@ > #include <linux/regulator/pfuze100.h> > #include <linux/i2c.h> > #include <linux/slab.h> > +#include <linux/kallsyms.h> Is it necessary? > #include <linux/regmap.h> > > #define PFUZE_NUMREGS 128 > @@ -29,11 +30,17 @@ > > #define PFUZE100_COINVOL 0x1a > #define PFUZE100_SW1ABVOL 0x20 > +#define PFUZE100_SW1ABMODE 0x23 > #define PFUZE100_SW1CVOL 0x2e > +#define PFUZE100_SW1CMODE 0x31 > #define PFUZE100_SW2VOL 0x35 > +#define PFUZE100_SW2MODE 0x38 > #define PFUZE100_SW3AVOL 0x3c > +#define PFUZE100_SW3AMODE 0x3f > #define PFUZE100_SW3BVOL 0x43 > +#define PFUZE100_SW3BMODE 0x46 > #define PFUZE100_SW4VOL 0x4a > +#define PFUZE100_SW4MODE 0x4d > #define PFUZE100_SWBSTCON1 0x66 > #define PFUZE100_VREFDDRCON 0x6a > #define PFUZE100_VSNVSVOL 0x6b > @@ -44,6 +51,13 @@ > #define PFUZE100_VGEN5VOL 0x70 > #define PFUZE100_VGEN6VOL 0x71 > > +#define PFUZE100_SWxMODE_MASK 0xf > +#define PFUZE100_SWxMODE_APS_APS 0x8 > +#define PFUZE100_SWxMODE_APS_OFF 0x4 > + > +#define PFUZE100_VGENxLPWR BIT(6) > +#define PFUZE100_VGENxSTBY BIT(5) > + > enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; > > struct pfuze_regulator { > @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int > index) } #endif > > +static struct pfuze_chip *syspm_pfuze_chip; > + > +static void pfuze_power_off_prepare(void) > + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power > +off"); Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend Support on pfuze200/3000.. in the feature. > + > + /* Switch from default mode: APS/APS to APS/Off */ > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW1ABMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW1CMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW3AMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW3BMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > +} > + > +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) > +{ > + if (pfuze_chip->chip_id != PFUZE100) { > + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare > handler for not supported chip\n"); > + return -ENODEV; > + } > + > + if (pm_power_off_prepare) { > + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already > registered.\n"); > + return -EBUSY; > + } > + > + if (syspm_pfuze_chip) { > + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); > + return -EBUSY; > + } > + > + syspm_pfuze_chip = pfuze_chip; > + pm_power_off_prepare = pfuze_power_off_prepare; > + > + return 0; > +} > + > static int pfuze_identify(struct pfuze_chip *pfuze_chip) { > unsigned int value; > @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client > *client, > } > } > > + if (of_property_read_bool(client->dev.of_node, > + "fsl,pmic-stby-poweroff")) > + return pfuze_power_off_prepare_init(pfuze_chip); > + > + return 0; > +} > + > +static int pfuze100_regulator_remove(struct i2c_client *client) { > + if (syspm_pfuze_chip) { > + syspm_pfuze_chip = NULL; > + pm_power_off_prepare = NULL; > + } > + > return 0; > } > > @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { > .of_match_table = pfuze_dt_ids, > }, > .probe = pfuze100_regulator_probe, > + .remove = pfuze100_regulator_remove, > }; > module_i2c_driver(pfuze_driver); > > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-27 9:32 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:32 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > Sent: 2018?7?26? 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide > pm_power_off_prepare handler > > On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC > about state changes. In this case internal state of PMIC must be preconfigured > for upcomming state change. > It works fine with the current regulator framework, except with the power-off > case. > > This patch is providing an optional pm_power_off_prepare handler which will > configure standby state of the PMIC to disable all power lines. > > In my power consumption test on RIoTBoard, I got the following results: > power off without this patch: 320 mA > power off with this patch: 2 mA > suspend to ram: 40 mA > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ > 1 file changed, 92 insertions(+) > > diff --git a/drivers/regulator/pfuze100-regulator.c > b/drivers/regulator/pfuze100-regulator.c > index 8d9dbcc775ea..e386e9acb3f7 100644 > --- a/drivers/regulator/pfuze100-regulator.c > +++ b/drivers/regulator/pfuze100-regulator.c > @@ -15,6 +15,7 @@ > #include <linux/regulator/pfuze100.h> > #include <linux/i2c.h> > #include <linux/slab.h> > +#include <linux/kallsyms.h> Is it necessary? > #include <linux/regmap.h> > > #define PFUZE_NUMREGS 128 > @@ -29,11 +30,17 @@ > > #define PFUZE100_COINVOL 0x1a > #define PFUZE100_SW1ABVOL 0x20 > +#define PFUZE100_SW1ABMODE 0x23 > #define PFUZE100_SW1CVOL 0x2e > +#define PFUZE100_SW1CMODE 0x31 > #define PFUZE100_SW2VOL 0x35 > +#define PFUZE100_SW2MODE 0x38 > #define PFUZE100_SW3AVOL 0x3c > +#define PFUZE100_SW3AMODE 0x3f > #define PFUZE100_SW3BVOL 0x43 > +#define PFUZE100_SW3BMODE 0x46 > #define PFUZE100_SW4VOL 0x4a > +#define PFUZE100_SW4MODE 0x4d > #define PFUZE100_SWBSTCON1 0x66 > #define PFUZE100_VREFDDRCON 0x6a > #define PFUZE100_VSNVSVOL 0x6b > @@ -44,6 +51,13 @@ > #define PFUZE100_VGEN5VOL 0x70 > #define PFUZE100_VGEN6VOL 0x71 > > +#define PFUZE100_SWxMODE_MASK 0xf > +#define PFUZE100_SWxMODE_APS_APS 0x8 > +#define PFUZE100_SWxMODE_APS_OFF 0x4 > + > +#define PFUZE100_VGENxLPWR BIT(6) > +#define PFUZE100_VGENxSTBY BIT(5) > + > enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; > > struct pfuze_regulator { > @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int > index) } #endif > > +static struct pfuze_chip *syspm_pfuze_chip; > + > +static void pfuze_power_off_prepare(void) > + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power > +off"); Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend Support on pfuze200/3000.. in the feature. > + > + /* Switch from default mode: APS/APS to APS/Off */ > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW1ABMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW1CMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW3AMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW3BMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > +} > + > +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) > +{ > + if (pfuze_chip->chip_id != PFUZE100) { > + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare > handler for not supported chip\n"); > + return -ENODEV; > + } > + > + if (pm_power_off_prepare) { > + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already > registered.\n"); > + return -EBUSY; > + } > + > + if (syspm_pfuze_chip) { > + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); > + return -EBUSY; > + } > + > + syspm_pfuze_chip = pfuze_chip; > + pm_power_off_prepare = pfuze_power_off_prepare; > + > + return 0; > +} > + > static int pfuze_identify(struct pfuze_chip *pfuze_chip) { > unsigned int value; > @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client > *client, > } > } > > + if (of_property_read_bool(client->dev.of_node, > + "fsl,pmic-stby-poweroff")) > + return pfuze_power_off_prepare_init(pfuze_chip); > + > + return 0; > +} > + > +static int pfuze100_regulator_remove(struct i2c_client *client) { > + if (syspm_pfuze_chip) { > + syspm_pfuze_chip = NULL; > + pm_power_off_prepare = NULL; > + } > + > return 0; > } > > @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { > .of_match_table = pfuze_dt_ids, > }, > .probe = pfuze100_regulator_probe, > + .remove = pfuze100_regulator_remove, > }; > module_i2c_driver(pfuze_driver); > > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-27 9:32 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:32 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xla3NpaiBSZW1wZWwg W21haWx0bzpvLnJlbXBlbEBwZW5ndXRyb25peC5kZV0NCj4gU2VudDogMjAxOMTqN9TCMjbI1SAx NzoyMg0KPiBUbzogU2hhd24gR3VvIDxzaGF3bmd1b0BrZXJuZWwub3JnPjsgTWFyayBCcm93biA8 YnJvb25pZUBrZXJuZWwub3JnPjsNCj4gUmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29j a2lAaW50ZWwuY29tPg0KPiBDYzogT2xla3NpaiBSZW1wZWwgPG8ucmVtcGVsQHBlbmd1dHJvbml4 LmRlPjsga2VybmVsQHBlbmd1dHJvbml4LmRlOw0KPiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9y ZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOw0KPiBsaW51eC1jbGtAdmdl ci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBBbmRyZXcgTW9ydG9u DQo+IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPjsgTGlhbSBHaXJkd29vZCA8bGdpcmR3b29k QGdtYWlsLmNvbT47DQo+IExlb25hcmQgQ3Jlc3RleiA8bGVvbmFyZC5jcmVzdGV6QG54cC5jb20+ OyBSb2IgSGVycmluZw0KPiA8cm9iaCtkdEBrZXJuZWwub3JnPjsgTWFyayBSdXRsYW5kIDxtYXJr LnJ1dGxhbmRAYXJtLmNvbT47IE1pY2hhZWwNCj4gVHVycXVldHRlIDxtdHVycXVldHRlQGJheWxp YnJlLmNvbT47IFN0ZXBoZW4gQm95ZA0KPiA8c2JveWRAY29kZWF1cm9yYS5vcmc+OyBGYWJpbyBF c3RldmFtIDxmYWJpby5lc3RldmFtQG54cC5jb20+OyBSdXNzZWxsDQo+IEtpbmcgPGxpbnV4QGFy bWxpbnV4Lm9yZy51az47IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+OyBSb2JpbiBH b25nDQo+IDx5aWJpbi5nb25nQG54cC5jb20+OyBBLnMuIERvbmcgPGFpc2hlbmcuZG9uZ0BueHAu Y29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjggNS82XSByZWd1bGF0b3I6IHBmdXplMTAwLXJlZ3Vs YXRvcjogcHJvdmlkZQ0KPiBwbV9wb3dlcl9vZmZfcHJlcGFyZSBoYW5kbGVyDQo+IA0KPiBPbiBz b21lIGJvYXJkcyB0aGUgU29DIGNhbiB1c2Ugb25lIHBpbiAiUE1JQ19TVEJZX1JFUSIgdG8gbm90 aWZ5IHRoIFBNSUMNCj4gYWJvdXQgc3RhdGUgY2hhbmdlcy4gSW4gdGhpcyBjYXNlIGludGVybmFs IHN0YXRlIG9mIFBNSUMgbXVzdCBiZSBwcmVjb25maWd1cmVkDQo+IGZvciB1cGNvbW1pbmcgc3Rh dGUgY2hhbmdlLg0KPiBJdCB3b3JrcyBmaW5lIHdpdGggdGhlIGN1cnJlbnQgcmVndWxhdG9yIGZy YW1ld29yaywgZXhjZXB0IHdpdGggdGhlIHBvd2VyLW9mZg0KPiBjYXNlLg0KPiANCj4gVGhpcyBw YXRjaCBpcyBwcm92aWRpbmcgYW4gb3B0aW9uYWwgcG1fcG93ZXJfb2ZmX3ByZXBhcmUgaGFuZGxl ciB3aGljaCB3aWxsDQo+IGNvbmZpZ3VyZSBzdGFuZGJ5IHN0YXRlIG9mIHRoZSBQTUlDIHRvIGRp c2FibGUgYWxsIHBvd2VyIGxpbmVzLg0KPiANCj4gSW4gbXkgcG93ZXIgY29uc3VtcHRpb24gdGVz dCBvbiBSSW9UQm9hcmQsIEkgZ290IHRoZSBmb2xsb3dpbmcgcmVzdWx0czoNCj4gcG93ZXIgb2Zm IHdpdGhvdXQgdGhpcyBwYXRjaDoJMzIwIG1BDQo+IHBvd2VyIG9mZiB3aXRoIHRoaXMgcGF0Y2g6 CTIgICBtQQ0KPiBzdXNwZW5kIHRvIHJhbToJCQk0MCAgbUENCj4gDQo+IFNpZ25lZC1vZmYtYnk6 IE9sZWtzaWogUmVtcGVsIDxvLnJlbXBlbEBwZW5ndXRyb25peC5kZT4NCj4gLS0tDQo+ICBkcml2 ZXJzL3JlZ3VsYXRvci9wZnV6ZTEwMC1yZWd1bGF0b3IuYyB8IDkyICsrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICAxIGZpbGUgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvcmVndWxhdG9yL3BmdXplMTAwLXJlZ3VsYXRvci5jDQo+IGIvZHJp dmVycy9yZWd1bGF0b3IvcGZ1emUxMDAtcmVndWxhdG9yLmMNCj4gaW5kZXggOGQ5ZGJjYzc3NWVh Li5lMzg2ZTlhY2IzZjcgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvcmVndWxhdG9yL3BmdXplMTAw LXJlZ3VsYXRvci5jDQo+ICsrKyBiL2RyaXZlcnMvcmVndWxhdG9yL3BmdXplMTAwLXJlZ3VsYXRv ci5jDQo+IEBAIC0xNSw2ICsxNSw3IEBADQo+ICAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL3Bm dXplMTAwLmg+DQo+ICAjaW5jbHVkZSA8bGludXgvaTJjLmg+DQo+ICAjaW5jbHVkZSA8bGludXgv c2xhYi5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+DQpJcyBpdCBuZWNlc3Nhcnk/ DQo+ICAjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+DQo+IA0KPiAgI2RlZmluZSBQRlVaRV9OVU1S RUdTCQkxMjgNCj4gQEAgLTI5LDExICszMCwxNyBAQA0KPiANCj4gICNkZWZpbmUgUEZVWkUxMDBf Q09JTlZPTAkweDFhDQo+ICAjZGVmaW5lIFBGVVpFMTAwX1NXMUFCVk9MCTB4MjANCj4gKyNkZWZp bmUgUEZVWkUxMDBfU1cxQUJNT0RFCTB4MjMNCj4gICNkZWZpbmUgUEZVWkUxMDBfU1cxQ1ZPTAkw eDJlDQo+ICsjZGVmaW5lIFBGVVpFMTAwX1NXMUNNT0RFCTB4MzENCj4gICNkZWZpbmUgUEZVWkUx MDBfU1cyVk9MCQkweDM1DQo+ICsjZGVmaW5lIFBGVVpFMTAwX1NXMk1PREUJMHgzOA0KPiAgI2Rl ZmluZSBQRlVaRTEwMF9TVzNBVk9MCTB4M2MNCj4gKyNkZWZpbmUgUEZVWkUxMDBfU1czQU1PREUJ MHgzZg0KPiAgI2RlZmluZSBQRlVaRTEwMF9TVzNCVk9MCTB4NDMNCj4gKyNkZWZpbmUgUEZVWkUx MDBfU1czQk1PREUJMHg0Ng0KPiAgI2RlZmluZSBQRlVaRTEwMF9TVzRWT0wJCTB4NGENCj4gKyNk ZWZpbmUgUEZVWkUxMDBfU1c0TU9ERQkweDRkDQo+ICAjZGVmaW5lIFBGVVpFMTAwX1NXQlNUQ09O MQkweDY2DQo+ICAjZGVmaW5lIFBGVVpFMTAwX1ZSRUZERFJDT04JMHg2YQ0KPiAgI2RlZmluZSBQ RlVaRTEwMF9WU05WU1ZPTAkweDZiDQo+IEBAIC00NCw2ICs1MSwxMyBAQA0KPiAgI2RlZmluZSBQ RlVaRTEwMF9WR0VONVZPTAkweDcwDQo+ICAjZGVmaW5lIFBGVVpFMTAwX1ZHRU42Vk9MCTB4NzEN Cj4gDQo+ICsjZGVmaW5lIFBGVVpFMTAwX1NXeE1PREVfTUFTSwkweGYNCj4gKyNkZWZpbmUgUEZV WkUxMDBfU1d4TU9ERV9BUFNfQVBTCTB4OA0KPiArI2RlZmluZSBQRlVaRTEwMF9TV3hNT0RFX0FQ U19PRkYJMHg0DQo+ICsNCj4gKyNkZWZpbmUgUEZVWkUxMDBfVkdFTnhMUFdSCUJJVCg2KQ0KPiAr I2RlZmluZSBQRlVaRTEwMF9WR0VOeFNUQlkJQklUKDUpDQo+ICsNCj4gIGVudW0gY2hpcHMgeyBQ RlVaRTEwMCwgUEZVWkUyMDAsIFBGVVpFMzAwMCA9IDMgfTsNCj4gDQo+ICBzdHJ1Y3QgcGZ1emVf cmVndWxhdG9yIHsNCj4gQEAgLTQ5Miw2ICs1MDYsNjkgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm1hdGNoX29mX25vZGUoaW50DQo+IGluZGV4KSAgfSAgI2VuZGlmDQo+IA0K PiArc3RhdGljIHN0cnVjdCBwZnV6ZV9jaGlwICpzeXNwbV9wZnV6ZV9jaGlwOw0KPiArDQo+ICtz dGF0aWMgdm9pZCBwZnV6ZV9wb3dlcl9vZmZfcHJlcGFyZSh2b2lkKSANCj4gKwlkZXZfaW5mbyhz eXNwbV9wZnV6ZV9jaGlwLT5kZXYsICJDb25maWd1cmUgc3RhbmR5IG1vZGUgZm9yIHBvd2VyDQo+ ICtvZmYiKTsNCkFkZCAnaWYgKHN5c3BtX3BmdXplX2NoaXAgLT5jaGlwX2lkID09IFBGVVpFMTAw KSknIGhlcmUgaXMgZWFzeSBmb3IgZXh0ZW5kIA0KU3VwcG9ydCBvbiBwZnV6ZTIwMC8zMDAwLi4g aW4gdGhlIGZlYXR1cmUuDQo+ICsNCj4gKwkvKiBTd2l0Y2ggZnJvbSBkZWZhdWx0IG1vZGU6IEFQ Uy9BUFMgdG8gQVBTL09mZiAqLw0KPiArCXJlZ21hcF91cGRhdGVfYml0cyhzeXNwbV9wZnV6ZV9j aGlwLT5yZWdtYXAsDQo+IFBGVVpFMTAwX1NXMUFCTU9ERSwNCj4gKwkJCSAgIFBGVVpFMTAwX1NX eE1PREVfTUFTSywNCj4gUEZVWkUxMDBfU1d4TU9ERV9BUFNfT0ZGKTsNCj4gKwlyZWdtYXBfdXBk YXRlX2JpdHMoc3lzcG1fcGZ1emVfY2hpcC0+cmVnbWFwLA0KPiBQRlVaRTEwMF9TVzFDTU9ERSwN Cj4gKwkJCSAgIFBGVVpFMTAwX1NXeE1PREVfTUFTSywNCj4gUEZVWkUxMDBfU1d4TU9ERV9BUFNf T0ZGKTsNCj4gKwlyZWdtYXBfdXBkYXRlX2JpdHMoc3lzcG1fcGZ1emVfY2hpcC0+cmVnbWFwLCBQ RlVaRTEwMF9TVzJNT0RFLA0KPiArCQkJICAgUEZVWkUxMDBfU1d4TU9ERV9NQVNLLA0KPiBQRlVa RTEwMF9TV3hNT0RFX0FQU19PRkYpOw0KPiArCXJlZ21hcF91cGRhdGVfYml0cyhzeXNwbV9wZnV6 ZV9jaGlwLT5yZWdtYXAsDQo+IFBGVVpFMTAwX1NXM0FNT0RFLA0KPiArCQkJICAgUEZVWkUxMDBf U1d4TU9ERV9NQVNLLA0KPiBQRlVaRTEwMF9TV3hNT0RFX0FQU19PRkYpOw0KPiArCXJlZ21hcF91 cGRhdGVfYml0cyhzeXNwbV9wZnV6ZV9jaGlwLT5yZWdtYXAsDQo+IFBGVVpFMTAwX1NXM0JNT0RF LA0KPiArCQkJICAgUEZVWkUxMDBfU1d4TU9ERV9NQVNLLA0KPiBQRlVaRTEwMF9TV3hNT0RFX0FQ U19PRkYpOw0KPiArCXJlZ21hcF91cGRhdGVfYml0cyhzeXNwbV9wZnV6ZV9jaGlwLT5yZWdtYXAs IFBGVVpFMTAwX1NXNE1PREUsDQo+ICsJCQkgICBQRlVaRTEwMF9TV3hNT0RFX01BU0ssDQo+IFBG VVpFMTAwX1NXeE1PREVfQVBTX09GRik7DQo+ICsNCj4gKwlyZWdtYXBfdXBkYXRlX2JpdHMoc3lz cG1fcGZ1emVfY2hpcC0+cmVnbWFwLCBQRlVaRTEwMF9WR0VOMVZPTCwNCj4gKwkJCSAgIFBGVVpF MTAwX1ZHRU54TFBXUiB8IFBGVVpFMTAwX1ZHRU54U1RCWSwNCj4gKwkJCSAgIFBGVVpFMTAwX1ZH RU54U1RCWSk7DQo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKHN5c3BtX3BmdXplX2NoaXAtPnJlZ21h cCwgUEZVWkUxMDBfVkdFTjJWT0wsDQo+ICsJCQkgICBQRlVaRTEwMF9WR0VOeExQV1IgfCBQRlVa RTEwMF9WR0VOeFNUQlksDQo+ICsJCQkgICBQRlVaRTEwMF9WR0VOeFNUQlkpOw0KPiArCXJlZ21h cF91cGRhdGVfYml0cyhzeXNwbV9wZnV6ZV9jaGlwLT5yZWdtYXAsIFBGVVpFMTAwX1ZHRU4zVk9M LA0KPiArCQkJICAgUEZVWkUxMDBfVkdFTnhMUFdSIHwgUEZVWkUxMDBfVkdFTnhTVEJZLA0KPiAr CQkJICAgUEZVWkUxMDBfVkdFTnhTVEJZKTsNCj4gKwlyZWdtYXBfdXBkYXRlX2JpdHMoc3lzcG1f cGZ1emVfY2hpcC0+cmVnbWFwLCBQRlVaRTEwMF9WR0VONFZPTCwNCj4gKwkJCSAgIFBGVVpFMTAw X1ZHRU54TFBXUiB8IFBGVVpFMTAwX1ZHRU54U1RCWSwNCj4gKwkJCSAgIFBGVVpFMTAwX1ZHRU54 U1RCWSk7DQo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKHN5c3BtX3BmdXplX2NoaXAtPnJlZ21hcCwg UEZVWkUxMDBfVkdFTjVWT0wsDQo+ICsJCQkgICBQRlVaRTEwMF9WR0VOeExQV1IgfCBQRlVaRTEw MF9WR0VOeFNUQlksDQo+ICsJCQkgICBQRlVaRTEwMF9WR0VOeFNUQlkpOw0KPiArCXJlZ21hcF91 cGRhdGVfYml0cyhzeXNwbV9wZnV6ZV9jaGlwLT5yZWdtYXAsIFBGVVpFMTAwX1ZHRU42Vk9MLA0K PiArCQkJICAgUEZVWkUxMDBfVkdFTnhMUFdSIHwgUEZVWkUxMDBfVkdFTnhTVEJZLA0KPiArCQkJ ICAgUEZVWkUxMDBfVkdFTnhTVEJZKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludCBwZnV6ZV9w b3dlcl9vZmZfcHJlcGFyZV9pbml0KHN0cnVjdCBwZnV6ZV9jaGlwICpwZnV6ZV9jaGlwKQ0KPiAr ew0KPiArCWlmIChwZnV6ZV9jaGlwLT5jaGlwX2lkICE9IFBGVVpFMTAwKSB7DQo+ICsJCWRldl93 YXJuKHBmdXplX2NoaXAtPmRldiwgIlJlcXVlc3RlZCBwbV9wb3dlcl9vZmZfcHJlcGFyZQ0KPiBo YW5kbGVyIGZvciBub3Qgc3VwcG9ydGVkIGNoaXBcbiIpOw0KPiArCQlyZXR1cm4gLUVOT0RFVjsN Cj4gKwl9DQo+ICsNCj4gKwlpZiAocG1fcG93ZXJfb2ZmX3ByZXBhcmUpIHsNCj4gKwkJZGV2X3dh cm4ocGZ1emVfY2hpcC0+ZGV2LCAicG1fcG93ZXJfb2ZmX3ByZXBhcmUgaXMgYWxyZWFkeQ0KPiBy ZWdpc3RlcmVkLlxuIik7DQo+ICsJCXJldHVybiAtRUJVU1k7DQo+ICsJfQ0KPiArDQo+ICsJaWYg KHN5c3BtX3BmdXplX2NoaXApIHsNCj4gKwkJZGV2X3dhcm4ocGZ1emVfY2hpcC0+ZGV2LCAic3lz cG1fcGZ1emVfY2hpcCBpcyBhbHJlYWR5IHNldC5cbiIpOw0KPiArCQlyZXR1cm4gLUVCVVNZOw0K PiArCX0NCj4gKw0KPiArCXN5c3BtX3BmdXplX2NoaXAgPSBwZnV6ZV9jaGlwOw0KPiArCXBtX3Bv d2VyX29mZl9wcmVwYXJlID0gcGZ1emVfcG93ZXJfb2ZmX3ByZXBhcmU7DQo+ICsNCj4gKwlyZXR1 cm4gMDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGludCBwZnV6ZV9pZGVudGlmeShzdHJ1Y3QgcGZ1 emVfY2hpcCAqcGZ1emVfY2hpcCkgIHsNCj4gIAl1bnNpZ25lZCBpbnQgdmFsdWU7DQo+IEBAIC02 NjEsNiArNzM4LDIwIEBAIHN0YXRpYyBpbnQgcGZ1emUxMDBfcmVndWxhdG9yX3Byb2JlKHN0cnVj dCBpMmNfY2xpZW50DQo+ICpjbGllbnQsDQo+ICAJCX0NCj4gIAl9DQo+IA0KPiArCWlmIChvZl9w cm9wZXJ0eV9yZWFkX2Jvb2woY2xpZW50LT5kZXYub2Zfbm9kZSwNCj4gKwkJCQkgICJmc2wscG1p Yy1zdGJ5LXBvd2Vyb2ZmIikpDQo+ICsJCXJldHVybiBwZnV6ZV9wb3dlcl9vZmZfcHJlcGFyZV9p bml0KHBmdXplX2NoaXApOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQgcGZ1emUxMDBfcmVndWxhdG9yX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50 KSB7DQo+ICsJaWYgKHN5c3BtX3BmdXplX2NoaXApIHsNCj4gKwkJc3lzcG1fcGZ1emVfY2hpcCA9 IE5VTEw7DQo+ICsJCXBtX3Bvd2VyX29mZl9wcmVwYXJlID0gTlVMTDsNCj4gKwl9DQo+ICsNCj4g IAlyZXR1cm4gMDsNCj4gIH0NCj4gDQo+IEBAIC02NzEsNiArNzYyLDcgQEAgc3RhdGljIHN0cnVj dCBpMmNfZHJpdmVyIHBmdXplX2RyaXZlciA9IHsNCj4gIAkJLm9mX21hdGNoX3RhYmxlID0gcGZ1 emVfZHRfaWRzLA0KPiAgCX0sDQo+ICAJLnByb2JlID0gcGZ1emUxMDBfcmVndWxhdG9yX3Byb2Jl LA0KPiArCS5yZW1vdmUgPSBwZnV6ZTEwMF9yZWd1bGF0b3JfcmVtb3ZlLA0KPiAgfTsNCj4gIG1v ZHVsZV9pMmNfZHJpdmVyKHBmdXplX2RyaXZlcik7DQo+IA0KPiAtLQ0KPiAyLjE4LjANCg0K ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-27 9:32 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:32 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide > pm_power_off_prepare handler > > On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC > about state changes. In this case internal state of PMIC must be preconfigured > for upcomming state change. > It works fine with the current regulator framework, except with the power-off > case. > > This patch is providing an optional pm_power_off_prepare handler which will > configure standby state of the PMIC to disable all power lines. > > In my power consumption test on RIoTBoard, I got the following results: > power off without this patch: 320 mA > power off with this patch: 2 mA > suspend to ram: 40 mA > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ > 1 file changed, 92 insertions(+) > > diff --git a/drivers/regulator/pfuze100-regulator.c > b/drivers/regulator/pfuze100-regulator.c > index 8d9dbcc775ea..e386e9acb3f7 100644 > --- a/drivers/regulator/pfuze100-regulator.c > +++ b/drivers/regulator/pfuze100-regulator.c > @@ -15,6 +15,7 @@ > #include <linux/regulator/pfuze100.h> > #include <linux/i2c.h> > #include <linux/slab.h> > +#include <linux/kallsyms.h> Is it necessary? > #include <linux/regmap.h> > > #define PFUZE_NUMREGS 128 > @@ -29,11 +30,17 @@ > > #define PFUZE100_COINVOL 0x1a > #define PFUZE100_SW1ABVOL 0x20 > +#define PFUZE100_SW1ABMODE 0x23 > #define PFUZE100_SW1CVOL 0x2e > +#define PFUZE100_SW1CMODE 0x31 > #define PFUZE100_SW2VOL 0x35 > +#define PFUZE100_SW2MODE 0x38 > #define PFUZE100_SW3AVOL 0x3c > +#define PFUZE100_SW3AMODE 0x3f > #define PFUZE100_SW3BVOL 0x43 > +#define PFUZE100_SW3BMODE 0x46 > #define PFUZE100_SW4VOL 0x4a > +#define PFUZE100_SW4MODE 0x4d > #define PFUZE100_SWBSTCON1 0x66 > #define PFUZE100_VREFDDRCON 0x6a > #define PFUZE100_VSNVSVOL 0x6b > @@ -44,6 +51,13 @@ > #define PFUZE100_VGEN5VOL 0x70 > #define PFUZE100_VGEN6VOL 0x71 > > +#define PFUZE100_SWxMODE_MASK 0xf > +#define PFUZE100_SWxMODE_APS_APS 0x8 > +#define PFUZE100_SWxMODE_APS_OFF 0x4 > + > +#define PFUZE100_VGENxLPWR BIT(6) > +#define PFUZE100_VGENxSTBY BIT(5) > + > enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; > > struct pfuze_regulator { > @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int > index) } #endif > > +static struct pfuze_chip *syspm_pfuze_chip; > + > +static void pfuze_power_off_prepare(void) > + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power > +off"); Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend Support on pfuze200/3000.. in the feature. > + > + /* Switch from default mode: APS/APS to APS/Off */ > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW1ABMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW1CMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW3AMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, > PFUZE100_SW3BMODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, > + PFUZE100_SWxMODE_MASK, > PFUZE100_SWxMODE_APS_OFF); > + > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, > + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, > + PFUZE100_VGENxSTBY); > +} > + > +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) > +{ > + if (pfuze_chip->chip_id != PFUZE100) { > + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare > handler for not supported chip\n"); > + return -ENODEV; > + } > + > + if (pm_power_off_prepare) { > + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already > registered.\n"); > + return -EBUSY; > + } > + > + if (syspm_pfuze_chip) { > + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); > + return -EBUSY; > + } > + > + syspm_pfuze_chip = pfuze_chip; > + pm_power_off_prepare = pfuze_power_off_prepare; > + > + return 0; > +} > + > static int pfuze_identify(struct pfuze_chip *pfuze_chip) { > unsigned int value; > @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client > *client, > } > } > > + if (of_property_read_bool(client->dev.of_node, > + "fsl,pmic-stby-poweroff")) > + return pfuze_power_off_prepare_init(pfuze_chip); > + > + return 0; > +} > + > +static int pfuze100_regulator_remove(struct i2c_client *client) { > + if (syspm_pfuze_chip) { > + syspm_pfuze_chip = NULL; > + pm_power_off_prepare = NULL; > + } > + > return 0; > } > > @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { > .of_match_table = pfuze_dt_ids, > }, > .probe = pfuze100_regulator_probe, > + .remove = pfuze100_regulator_remove, > }; > module_i2c_driver(pfuze_driver); > > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler 2018-07-27 9:32 ` Robin Gong (?) @ 2018-07-30 7:50 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:50 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 7233 bytes --] On 27.07.2018 11:32, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide >> pm_power_off_prepare handler >> >> On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC >> about state changes. In this case internal state of PMIC must be preconfigured >> for upcomming state change. >> It works fine with the current regulator framework, except with the power-off >> case. >> >> This patch is providing an optional pm_power_off_prepare handler which will >> configure standby state of the PMIC to disable all power lines. >> >> In my power consumption test on RIoTBoard, I got the following results: >> power off without this patch: 320 mA >> power off with this patch: 2 mA >> suspend to ram: 40 mA >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ >> 1 file changed, 92 insertions(+) >> >> diff --git a/drivers/regulator/pfuze100-regulator.c >> b/drivers/regulator/pfuze100-regulator.c >> index 8d9dbcc775ea..e386e9acb3f7 100644 >> --- a/drivers/regulator/pfuze100-regulator.c >> +++ b/drivers/regulator/pfuze100-regulator.c >> @@ -15,6 +15,7 @@ >> #include <linux/regulator/pfuze100.h> >> #include <linux/i2c.h> >> #include <linux/slab.h> >> +#include <linux/kallsyms.h> > Is it necessary? yes, for pm_power_off_prepare >> #include <linux/regmap.h> >> >> #define PFUZE_NUMREGS 128 >> @@ -29,11 +30,17 @@ >> >> #define PFUZE100_COINVOL 0x1a >> #define PFUZE100_SW1ABVOL 0x20 >> +#define PFUZE100_SW1ABMODE 0x23 >> #define PFUZE100_SW1CVOL 0x2e >> +#define PFUZE100_SW1CMODE 0x31 >> #define PFUZE100_SW2VOL 0x35 >> +#define PFUZE100_SW2MODE 0x38 >> #define PFUZE100_SW3AVOL 0x3c >> +#define PFUZE100_SW3AMODE 0x3f >> #define PFUZE100_SW3BVOL 0x43 >> +#define PFUZE100_SW3BMODE 0x46 >> #define PFUZE100_SW4VOL 0x4a >> +#define PFUZE100_SW4MODE 0x4d >> #define PFUZE100_SWBSTCON1 0x66 >> #define PFUZE100_VREFDDRCON 0x6a >> #define PFUZE100_VSNVSVOL 0x6b >> @@ -44,6 +51,13 @@ >> #define PFUZE100_VGEN5VOL 0x70 >> #define PFUZE100_VGEN6VOL 0x71 >> >> +#define PFUZE100_SWxMODE_MASK 0xf >> +#define PFUZE100_SWxMODE_APS_APS 0x8 >> +#define PFUZE100_SWxMODE_APS_OFF 0x4 >> + >> +#define PFUZE100_VGENxLPWR BIT(6) >> +#define PFUZE100_VGENxSTBY BIT(5) >> + >> enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; >> >> struct pfuze_regulator { >> @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int >> index) } #endif >> >> +static struct pfuze_chip *syspm_pfuze_chip; >> + >> +static void pfuze_power_off_prepare(void) >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power >> +off"); > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend > Support on pfuze200/3000.. in the feature. ok. >> + >> + /* Switch from default mode: APS/APS to APS/Off */ >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1ABMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1CMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3AMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3BMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> +} >> + >> +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) >> +{ >> + if (pfuze_chip->chip_id != PFUZE100) { >> + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare >> handler for not supported chip\n"); >> + return -ENODEV; >> + } >> + >> + if (pm_power_off_prepare) { >> + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already >> registered.\n"); >> + return -EBUSY; >> + } >> + >> + if (syspm_pfuze_chip) { >> + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); >> + return -EBUSY; >> + } >> + >> + syspm_pfuze_chip = pfuze_chip; >> + pm_power_off_prepare = pfuze_power_off_prepare; >> + >> + return 0; >> +} >> + >> static int pfuze_identify(struct pfuze_chip *pfuze_chip) { >> unsigned int value; >> @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client >> *client, >> } >> } >> >> + if (of_property_read_bool(client->dev.of_node, >> + "fsl,pmic-stby-poweroff")) >> + return pfuze_power_off_prepare_init(pfuze_chip); >> + >> + return 0; >> +} >> + >> +static int pfuze100_regulator_remove(struct i2c_client *client) { >> + if (syspm_pfuze_chip) { >> + syspm_pfuze_chip = NULL; >> + pm_power_off_prepare = NULL; >> + } >> + >> return 0; >> } >> >> @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { >> .of_match_table = pfuze_dt_ids, >> }, >> .probe = pfuze100_regulator_probe, >> + .remove = pfuze100_regulator_remove, >> }; >> module_i2c_driver(pfuze_driver); >> >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-30 7:50 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:50 UTC (permalink / raw) To: linux-arm-kernel On 27.07.2018 11:32, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] >> Sent: 2018?7?26? 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide >> pm_power_off_prepare handler >> >> On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC >> about state changes. In this case internal state of PMIC must be preconfigured >> for upcomming state change. >> It works fine with the current regulator framework, except with the power-off >> case. >> >> This patch is providing an optional pm_power_off_prepare handler which will >> configure standby state of the PMIC to disable all power lines. >> >> In my power consumption test on RIoTBoard, I got the following results: >> power off without this patch: 320 mA >> power off with this patch: 2 mA >> suspend to ram: 40 mA >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ >> 1 file changed, 92 insertions(+) >> >> diff --git a/drivers/regulator/pfuze100-regulator.c >> b/drivers/regulator/pfuze100-regulator.c >> index 8d9dbcc775ea..e386e9acb3f7 100644 >> --- a/drivers/regulator/pfuze100-regulator.c >> +++ b/drivers/regulator/pfuze100-regulator.c >> @@ -15,6 +15,7 @@ >> #include <linux/regulator/pfuze100.h> >> #include <linux/i2c.h> >> #include <linux/slab.h> >> +#include <linux/kallsyms.h> > Is it necessary? yes, for pm_power_off_prepare >> #include <linux/regmap.h> >> >> #define PFUZE_NUMREGS 128 >> @@ -29,11 +30,17 @@ >> >> #define PFUZE100_COINVOL 0x1a >> #define PFUZE100_SW1ABVOL 0x20 >> +#define PFUZE100_SW1ABMODE 0x23 >> #define PFUZE100_SW1CVOL 0x2e >> +#define PFUZE100_SW1CMODE 0x31 >> #define PFUZE100_SW2VOL 0x35 >> +#define PFUZE100_SW2MODE 0x38 >> #define PFUZE100_SW3AVOL 0x3c >> +#define PFUZE100_SW3AMODE 0x3f >> #define PFUZE100_SW3BVOL 0x43 >> +#define PFUZE100_SW3BMODE 0x46 >> #define PFUZE100_SW4VOL 0x4a >> +#define PFUZE100_SW4MODE 0x4d >> #define PFUZE100_SWBSTCON1 0x66 >> #define PFUZE100_VREFDDRCON 0x6a >> #define PFUZE100_VSNVSVOL 0x6b >> @@ -44,6 +51,13 @@ >> #define PFUZE100_VGEN5VOL 0x70 >> #define PFUZE100_VGEN6VOL 0x71 >> >> +#define PFUZE100_SWxMODE_MASK 0xf >> +#define PFUZE100_SWxMODE_APS_APS 0x8 >> +#define PFUZE100_SWxMODE_APS_OFF 0x4 >> + >> +#define PFUZE100_VGENxLPWR BIT(6) >> +#define PFUZE100_VGENxSTBY BIT(5) >> + >> enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; >> >> struct pfuze_regulator { >> @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int >> index) } #endif >> >> +static struct pfuze_chip *syspm_pfuze_chip; >> + >> +static void pfuze_power_off_prepare(void) >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power >> +off"); > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend > Support on pfuze200/3000.. in the feature. ok. >> + >> + /* Switch from default mode: APS/APS to APS/Off */ >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1ABMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1CMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3AMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3BMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> +} >> + >> +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) >> +{ >> + if (pfuze_chip->chip_id != PFUZE100) { >> + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare >> handler for not supported chip\n"); >> + return -ENODEV; >> + } >> + >> + if (pm_power_off_prepare) { >> + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already >> registered.\n"); >> + return -EBUSY; >> + } >> + >> + if (syspm_pfuze_chip) { >> + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); >> + return -EBUSY; >> + } >> + >> + syspm_pfuze_chip = pfuze_chip; >> + pm_power_off_prepare = pfuze_power_off_prepare; >> + >> + return 0; >> +} >> + >> static int pfuze_identify(struct pfuze_chip *pfuze_chip) { >> unsigned int value; >> @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client >> *client, >> } >> } >> >> + if (of_property_read_bool(client->dev.of_node, >> + "fsl,pmic-stby-poweroff")) >> + return pfuze_power_off_prepare_init(pfuze_chip); >> + >> + return 0; >> +} >> + >> +static int pfuze100_regulator_remove(struct i2c_client *client) { >> + if (syspm_pfuze_chip) { >> + syspm_pfuze_chip = NULL; >> + pm_power_off_prepare = NULL; >> + } >> + >> return 0; >> } >> >> @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { >> .of_match_table = pfuze_dt_ids, >> }, >> .probe = pfuze100_regulator_probe, >> + .remove = pfuze100_regulator_remove, >> }; >> module_i2c_driver(pfuze_driver); >> >> -- >> 2.18.0 > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180730/83e11652/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-30 7:50 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:50 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 7233 bytes --] On 27.07.2018 11:32, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide >> pm_power_off_prepare handler >> >> On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC >> about state changes. In this case internal state of PMIC must be preconfigured >> for upcomming state change. >> It works fine with the current regulator framework, except with the power-off >> case. >> >> This patch is providing an optional pm_power_off_prepare handler which will >> configure standby state of the PMIC to disable all power lines. >> >> In my power consumption test on RIoTBoard, I got the following results: >> power off without this patch: 320 mA >> power off with this patch: 2 mA >> suspend to ram: 40 mA >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ >> 1 file changed, 92 insertions(+) >> >> diff --git a/drivers/regulator/pfuze100-regulator.c >> b/drivers/regulator/pfuze100-regulator.c >> index 8d9dbcc775ea..e386e9acb3f7 100644 >> --- a/drivers/regulator/pfuze100-regulator.c >> +++ b/drivers/regulator/pfuze100-regulator.c >> @@ -15,6 +15,7 @@ >> #include <linux/regulator/pfuze100.h> >> #include <linux/i2c.h> >> #include <linux/slab.h> >> +#include <linux/kallsyms.h> > Is it necessary? yes, for pm_power_off_prepare >> #include <linux/regmap.h> >> >> #define PFUZE_NUMREGS 128 >> @@ -29,11 +30,17 @@ >> >> #define PFUZE100_COINVOL 0x1a >> #define PFUZE100_SW1ABVOL 0x20 >> +#define PFUZE100_SW1ABMODE 0x23 >> #define PFUZE100_SW1CVOL 0x2e >> +#define PFUZE100_SW1CMODE 0x31 >> #define PFUZE100_SW2VOL 0x35 >> +#define PFUZE100_SW2MODE 0x38 >> #define PFUZE100_SW3AVOL 0x3c >> +#define PFUZE100_SW3AMODE 0x3f >> #define PFUZE100_SW3BVOL 0x43 >> +#define PFUZE100_SW3BMODE 0x46 >> #define PFUZE100_SW4VOL 0x4a >> +#define PFUZE100_SW4MODE 0x4d >> #define PFUZE100_SWBSTCON1 0x66 >> #define PFUZE100_VREFDDRCON 0x6a >> #define PFUZE100_VSNVSVOL 0x6b >> @@ -44,6 +51,13 @@ >> #define PFUZE100_VGEN5VOL 0x70 >> #define PFUZE100_VGEN6VOL 0x71 >> >> +#define PFUZE100_SWxMODE_MASK 0xf >> +#define PFUZE100_SWxMODE_APS_APS 0x8 >> +#define PFUZE100_SWxMODE_APS_OFF 0x4 >> + >> +#define PFUZE100_VGENxLPWR BIT(6) >> +#define PFUZE100_VGENxSTBY BIT(5) >> + >> enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; >> >> struct pfuze_regulator { >> @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int >> index) } #endif >> >> +static struct pfuze_chip *syspm_pfuze_chip; >> + >> +static void pfuze_power_off_prepare(void) >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power >> +off"); > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend > Support on pfuze200/3000.. in the feature. ok. >> + >> + /* Switch from default mode: APS/APS to APS/Off */ >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1ABMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1CMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3AMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3BMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> +} >> + >> +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) >> +{ >> + if (pfuze_chip->chip_id != PFUZE100) { >> + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare >> handler for not supported chip\n"); >> + return -ENODEV; >> + } >> + >> + if (pm_power_off_prepare) { >> + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already >> registered.\n"); >> + return -EBUSY; >> + } >> + >> + if (syspm_pfuze_chip) { >> + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); >> + return -EBUSY; >> + } >> + >> + syspm_pfuze_chip = pfuze_chip; >> + pm_power_off_prepare = pfuze_power_off_prepare; >> + >> + return 0; >> +} >> + >> static int pfuze_identify(struct pfuze_chip *pfuze_chip) { >> unsigned int value; >> @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client >> *client, >> } >> } >> >> + if (of_property_read_bool(client->dev.of_node, >> + "fsl,pmic-stby-poweroff")) >> + return pfuze_power_off_prepare_init(pfuze_chip); >> + >> + return 0; >> +} >> + >> +static int pfuze100_regulator_remove(struct i2c_client *client) { >> + if (syspm_pfuze_chip) { >> + syspm_pfuze_chip = NULL; >> + pm_power_off_prepare = NULL; >> + } >> + >> return 0; >> } >> >> @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { >> .of_match_table = pfuze_dt_ids, >> }, >> .probe = pfuze100_regulator_probe, >> + .remove = pfuze100_regulator_remove, >> }; >> module_i2c_driver(pfuze_driver); >> >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler 2018-07-30 7:50 ` Oleksij Rempel (?) (?) @ 2018-07-30 10:24 ` Mark Brown -1 siblings, 0 replies; 95+ messages in thread From: Mark Brown @ 2018-07-30 10:24 UTC (permalink / raw) To: Oleksij Rempel Cc: Robin Gong, Shawn Guo, Rafael J. Wysocki, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1: Type: text/plain, Size: 365 bytes --] On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: > On 27.07.2018 11:32, Robin Gong wrote: > >> #include <linux/slab.h> > >> +#include <linux/kallsyms.h> > > Is it necessary? > yes, for pm_power_off_prepare That's a *weird* header to have to use for that symbol, are you sure there isn't something more specific - if there isn't there should be. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-30 10:24 ` Mark Brown 0 siblings, 0 replies; 95+ messages in thread From: Mark Brown @ 2018-07-30 10:24 UTC (permalink / raw) To: linux-arm-kernel On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: > On 27.07.2018 11:32, Robin Gong wrote: > >> #include <linux/slab.h> > >> +#include <linux/kallsyms.h> > > Is it necessary? > yes, for pm_power_off_prepare That's a *weird* header to have to use for that symbol, are you sure there isn't something more specific - if there isn't there should be. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180730/82a8afad/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-30 10:24 ` Mark Brown 0 siblings, 0 replies; 95+ messages in thread From: Mark Brown @ 2018-07-30 10:24 UTC (permalink / raw) To: Oleksij Rempel Cc: Robin Gong, Shawn Guo, Rafael J. Wysocki, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1: Type: text/plain, Size: 365 bytes --] On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: > On 27.07.2018 11:32, Robin Gong wrote: > >> #include <linux/slab.h> > >> +#include <linux/kallsyms.h> > > Is it necessary? > yes, for pm_power_off_prepare That's a *weird* header to have to use for that symbol, are you sure there isn't something more specific - if there isn't there should be. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-07-30 10:24 ` Mark Brown 0 siblings, 0 replies; 95+ messages in thread From: Mark Brown @ 2018-07-30 10:24 UTC (permalink / raw) To: Oleksij Rempel Cc: Mark Rutland, devicetree, Leonard Crestez, Michael Turquette, Rafael J. Wysocki, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Robin Gong, Shawn Guo, linux-clk, linux-arm-kernel [-- Attachment #1.1: Type: text/plain, Size: 365 bytes --] On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: > On 27.07.2018 11:32, Robin Gong wrote: > >> #include <linux/slab.h> > >> +#include <linux/kallsyms.h> > > Is it necessary? > yes, for pm_power_off_prepare That's a *weird* header to have to use for that symbol, are you sure there isn't something more specific - if there isn't there should be. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] [-- Attachment #2: Type: text/plain, Size: 176 bytes --] _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler 2018-07-30 10:24 ` Mark Brown (?) (?) @ 2018-08-02 8:11 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:11 UTC (permalink / raw) To: Mark Brown Cc: Mark Rutland, devicetree, Leonard Crestez, Michael Turquette, Rafael J. Wysocki, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Robin Gong, Shawn Guo, linux-clk, linux-arm-kernel [-- Attachment #1.1: Type: text/plain, Size: 468 bytes --] On 30.07.2018 12:24, Mark Brown wrote: > On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: >> On 27.07.2018 11:32, Robin Gong wrote: > >>>> #include <linux/slab.h> >>>> +#include <linux/kallsyms.h> > >>> Is it necessary? > >> yes, for pm_power_off_prepare > > That's a *weird* header to have to use for that symbol, are you sure > there isn't something more specific - if there isn't there should be. Hm... you right. Removed. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-02 8:11 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:11 UTC (permalink / raw) To: linux-arm-kernel On 30.07.2018 12:24, Mark Brown wrote: > On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: >> On 27.07.2018 11:32, Robin Gong wrote: > >>>> #include <linux/slab.h> >>>> +#include <linux/kallsyms.h> > >>> Is it necessary? > >> yes, for pm_power_off_prepare > > That's a *weird* header to have to use for that symbol, are you sure > there isn't something more specific - if there isn't there should be. Hm... you right. Removed. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180802/ea48d4ed/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-02 8:11 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:11 UTC (permalink / raw) To: Mark Brown Cc: Mark Rutland, devicetree, Leonard Crestez, Michael Turquette, Rafael J. Wysocki, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Robin Gong, Shawn Guo, linux-clk, linux-arm-kernel [-- Attachment #1.1: Type: text/plain, Size: 468 bytes --] On 30.07.2018 12:24, Mark Brown wrote: > On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: >> On 27.07.2018 11:32, Robin Gong wrote: > >>>> #include <linux/slab.h> >>>> +#include <linux/kallsyms.h> > >>> Is it necessary? > >> yes, for pm_power_off_prepare > > That's a *weird* header to have to use for that symbol, are you sure > there isn't something more specific - if there isn't there should be. Hm... you right. Removed. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-02 8:11 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:11 UTC (permalink / raw) To: Mark Brown Cc: Mark Rutland, devicetree, Robin Gong, linux-clk, Michael Turquette, Rafael J. Wysocki, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, dl-linux-imx, kernel, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, Shawn Guo, A.s. Dong, linux-arm-kernel [-- Attachment #1.1.1: Type: text/plain, Size: 468 bytes --] On 30.07.2018 12:24, Mark Brown wrote: > On Mon, Jul 30, 2018 at 09:50:55AM +0200, Oleksij Rempel wrote: >> On 27.07.2018 11:32, Robin Gong wrote: > >>>> #include <linux/slab.h> >>>> +#include <linux/kallsyms.h> > >>> Is it necessary? > >> yes, for pm_power_off_prepare > > That's a *weird* header to have to use for that symbol, are you sure > there isn't something more specific - if there isn't there should be. Hm... you right. Removed. [-- Attachment #1.2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] [-- Attachment #2: Type: text/plain, Size: 176 bytes --] _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler 2018-07-27 9:32 ` Robin Gong (?) @ 2018-08-02 8:16 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:16 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 7541 bytes --] On 27.07.2018 11:32, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide >> pm_power_off_prepare handler >> >> On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC >> about state changes. In this case internal state of PMIC must be preconfigured >> for upcomming state change. >> It works fine with the current regulator framework, except with the power-off >> case. >> >> This patch is providing an optional pm_power_off_prepare handler which will >> configure standby state of the PMIC to disable all power lines. >> >> In my power consumption test on RIoTBoard, I got the following results: >> power off without this patch: 320 mA >> power off with this patch: 2 mA >> suspend to ram: 40 mA >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ >> 1 file changed, 92 insertions(+) >> >> diff --git a/drivers/regulator/pfuze100-regulator.c >> b/drivers/regulator/pfuze100-regulator.c >> index 8d9dbcc775ea..e386e9acb3f7 100644 >> --- a/drivers/regulator/pfuze100-regulator.c >> +++ b/drivers/regulator/pfuze100-regulator.c >> @@ -15,6 +15,7 @@ >> #include <linux/regulator/pfuze100.h> >> #include <linux/i2c.h> >> #include <linux/slab.h> >> +#include <linux/kallsyms.h> > Is it necessary? >> #include <linux/regmap.h> >> >> #define PFUZE_NUMREGS 128 >> @@ -29,11 +30,17 @@ >> >> #define PFUZE100_COINVOL 0x1a >> #define PFUZE100_SW1ABVOL 0x20 >> +#define PFUZE100_SW1ABMODE 0x23 >> #define PFUZE100_SW1CVOL 0x2e >> +#define PFUZE100_SW1CMODE 0x31 >> #define PFUZE100_SW2VOL 0x35 >> +#define PFUZE100_SW2MODE 0x38 >> #define PFUZE100_SW3AVOL 0x3c >> +#define PFUZE100_SW3AMODE 0x3f >> #define PFUZE100_SW3BVOL 0x43 >> +#define PFUZE100_SW3BMODE 0x46 >> #define PFUZE100_SW4VOL 0x4a >> +#define PFUZE100_SW4MODE 0x4d >> #define PFUZE100_SWBSTCON1 0x66 >> #define PFUZE100_VREFDDRCON 0x6a >> #define PFUZE100_VSNVSVOL 0x6b >> @@ -44,6 +51,13 @@ >> #define PFUZE100_VGEN5VOL 0x70 >> #define PFUZE100_VGEN6VOL 0x71 >> >> +#define PFUZE100_SWxMODE_MASK 0xf >> +#define PFUZE100_SWxMODE_APS_APS 0x8 >> +#define PFUZE100_SWxMODE_APS_OFF 0x4 >> + >> +#define PFUZE100_VGENxLPWR BIT(6) >> +#define PFUZE100_VGENxSTBY BIT(5) >> + >> enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; >> >> struct pfuze_regulator { >> @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int >> index) } #endif >> >> +static struct pfuze_chip *syspm_pfuze_chip; >> + >> +static void pfuze_power_off_prepare(void) >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power >> +off"); > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend > Support on pfuze200/3000.. in the feature. There is already: static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) { if (pfuze_chip->chip_id != PFUZE100) { dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n"); return -ENODEV; } No need to add it in pfuze_power_off_prepare() >> + >> + /* Switch from default mode: APS/APS to APS/Off */ >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1ABMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1CMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3AMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3BMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> +} >> + >> +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) >> +{ >> + if (pfuze_chip->chip_id != PFUZE100) { >> + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare >> handler for not supported chip\n"); >> + return -ENODEV; >> + } >> + >> + if (pm_power_off_prepare) { >> + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already >> registered.\n"); >> + return -EBUSY; >> + } >> + >> + if (syspm_pfuze_chip) { >> + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); >> + return -EBUSY; >> + } >> + >> + syspm_pfuze_chip = pfuze_chip; >> + pm_power_off_prepare = pfuze_power_off_prepare; >> + >> + return 0; >> +} >> + >> static int pfuze_identify(struct pfuze_chip *pfuze_chip) { >> unsigned int value; >> @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client >> *client, >> } >> } >> >> + if (of_property_read_bool(client->dev.of_node, >> + "fsl,pmic-stby-poweroff")) >> + return pfuze_power_off_prepare_init(pfuze_chip); >> + >> + return 0; >> +} >> + >> +static int pfuze100_regulator_remove(struct i2c_client *client) { >> + if (syspm_pfuze_chip) { >> + syspm_pfuze_chip = NULL; >> + pm_power_off_prepare = NULL; >> + } >> + >> return 0; >> } >> >> @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { >> .of_match_table = pfuze_dt_ids, >> }, >> .probe = pfuze100_regulator_probe, >> + .remove = pfuze100_regulator_remove, >> }; >> module_i2c_driver(pfuze_driver); >> >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-02 8:16 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:16 UTC (permalink / raw) To: linux-arm-kernel On 27.07.2018 11:32, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] >> Sent: 2018?7?26? 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide >> pm_power_off_prepare handler >> >> On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC >> about state changes. In this case internal state of PMIC must be preconfigured >> for upcomming state change. >> It works fine with the current regulator framework, except with the power-off >> case. >> >> This patch is providing an optional pm_power_off_prepare handler which will >> configure standby state of the PMIC to disable all power lines. >> >> In my power consumption test on RIoTBoard, I got the following results: >> power off without this patch: 320 mA >> power off with this patch: 2 mA >> suspend to ram: 40 mA >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ >> 1 file changed, 92 insertions(+) >> >> diff --git a/drivers/regulator/pfuze100-regulator.c >> b/drivers/regulator/pfuze100-regulator.c >> index 8d9dbcc775ea..e386e9acb3f7 100644 >> --- a/drivers/regulator/pfuze100-regulator.c >> +++ b/drivers/regulator/pfuze100-regulator.c >> @@ -15,6 +15,7 @@ >> #include <linux/regulator/pfuze100.h> >> #include <linux/i2c.h> >> #include <linux/slab.h> >> +#include <linux/kallsyms.h> > Is it necessary? >> #include <linux/regmap.h> >> >> #define PFUZE_NUMREGS 128 >> @@ -29,11 +30,17 @@ >> >> #define PFUZE100_COINVOL 0x1a >> #define PFUZE100_SW1ABVOL 0x20 >> +#define PFUZE100_SW1ABMODE 0x23 >> #define PFUZE100_SW1CVOL 0x2e >> +#define PFUZE100_SW1CMODE 0x31 >> #define PFUZE100_SW2VOL 0x35 >> +#define PFUZE100_SW2MODE 0x38 >> #define PFUZE100_SW3AVOL 0x3c >> +#define PFUZE100_SW3AMODE 0x3f >> #define PFUZE100_SW3BVOL 0x43 >> +#define PFUZE100_SW3BMODE 0x46 >> #define PFUZE100_SW4VOL 0x4a >> +#define PFUZE100_SW4MODE 0x4d >> #define PFUZE100_SWBSTCON1 0x66 >> #define PFUZE100_VREFDDRCON 0x6a >> #define PFUZE100_VSNVSVOL 0x6b >> @@ -44,6 +51,13 @@ >> #define PFUZE100_VGEN5VOL 0x70 >> #define PFUZE100_VGEN6VOL 0x71 >> >> +#define PFUZE100_SWxMODE_MASK 0xf >> +#define PFUZE100_SWxMODE_APS_APS 0x8 >> +#define PFUZE100_SWxMODE_APS_OFF 0x4 >> + >> +#define PFUZE100_VGENxLPWR BIT(6) >> +#define PFUZE100_VGENxSTBY BIT(5) >> + >> enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; >> >> struct pfuze_regulator { >> @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int >> index) } #endif >> >> +static struct pfuze_chip *syspm_pfuze_chip; >> + >> +static void pfuze_power_off_prepare(void) >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power >> +off"); > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend > Support on pfuze200/3000.. in the feature. There is already: static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) { if (pfuze_chip->chip_id != PFUZE100) { dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n"); return -ENODEV; } No need to add it in pfuze_power_off_prepare() >> + >> + /* Switch from default mode: APS/APS to APS/Off */ >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1ABMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1CMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3AMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3BMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> +} >> + >> +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) >> +{ >> + if (pfuze_chip->chip_id != PFUZE100) { >> + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare >> handler for not supported chip\n"); >> + return -ENODEV; >> + } >> + >> + if (pm_power_off_prepare) { >> + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already >> registered.\n"); >> + return -EBUSY; >> + } >> + >> + if (syspm_pfuze_chip) { >> + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); >> + return -EBUSY; >> + } >> + >> + syspm_pfuze_chip = pfuze_chip; >> + pm_power_off_prepare = pfuze_power_off_prepare; >> + >> + return 0; >> +} >> + >> static int pfuze_identify(struct pfuze_chip *pfuze_chip) { >> unsigned int value; >> @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client >> *client, >> } >> } >> >> + if (of_property_read_bool(client->dev.of_node, >> + "fsl,pmic-stby-poweroff")) >> + return pfuze_power_off_prepare_init(pfuze_chip); >> + >> + return 0; >> +} >> + >> +static int pfuze100_regulator_remove(struct i2c_client *client) { >> + if (syspm_pfuze_chip) { >> + syspm_pfuze_chip = NULL; >> + pm_power_off_prepare = NULL; >> + } >> + >> return 0; >> } >> >> @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { >> .of_match_table = pfuze_dt_ids, >> }, >> .probe = pfuze100_regulator_probe, >> + .remove = pfuze100_regulator_remove, >> }; >> module_i2c_driver(pfuze_driver); >> >> -- >> 2.18.0 > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180802/37a619b0/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-02 8:16 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:16 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 7541 bytes --] On 27.07.2018 11:32, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 5/6] regulator: pfuze100-regulator: provide >> pm_power_off_prepare handler >> >> On some boards the SoC can use one pin "PMIC_STBY_REQ" to notify th PMIC >> about state changes. In this case internal state of PMIC must be preconfigured >> for upcomming state change. >> It works fine with the current regulator framework, except with the power-off >> case. >> >> This patch is providing an optional pm_power_off_prepare handler which will >> configure standby state of the PMIC to disable all power lines. >> >> In my power consumption test on RIoTBoard, I got the following results: >> power off without this patch: 320 mA >> power off with this patch: 2 mA >> suspend to ram: 40 mA >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> drivers/regulator/pfuze100-regulator.c | 92 ++++++++++++++++++++++++++ >> 1 file changed, 92 insertions(+) >> >> diff --git a/drivers/regulator/pfuze100-regulator.c >> b/drivers/regulator/pfuze100-regulator.c >> index 8d9dbcc775ea..e386e9acb3f7 100644 >> --- a/drivers/regulator/pfuze100-regulator.c >> +++ b/drivers/regulator/pfuze100-regulator.c >> @@ -15,6 +15,7 @@ >> #include <linux/regulator/pfuze100.h> >> #include <linux/i2c.h> >> #include <linux/slab.h> >> +#include <linux/kallsyms.h> > Is it necessary? >> #include <linux/regmap.h> >> >> #define PFUZE_NUMREGS 128 >> @@ -29,11 +30,17 @@ >> >> #define PFUZE100_COINVOL 0x1a >> #define PFUZE100_SW1ABVOL 0x20 >> +#define PFUZE100_SW1ABMODE 0x23 >> #define PFUZE100_SW1CVOL 0x2e >> +#define PFUZE100_SW1CMODE 0x31 >> #define PFUZE100_SW2VOL 0x35 >> +#define PFUZE100_SW2MODE 0x38 >> #define PFUZE100_SW3AVOL 0x3c >> +#define PFUZE100_SW3AMODE 0x3f >> #define PFUZE100_SW3BVOL 0x43 >> +#define PFUZE100_SW3BMODE 0x46 >> #define PFUZE100_SW4VOL 0x4a >> +#define PFUZE100_SW4MODE 0x4d >> #define PFUZE100_SWBSTCON1 0x66 >> #define PFUZE100_VREFDDRCON 0x6a >> #define PFUZE100_VSNVSVOL 0x6b >> @@ -44,6 +51,13 @@ >> #define PFUZE100_VGEN5VOL 0x70 >> #define PFUZE100_VGEN6VOL 0x71 >> >> +#define PFUZE100_SWxMODE_MASK 0xf >> +#define PFUZE100_SWxMODE_APS_APS 0x8 >> +#define PFUZE100_SWxMODE_APS_OFF 0x4 >> + >> +#define PFUZE100_VGENxLPWR BIT(6) >> +#define PFUZE100_VGENxSTBY BIT(5) >> + >> enum chips { PFUZE100, PFUZE200, PFUZE3000 = 3 }; >> >> struct pfuze_regulator { >> @@ -492,6 +506,69 @@ static inline struct device_node *match_of_node(int >> index) } #endif >> >> +static struct pfuze_chip *syspm_pfuze_chip; >> + >> +static void pfuze_power_off_prepare(void) >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power >> +off"); > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for extend > Support on pfuze200/3000.. in the feature. There is already: static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) { if (pfuze_chip->chip_id != PFUZE100) { dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n"); return -ENODEV; } No need to add it in pfuze_power_off_prepare() >> + >> + /* Switch from default mode: APS/APS to APS/Off */ >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1ABMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW1CMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW2MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3AMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, >> PFUZE100_SW3BMODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_SW4MODE, >> + PFUZE100_SWxMODE_MASK, >> PFUZE100_SWxMODE_APS_OFF); >> + >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN1VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN2VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN3VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN4VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN5VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> + regmap_update_bits(syspm_pfuze_chip->regmap, PFUZE100_VGEN6VOL, >> + PFUZE100_VGENxLPWR | PFUZE100_VGENxSTBY, >> + PFUZE100_VGENxSTBY); >> +} >> + >> +static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) >> +{ >> + if (pfuze_chip->chip_id != PFUZE100) { >> + dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare >> handler for not supported chip\n"); >> + return -ENODEV; >> + } >> + >> + if (pm_power_off_prepare) { >> + dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already >> registered.\n"); >> + return -EBUSY; >> + } >> + >> + if (syspm_pfuze_chip) { >> + dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); >> + return -EBUSY; >> + } >> + >> + syspm_pfuze_chip = pfuze_chip; >> + pm_power_off_prepare = pfuze_power_off_prepare; >> + >> + return 0; >> +} >> + >> static int pfuze_identify(struct pfuze_chip *pfuze_chip) { >> unsigned int value; >> @@ -661,6 +738,20 @@ static int pfuze100_regulator_probe(struct i2c_client >> *client, >> } >> } >> >> + if (of_property_read_bool(client->dev.of_node, >> + "fsl,pmic-stby-poweroff")) >> + return pfuze_power_off_prepare_init(pfuze_chip); >> + >> + return 0; >> +} >> + >> +static int pfuze100_regulator_remove(struct i2c_client *client) { >> + if (syspm_pfuze_chip) { >> + syspm_pfuze_chip = NULL; >> + pm_power_off_prepare = NULL; >> + } >> + >> return 0; >> } >> >> @@ -671,6 +762,7 @@ static struct i2c_driver pfuze_driver = { >> .of_match_table = pfuze_dt_ids, >> }, >> .probe = pfuze100_regulator_probe, >> + .remove = pfuze100_regulator_remove, >> }; >> module_i2c_driver(pfuze_driver); >> >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler 2018-08-02 8:16 ` Oleksij Rempel (?) (?) @ 2018-08-06 2:51 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > >> +static struct pfuze_chip *syspm_pfuze_chip; > >> + > >> +static void pfuze_power_off_prepare(void) > >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power > >> +off"); > > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for > > extend Support on pfuze200/3000.. in the feature. > There is already: > static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) { > if (pfuze_chip->chip_id != PFUZE100) { > dev_warn(pfuze_chip->dev, "Requested > pm_power_off_prepare handler for not supported chip\n"); > return -ENODEV; > } > > > No need to add it in pfuze_power_off_prepare() I saw you add chip check in pfuze_power_off_prepare_init(), but I'm saying In the future case pfuze200/3000 may should still support this feature, but registers are different between different chips, thus, move checking chip into pfuze_power_off_prepare() could make the later patch for pfuze200/3000 more clear, less and easier. ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-06 2:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:51 UTC (permalink / raw) To: linux-arm-kernel > >> +static struct pfuze_chip *syspm_pfuze_chip; > >> + > >> +static void pfuze_power_off_prepare(void) > >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power > >> +off"); > > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for > > extend Support on pfuze200/3000.. in the feature. > There is already: > static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) { > if (pfuze_chip->chip_id != PFUZE100) { > dev_warn(pfuze_chip->dev, "Requested > pm_power_off_prepare handler for not supported chip\n"); > return -ENODEV; > } > > > No need to add it in pfuze_power_off_prepare() I saw you add chip check in pfuze_power_off_prepare_init(), but I'm saying In the future case pfuze200/3000 may should still support this feature, but registers are different between different chips, thus, move checking chip into pfuze_power_off_prepare() could make the later patch for pfuze200/3000 more clear, less and easier. ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-06 2:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > >> +static struct pfuze_chip *syspm_pfuze_chip; > >> + > >> +static void pfuze_power_off_prepare(void) > >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power > >> +off"); > > Add 'if (syspm_pfuze_chip ->chip_id =3D=3D PFUZE100))' here is easy for > > extend Support on pfuze200/3000.. in the feature. > There is already: > static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) { > if (pfuze_chip->chip_id !=3D PFUZE100) { > dev_warn(pfuze_chip->dev, "Requested > pm_power_off_prepare handler for not supported chip\n"); > return -ENODEV; > } >=20 >=20 > No need to add it in pfuze_power_off_prepare() I saw you add chip check in pfuze_power_off_prepare_init(), but I'm saying In the future case pfuze200/3000 may should still support this feature, but= registers are different between different chips, thus, move checking chip into pfuze_= power_off_prepare() could make the later patch for pfuze200/3000 more clear, less and easier. ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler @ 2018-08-06 2:51 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-08-06 2:51 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > >> +static struct pfuze_chip *syspm_pfuze_chip; > >> + > >> +static void pfuze_power_off_prepare(void) > >> + dev_info(syspm_pfuze_chip->dev, "Configure standy mode for power > >> +off"); > > Add 'if (syspm_pfuze_chip ->chip_id == PFUZE100))' here is easy for > > extend Support on pfuze200/3000.. in the feature. > There is already: > static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) { > if (pfuze_chip->chip_id != PFUZE100) { > dev_warn(pfuze_chip->dev, "Requested > pm_power_off_prepare handler for not supported chip\n"); > return -ENODEV; > } > > > No need to add it in pfuze_power_off_prepare() I saw you add chip check in pfuze_power_off_prepare_init(), but I'm saying In the future case pfuze200/3000 may should still support this feature, but registers are different between different chips, thus, move checking chip into pfuze_power_off_prepare() could make the later patch for pfuze200/3000 more clear, less and easier. ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option 2018-07-26 9:22 ` Oleksij Rempel @ 2018-07-26 9:22 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Oleksij Rempel, kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, linux-imx, yibin.gong, A.s. Dong This board, as well as some other boards with i.MX6 and a PMIC, uses a "PMIC_STBY_REQ" line to notify the PMIC about a state change. The PMIC is programmed for a specific state change before triggering the line. In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off modes. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts index 2e98c92adff7..a0e9753ee767 100644 --- a/arch/arm/boot/dts/imx6dl-riotboard.dts +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts @@ -90,6 +90,10 @@ status = "okay"; }; +&clks { + fsl,pmic-stby-poweroff; +}; + &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; @@ -170,6 +174,7 @@ reg = <0x08>; interrupt-parent = <&gpio5>; interrupts = <16 8>; + fsl,pmic-stby-poweroff; regulators { reg_vddcore: sw1ab { /* VDDARM_IN */ -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-07-26 9:22 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-26 9:22 UTC (permalink / raw) To: linux-arm-kernel This board, as well as some other boards with i.MX6 and a PMIC, uses a "PMIC_STBY_REQ" line to notify the PMIC about a state change. The PMIC is programmed for a specific state change before triggering the line. In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off modes. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts index 2e98c92adff7..a0e9753ee767 100644 --- a/arch/arm/boot/dts/imx6dl-riotboard.dts +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts @@ -90,6 +90,10 @@ status = "okay"; }; +&clks { + fsl,pmic-stby-poweroff; +}; + &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; @@ -170,6 +174,7 @@ reg = <0x08>; interrupt-parent = <&gpio5>; interrupts = <16 8>; + fsl,pmic-stby-poweroff; regulators { reg_vddcore: sw1ab { /* VDDARM_IN */ -- 2.18.0 ^ permalink raw reply related [flat|nested] 95+ messages in thread
* RE: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option 2018-07-26 9:22 ` Oleksij Rempel (?) (?) @ 2018-07-27 9:33 ` Robin Gong -1 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:33 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power > off option > > This board, as well as some other boards with i.MX6 and a PMIC, uses a > "PMIC_STBY_REQ" line to notify the PMIC about a state change. > The PMIC is programmed for a specific state change before triggering the line. > In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off > modes. > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts > b/arch/arm/boot/dts/imx6dl-riotboard.dts > index 2e98c92adff7..a0e9753ee767 100644 > --- a/arch/arm/boot/dts/imx6dl-riotboard.dts > +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts > @@ -90,6 +90,10 @@ > status = "okay"; > }; > > +&clks { > + fsl,pmic-stby-poweroff; > +}; It's better remove the default "syscon-poweroff" power off node. > + > &fec { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_enet>; > @@ -170,6 +174,7 @@ > reg = <0x08>; > interrupt-parent = <&gpio5>; > interrupts = <16 8>; > + fsl,pmic-stby-poweroff; > > regulators { > reg_vddcore: sw1ab { /* VDDARM_IN */ > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-07-27 9:33 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:33 UTC (permalink / raw) To: linux-arm-kernel > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] > Sent: 2018?7?26? 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; > devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; > linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power > off option > > This board, as well as some other boards with i.MX6 and a PMIC, uses a > "PMIC_STBY_REQ" line to notify the PMIC about a state change. > The PMIC is programmed for a specific state change before triggering the line. > In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off > modes. > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts > b/arch/arm/boot/dts/imx6dl-riotboard.dts > index 2e98c92adff7..a0e9753ee767 100644 > --- a/arch/arm/boot/dts/imx6dl-riotboard.dts > +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts > @@ -90,6 +90,10 @@ > status = "okay"; > }; > > +&clks { > + fsl,pmic-stby-poweroff; > +}; It's better remove the default "syscon-poweroff" power off node. > + > &fec { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_enet>; > @@ -170,6 +174,7 @@ > reg = <0x08>; > interrupt-parent = <&gpio5>; > interrupts = <16 8>; > + fsl,pmic-stby-poweroff; > > regulators { > reg_vddcore: sw1ab { /* VDDARM_IN */ > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-07-27 9:33 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:33 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogT2xla3NpaiBSZW1wZWwg W21haWx0bzpvLnJlbXBlbEBwZW5ndXRyb25peC5kZV0NCj4gU2VudDogMjAxOMTqN9TCMjbI1SAx NzoyMg0KPiBUbzogU2hhd24gR3VvIDxzaGF3bmd1b0BrZXJuZWwub3JnPjsgTWFyayBCcm93biA8 YnJvb25pZUBrZXJuZWwub3JnPjsNCj4gUmFmYWVsIEouIFd5c29ja2kgPHJhZmFlbC5qLnd5c29j a2lAaW50ZWwuY29tPg0KPiBDYzogT2xla3NpaiBSZW1wZWwgPG8ucmVtcGVsQHBlbmd1dHJvbml4 LmRlPjsga2VybmVsQHBlbmd1dHJvbml4LmRlOw0KPiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9y ZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOw0KPiBsaW51eC1jbGtAdmdl ci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBBbmRyZXcgTW9ydG9u DQo+IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPjsgTGlhbSBHaXJkd29vZCA8bGdpcmR3b29k QGdtYWlsLmNvbT47DQo+IExlb25hcmQgQ3Jlc3RleiA8bGVvbmFyZC5jcmVzdGV6QG54cC5jb20+ OyBSb2IgSGVycmluZw0KPiA8cm9iaCtkdEBrZXJuZWwub3JnPjsgTWFyayBSdXRsYW5kIDxtYXJr LnJ1dGxhbmRAYXJtLmNvbT47IE1pY2hhZWwNCj4gVHVycXVldHRlIDxtdHVycXVldHRlQGJheWxp YnJlLmNvbT47IFN0ZXBoZW4gQm95ZA0KPiA8c2JveWRAY29kZWF1cm9yYS5vcmc+OyBGYWJpbyBF c3RldmFtIDxmYWJpby5lc3RldmFtQG54cC5jb20+OyBSdXNzZWxsDQo+IEtpbmcgPGxpbnV4QGFy bWxpbnV4Lm9yZy51az47IGRsLWxpbnV4LWlteCA8bGludXgtaW14QG54cC5jb20+OyBSb2JpbiBH b25nDQo+IDx5aWJpbi5nb25nQG54cC5jb20+OyBBLnMuIERvbmcgPGFpc2hlbmcuZG9uZ0BueHAu Y29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjggNi82XSBBUk06IGR0czogaW14NjogUklvVGJvYXJk IHByb3ZpZGUgc3RhbmRieSBvbiBwb3dlcg0KPiBvZmYgb3B0aW9uDQo+IA0KPiBUaGlzIGJvYXJk LCBhcyB3ZWxsIGFzIHNvbWUgb3RoZXIgYm9hcmRzIHdpdGggaS5NWDYgYW5kIGEgUE1JQywgdXNl cyBhDQo+ICJQTUlDX1NUQllfUkVRIiBsaW5lIHRvIG5vdGlmeSB0aGUgUE1JQyBhYm91dCBhIHN0 YXRlIGNoYW5nZS4NCj4gVGhlIFBNSUMgaXMgcHJvZ3JhbW1lZCBmb3IgYSBzcGVjaWZpYyBzdGF0 ZSBjaGFuZ2UgYmVmb3JlIHRyaWdnZXJpbmcgdGhlIGxpbmUuDQo+IEluIHRoaXMgY2FzZSwgUE1J Q19TVEJZX1JFUSBjYW4gYmUgdXNlZCBmb3Igc3RhbmQgYnksIHNsZWVwIGFuZCBwb3dlciBvZmYN Cj4gbW9kZXMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPbGVrc2lqIFJlbXBlbCA8by5yZW1wZWxA cGVuZ3V0cm9uaXguZGU+DQo+IC0tLQ0KPiAgYXJjaC9hcm0vYm9vdC9kdHMvaW14NmRsLXJpb3Ri b2FyZC5kdHMgfCA1ICsrKysrDQo+ICAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspDQo+ IA0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvaW14NmRsLXJpb3Rib2FyZC5kdHMN Cj4gYi9hcmNoL2FybS9ib290L2R0cy9pbXg2ZGwtcmlvdGJvYXJkLmR0cw0KPiBpbmRleCAyZTk4 YzkyYWRmZjcuLmEwZTk3NTNlZTc2NyAxMDA2NDQNCj4gLS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMv aW14NmRsLXJpb3Rib2FyZC5kdHMNCj4gKysrIGIvYXJjaC9hcm0vYm9vdC9kdHMvaW14NmRsLXJp b3Rib2FyZC5kdHMNCj4gQEAgLTkwLDYgKzkwLDEwIEBADQo+ICAJc3RhdHVzID0gIm9rYXkiOw0K PiAgfTsNCj4gDQo+ICsmY2xrcyB7DQo+ICsJZnNsLHBtaWMtc3RieS1wb3dlcm9mZjsNCj4gK307 DQpJdCdzIGJldHRlciByZW1vdmUgdGhlIGRlZmF1bHQgInN5c2Nvbi1wb3dlcm9mZiIgcG93ZXIg b2ZmIG5vZGUuDQo+ICsNCj4gICZmZWMgew0KPiAgCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7 DQo+ICAJcGluY3RybC0wID0gPCZwaW5jdHJsX2VuZXQ+Ow0KPiBAQCAtMTcwLDYgKzE3NCw3IEBA DQo+ICAJCXJlZyA9IDwweDA4PjsNCj4gIAkJaW50ZXJydXB0LXBhcmVudCA9IDwmZ3BpbzU+Ow0K PiAgCQlpbnRlcnJ1cHRzID0gPDE2IDg+Ow0KPiArCQlmc2wscG1pYy1zdGJ5LXBvd2Vyb2ZmOw0K PiANCj4gIAkJcmVndWxhdG9ycyB7DQo+ICAJCQlyZWdfdmRkY29yZTogc3cxYWIgewkJCQkvKiBW RERBUk1fSU4gKi8NCj4gLS0NCj4gMi4xOC4wDQoNCg== ^ permalink raw reply [flat|nested] 95+ messages in thread
* RE: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-07-27 9:33 ` Robin Gong 0 siblings, 0 replies; 95+ messages in thread From: Robin Gong @ 2018-07-27 9:33 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong > -----Original Message----- > From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] > Sent: 2018年7月26日 17:22 > To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; > Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton > <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; > Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring > <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael > Turquette <mturquette@baylibre.com>; Stephen Boyd > <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell > King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong > <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> > Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power > off option > > This board, as well as some other boards with i.MX6 and a PMIC, uses a > "PMIC_STBY_REQ" line to notify the PMIC about a state change. > The PMIC is programmed for a specific state change before triggering the line. > In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off > modes. > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts > b/arch/arm/boot/dts/imx6dl-riotboard.dts > index 2e98c92adff7..a0e9753ee767 100644 > --- a/arch/arm/boot/dts/imx6dl-riotboard.dts > +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts > @@ -90,6 +90,10 @@ > status = "okay"; > }; > > +&clks { > + fsl,pmic-stby-poweroff; > +}; It's better remove the default "syscon-poweroff" power off node. > + > &fec { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_enet>; > @@ -170,6 +174,7 @@ > reg = <0x08>; > interrupt-parent = <&gpio5>; > interrupts = <16 8>; > + fsl,pmic-stby-poweroff; > > regulators { > reg_vddcore: sw1ab { /* VDDARM_IN */ > -- > 2.18.0 ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option 2018-07-27 9:33 ` Robin Gong (?) @ 2018-07-30 7:58 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:58 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 2303 bytes --] On 27.07.2018 11:33, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power >> off option >> >> This board, as well as some other boards with i.MX6 and a PMIC, uses a >> "PMIC_STBY_REQ" line to notify the PMIC about a state change. >> The PMIC is programmed for a specific state change before triggering the line. >> In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off >> modes. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts >> b/arch/arm/boot/dts/imx6dl-riotboard.dts >> index 2e98c92adff7..a0e9753ee767 100644 >> --- a/arch/arm/boot/dts/imx6dl-riotboard.dts >> +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts >> @@ -90,6 +90,10 @@ >> status = "okay"; >> }; >> >> +&clks { >> + fsl,pmic-stby-poweroff; >> +}; > It's better remove the default "syscon-poweroff" power off node. ok >> &fec { >> pinctrl-names = "default"; >> pinctrl-0 = <&pinctrl_enet>; >> @@ -170,6 +174,7 @@ >> reg = <0x08>; >> interrupt-parent = <&gpio5>; >> interrupts = <16 8>; >> + fsl,pmic-stby-poweroff; >> >> regulators { >> reg_vddcore: sw1ab { /* VDDARM_IN */ >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-07-30 7:58 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:58 UTC (permalink / raw) To: linux-arm-kernel On 27.07.2018 11:33, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] >> Sent: 2018?7?26? 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power >> off option >> >> This board, as well as some other boards with i.MX6 and a PMIC, uses a >> "PMIC_STBY_REQ" line to notify the PMIC about a state change. >> The PMIC is programmed for a specific state change before triggering the line. >> In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off >> modes. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts >> b/arch/arm/boot/dts/imx6dl-riotboard.dts >> index 2e98c92adff7..a0e9753ee767 100644 >> --- a/arch/arm/boot/dts/imx6dl-riotboard.dts >> +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts >> @@ -90,6 +90,10 @@ >> status = "okay"; >> }; >> >> +&clks { >> + fsl,pmic-stby-poweroff; >> +}; > It's better remove the default "syscon-poweroff" power off node. ok >> &fec { >> pinctrl-names = "default"; >> pinctrl-0 = <&pinctrl_enet>; >> @@ -170,6 +174,7 @@ >> reg = <0x08>; >> interrupt-parent = <&gpio5>; >> interrupts = <16 8>; >> + fsl,pmic-stby-poweroff; >> >> regulators { >> reg_vddcore: sw1ab { /* VDDARM_IN */ >> -- >> 2.18.0 > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180730/bb08d822/attachment.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-07-30 7:58 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-07-30 7:58 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 2303 bytes --] On 27.07.2018 11:33, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power >> off option >> >> This board, as well as some other boards with i.MX6 and a PMIC, uses a >> "PMIC_STBY_REQ" line to notify the PMIC about a state change. >> The PMIC is programmed for a specific state change before triggering the line. >> In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off >> modes. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts >> b/arch/arm/boot/dts/imx6dl-riotboard.dts >> index 2e98c92adff7..a0e9753ee767 100644 >> --- a/arch/arm/boot/dts/imx6dl-riotboard.dts >> +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts >> @@ -90,6 +90,10 @@ >> status = "okay"; >> }; >> >> +&clks { >> + fsl,pmic-stby-poweroff; >> +}; > It's better remove the default "syscon-poweroff" power off node. ok >> &fec { >> pinctrl-names = "default"; >> pinctrl-0 = <&pinctrl_enet>; >> @@ -170,6 +174,7 @@ >> reg = <0x08>; >> interrupt-parent = <&gpio5>; >> interrupts = <16 8>; >> + fsl,pmic-stby-poweroff; >> >> regulators { >> reg_vddcore: sw1ab { /* VDDARM_IN */ >> -- >> 2.18.0 > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option 2018-07-27 9:33 ` Robin Gong (?) @ 2018-08-02 8:37 ` Oleksij Rempel -1 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:37 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 2084 bytes --] On 27.07.2018 11:33, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power >> off option >> >> This board, as well as some other boards with i.MX6 and a PMIC, uses a >> "PMIC_STBY_REQ" line to notify the PMIC about a state change. >> The PMIC is programmed for a specific state change before triggering the line. >> In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off >> modes. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts >> b/arch/arm/boot/dts/imx6dl-riotboard.dts >> index 2e98c92adff7..a0e9753ee767 100644 >> --- a/arch/arm/boot/dts/imx6dl-riotboard.dts >> +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts >> @@ -90,6 +90,10 @@ >> status = "okay"; >> }; >> >> +&clks { >> + fsl,pmic-stby-poweroff; >> +}; > It's better remove the default "syscon-poweroff" power off node. "syscon-poweroff" is by default disabled and not enabled in arch/arm/boot/dts/imx6dl-riotboard.dts [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-08-02 8:37 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:37 UTC (permalink / raw) To: linux-arm-kernel On 27.07.2018 11:33, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel at pengutronix.de] >> Sent: 2018?7?26? 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel at pengutronix.de; >> devicetree at vger.kernel.org; linux-arm-kernel at lists.infradead.org; >> linux-clk at vger.kernel.org; linux-kernel at vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power >> off option >> >> This board, as well as some other boards with i.MX6 and a PMIC, uses a >> "PMIC_STBY_REQ" line to notify the PMIC about a state change. >> The PMIC is programmed for a specific state change before triggering the line. >> In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off >> modes. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts >> b/arch/arm/boot/dts/imx6dl-riotboard.dts >> index 2e98c92adff7..a0e9753ee767 100644 >> --- a/arch/arm/boot/dts/imx6dl-riotboard.dts >> +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts >> @@ -90,6 +90,10 @@ >> status = "okay"; >> }; >> >> +&clks { >> + fsl,pmic-stby-poweroff; >> +}; > It's better remove the default "syscon-poweroff" power off node. "syscon-poweroff" is by default disabled and not enabled in arch/arm/boot/dts/imx6dl-riotboard.dts -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20180802/33a5bf13/attachment-0001.sig> ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option @ 2018-08-02 8:37 ` Oleksij Rempel 0 siblings, 0 replies; 95+ messages in thread From: Oleksij Rempel @ 2018-08-02 8:37 UTC (permalink / raw) To: Robin Gong, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: kernel, devicetree, linux-arm-kernel, linux-clk, linux-kernel, Andrew Morton, Liam Girdwood, Leonard Crestez, Rob Herring, Mark Rutland, Michael Turquette, Stephen Boyd, Fabio Estevam, Russell King, dl-linux-imx, A.s. Dong [-- Attachment #1.1: Type: text/plain, Size: 2084 bytes --] On 27.07.2018 11:33, Robin Gong wrote: > > >> -----Original Message----- >> From: Oleksij Rempel [mailto:o.rempel@pengutronix.de] >> Sent: 2018年7月26日 17:22 >> To: Shawn Guo <shawnguo@kernel.org>; Mark Brown <broonie@kernel.org>; >> Rafael J. Wysocki <rafael.j.wysocki@intel.com> >> Cc: Oleksij Rempel <o.rempel@pengutronix.de>; kernel@pengutronix.de; >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; >> linux-clk@vger.kernel.org; linux-kernel@vger.kernel.org; Andrew Morton >> <akpm@linux-foundation.org>; Liam Girdwood <lgirdwood@gmail.com>; >> Leonard Crestez <leonard.crestez@nxp.com>; Rob Herring >> <robh+dt@kernel.org>; Mark Rutland <mark.rutland@arm.com>; Michael >> Turquette <mturquette@baylibre.com>; Stephen Boyd >> <sboyd@codeaurora.org>; Fabio Estevam <fabio.estevam@nxp.com>; Russell >> King <linux@armlinux.org.uk>; dl-linux-imx <linux-imx@nxp.com>; Robin Gong >> <yibin.gong@nxp.com>; A.s. Dong <aisheng.dong@nxp.com> >> Subject: [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power >> off option >> >> This board, as well as some other boards with i.MX6 and a PMIC, uses a >> "PMIC_STBY_REQ" line to notify the PMIC about a state change. >> The PMIC is programmed for a specific state change before triggering the line. >> In this case, PMIC_STBY_REQ can be used for stand by, sleep and power off >> modes. >> >> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> >> --- >> arch/arm/boot/dts/imx6dl-riotboard.dts | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts >> b/arch/arm/boot/dts/imx6dl-riotboard.dts >> index 2e98c92adff7..a0e9753ee767 100644 >> --- a/arch/arm/boot/dts/imx6dl-riotboard.dts >> +++ b/arch/arm/boot/dts/imx6dl-riotboard.dts >> @@ -90,6 +90,10 @@ >> status = "okay"; >> }; >> >> +&clks { >> + fsl,pmic-stby-poweroff; >> +}; > It's better remove the default "syscon-poweroff" power off node. "syscon-poweroff" is by default disabled and not enabled in arch/arm/boot/dts/imx6dl-riotboard.dts [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 0/6] provide power off support for iMX6 with external PMIC 2018-07-26 9:22 ` Oleksij Rempel (?) @ 2018-07-26 9:48 ` Stefan Wahren -1 siblings, 0 replies; 95+ messages in thread From: Stefan Wahren @ 2018-07-26 9:48 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, yibin.gong, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, linux-imx, kernel, A.s. Dong, Fabio Estevam, Russell King, Andrew Morton, Leonard Crestez, linux-clk, linux-arm-kernel Hi Oleksij, Am 26.07.2018 um 11:22 schrieb Oleksij Rempel: > 2018.07.26: > v8 is a rebase against kernel v4.18-rc6. No other changes are made. > Added: linux-imx@nxp.com and yibin.gong@nxp.com to the CC. your patches won't apply to regulator-next or linux-next because "regulator: pfuze100: add pfuze3001 support" has been merged before. Since the pfuze3001 doesn't support standby, it would be nice to make the driver take care of this. Best regards Stefan ^ permalink raw reply [flat|nested] 95+ messages in thread
* [PATCH v8 0/6] provide power off support for iMX6 with external PMIC @ 2018-07-26 9:48 ` Stefan Wahren 0 siblings, 0 replies; 95+ messages in thread From: Stefan Wahren @ 2018-07-26 9:48 UTC (permalink / raw) To: linux-arm-kernel Hi Oleksij, Am 26.07.2018 um 11:22 schrieb Oleksij Rempel: > 2018.07.26: > v8 is a rebase against kernel v4.18-rc6. No other changes are made. > Added: linux-imx at nxp.com and yibin.gong at nxp.com to the CC. your patches won't apply to regulator-next or linux-next because "regulator: pfuze100: add pfuze3001 support" has been merged before. Since the pfuze3001 doesn't support standby, it would be nice to make the driver take care of this. Best regards Stefan ^ permalink raw reply [flat|nested] 95+ messages in thread
* Re: [PATCH v8 0/6] provide power off support for iMX6 with external PMIC @ 2018-07-26 9:48 ` Stefan Wahren 0 siblings, 0 replies; 95+ messages in thread From: Stefan Wahren @ 2018-07-26 9:48 UTC (permalink / raw) To: Oleksij Rempel, Shawn Guo, Mark Brown, Rafael J. Wysocki Cc: Mark Rutland, devicetree, Leonard Crestez, linux-clk, Michael Turquette, Stephen Boyd, linux-kernel, Liam Girdwood, Rob Herring, linux-imx, kernel, Fabio Estevam, Russell King, Andrew Morton, yibin.gong, A.s. Dong, linux-arm-kernel Hi Oleksij, Am 26.07.2018 um 11:22 schrieb Oleksij Rempel: > 2018.07.26: > v8 is a rebase against kernel v4.18-rc6. No other changes are made. > Added: linux-imx@nxp.com and yibin.gong@nxp.com to the CC. your patches won't apply to regulator-next or linux-next because "regulator: pfuze100: add pfuze3001 support" has been merged before. Since the pfuze3001 doesn't support standby, it would be nice to make the driver take care of this. Best regards Stefan ^ permalink raw reply [flat|nested] 95+ messages in thread
end of thread, other threads:[~2018-08-06 16:49 UTC | newest] Thread overview: 95+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-07-26 9:22 [PATCH v8 0/6] provide power off support for iMX6 with external PMIC Oleksij Rempel 2018-07-26 9:22 ` Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl, pmic-stby-poweroff property Oleksij Rempel 2018-07-26 9:51 ` [PATCH v8 1/6] ARM: imx6q: provide documentation for new fsl,pmic-stby-poweroff property Robin Gong 2018-07-26 9:51 ` Robin Gong 2018-07-26 9:51 ` Robin Gong 2018-07-26 9:51 ` Robin Gong 2018-07-26 11:37 ` Oleksij Rempel 2018-07-26 11:37 ` Oleksij Rempel 2018-07-26 11:37 ` Oleksij Rempel 2018-07-27 1:51 ` Robin Gong 2018-07-27 1:51 ` Robin Gong 2018-07-27 1:51 ` Robin Gong 2018-07-27 1:51 ` Robin Gong 2018-07-27 8:30 ` Lucas Stach 2018-07-27 8:30 ` Lucas Stach 2018-07-27 8:30 ` Lucas Stach 2018-07-27 8:30 ` Lucas Stach 2018-07-27 8:58 ` Robin Gong 2018-07-27 8:58 ` Robin Gong 2018-07-27 8:58 ` Robin Gong 2018-07-27 8:58 ` Robin Gong 2018-07-27 9:06 ` Oleksij Rempel 2018-07-27 9:06 ` Oleksij Rempel 2018-07-27 9:06 ` Oleksij Rempel 2018-07-27 9:06 ` Oleksij Rempel 2018-07-30 8:03 ` Oleksij Rempel 2018-07-30 8:03 ` Oleksij Rempel 2018-07-30 8:03 ` Oleksij Rempel 2018-08-06 2:34 ` Robin Gong 2018-08-06 2:34 ` Robin Gong 2018-08-06 2:34 ` Robin Gong 2018-08-06 2:34 ` Robin Gong 2018-08-06 16:49 ` Lucas Stach 2018-08-06 16:49 ` Lucas Stach 2018-08-06 16:49 ` Lucas Stach 2018-08-06 16:49 ` Lucas Stach 2018-07-27 8:41 ` Oleksij Rempel 2018-07-27 8:41 ` Oleksij Rempel 2018-07-27 8:41 ` Oleksij Rempel 2018-07-27 8:41 ` Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl, pmic-stby-poweroff" " Oleksij Rempel 2018-07-27 9:15 ` [PATCH v8 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" " Robin Gong 2018-07-27 9:15 ` Robin Gong 2018-07-27 9:15 ` Robin Gong 2018-07-27 9:15 ` Robin Gong 2018-07-30 7:57 ` Oleksij Rempel 2018-07-30 7:57 ` Oleksij Rempel 2018-07-30 7:57 ` Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 3/6] kernel/reboot.c: export pm_power_off_prepare Oleksij Rempel 2018-07-26 9:22 ` Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 4/6] regulator: pfuze100: add fsl,pmic-stby-poweroff property Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 4/6] regulator: pfuze100: add fsl, pmic-stby-poweroff property Oleksij Rempel 2018-07-26 9:22 ` Oleksij Rempel 2018-07-26 9:22 ` [PATCH v8 5/6] regulator: pfuze100-regulator: provide pm_power_off_prepare handler Oleksij Rempel 2018-07-26 9:22 ` Oleksij Rempel 2018-07-27 9:32 ` Robin Gong 2018-07-27 9:32 ` Robin Gong 2018-07-27 9:32 ` Robin Gong 2018-07-27 9:32 ` Robin Gong 2018-07-30 7:50 ` Oleksij Rempel 2018-07-30 7:50 ` Oleksij Rempel 2018-07-30 7:50 ` Oleksij Rempel 2018-07-30 10:24 ` Mark Brown 2018-07-30 10:24 ` Mark Brown 2018-07-30 10:24 ` Mark Brown 2018-07-30 10:24 ` Mark Brown 2018-08-02 8:11 ` Oleksij Rempel 2018-08-02 8:11 ` Oleksij Rempel 2018-08-02 8:11 ` Oleksij Rempel 2018-08-02 8:11 ` Oleksij Rempel 2018-08-02 8:16 ` Oleksij Rempel 2018-08-02 8:16 ` Oleksij Rempel 2018-08-02 8:16 ` Oleksij Rempel 2018-08-06 2:51 ` Robin Gong 2018-08-06 2:51 ` Robin Gong 2018-08-06 2:51 ` Robin Gong 2018-08-06 2:51 ` Robin Gong 2018-07-26 9:22 ` [PATCH v8 6/6] ARM: dts: imx6: RIoTboard provide standby on power off option Oleksij Rempel 2018-07-26 9:22 ` Oleksij Rempel 2018-07-27 9:33 ` Robin Gong 2018-07-27 9:33 ` Robin Gong 2018-07-27 9:33 ` Robin Gong 2018-07-27 9:33 ` Robin Gong 2018-07-30 7:58 ` Oleksij Rempel 2018-07-30 7:58 ` Oleksij Rempel 2018-07-30 7:58 ` Oleksij Rempel 2018-08-02 8:37 ` Oleksij Rempel 2018-08-02 8:37 ` Oleksij Rempel 2018-08-02 8:37 ` Oleksij Rempel 2018-07-26 9:48 ` [PATCH v8 0/6] provide power off support for iMX6 with external PMIC Stefan Wahren 2018-07-26 9:48 ` Stefan Wahren 2018-07-26 9:48 ` Stefan Wahren
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.