* [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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ 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; 9+ 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] 9+ messages in thread
* [PATCH 0/3] powerpc/83xx: Sleep and deep sleep support for MPC8315E-RDB @ 2009-09-23 19:00 Anton Vorontsov 2009-09-23 19:01 ` [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards Anton Vorontsov 0 siblings, 1 reply; 9+ messages in thread From: Anton Vorontsov @ 2009-09-23 19:00 UTC (permalink / raw) To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev Hi all, Here are some patches to make suspend/resume work on MPC8315E-RDB... Thanks, -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards 2009-09-23 19:00 [PATCH " Anton Vorontsov @ 2009-09-23 19:01 ` Anton Vorontsov 0 siblings, 0 replies; 9+ messages in thread From: Anton Vorontsov @ 2009-09-23 19: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; - Add proper sleep = <> properties; - DMA and PCI share a single clock soruce, so put them into "sleep nexus" node (the same we do for MPC8313E-RDB boards); - I2C and Encryption core also share a single clock, so do the same: put i2c and crypto nodes into sleep-nexus. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> --- arch/powerpc/boot/dts/mpc8315erdb.dts | 264 ++++++++++++++++++++------------- 1 files changed, 161 insertions(+), 103 deletions(-) diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts index 32e10f5..406ebc3 100644 --- a/arch/powerpc/boot/dts/mpc8315erdb.dts +++ b/arch/powerpc/boot/dts/mpc8315erdb.dts @@ -109,26 +109,47 @@ reg = <0x200 0x100>; }; - i2c@3000 { + sleep-nexus { #address-cells = <1>; - #size-cells = <0>; - cell-index = <0>; - compatible = "fsl-i2c"; - reg = <0x3000 0x100>; - interrupts = <14 0x8>; - interrupt-parent = <&ipic>; - dfsrr; - rtc@68 { - compatible = "dallas,ds1339"; - reg = <0x68>; + #size-cells = <1>; + compatible = "simple-bus"; + sleep = <&pmc 0x03000000>; + ranges; + + i2c@3000 { + #address-cells = <1>; + #size-cells = <0>; + cell-index = <0>; + compatible = "fsl-i2c"; + reg = <0x3000 0x100>; + interrupts = <14 0x8>; + interrupt-parent = <&ipic>; + dfsrr; + rtc@68 { + compatible = "dallas,ds1339"; + reg = <0x68>; + }; + + mcu_pio: mcu@a { + #gpio-cells = <2>; + compatible = "fsl,mc9s08qg8-mpc8315erdb", + "fsl,mcu-mpc8349emitx"; + reg = <0x0a>; + gpio-controller; + }; }; - mcu_pio: mcu@a { - #gpio-cells = <2>; - compatible = "fsl,mc9s08qg8-mpc8315erdb", - "fsl,mcu-mpc8349emitx"; - reg = <0x0a>; - gpio-controller; + crypto@30000 { + compatible = "fsl,sec3.3", "fsl,sec3.1", "fsl,sec3.0", + "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", + "fsl,sec2.0"; + reg = <0x30000 0x10000>; + interrupts = <11 0x8>; + interrupt-parent = <&ipic>; + fsl,num-channels = <4>; + fsl,channel-fifo-len = <24>; + fsl,exec-units-mask = <0x97c>; + fsl,descriptor-types-mask = <0x3ab0abf>; }; }; @@ -141,45 +162,6 @@ mode = "cpu"; }; - dma@82a8 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "fsl,mpc8315-dma", "fsl,elo-dma"; - reg = <0x82a8 4>; - ranges = <0 0x8100 0x1a8>; - interrupt-parent = <&ipic>; - interrupts = <71 8>; - cell-index = <0>; - dma-channel@0 { - compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; - reg = <0 0x80>; - cell-index = <0>; - interrupt-parent = <&ipic>; - interrupts = <71 8>; - }; - dma-channel@80 { - compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; - reg = <0x80 0x80>; - cell-index = <1>; - interrupt-parent = <&ipic>; - interrupts = <71 8>; - }; - dma-channel@100 { - compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; - reg = <0x100 0x80>; - cell-index = <2>; - interrupt-parent = <&ipic>; - interrupts = <71 8>; - }; - dma-channel@180 { - compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; - reg = <0x180 0x28>; - cell-index = <3>; - interrupt-parent = <&ipic>; - interrupts = <71 8>; - }; - }; - usb@23000 { compatible = "fsl-usb2-dr"; reg = <0x23000 0x1000>; @@ -188,6 +170,7 @@ interrupt-parent = <&ipic>; interrupts = <38 0x8>; phy_type = "utmi"; + sleep = <&pmc 0x00c00000>; }; enet0: ethernet@24000 { @@ -204,6 +187,8 @@ interrupt-parent = <&ipic>; tbi-handle = <&tbi0>; phy-handle = < &phy0 >; + sleep = <&pmc 0xc0000000>; + fsl,magic-packet; mdio@520 { #address-cells = <1>; @@ -246,6 +231,8 @@ interrupt-parent = <&ipic>; tbi-handle = <&tbi1>; phy-handle = < &phy1 >; + sleep = <&pmc 0x30000000>; + fsl,magic-packet; mdio@520 { #address-cells = <1>; @@ -280,25 +267,13 @@ interrupt-parent = <&ipic>; }; - crypto@30000 { - compatible = "fsl,sec3.3", "fsl,sec3.1", "fsl,sec3.0", - "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1", - "fsl,sec2.0"; - reg = <0x30000 0x10000>; - interrupts = <11 0x8>; - interrupt-parent = <&ipic>; - fsl,num-channels = <4>; - fsl,channel-fifo-len = <24>; - fsl,exec-units-mask = <0x97c>; - fsl,descriptor-types-mask = <0x3ab0abf>; - }; - sata@18000 { compatible = "fsl,mpc8315-sata", "fsl,pq-sata"; reg = <0x18000 0x1000>; cell-index = <1>; interrupts = <44 0x8>; interrupt-parent = <&ipic>; + sleep = <&pmc 0x00003000>; }; sata@19000 { @@ -307,6 +282,23 @@ cell-index = <2>; interrupts = <45 0x8>; interrupt-parent = <&ipic>; + sleep = <&pmc 0x00000c00>; + }; + + 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 @@ -337,42 +329,106 @@ 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 { - interrupt-map-mask = <0xf800 0x0 0x0 0x7>; - interrupt-map = < - /* IDSEL 0x0E -mini PCI */ - 0x7000 0x0 0x0 0x1 &ipic 18 0x8 - 0x7000 0x0 0x0 0x2 &ipic 18 0x8 - 0x7000 0x0 0x0 0x3 &ipic 18 0x8 - 0x7000 0x0 0x0 0x4 &ipic 18 0x8 - - /* IDSEL 0x0F -mini PCI */ - 0x7800 0x0 0x0 0x1 &ipic 17 0x8 - 0x7800 0x0 0x0 0x2 &ipic 17 0x8 - 0x7800 0x0 0x0 0x3 &ipic 17 0x8 - 0x7800 0x0 0x0 0x4 &ipic 17 0x8 - - /* IDSEL 0x10 - PCI slot */ - 0x8000 0x0 0x0 0x1 &ipic 48 0x8 - 0x8000 0x0 0x0 0x2 &ipic 17 0x8 - 0x8000 0x0 0x0 0x3 &ipic 48 0x8 - 0x8000 0x0 0x0 0x4 &ipic 17 0x8>; - interrupt-parent = <&ipic>; - interrupts = <66 0x8>; - bus-range = <0x0 0x0>; - ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000 - 0x42000000 0 0x80000000 0x80000000 0 0x10000000 - 0x01000000 0 0x00000000 0xe0300000 0 0x00100000>; - clock-frequency = <66666666>; - #interrupt-cells = <1>; - #size-cells = <2>; - #address-cells = <3>; - reg = <0xe0008500 0x100 /* internal registers */ - 0xe0008300 0x8>; /* config space access registers */ - compatible = "fsl,mpc8349-pci"; - device_type = "pci"; + sleep-nexus { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + sleep = <&pmc 0x00010000>; + ranges; + + pci0: pci@e0008500 { + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; + interrupt-map = < + /* IDSEL 0x0E -mini PCI */ + 0x7000 0x0 0x0 0x1 &ipic 18 0x8 + 0x7000 0x0 0x0 0x2 &ipic 18 0x8 + 0x7000 0x0 0x0 0x3 &ipic 18 0x8 + 0x7000 0x0 0x0 0x4 &ipic 18 0x8 + + /* IDSEL 0x0F -mini PCI */ + 0x7800 0x0 0x0 0x1 &ipic 17 0x8 + 0x7800 0x0 0x0 0x2 &ipic 17 0x8 + 0x7800 0x0 0x0 0x3 &ipic 17 0x8 + 0x7800 0x0 0x0 0x4 &ipic 17 0x8 + + /* IDSEL 0x10 - PCI slot */ + 0x8000 0x0 0x0 0x1 &ipic 48 0x8 + 0x8000 0x0 0x0 0x2 &ipic 17 0x8 + 0x8000 0x0 0x0 0x3 &ipic 48 0x8 + 0x8000 0x0 0x0 0x4 &ipic 17 0x8>; + interrupt-parent = <&ipic>; + interrupts = <66 0x8>; + bus-range = <0x0 0x0>; + ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000 + 0x42000000 0 0x80000000 0x80000000 0 0x10000000 + 0x01000000 0 0x00000000 0xe0300000 0 0x00100000>; + clock-frequency = <66666666>; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = <0xe0008500 0x100 /* internal registers */ + 0xe0008300 0x8>; /* config space access registers */ + compatible = "fsl,mpc8349-pci"; + device_type = "pci"; + }; + + dma@e00082a8 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "fsl,mpc8315-dma", "fsl,elo-dma"; + reg = <0xe00082a8 4>; + ranges = <0 0xe0008100 0x1a8>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + cell-index = <0>; + + dma-channel@0 { + compatible = "fsl,mpc8315-dma-channel", + "fsl,elo-dma-channel"; + reg = <0 0x80>; + cell-index = <0>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + }; + + dma-channel@80 { + compatible = "fsl,mpc8315-dma-channel", + "fsl,elo-dma-channel"; + reg = <0x80 0x80>; + cell-index = <1>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + }; + + dma-channel@100 { + compatible = "fsl,mpc8315-dma-channel", + "fsl,elo-dma-channel"; + reg = <0x100 0x80>; + cell-index = <2>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + }; + + dma-channel@180 { + compatible = "fsl,mpc8315-dma-channel", + "fsl,elo-dma-channel"; + reg = <0x180 0x28>; + cell-index = <3>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + }; + }; }; pci1: pcie@e0009000 { @@ -390,6 +446,7 @@ 0 0 0 2 &ipic 1 8 0 0 0 3 &ipic 1 8 0 0 0 4 &ipic 1 8>; + sleep = <&pmc 0x00300000>; clock-frequency = <0>; pcie@0 { @@ -421,6 +478,7 @@ 0 0 0 2 &ipic 2 8 0 0 0 3 &ipic 2 8 0 0 0 4 &ipic 2 8>; + sleep = <&pmc 0x000c0000>; clock-frequency = <0>; pcie@0 { -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-12-11 1:57 UTC | newest] Thread overview: 9+ 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 3/3] powerpc/83xx: Add power management support for MPC8315E-RDB boards 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).