Document Freescale power management nodes, and the sleep property.
Subsystems (5)
PATCH 1/6 Document Freescale power management nodes, and the sleep property.
--- Documentation/powerpc/booting-without-of.txt | 142 +++++++++++++++++------- Documentation/powerpc/dts-bindings/fsl/pmc.txt | 63 +++++++++++ 2 files changed, 163 insertions(+), 42 deletions(-) create mode 100644 Documentation/powerpc/dts-bindings/fsl/pmc.txt
Documentation/powerpc/booting-without-of.txt +100 -42
@@ -77,10 +77,12 @@ Table of Contents 3) OpenPIC Interrupt Controllers 4) ISA Interrupt Controllers - VIII - Specifying GPIO information for devices + IX - Specifying GPIO information for devices 1) gpios property 2) gpio-controller nodes + X - Specifying device power management information (sleep property) + Appendix A - Sample SOC node for MPC8540
@@ -2422,8 +2424,8 @@ encodings listed below: 2 = high to low edge sensitive type enabled 3 = low to high edge sensitive type enabled -VIII - Specifying GPIO information for devices -============================================== +IX - Specifying GPIO information for devices +============================================ 1) gpios property -----------------
@@ -2471,6 +2473,37 @@ Example of two SOC GPIO banks defined as gpio-controller nodes: gpio-controller; }; +X - Specifying Device Power Management Information (sleep property) +=================================================================== + +Devices on SOCs often have mechanisms for placing devices into low-power +states that are decoupled from the devices' own register blocks. Sometimes, +this information is more complicated than a cell-index property can +reasonably describe. Thus, each device controlled in such a manner +may contain a "sleep" property which describes these connections. + +The sleep property consists of one or more sleep resources, each of +which consists of a phandle to a sleep controller, followed by a +controller-specific sleep specifier of zero or more cells. + +The semantics of what type of low power modes are possible are defined +by the sleep controller. Some examples of the types of low power modes +that may be supported are: + + - Dynamic: The device may be disabled or enabled at any time. + - System Suspend: The device may request to be disabled or remain + awake during system suspend, but will not be disabled until then. + - Permanent: The device is disabled permanently (until the next hard + reset). + +Some devices may share a clock domain with each other, such that they should +only be suspended when none of the devices are in use. Where reasonable, +such nodes should be placed on a virtual bus, where the bus has the sleep +property. If the clock domain is shared among devices that cannot be +reasonably grouped in this manner, then create a virtual sleep controller +(similar to an interrupt nexus, except that defining a standardized +sleep-map should wait until its necessity is demonstrated). + Appendix A - Sample SOC node for MPC8540 ========================================
@@ -2487,47 +2520,48 @@ not necessary as they are usually the same as the root node. reg = <e0000000 00003000>; bus-frequency = <0>; - mdio@24520 { - reg = <24520 20>; - device_type = "mdio"; - compatible = "gianfar"; - - ethernet-phy@0 { - linux,phandle = <2452000> - interrupt-parent = <40000>; - interrupts = <35 1>; - reg = <0>; - device_type = "ethernet-phy"; - }; - - ethernet-phy@1 { - linux,phandle = <2452001> - interrupt-parent = <40000>; - interrupts = <35 1>; - reg = <1>; - device_type = "ethernet-phy"; - }; - - ethernet-phy@3 { - linux,phandle = <2452002> - interrupt-parent = <40000>; - interrupts = <35 1>; - reg = <3>; - device_type = "ethernet-phy"; - }; - - }; - ethernet@24000 { - #size-cells = <0>; + #address-cells = <1>; + #size-cells = <1>; device_type = "network"; model = "TSEC"; - compatible = "gianfar"; + compatible = "gianfar", "simple-bus"; reg = <24000 1000>; mac-address = [ 00 E0 0C 00 73 00 ]; interrupts = <d 3 e 3 12 3>; interrupt-parent = <40000>; phy-handle = <2452000>; + sleep = <&pmc 00000080>; + ranges; + + mdio@24520 { + reg = <24520 20>; + compatible = "fsl,gianfar-mdio"; + + ethernet-phy@0 { + linux,phandle = <2452000> + interrupt-parent = <40000>; + interrupts = <35 1>; + reg = <0>; + device_type = "ethernet-phy"; + }; + + ethernet-phy@1 { + linux,phandle = <2452001> + interrupt-parent = <40000>; + interrupts = <35 1>; + reg = <1>; + device_type = "ethernet-phy"; + }; + + ethernet-phy@3 { + linux,phandle = <2452002> + interrupt-parent = <40000>; + interrupts = <35 1>; + reg = <3>; + device_type = "ethernet-phy"; + }; + }; }; ethernet@25000 {
@@ -2541,6 +2575,7 @@ not necessary as they are usually the same as the root node. interrupts = <13 3 14 3 18 3>; interrupt-parent = <40000>; phy-handle = <2452001>; + sleep = <&pmc 00000040>; }; ethernet@26000 {
@@ -2554,15 +2589,33 @@ not necessary as they are usually the same as the root node. interrupts = <19 3>; interrupt-parent = <40000>; phy-handle = <2452002>; + sleep = <&pmc 00000020>; }; serial@4500 { - device_type = "serial"; - compatible = "ns16550"; - reg = <4500 100>; - clock-frequency = <0>; - interrupts = <1a 3>; - interrupt-parent = <40000>; + #address-cells = <1>; + #size-cells = <1>; + compatible = "fsl,mpc8540-duart", "simple-bus"; + sleep = <&pmc 00000002>; + ranges; + + serial@4500 { + device_type = "serial"; + compatible = "ns16550"; + reg = <4500 100>; + clock-frequency = <0>; + interrupts = <1a 3>; + interrupt-parent = <40000>; + }; + + serial@4600 { + device_type = "serial"; + compatible = "ns16550"; + reg = <4600 100>; + clock-frequency = <0>; + interrupts = <1a 3>; + interrupt-parent = <40000>; + }; }; pic@40000 {
@@ -2581,6 +2634,11 @@ not necessary as they are usually the same as the root node. device_type = "i2c"; compatible = "fsl-i2c"; dfsrr; + sleep = <&pmc 00000004>; }; + pmc: power@e0070 { + compatible = "fsl,mpc8540-pmc", "fsl,mpc8548-pmc"; + reg = <e0070 20>; + }; };
Documentation/powerpc/dts-bindings/fsl/pmc.txt new file +63 -0
63 lines not on this page · raw message
Signature · 1 line
1.5.6.rc1.6.gc53ad.dirty
PATCH 3/6 mpc83xx: Power Management support
Basic PM support for 83xx. Standby is implemented as sleep. Suspend-to-RAM is implemented as "deep sleep" (with the processor turned off) on 831x.
--- arch/powerpc/Kconfig | 2 +- arch/powerpc/platforms/83xx/Makefile | 1 + arch/powerpc/platforms/83xx/suspend-asm.S | 533 +++++++++++++++++++++++++++++ arch/powerpc/platforms/83xx/suspend.c | 388 +++++++++++++++++++++ arch/powerpc/sysdev/fsl_soc.h | 1 + arch/powerpc/sysdev/ipic.c | 71 ++++ include/asm-powerpc/reg.h | 4 + include/linux/fsl_devices.h | 6 + 8 files changed, 1005 insertions(+), 1 deletions(-) create mode 100644 arch/powerpc/platforms/83xx/suspend-asm.S create mode 100644 arch/powerpc/platforms/83xx/suspend.c
arch/powerpc/Kconfig +1 -1
@@ -192,7 +192,7 @@ config ARCH_HIBERNATION_POSSIBLE config ARCH_SUSPEND_POSSIBLE def_bool y - depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 + depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx config PPC_DCR_NATIVE bool
arch/powerpc/platforms/83xx/Makefile +1 -0
@@ -3,6 +3,7 @@ # obj-y := misc.o usb.o obj-$(CONFIG_PCI) += pci.o +obj-$(CONFIG_SUSPEND) += suspend.o suspend-asm.o obj-$(CONFIG_MPC831x_RDB) += mpc831x_rdb.o obj-$(CONFIG_MPC832x_RDB) += mpc832x_rdb.o obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o
arch/powerpc/platforms/83xx/suspend-asm.S new file +533 -0
533 lines not on this page · raw message
arch/powerpc/platforms/83xx/suspend.c new file +388 -0
388 lines not on this page · raw message
arch/powerpc/sysdev/fsl_soc.h +1 -0
@@ -10,6 +10,7 @@ extern u32 get_baudrate(void);extern u32 fsl_get_sys_freq (void );struct spi_board_info ; +struct device_node ; extern int fsl_spi_init(struct spi_board_info *board_infos, unsigned int num_board_infos,
arch/powerpc/sysdev/ipic.c +71 -0
85 lines not on this page · raw message
include/asm-powerpc/reg.h +4 -0
@@ -155,10 +155,12 @@#define CTRL_RUNLATCH 0x1#define SPRN_DABR 0x3F5/* Data Address Breakpoint Register */ #define DABR_TRANSLATION (1UL << 2) +#define SPRN_DABR2 0x13D/* e300 */ #define SPRN_DABRX 0x3F7/* Data Address Breakpoint Register Extension */ #define DABRX_USER (1UL << 0)#define DABRX_KERNEL (1UL << 1)#define SPRN_DAR 0x013/* Data Address Register */ +#define SPRN_DBCR 0x136/* e300 Data Breakpoint Control Reg */ #define SPRN_DSISR 0x012/* Data Storage Interrupt Status Register */ #define DSISR_NOHPTE 0x40000000/* no translation found */ #define DSISR_PROTFAULT 0x08000000/* protection fault */
@@ -264,6 +266,8 @@#define HID1_PS (1<<16)/* 750FX PLL selection */ #define SPRN_HID2 0x3F8/* Hardware Implementation Register 2 */ #define SPRN_IABR 0x3F2/* Instruction Address Breakpoint Register */ +#define SPRN_IABR2 0x3FA/* 83xx */ +#define SPRN_IBCR 0x135/* 83xx Insn Breakpoint Control Reg */ #define SPRN_HID4 0x3F4/* 970 HID4 */ #define SPRN_HID5 0x3F6/* 970 HID5 */ #define SPRN_HID6 0x3F9/* BE HID 6 */
include/linux/fsl_devices.h +6 -0
@@ -125,4 +125,10 @@ struct mpc8xx_pcmcia_ops { int(*voltage_set)(int slot, int vcc, int vpp); }; +/* Returns non-zero if the current suspend operation would +* lead to a deep sleep (i.e. power removed from the core, +* instead of just the clock). +*/ +int fsl_deep_sleep (void ); +#endif /* _FSL_DEVICE_H_ */
Signature · 1 line
1.5.6.rc1.6.gc53ad.dirty
Kumar Gala
AppliedRe: [PATCH 3/6] mpc83xx: Power Management support
Quoted 16 lines · Scott Wood
Basic PM support for 83xx. Standby is implemented as sleep. Suspend-to-RAM is implemented as "deep sleep" (with the processor turned off) on 831x.
Signed-off-by Scott Wood <[email protected]>---
arch/powerpc/Kconfig | 2 +- arch/powerpc/platforms/83xx/Makefile | 1 + arch/powerpc/platforms/83xx/suspend-asm.S | 533 ++++++++++++++++++++ +++++++++ arch/powerpc/platforms/83xx/suspend.c | 388 +++++++++++++++++++++ arch/powerpc/sysdev/fsl_soc.h | 1 + arch/powerpc/sysdev/ipic.c | 71 ++++ include/asm-powerpc/reg.h | 4 + include/linux/fsl_devices.h | 6 + 8 files changed, 1005 insertions(+), 1 deletions(-)
Quoted 2 lines
create mode 100644
arch/powerpc/platforms/83xx/suspend-asm.Screate mode 100644arch/powerpc/platforms/83xx/suspend.c
applied.
- k
PATCH 4/6 Add fsl,magic-packet to, and clean up, the gianfar binding.
In reply to Scott Wood--- Documentation/powerpc/dts-bindings/fsl/tsec.txt | 31 +++++++++-------------- 1 files changed, 12 insertions(+), 19 deletions(-)
Documentation/powerpc/dts-bindings/fsl/tsec.txt +12 -19
@@ -24,46 +24,39 @@ Example: * Gianfar-compatible ethernet nodes -Required properties: +Properties: - device_type : Should be "network" - model : Model of the device. Can be "TSEC", "eTSEC", or "FEC" - compatible : Should be "gianfar" - reg : Offset and length of the register set for the device - - mac-address : List of bytes representing the ethernet address of + - local-mac-address : List of bytes representing the ethernet address of this controller - - interrupts : <a b> where a is the interrupt number and b is a - field that represents an encoding of the sense and level - information for the interrupt. This should be encoded based on - the information in section 2) depending on the type of interrupt - controller you have. - - interrupt-parent : the phandle for the interrupt controller that - services interrupts for this device. + - interrupts : For FEC devices, the first interrupt is the device's + interrupt. For TSEC and eTSEC devices, the first interrupt is + transmit, the second is receive, and the third is error. - phy-handle : The phandle for the PHY connected to this ethernet controller. - fixed-link : <a b c d e> where a is emulated phy id - choose any, but unique to the all specified fixed-links, b is duplex - 0 half, 1 full, c is link speed - d#10/d#100/d#1000, d is pause - 0 no pause, 1 pause, e is asym_pause - 0 no asym_pause, 1 asym_pause. - -Recommended properties: - - phy-connection-type : a string naming the controller/PHY interface type, i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii", "tbi", or "rtbi". This property is only really needed if the connection is of type "rgmii-id", as all other connection types are detected by hardware. - + - fsl,magic-packet : If present, indicates that the hardware supports + waking up via magic packet. Example: ethernet@24000 { - #size-cells = <0>; device_type = "network"; model = "TSEC"; compatible = "gianfar"; - reg = <24000 1000>; - mac-address = [ 00 E0 0C 00 73 00 ]; - interrupts = <d 3 e 3 12 3>; - interrupt-parent = <40000>; - phy-handle = <2452000> + reg = <0x24000 0x1000>; + local-mac-address = [ 00 E0 0C 00 73 00 ]; + interrupts = <29 2 30 2 34 2>; + interrupt-parent = <&mpic>; + phy-handle = <&phy0> };
Signature · 1 line
1.5.6.rc1.6.gc53ad.dirty
Kumar Gala
AppliedRe: [PATCH 4/6] Add fsl, magic-packet to, and clean up, the gianfar binding.
Quoted 5 lines · Scott Wood
Signed-off-by Scott Wood <[email protected]>---
Documentation/powerpc/dts-bindings/fsl/tsec.txt| 31 ++++++++
+--------------1 files changed, 12 insertions(+), 19 deletions(-)
applied.
- k
Kumar Gala
AppliedRe: [PATCH 4/6] Add fsl, magic-packet to, and clean up, the gianfar binding.
In reply to Scott WoodQuoted 5 lines · Scott Wood
Signed-off-by Scott Wood <[email protected]>---
Documentation/powerpc/dts-bindings/fsl/tsec.txt| 31 ++++++++
+--------------1 files changed, 12 insertions(+), 19 deletions(-)
applied.
- k
PATCH 5/6 gianfar: Add magic packet and suspend/resume support.
In reply to Scott Wood--- arch/powerpc/sysdev/fsl_soc.c | 3 + drivers/net/gianfar.c | 118 ++++++++++++++++++++++++++++++++++++++++- drivers/net/gianfar.h | 12 ++++- drivers/net/gianfar_ethtool.c | 41 +++++++++++++- include/linux/fsl_devices.h | 1 + 5 files changed, 169 insertions(+), 6 deletions(-)
arch/powerpc/sysdev/fsl_soc.c +3 -0
@@ -357,6 +357,9 @@ static int __init gfar_of_init(void)else gfar_data.interface =PHY_INTERFACE_MODE_MII ; +if (of_get_property (np,"fsl,magic-packet" ,NULL )) + gfar_data.device_flags |=FSL_GIANFAR_DEV_HAS_MAGIC_PACKET ; + ph =of_get_property (np,"phy-handle" ,NULL );if (ph ==NULL ) {u32 *fixed_link;
drivers/net/gianfar.c +116 -2
160 lines not on this page · raw message
drivers/net/gianfar.h +10 -2
@@ -168,6 +168,7 @@ extern const char gfar_driver_version[];#define MACCFG2_GMII 0x00000200#define MACCFG2_HUGEFRAME 0x00000020#define MACCFG2_LENGTHCHECK 0x00000010 +#define MACCFG2_MPEN 0x00000008#define ECNTRL_INIT_SETTINGS 0x00001000#define ECNTRL_TBI_MODE 0x00000020
@@ -240,6 +241,7 @@ extern const char gfar_driver_version[];#define IEVENT_CRL 0x00020000#define IEVENT_XFUN 0x00010000#define IEVENT_RXB0 0x00008000 +#define IEVENT_MAG 0x00000800#define IEVENT_GRSC 0x00000100#define IEVENT_RXF0 0x00000080#define IEVENT_FIR 0x00000008
@@ -252,7 +254,8 @@ extern const char gfar_driver_version[];#define IEVENT_ERR_MASK \ (IEVENT_RXC | IEVENT_BSY | IEVENT_EBERR | IEVENT_MSRO | \ IEVENT_BABT | IEVENT_TXC | IEVENT_TXE | IEVENT_LC \ - | IEVENT_CRL | IEVENT_XFUN | IEVENT_DPE | IEVENT_PERR) + | IEVENT_CRL | IEVENT_XFUN | IEVENT_DPE | IEVENT_PERR \ + | IEVENT_MAG)#define IMASK_INIT_CLEAR 0x00000000#define IMASK_BABR 0x80000000
@@ -270,6 +273,7 @@ extern const char gfar_driver_version[];#define IMASK_CRL 0x00020000#define IMASK_XFUN 0x00010000#define IMASK_RXB0 0x00008000 +#define IMASK_MAG 0x00000800#define IMASK_GTSC 0x00000100#define IMASK_RXFEN0 0x00000080#define IMASK_FIR 0x00000008
@@ -737,10 +741,14 @@ struct gfar_private {unsigned int fifo_starve;unsigned int fifo_starve_off; +/* Bitfield update lock */ +spinlock_t bflock; + unsigned char vlan_enable:1, rx_csum_enable:1, extended_hash:1, - bd_stash_en:1; + bd_stash_en:1, + wol_en:1; /* Wake-on-LAN enabled */unsigned short padding;unsigned int interruptTransmit;
drivers/net/gianfar_ethtool.c +39 -2
70 lines not on this page · raw message
include/linux/fsl_devices.h +1 -0
@@ -69,6 +69,7 @@ struct gianfar_mdio_data {#define FSL_GIANFAR_DEV_HAS_VLAN 0x00000020#define FSL_GIANFAR_DEV_HAS_EXTENDED_HASH 0x00000040#define FSL_GIANFAR_DEV_HAS_PADDING 0x00000080 +#define FSL_GIANFAR_DEV_HAS_MAGIC_PACKET 0x00000100/* Flags in gianfar_platform_data */ #define FSL_GIANFAR_BRD_HAS_PHY_INTR 0x00000001/* set or use a timer */
Signature · 1 line
1.5.6.rc1.6.gc53ad.dirty
Kumar Gala
AppliedRe: [PATCH 5/6] gianfar: Add magic packet and suspend/resume support.
Quoted 9 lines · Scott Wood
Signed-off-by Scott Wood <[email protected]>---
arch/powerpc/sysdev/fsl_soc.c| 3 +drivers/net/gianfar.c| 118 ++++++++++++++++++++++++++++++++
++++++++-drivers/net/gianfar.h | 12 ++++- drivers/net/gianfar_ethtool.c | 41 +++++++++++++- include/linux/fsl_devices.h | 1 + 5 files changed, 169 insertions(+), 6 deletions(-)
applied.
- k
PATCH 6/6 mpc8313erdb: Add power management to the device tree.
In reply to Scott Wood--- arch/powerpc/boot/dts/mpc8313erdb.dts | 241 +++++++++++++++++++++++---------- 1 files changed, 171 insertions(+), 70 deletions(-)
arch/powerpc/boot/dts/mpc8313erdb.dts +171 -70
@@ -109,18 +109,38 @@ 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>; + }; + }; + + crypto@30000 { + compatible = "fsl,sec2.2", "fsl,sec2.1", + "fsl,sec2.0"; + reg = <0x30000 0x10000>; + interrupts = <11 0x8>; + interrupt-parent = <&ipic>; + fsl,num-channels = <1>; + fsl,channel-fifo-len = <24>; + fsl,exec-units-mask = <0x4c>; + fsl,descriptor-types-mask = <0x0122003f>; }; };
@@ -188,37 +208,44 @@ interrupt-parent = <&ipic>; interrupts = <38 0x8>; phy_type = "utmi_wide"; + sleep = <&pmc 0x00300000>; }; - mdio@24520 { + enet0: ethernet@24000 { #address-cells = <1>; - #size-cells = <0>; - compatible = "fsl,gianfar-mdio"; - reg = <0x24520 0x20>; - phy1: ethernet-phy@1 { - interrupt-parent = <&ipic>; - interrupts = <19 0x8>; - reg = <0x1>; - device_type = "ethernet-phy"; - }; - phy4: ethernet-phy@4 { - interrupt-parent = <&ipic>; - interrupts = <20 0x8>; - reg = <0x4>; - device_type = "ethernet-phy"; - }; - }; + #size-cells = <1>; + sleep = <&pmc 0x20000000>; + ranges; - enet0: ethernet@24000 { cell-index = <0>; device_type = "network"; model = "eTSEC"; - compatible = "gianfar"; + compatible = "gianfar", "simple-bus"; reg = <0x24000 0x1000>; local-mac-address = [ 00 00 00 00 00 00 ]; interrupts = <37 0x8 36 0x8 35 0x8>; interrupt-parent = <&ipic>; phy-handle = < &phy1 >; + fsl,magic-packet; + + mdio@24520 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,gianfar-mdio"; + reg = <0x24520 0x20>; + phy1: ethernet-phy@1 { + interrupt-parent = <&ipic>; + interrupts = <19 0x8>; + reg = <0x1>; + device_type = "ethernet-phy"; + }; + phy4: ethernet-phy@4 { + interrupt-parent = <&ipic>; + interrupts = <20 0x8>; + reg = <0x4>; + device_type = "ethernet-phy"; + }; + }; }; enet1: ethernet@25000 {
@@ -231,6 +258,8 @@ interrupts = <34 0x8 33 0x8 32 0x8>; interrupt-parent = <&ipic>; phy-handle = < &phy4 >; + sleep = <&pmc 0x10000000>; + fsl,magic-packet; }; serial0: serial@4500 {
@@ -253,17 +282,6 @@ interrupt-parent = <&ipic>; }; - crypto@30000 { - compatible = "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0"; - reg = <0x30000 0x10000>; - interrupts = <11 0x8>; - interrupt-parent = <&ipic>; - fsl,num-channels = <1>; - fsl,channel-fifo-len = <24>; - fsl,exec-units-mask = <0x4c>; - fsl,descriptor-types-mask = <0x0122003f>; - }; - /* IPIC * interrupts cell = <intr #, sense> * sense values match linux IORESOURCE_IRQ_* defines:
@@ -277,36 +295,119 @@ reg = <0x700 0x100>; device_type = "ipic"; }; + + pmc: power@b00 { + compatible = "fsl,mpc8313-pmc", "fsl,mpc8349-pmc"; + reg = <0xb00 0x100 0xa00 0x100>; + interrupts = <80 8>; + interrupt-parent = <&ipic>; + fsl,mpc8313-wakeup-timer = <>m1>; + + /* Remove this (or change to "okay") if you have + * a REVA3 or later board, if you apply one of the + * workarounds listed in section 8.5 of the board + * manual, or if you are adapting this device tree + * to a different board. + */ + status = "fail"; + }; + + gtm1: timer@500 { + compatible = "fsl,mpc8313-gtm", "fsl,gtm"; + reg = <0x500 0x100>; + interrupts = <90 8 78 8 84 8 72 8>; + interrupt-parent = <&ipic>; + }; + + timer@600 { + compatible = "fsl,mpc8313-gtm", "fsl,gtm"; + reg = <0x600 0x100>; + interrupts = <91 8 79 8 85 8 73 8>; + interrupt-parent = <&ipic>; + }; }; - pci0: pci@e0008500 { - cell-index = <1>; - 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 - PCI slot */ - 0x7800 0x0 0x0 0x1 &ipic 17 0x8 - 0x7800 0x0 0x0 0x2 &ipic 18 0x8 - 0x7800 0x0 0x0 0x3 &ipic 17 0x8 - 0x7800 0x0 0x0 0x4 &ipic 18 0x8>; - interrupt-parent = <&ipic>; - interrupts = <66 0x8>; - bus-range = <0x0 0x0>; - ranges = <0x02000000 0x0 0x90000000 0x90000000 0x0 0x10000000 - 0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000 - 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>; - clock-frequency = <66666666>; - #interrupt-cells = <1>; - #size-cells = <2>; - #address-cells = <3>; - reg = <0xe0008500 0x100>; - 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 { + cell-index = <1>; + 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 - PCI slot */ + 0x7800 0x0 0x0 0x1 &ipic 17 0x8 + 0x7800 0x0 0x0 0x2 &ipic 18 0x8 + 0x7800 0x0 0x0 0x3 &ipic 17 0x8 + 0x7800 0x0 0x0 0x4 &ipic 18 0x8>; + interrupt-parent = <&ipic>; + interrupts = <66 0x8>; + bus-range = <0x0 0x0>; + ranges = <0x02000000 0x0 0x90000000 0x90000000 0x0 0x10000000 + 0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000 + 0x01000000 0x0 0x00000000 0xe2000000 0x0 0x00100000>; + clock-frequency = <66666666>; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = <0xe0008500 0x100>; + compatible = "fsl,mpc8349-pci"; + device_type = "pci"; + }; + + dma@82a8 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "fsl,mpc8313-dma", "fsl,elo-dma"; + reg = <0xe00082a8 4>; + ranges = <0 0xe0008100 0x1a8>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + + dma-channel@0 { + compatible = "fsl,mpc8313-dma-channel", + "fsl,elo-dma-channel"; + reg = <0 0x28>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + cell-index = <0>; + }; + + dma-channel@80 { + compatible = "fsl,mpc8313-dma-channel", + "fsl,elo-dma-channel"; + reg = <0x80 0x28>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + cell-index = <1>; + }; + + dma-channel@100 { + compatible = "fsl,mpc8313-dma-channel", + "fsl,elo-dma-channel"; + reg = <0x100 0x28>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + cell-index = <2>; + }; + + dma-channel@180 { + compatible = "fsl,mpc8313-dma-channel", + "fsl,elo-dma-channel"; + reg = <0x180 0x28>; + interrupt-parent = <&ipic>; + interrupts = <71 8>; + cell-index = <3>; + }; + }; }; };
Signature · 1 line
1.5.6.rc1.6.gc53ad.dirty
Kumar Gala
AppliedRe: [PATCH 6/6] mpc8313erdb: Add power management to the device tree.
Quoted 5 lines · Scott Wood
Signed-off-by Scott Wood <[email protected]>---
arch/powerpc/boot/dts/mpc8313erdb.dts| 241 ++++++++++++++++++++++
+----------1 files changed, 171 insertions(+), 70 deletions(-)
applied.
- k