* [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-09-23 19:00 [PATCH " Anton Vorontsov
@ 2009-09-23 19:01 ` Anton Vorontsov
2009-11-05 14:57 ` Kumar Gala
0 siblings, 1 reply; 18+ messages in thread
From: Anton Vorontsov @ 2009-09-23 19:01 UTC (permalink / raw)
To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev
Currently 83xx PMC driver clears deep_sleeping variable very early,
before devices are resumed. This makes fsl_deep_sleep() unusable in
drivers' resume() callback.
Sure, drivers can store fsl_deep_sleep() value on suspend and use
the stored value on resume. But a better solution is to postpone
clearing the deep_sleeping variable, i.e. move it into finish()
callback.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
arch/powerpc/platforms/83xx/suspend.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index d306f07..b0c2619 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -194,7 +194,7 @@ out:
return ret;
}
-static void mpc83xx_suspend_finish(void)
+static void mpc83xx_suspend_end(void)
{
deep_sleeping = 0;
}
@@ -278,7 +278,7 @@ static struct platform_suspend_ops mpc83xx_suspend_ops = {
.valid = mpc83xx_suspend_valid,
.begin = mpc83xx_suspend_begin,
.enter = mpc83xx_suspend_enter,
- .finish = mpc83xx_suspend_finish,
+ .end = mpc83xx_suspend_end,
};
static int pmc_probe(struct of_device *ofdev,
--
1.6.3.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-09-23 19:01 ` [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume Anton Vorontsov
@ 2009-11-05 14:57 ` Kumar Gala
2009-11-05 16:57 ` Scott Wood
0 siblings, 1 reply; 18+ messages in thread
From: Kumar Gala @ 2009-11-05 14:57 UTC (permalink / raw)
To: Scott Wood; +Cc: linux-ppc list
On Sep 23, 2009, at 2:01 PM, Anton Vorontsov wrote:
> Currently 83xx PMC driver clears deep_sleeping variable very early,
> before devices are resumed. This makes fsl_deep_sleep() unusable in
> drivers' resume() callback.
>
> Sure, drivers can store fsl_deep_sleep() value on suspend and use
> the stored value on resume. But a better solution is to postpone
> clearing the deep_sleeping variable, i.e. move it into finish()
> callback.
>
> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> ---
> arch/powerpc/platforms/83xx/suspend.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
Scott, any comments or an ack?
- k
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 14:57 ` Kumar Gala
@ 2009-11-05 16:57 ` Scott Wood
2009-11-05 18:36 ` Kumar Gala
0 siblings, 1 reply; 18+ messages in thread
From: Scott Wood @ 2009-11-05 16:57 UTC (permalink / raw)
To: Kumar Gala; +Cc: linux-ppc list
Kumar Gala wrote:
>
> On Sep 23, 2009, at 2:01 PM, Anton Vorontsov wrote:
>
>> Currently 83xx PMC driver clears deep_sleeping variable very early,
>> before devices are resumed. This makes fsl_deep_sleep() unusable in
>> drivers' resume() callback.
>>
>> Sure, drivers can store fsl_deep_sleep() value on suspend and use
>> the stored value on resume. But a better solution is to postpone
>> clearing the deep_sleeping variable, i.e. move it into finish()
>> callback.
>>
>> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
>> ---
>> arch/powerpc/platforms/83xx/suspend.c | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> Scott, any comments or an ack?
ACK
-Scott
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 16:57 ` Scott Wood
@ 2009-11-05 18:36 ` Kumar Gala
2009-11-05 19:48 ` Scott Wood
0 siblings, 1 reply; 18+ messages in thread
From: Kumar Gala @ 2009-11-05 18:36 UTC (permalink / raw)
To: Scott Wood; +Cc: linux-ppc list
On Nov 5, 2009, at 10:57 AM, Scott Wood wrote:
> Kumar Gala wrote:
>> On Sep 23, 2009, at 2:01 PM, Anton Vorontsov wrote:
>>> Currently 83xx PMC driver clears deep_sleeping variable very early,
>>> before devices are resumed. This makes fsl_deep_sleep() unusable in
>>> drivers' resume() callback.
>>>
>>> Sure, drivers can store fsl_deep_sleep() value on suspend and use
>>> the stored value on resume. But a better solution is to postpone
>>> clearing the deep_sleeping variable, i.e. move it into finish()
>>> callback.
>>>
>>> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
>>> ---
>>> arch/powerpc/platforms/83xx/suspend.c | 4 ++--
>>> 1 files changed, 2 insertions(+), 2 deletions(-)
>> Scott, any comments or an ack?
>
> ACK
thanks, is that an ACK for all 3?
- k
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 18:36 ` Kumar Gala
@ 2009-11-05 19:48 ` Scott Wood
2009-11-05 19:59 ` Kumar Gala
0 siblings, 1 reply; 18+ messages in thread
From: Scott Wood @ 2009-11-05 19:48 UTC (permalink / raw)
To: Kumar Gala; +Cc: linux-ppc list
Kumar Gala wrote:
>
> On Nov 5, 2009, at 10:57 AM, Scott Wood wrote:
>
>> Kumar Gala wrote:
>>> On Sep 23, 2009, at 2:01 PM, Anton Vorontsov wrote:
>>>> Currently 83xx PMC driver clears deep_sleeping variable very early,
>>>> before devices are resumed. This makes fsl_deep_sleep() unusable in
>>>> drivers' resume() callback.
>>>>
>>>> Sure, drivers can store fsl_deep_sleep() value on suspend and use
>>>> the stored value on resume. But a better solution is to postpone
>>>> clearing the deep_sleeping variable, i.e. move it into finish()
>>>> callback.
>>>>
>>>> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
>>>> ---
>>>> arch/powerpc/platforms/83xx/suspend.c | 4 ++--
>>>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>> Scott, any comments or an ack?
>>
>> ACK
>
> thanks, is that an ACK for all 3?
The first. Patch 2 looks OK as well.
As for patch 3, Ben objected to the sleep-nexus stuff on IRC.
-Scott
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 19:48 ` Scott Wood
@ 2009-11-05 19:59 ` Kumar Gala
2009-11-05 20:03 ` Scott Wood
0 siblings, 1 reply; 18+ messages in thread
From: Kumar Gala @ 2009-11-05 19:59 UTC (permalink / raw)
To: Scott Wood; +Cc: linux-ppc list
On Nov 5, 2009, at 1:48 PM, Scott Wood wrote:
> Kumar Gala wrote:
>> On Nov 5, 2009, at 10:57 AM, Scott Wood wrote:
>>> Kumar Gala wrote:
>>>> On Sep 23, 2009, at 2:01 PM, Anton Vorontsov wrote:
>>>>> Currently 83xx PMC driver clears deep_sleeping variable very
>>>>> early,
>>>>> before devices are resumed. This makes fsl_deep_sleep() unusable
>>>>> in
>>>>> drivers' resume() callback.
>>>>>
>>>>> Sure, drivers can store fsl_deep_sleep() value on suspend and use
>>>>> the stored value on resume. But a better solution is to postpone
>>>>> clearing the deep_sleeping variable, i.e. move it into finish()
>>>>> callback.
>>>>>
>>>>> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
>>>>> ---
>>>>> arch/powerpc/platforms/83xx/suspend.c | 4 ++--
>>>>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>>> Scott, any comments or an ack?
>>>
>>> ACK
>> thanks, is that an ACK for all 3?
>
> The first. Patch 2 looks OK as well.
>
> As for patch 3, Ben objected to the sleep-nexus stuff on IRC.
Is sleep-nexus new? I thought we've had that for a bit.
- k
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 19:59 ` Kumar Gala
@ 2009-11-05 20:03 ` Scott Wood
2009-11-05 20:09 ` Anton Vorontsov
0 siblings, 1 reply; 18+ messages in thread
From: Scott Wood @ 2009-11-05 20:03 UTC (permalink / raw)
To: Kumar Gala; +Cc: linux-ppc list
Kumar Gala wrote:
> On Nov 5, 2009, at 1:48 PM, Scott Wood wrote:
>> As for patch 3, Ben objected to the sleep-nexus stuff on IRC.
>
> Is sleep-nexus new? I thought we've had that for a bit.
It's been around in a few dts files, but as was noted, nothing uses this
stuff yet.
-Scott
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 20:03 ` Scott Wood
@ 2009-11-05 20:09 ` Anton Vorontsov
2009-11-05 20:25 ` Scott Wood
0 siblings, 1 reply; 18+ messages in thread
From: Anton Vorontsov @ 2009-11-05 20:09 UTC (permalink / raw)
To: Scott Wood; +Cc: linux-ppc list
On Thu, Nov 05, 2009 at 02:03:14PM -0600, Scott Wood wrote:
> Kumar Gala wrote:
> >On Nov 5, 2009, at 1:48 PM, Scott Wood wrote:
> >>As for patch 3, Ben objected to the sleep-nexus stuff on IRC.
> >
> >Is sleep-nexus new? I thought we've had that for a bit.
>
> It's been around in a few dts files, but as was noted, nothing uses
> this stuff yet.
So I should just drop the sleep-nexus changes? I can also
prepare a patch that removes sleep-nexus from 8313rdb.dts.
But how should we handle the sleep = <> properties then?
--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 20:09 ` Anton Vorontsov
@ 2009-11-05 20:25 ` Scott Wood
2009-11-05 20:30 ` Anton Vorontsov
0 siblings, 1 reply; 18+ messages in thread
From: Scott Wood @ 2009-11-05 20:25 UTC (permalink / raw)
To: avorontsov; +Cc: linux-ppc list
Anton Vorontsov wrote:
> On Thu, Nov 05, 2009 at 02:03:14PM -0600, Scott Wood wrote:
>> Kumar Gala wrote:
>>> On Nov 5, 2009, at 1:48 PM, Scott Wood wrote:
>>>> As for patch 3, Ben objected to the sleep-nexus stuff on IRC.
>>> Is sleep-nexus new? I thought we've had that for a bit.
>> It's been around in a few dts files, but as was noted, nothing uses
>> this stuff yet.
>
> So I should just drop the sleep-nexus changes? I can also
> prepare a patch that removes sleep-nexus from 8313rdb.dts.
> But how should we handle the sleep = <> properties then?
We could still have some sort of nexus node that is off to the side
(pointed to with sleep-parent) and not inserting itself into the hierarchy.
Or, we could allow multiple nodes to refer to the same sleep ID, and use
the ID rather than a node to tie things together. If we do that, we'll
probably want a simple index rather than a set of bits in the sleep
property, so it can correspond to some kernel object that has some
bookeeping info. Perhaps we could tie into the clock bindings that were
discussed on devtree-discuss in August.
-Scott
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-11-05 20:25 ` Scott Wood
@ 2009-11-05 20:30 ` Anton Vorontsov
0 siblings, 0 replies; 18+ messages in thread
From: Anton Vorontsov @ 2009-11-05 20:30 UTC (permalink / raw)
To: Scott Wood; +Cc: linux-ppc list
On Thu, Nov 05, 2009 at 02:25:15PM -0600, Scott Wood wrote:
> Anton Vorontsov wrote:
> >On Thu, Nov 05, 2009 at 02:03:14PM -0600, Scott Wood wrote:
> >>Kumar Gala wrote:
> >>>On Nov 5, 2009, at 1:48 PM, Scott Wood wrote:
> >>>>As for patch 3, Ben objected to the sleep-nexus stuff on IRC.
> >>>Is sleep-nexus new? I thought we've had that for a bit.
> >>It's been around in a few dts files, but as was noted, nothing uses
> >>this stuff yet.
> >
> >So I should just drop the sleep-nexus changes? I can also
> >prepare a patch that removes sleep-nexus from 8313rdb.dts.
> >But how should we handle the sleep = <> properties then?
>
> We could still have some sort of nexus node that is off to the side
> (pointed to with sleep-parent) and not inserting itself into the
> hierarchy.
>
> Or, we could allow multiple nodes to refer to the same sleep ID, and
> use the ID rather than a node to tie things together. If we do
> that, we'll probably want a simple index rather than a set of bits
> in the sleep property, so it can correspond to some kernel object
> that has some bookeeping info. Perhaps we could tie into the clock
> bindings that were discussed on devtree-discuss in August.
Yeah, reusing the clk api would be the best.
Anyway, since we don't use the sleep-nexus stuff, I'd rather
just add the power management controller nodes.
--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB
@ 2009-12-10 17:59 Anton Vorontsov
2009-12-10 18:00 ` [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume Anton Vorontsov
` (3 more replies)
0 siblings, 4 replies; 18+ messages in thread
From: Anton Vorontsov @ 2009-12-10 17:59 UTC (permalink / raw)
To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev
Hi all,
This is quite late resend, sorry.
Only the third patch has changed, i.e. I got rid of sleep-nexus
stuff per Scott and Benjamin suggestions.
Thanks,
--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-12-10 17:59 [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Anton Vorontsov
@ 2009-12-10 18:00 ` Anton Vorontsov
2009-12-11 1:56 ` Kumar Gala
2009-12-10 18:00 ` [PATCH 2/3] powerpc/83xx/suspend: Save and restore SICRL, SICRH and SCCR Anton Vorontsov
` (2 subsequent siblings)
3 siblings, 1 reply; 18+ messages in thread
From: Anton Vorontsov @ 2009-12-10 18:00 UTC (permalink / raw)
To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev
Currently 83xx PMC driver clears deep_sleeping variable very early,
before devices are resumed. This makes fsl_deep_sleep() unusable in
drivers' resume() callback.
Sure, drivers can store fsl_deep_sleep() value on suspend and use
the stored value on resume. But a better solution is to postpone
clearing the deep_sleeping variable, i.e. move it into finish()
callback.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Scott Wood <scottwood@freescale.com>
---
arch/powerpc/platforms/83xx/suspend.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index d306f07..b0c2619 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -194,7 +194,7 @@ out:
return ret;
}
-static void mpc83xx_suspend_finish(void)
+static void mpc83xx_suspend_end(void)
{
deep_sleeping = 0;
}
@@ -278,7 +278,7 @@ static struct platform_suspend_ops mpc83xx_suspend_ops = {
.valid = mpc83xx_suspend_valid,
.begin = mpc83xx_suspend_begin,
.enter = mpc83xx_suspend_enter,
- .finish = mpc83xx_suspend_finish,
+ .end = mpc83xx_suspend_end,
};
static int pmc_probe(struct of_device *ofdev,
--
1.6.3.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/3] powerpc/83xx/suspend: Save and restore SICRL, SICRH and SCCR
2009-12-10 17:59 [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Anton Vorontsov
2009-12-10 18:00 ` [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume Anton Vorontsov
@ 2009-12-10 18:00 ` Anton Vorontsov
2009-12-11 1:57 ` Kumar Gala
2009-12-10 18:01 ` [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards Anton Vorontsov
2009-12-10 18:07 ` [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Scott Wood
3 siblings, 1 reply; 18+ messages in thread
From: Anton Vorontsov @ 2009-12-10 18:00 UTC (permalink / raw)
To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev
We need to save SICRL, SICRH and SCCR registers on suspend, and restore
them on resume. Otherwise, we lose IO and clocks setup on MPC8315E-RDB
boards when ULPI USB PHY is used (non-POR setup).
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
arch/powerpc/platforms/83xx/suspend.c | 48 +++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index b0c2619..4380534 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -32,6 +32,7 @@
#define PMCCR1_NEXT_STATE 0x0C /* Next state for power management */
#define PMCCR1_NEXT_STATE_SHIFT 2
#define PMCCR1_CURR_STATE 0x03 /* Current state for power management*/
+#define IMMR_SYSCR_OFFSET 0x100
#define IMMR_RCW_OFFSET 0x900
#define RCW_PCI_HOST 0x80000000
@@ -78,6 +79,22 @@ struct mpc83xx_clock {
u32 sccr;
};
+struct mpc83xx_syscr {
+ __be32 sgprl;
+ __be32 sgprh;
+ __be32 spridr;
+ __be32 :32;
+ __be32 spcr;
+ __be32 sicrl;
+ __be32 sicrh;
+};
+
+struct mpc83xx_saved {
+ u32 sicrl;
+ u32 sicrh;
+ u32 sccr;
+};
+
struct pmc_type {
int has_deep_sleep;
};
@@ -87,6 +104,8 @@ static int has_deep_sleep, deep_sleeping;
static int pmc_irq;
static struct mpc83xx_pmc __iomem *pmc_regs;
static struct mpc83xx_clock __iomem *clock_regs;
+static struct mpc83xx_syscr __iomem *syscr_regs;
+static struct mpc83xx_saved saved_regs;
static int is_pci_agent, wake_from_pci;
static phys_addr_t immrbase;
static int pci_pm_state;
@@ -137,6 +156,20 @@ static irqreturn_t pmc_irq_handler(int irq, void *dev_id)
return ret;
}
+static void mpc83xx_suspend_restore_regs(void)
+{
+ out_be32(&syscr_regs->sicrl, saved_regs.sicrl);
+ out_be32(&syscr_regs->sicrh, saved_regs.sicrh);
+ out_be32(&clock_regs->sccr, saved_regs.sccr);
+}
+
+static void mpc83xx_suspend_save_regs(void)
+{
+ saved_regs.sicrl = in_be32(&syscr_regs->sicrl);
+ saved_regs.sicrh = in_be32(&syscr_regs->sicrh);
+ saved_regs.sccr = in_be32(&clock_regs->sccr);
+}
+
static int mpc83xx_suspend_enter(suspend_state_t state)
{
int ret = -EAGAIN;
@@ -166,6 +199,8 @@ static int mpc83xx_suspend_enter(suspend_state_t state)
*/
if (deep_sleeping) {
+ mpc83xx_suspend_save_regs();
+
out_be32(&pmc_regs->mask, PMCER_ALL);
out_be32(&pmc_regs->config1,
@@ -179,6 +214,8 @@ static int mpc83xx_suspend_enter(suspend_state_t state)
in_be32(&pmc_regs->config1) & ~PMCCR1_POWER_OFF);
out_be32(&pmc_regs->mask, PMCER_PMCI);
+
+ mpc83xx_suspend_restore_regs();
} else {
out_be32(&pmc_regs->mask, PMCER_PMCI);
@@ -333,12 +370,23 @@ static int pmc_probe(struct of_device *ofdev,
goto out_pmc;
}
+ if (has_deep_sleep) {
+ syscr_regs = ioremap(immrbase + IMMR_SYSCR_OFFSET,
+ sizeof(*syscr_regs));
+ if (!syscr_regs) {
+ ret = -ENOMEM;
+ goto out_syscr;
+ }
+ }
+
if (is_pci_agent)
mpc83xx_set_agent();
suspend_set_ops(&mpc83xx_suspend_ops);
return 0;
+out_syscr:
+ iounmap(clock_regs);
out_pmc:
iounmap(pmc_regs);
out:
--
1.6.3.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards
2009-12-10 17:59 [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Anton Vorontsov
2009-12-10 18:00 ` [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume Anton Vorontsov
2009-12-10 18:00 ` [PATCH 2/3] powerpc/83xx/suspend: Save and restore SICRL, SICRH and SCCR Anton Vorontsov
@ 2009-12-10 18:01 ` Anton Vorontsov
2009-12-11 1:57 ` Kumar Gala
2009-12-10 18:07 ` [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Scott Wood
3 siblings, 1 reply; 18+ messages in thread
From: Anton Vorontsov @ 2009-12-10 18:01 UTC (permalink / raw)
To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev
- Add nodes for PMC and GTM controllers. GTM4 can be used as a wakeup
source;
- Add fsl,magic-packet properties to eTSEC nodes, i.e. wake-on-lan
support. Unlike MPC8313 processors, MPC8315 can resume from deep
sleep upon magic packet reception.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
arch/powerpc/boot/dts/mpc8315erdb.dts | 27 +++++++++++++++++++++++++++
1 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts
index 32e10f5..8a3a4f3 100644
--- a/arch/powerpc/boot/dts/mpc8315erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8315erdb.dts
@@ -204,6 +204,7 @@
interrupt-parent = <&ipic>;
tbi-handle = <&tbi0>;
phy-handle = < &phy0 >;
+ fsl,magic-packet;
mdio@520 {
#address-cells = <1>;
@@ -246,6 +247,7 @@
interrupt-parent = <&ipic>;
tbi-handle = <&tbi1>;
phy-handle = < &phy1 >;
+ fsl,magic-packet;
mdio@520 {
#address-cells = <1>;
@@ -309,6 +311,22 @@
interrupt-parent = <&ipic>;
};
+ gtm1: timer@500 {
+ compatible = "fsl,mpc8315-gtm", "fsl,gtm";
+ reg = <0x500 0x100>;
+ interrupts = <90 8 78 8 84 8 72 8>;
+ interrupt-parent = <&ipic>;
+ clock-frequency = <133333333>;
+ };
+
+ timer@600 {
+ compatible = "fsl,mpc8315-gtm", "fsl,gtm";
+ reg = <0x600 0x100>;
+ interrupts = <91 8 79 8 85 8 73 8>;
+ interrupt-parent = <&ipic>;
+ clock-frequency = <133333333>;
+ };
+
/* IPIC
* interrupts cell = <intr #, sense>
* sense values match linux IORESOURCE_IRQ_* defines:
@@ -337,6 +355,15 @@
0x59 0x8>;
interrupt-parent = < &ipic >;
};
+
+ pmc: power@b00 {
+ compatible = "fsl,mpc8315-pmc", "fsl,mpc8313-pmc",
+ "fsl,mpc8349-pmc";
+ reg = <0xb00 0x100 0xa00 0x100>;
+ interrupts = <80 8>;
+ interrupt-parent = <&ipic>;
+ fsl,mpc8313-wakeup-timer = <>m1>;
+ };
};
pci0: pci@e0008500 {
--
1.6.3.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB
2009-12-10 17:59 [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Anton Vorontsov
` (2 preceding siblings ...)
2009-12-10 18:01 ` [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards Anton Vorontsov
@ 2009-12-10 18:07 ` Scott Wood
3 siblings, 0 replies; 18+ messages in thread
From: Scott Wood @ 2009-12-10 18:07 UTC (permalink / raw)
To: avorontsov; +Cc: linuxppc-dev
Anton Vorontsov wrote:
> Hi all,
>
> This is quite late resend, sorry.
>
> Only the third patch has changed, i.e. I got rid of sleep-nexus
> stuff per Scott and Benjamin suggestions.
Acked-by: Scott Wood <scottwood@freescale.com>
-Scott
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume
2009-12-10 18:00 ` [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume Anton Vorontsov
@ 2009-12-11 1:56 ` Kumar Gala
0 siblings, 0 replies; 18+ messages in thread
From: Kumar Gala @ 2009-12-11 1:56 UTC (permalink / raw)
To: Anton Vorontsov; +Cc: Scott Wood, linuxppc-dev
On Dec 10, 2009, at 12:00 PM, Anton Vorontsov wrote:
> Currently 83xx PMC driver clears deep_sleeping variable very early,
> before devices are resumed. This makes fsl_deep_sleep() unusable in
> drivers' resume() callback.
>
> Sure, drivers can store fsl_deep_sleep() value on suspend and use
> the stored value on resume. But a better solution is to postpone
> clearing the deep_sleeping variable, i.e. move it into finish()
> callback.
>
> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> Acked-by: Scott Wood <scottwood@freescale.com>
> ---
> arch/powerpc/platforms/83xx/suspend.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
applied to next
- k
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 2/3] powerpc/83xx/suspend: Save and restore SICRL, SICRH and SCCR
2009-12-10 18:00 ` [PATCH 2/3] powerpc/83xx/suspend: Save and restore SICRL, SICRH and SCCR Anton Vorontsov
@ 2009-12-11 1:57 ` Kumar Gala
0 siblings, 0 replies; 18+ messages in thread
From: Kumar Gala @ 2009-12-11 1:57 UTC (permalink / raw)
To: Anton Vorontsov; +Cc: Scott Wood, linuxppc-dev
On Dec 10, 2009, at 12:00 PM, Anton Vorontsov wrote:
> We need to save SICRL, SICRH and SCCR registers on suspend, and =
restore
> them on resume. Otherwise, we lose IO and clocks setup on MPC8315E-RDB
> boards when ULPI USB PHY is used (non-POR setup).
>=20
> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> ---
> arch/powerpc/platforms/83xx/suspend.c | 48 =
+++++++++++++++++++++++++++++++++
> 1 files changed, 48 insertions(+), 0 deletions(-)
applied to next
- k=
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards
2009-12-10 18:01 ` [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards Anton Vorontsov
@ 2009-12-11 1:57 ` Kumar Gala
0 siblings, 0 replies; 18+ messages in thread
From: Kumar Gala @ 2009-12-11 1:57 UTC (permalink / raw)
To: Anton Vorontsov; +Cc: Scott Wood, linuxppc-dev
On Dec 10, 2009, at 12:01 PM, Anton Vorontsov wrote:
> - Add nodes for PMC and GTM controllers. GTM4 can be used as a wakeup
> source;
>
> - Add fsl,magic-packet properties to eTSEC nodes, i.e. wake-on-lan
> support. Unlike MPC8313 processors, MPC8315 can resume from deep
> sleep upon magic packet reception.
>
> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> ---
> arch/powerpc/boot/dts/mpc8315erdb.dts | 27 +++++++++++++++++++++++++++
> 1 files changed, 27 insertions(+), 0 deletions(-)
applied to next
- k
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2009-12-11 1:57 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-10 17:59 [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Anton Vorontsov
2009-12-10 18:00 ` [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume Anton Vorontsov
2009-12-11 1:56 ` Kumar Gala
2009-12-10 18:00 ` [PATCH 2/3] powerpc/83xx/suspend: Save and restore SICRL, SICRH and SCCR Anton Vorontsov
2009-12-11 1:57 ` Kumar Gala
2009-12-10 18:01 ` [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards Anton Vorontsov
2009-12-11 1:57 ` Kumar Gala
2009-12-10 18:07 ` [PATCH v2 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB Scott Wood
-- strict thread matches above, loose matches on Subject: below --
2009-09-23 19:00 [PATCH " Anton Vorontsov
2009-09-23 19:01 ` [PATCH 1/3] powerpc/83xx/suspend: Clear deep_sleeping after devices resume Anton Vorontsov
2009-11-05 14:57 ` Kumar Gala
2009-11-05 16:57 ` Scott Wood
2009-11-05 18:36 ` Kumar Gala
2009-11-05 19:48 ` Scott Wood
2009-11-05 19:59 ` Kumar Gala
2009-11-05 20:03 ` Scott Wood
2009-11-05 20:09 ` Anton Vorontsov
2009-11-05 20:25 ` Scott Wood
2009-11-05 20:30 ` Anton Vorontsov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).