* [PATCH v2 0/6] iMX6: Implement power off over standby signal
@ 2017-05-31 6:14 Oleksij Rempel
2017-05-31 6:14 ` [PATCH v2 1/6] ARM: imx6q: provide documentation for new fsl,pmic_stby_poweroff property Oleksij Rempel
2017-05-31 6:14 ` [PATCH v2 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic_stby_poweroff" is set Oleksij Rempel
0 siblings, 2 replies; 6+ messages in thread
From: Oleksij Rempel @ 2017-05-31 6:14 UTC (permalink / raw)
To: linux
Cc: Oleksij Rempel, kernel, linux-arm-kernel, Michael Turquette,
Stephen Boyd, Rob Herring, Mark Rutland, linux-clk, devicetree,
linux-kernel
v2:
- export pm_power_off_prepare to fix pfuze100-regulator as module compilation.
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 to PowerOff option
.../devicetree/bindings/clock/imx6q-clock.txt | 4 ++
.../devicetree/bindings/regulator/pfuze100.txt | 4 ++
arch/arm/boot/dts/imx6dl-riotboard.dts | 5 ++
arch/arm/mach-imx/pm-imx6.c | 30 +++++++++
drivers/regulator/pfuze100-regulator.c | 76 ++++++++++++++++++++++
kernel/reboot.c | 1 +
6 files changed, 120 insertions(+)
Cc: kernel@pengutronix.de
Cc: linux-arm-kernel@lists.infradead.org
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-clk@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
--
2.11.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/6] ARM: imx6q: provide documentation for new fsl,pmic_stby_poweroff property
2017-05-31 6:14 [PATCH v2 0/6] iMX6: Implement power off over standby signal Oleksij Rempel
@ 2017-05-31 6:14 ` Oleksij Rempel
2017-05-31 14:52 ` Mark Rutland
2017-05-31 6:14 ` [PATCH v2 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic_stby_poweroff" is set Oleksij Rempel
1 sibling, 1 reply; 6+ messages in thread
From: Oleksij Rempel @ 2017-05-31 6:14 UTC (permalink / raw)
To: linux
Cc: Oleksij Rempel, kernel, linux-arm-kernel, Michael Turquette,
Stephen Boyd, Rob Herring, Mark Rutland, linux-clk, devicetree,
linux-kernel
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: kernel@pengutronix.de
Cc: linux-arm-kernel@lists.infradead.org
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-clk@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
Documentation/devicetree/bindings/clock/imx6q-clock.txt | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
index 9252912a5b0e..214cb5f461c7 100644
--- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
@@ -6,6 +6,10 @@ 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.
+
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.11.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic_stby_poweroff" is set
2017-05-31 6:14 [PATCH v2 0/6] iMX6: Implement power off over standby signal Oleksij Rempel
2017-05-31 6:14 ` [PATCH v2 1/6] ARM: imx6q: provide documentation for new fsl,pmic_stby_poweroff property Oleksij Rempel
@ 2017-05-31 6:14 ` Oleksij Rempel
2017-05-31 14:55 ` Mark Rutland
1 sibling, 1 reply; 6+ messages in thread
From: Oleksij Rempel @ 2017-05-31 6:14 UTC (permalink / raw)
To: linux
Cc: Oleksij Rempel, kernel, linux-arm-kernel, Michael Turquette,
Stephen Boyd, Rob Herring, Mark Rutland, linux-clk, devicetree,
linux-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>
Cc: kernel@pengutronix.de
Cc: linux-arm-kernel@lists.infradead.org
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-clk@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
arch/arm/mach-imx/pm-imx6.c | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/arch/arm/mach-imx/pm-imx6.c b/arch/arm/mach-imx/pm-imx6.c
index e61b1d1027e1..fd7b95f340e5 100644
--- a/arch/arm/mach-imx/pm-imx6.c
+++ b/arch/arm/mach-imx/pm-imx6.c
@@ -27,6 +27,8 @@
#include <asm/proc-fns.h>
#include <asm/suspend.h>
#include <asm/tlb.h>
+#include <linux/kallsyms.h>
+#include <linux/regulator/machine.h>
#include "common.h"
#include "hardware.h"
@@ -602,6 +604,31 @@ static void __init imx6_pm_common_init(const struct imx6_pm_socdata
IMX6Q_GPR1_GINT);
}
+static void imx6_pm_poweroff(void)
+{
+ imx6_set_lpm(STOP_POWER_OFF);
+ cpu_suspend(0, imx6q_suspend_finish);
+
+ mdelay(1000);
+
+ pr_emerg("Unable to poweroff system\n");
+}
+
+static int imx6_pm_poweroff_probe(void)
+{
+ char symname[KSYM_NAME_LEN];
+
+ if (pm_power_off) {
+ lookup_symbol_name((ulong)pm_power_off, symname);
+ pr_warn("%s: pm_power_off already claimed %p %s!\n",
+ __func__, pm_power_off, symname);
+ return -EBUSY;
+ }
+
+ pm_power_off = imx6_pm_poweroff;
+ return 0;
+}
+
void __init imx6_pm_ccm_init(const char *ccm_compat)
{
struct device_node *np;
@@ -618,6 +645,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_poweroff_probe();
}
void __init imx6q_pm_init(void)
--
2.11.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/6] ARM: imx6q: provide documentation for new fsl,pmic_stby_poweroff property
2017-05-31 6:14 ` [PATCH v2 1/6] ARM: imx6q: provide documentation for new fsl,pmic_stby_poweroff property Oleksij Rempel
@ 2017-05-31 14:52 ` Mark Rutland
2017-06-01 6:50 ` Oleksij Rempel
0 siblings, 1 reply; 6+ messages in thread
From: Mark Rutland @ 2017-05-31 14:52 UTC (permalink / raw)
To: Oleksij Rempel
Cc: linux, kernel, linux-arm-kernel, Michael Turquette, Stephen Boyd,
Rob Herring, linux-clk, devicetree, linux-kernel
On Wed, May 31, 2017 at 08:14:52AM +0200, Oleksij Rempel wrote:
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
> Cc: kernel@pengutronix.de
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@codeaurora.org>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: linux-clk@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
> index 9252912a5b0e..214cb5f461c7 100644
> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt
> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
> @@ -6,6 +6,10 @@ 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.
s/_/-/ in property names, please.
When/why is this needed?
Why should a DT author (not) set this?
Thanks,
Mark.
> +
> 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.11.0
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic_stby_poweroff" is set
2017-05-31 6:14 ` [PATCH v2 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic_stby_poweroff" is set Oleksij Rempel
@ 2017-05-31 14:55 ` Mark Rutland
0 siblings, 0 replies; 6+ messages in thread
From: Mark Rutland @ 2017-05-31 14:55 UTC (permalink / raw)
To: Oleksij Rempel
Cc: linux, kernel, linux-arm-kernel, Michael Turquette, Stephen Boyd,
Rob Herring, linux-clk, devicetree, linux-kernel
On Wed, May 31, 2017 at 08:14:53AM +0200, Oleksij Rempel wrote:
> 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
> +static int imx6_pm_poweroff_probe(void)
> +{
> + char symname[KSYM_NAME_LEN];
> +
> + if (pm_power_off) {
> + lookup_symbol_name((ulong)pm_power_off, symname);
> + pr_warn("%s: pm_power_off already claimed %p %s!\n",
> + __func__, pm_power_off, symname);
Please use %pf rather than lookup_symbol_name*(,
> + return -EBUSY;
> + }
> +
> + pm_power_off = imx6_pm_poweroff;
> + return 0;
> +}
> +
> void __init imx6_pm_ccm_init(const char *ccm_compat)
> {
> struct device_node *np;
> @@ -618,6 +645,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_poweroff_probe();
This neesd s/_/-/, as commented on the binding.
My what/why query on the binding stadns, regardless.
Thanks,
Mark.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/6] ARM: imx6q: provide documentation for new fsl,pmic_stby_poweroff property
2017-05-31 14:52 ` Mark Rutland
@ 2017-06-01 6:50 ` Oleksij Rempel
0 siblings, 0 replies; 6+ messages in thread
From: Oleksij Rempel @ 2017-06-01 6:50 UTC (permalink / raw)
To: Mark Rutland, Oleksij Rempel
Cc: kernel, linux-arm-kernel, Michael Turquette, Stephen Boyd,
Rob Herring, linux-clk, devicetree, linux-kernel, Andrew Morton
[-- Attachment #1.1: Type: text/plain, Size: 2140 bytes --]
Am 31.05.2017 um 16:52 schrieb Mark Rutland:
> On Wed, May 31, 2017 at 08:14:52AM +0200, Oleksij Rempel wrote:
>> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
>> Cc: kernel@pengutronix.de
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: Michael Turquette <mturquette@baylibre.com>
>> Cc: Stephen Boyd <sboyd@codeaurora.org>
>> Cc: Rob Herring <robh+dt@kernel.org>
>> Cc: Mark Rutland <mark.rutland@arm.com>
>> Cc: linux-clk@vger.kernel.org
>> Cc: devicetree@vger.kernel.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>> Documentation/devicetree/bindings/clock/imx6q-clock.txt | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
>> index 9252912a5b0e..214cb5f461c7 100644
>> --- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt
>> +++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
>> @@ -6,6 +6,10 @@ 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.
>
> s/_/-/ in property names, please.
ok.
I have now some more questions:
what naming schema should be actually used?
fsl,pmic-stby-poweroff
or
fsl,pmic-stby-power-off
i found some existing case:
sound/rt5660.txt:- realtek,poweroff-in-suspend
so in my case it will be:
fsl,standby-in-poweroff
or
fsl,standby-in-power-off
can we have generic name for this use case?
should I use same binding for PMIC and the SoC or they should be more like:
for SoC "standby-in-power-off"
and for PMIC "power-off-in-standby"
> When/why is this needed?
>
> Why should a DT author (not) set this?
>
> Thanks,
> Mark.
>
>> +
>> 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.11.0
>>
--
Regards,
Oleksij
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 213 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-06-01 6:50 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-31 6:14 [PATCH v2 0/6] iMX6: Implement power off over standby signal Oleksij Rempel
2017-05-31 6:14 ` [PATCH v2 1/6] ARM: imx6q: provide documentation for new fsl,pmic_stby_poweroff property Oleksij Rempel
2017-05-31 14:52 ` Mark Rutland
2017-06-01 6:50 ` Oleksij Rempel
2017-05-31 6:14 ` [PATCH v2 2/6] ARM: imx6: register pm_power_off handler if "fsl,pmic_stby_poweroff" is set Oleksij Rempel
2017-05-31 14:55 ` Mark Rutland
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox