]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'kumar/next' into next
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 25 Nov 2011 04:25:39 +0000 (15:25 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 25 Nov 2011 04:25:39 +0000 (15:25 +1100)
179 files changed:
Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt [new file with mode: 0644]
Documentation/devicetree/bindings/powerpc/fsl/srio.txt [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1010si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1020si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1021si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1022si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1023si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p2020si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p2041si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p3041si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p3060si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p4080si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p5020si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/mpc8536ds.dts
arch/powerpc/boot/dts/mpc8536ds.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/mpc8536ds_36b.dts
arch/powerpc/boot/dts/mpc8544ds.dts
arch/powerpc/boot/dts/mpc8544ds.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/mpc8548cds.dts
arch/powerpc/boot/dts/mpc8568mds.dts
arch/powerpc/boot/dts/mpc8569mds.dts
arch/powerpc/boot/dts/mpc8572ds.dts
arch/powerpc/boot/dts/mpc8572ds.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/mpc8572ds_36b.dts
arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
arch/powerpc/boot/dts/mpc8641_hpcn.dts
arch/powerpc/boot/dts/p1010rdb.dts
arch/powerpc/boot/dts/p1010rdb.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/p1010rdb_36b.dts [new file with mode: 0644]
arch/powerpc/boot/dts/p1010si.dtsi [deleted file]
arch/powerpc/boot/dts/p1020rdb.dts
arch/powerpc/boot/dts/p1020rdb.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/p1020rdb_36b.dts [new file with mode: 0644]
arch/powerpc/boot/dts/p1020rdb_camp_core0.dts
arch/powerpc/boot/dts/p1020rdb_camp_core1.dts
arch/powerpc/boot/dts/p1020si.dtsi [deleted file]
arch/powerpc/boot/dts/p1021mds.dts
arch/powerpc/boot/dts/p1022ds.dts
arch/powerpc/boot/dts/p1023rds.dts
arch/powerpc/boot/dts/p2020ds.dts
arch/powerpc/boot/dts/p2020ds.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/p2020rdb.dts
arch/powerpc/boot/dts/p2020rdb_camp_core0.dts
arch/powerpc/boot/dts/p2020rdb_camp_core1.dts
arch/powerpc/boot/dts/p2020si.dtsi [deleted file]
arch/powerpc/boot/dts/p2041rdb.dts
arch/powerpc/boot/dts/p2041si.dtsi [deleted file]
arch/powerpc/boot/dts/p3041ds.dts
arch/powerpc/boot/dts/p3041si.dtsi [deleted file]
arch/powerpc/boot/dts/p3060qds.dts
arch/powerpc/boot/dts/p3060si.dtsi [deleted file]
arch/powerpc/boot/dts/p4080ds.dts
arch/powerpc/boot/dts/p4080si.dtsi [deleted file]
arch/powerpc/boot/dts/p5020ds.dts
arch/powerpc/boot/dts/p5020si.dtsi [deleted file]
arch/powerpc/include/asm/fsl_lbc.h
arch/powerpc/kernel/pci-common.c
arch/powerpc/platforms/83xx/asp834x.c
arch/powerpc/platforms/83xx/km83xx.c
arch/powerpc/platforms/83xx/misc.c
arch/powerpc/platforms/83xx/mpc830x_rdb.c
arch/powerpc/platforms/83xx/mpc831x_rdb.c
arch/powerpc/platforms/83xx/mpc832x_mds.c
arch/powerpc/platforms/83xx/mpc832x_rdb.c
arch/powerpc/platforms/83xx/mpc834x_itx.c
arch/powerpc/platforms/83xx/mpc834x_mds.c
arch/powerpc/platforms/83xx/mpc836x_mds.c
arch/powerpc/platforms/83xx/mpc836x_rdk.c
arch/powerpc/platforms/83xx/mpc837x_mds.c
arch/powerpc/platforms/83xx/mpc837x_rdb.c
arch/powerpc/platforms/83xx/mpc83xx.h
arch/powerpc/platforms/83xx/sbc834x.c
arch/powerpc/platforms/85xx/Kconfig
arch/powerpc/platforms/85xx/Makefile
arch/powerpc/platforms/85xx/common.c [new file with mode: 0644]
arch/powerpc/platforms/85xx/corenet_ds.c
arch/powerpc/platforms/85xx/ksi8560.c
arch/powerpc/platforms/85xx/mpc8536_ds.c
arch/powerpc/platforms/85xx/mpc85xx.h [new file with mode: 0644]
arch/powerpc/platforms/85xx/mpc85xx_ads.c
arch/powerpc/platforms/85xx/mpc85xx_cds.c
arch/powerpc/platforms/85xx/mpc85xx_ds.c
arch/powerpc/platforms/85xx/mpc85xx_mds.c
arch/powerpc/platforms/85xx/mpc85xx_rdb.c
arch/powerpc/platforms/85xx/p1010rdb.c
arch/powerpc/platforms/85xx/p1022_ds.c
arch/powerpc/platforms/85xx/p1023_rds.c
arch/powerpc/platforms/85xx/p3060_qds.c
arch/powerpc/platforms/85xx/sbc8548.c
arch/powerpc/platforms/85xx/sbc8560.c
arch/powerpc/platforms/85xx/socrates.c
arch/powerpc/platforms/85xx/stx_gp3.c
arch/powerpc/platforms/85xx/tqm85xx.c
arch/powerpc/platforms/85xx/xes_mpc85xx.c
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
arch/powerpc/sysdev/Makefile
arch/powerpc/sysdev/ehv_pic.c
arch/powerpc/sysdev/fsl_lbc.c
arch/powerpc/sysdev/fsl_msi.c
arch/powerpc/sysdev/fsl_msi.h
arch/powerpc/sysdev/fsl_rio.c
arch/powerpc/sysdev/fsl_rio.h [new file with mode: 0644]
arch/powerpc/sysdev/fsl_rmu.c [new file with mode: 0644]
arch/powerpc/sysdev/qe_lib/qe.c
drivers/edac/mpc85xx_edac.c
drivers/tty/serial/ucc_uart.c

diff --git a/Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt b/Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt
new file mode 100644 (file)
index 0000000..b9a8a2b
--- /dev/null
@@ -0,0 +1,163 @@
+Message unit node:
+
+For SRIO controllers that implement the message unit as part of the controller
+this node is required.  For devices with RMAN this node should NOT exist.  The
+node is composed of three types of sub-nodes ("fsl-srio-msg-unit",
+"fsl-srio-dbell-unit" and "fsl-srio-port-write-unit").
+
+See srio.txt for more details about generic SRIO controller details.
+
+   - compatible
+       Usage: required
+       Value type: <string>
+       Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu".
+
+       The version X.Y should match the general SRIO controller's IP Block
+       revision register's Major(X) and Minor (Y) value.
+
+   - reg
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: A standard property.  Specifies the physical address and
+               length of the SRIO configuration registers for message units
+               and doorbell units.
+
+   - fsl,liodn
+       Usage: optional-but-recommended (for devices with PAMU)
+       Value type: <prop-encoded-array>
+       Definition: The logical I/O device number for the PAMU (IOMMU) to be
+               correctly configured for SRIO accesses.  The property should
+               not exist on devices that do not support PAMU.
+
+               The LIODN value is associated with all RMU transactions
+               (msg-unit, doorbell, port-write).
+
+Sub-Nodes for RMU:  The RMU node is composed of multiple sub-nodes that
+correspond to the actual sub-controllers in the RMU.  The manual for a given
+SoC will detail which and how many of these sub-controllers are implemented.
+
+Message Unit:
+
+   - compatible
+       Usage: required
+       Value type: <string>
+       Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit".
+
+       The version X.Y should match the general SRIO controller's IP Block
+       revision register's Major(X) and Minor (Y) value.
+
+   - reg
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: A standard property.  Specifies the physical address and
+               length of the SRIO configuration registers for message units
+               and doorbell units.
+
+   - interrupts
+       Usage: required
+       Value type: <prop_encoded-array>
+       Definition:  Specifies the interrupts generated by this device.  The
+               value of the interrupts property consists of one interrupt
+               specifier. The format of the specifier is defined by the
+               binding document describing the node's interrupt parent.
+
+               A pair of IRQs are specified in this property.  The first
+               element is associated with the transmit (TX) interrupt and the
+               second element is associated with the receive (RX) interrupt.
+
+Doorbell Unit:
+
+   - compatible
+       Usage: required
+       Value type: <string>
+       Definition: Must include:
+               "fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit"
+
+       The version X.Y should match the general SRIO controller's IP Block
+       revision register's Major(X) and Minor (Y) value.
+
+   - reg
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: A standard property.  Specifies the physical address and
+               length of the SRIO configuration registers for message units
+               and doorbell units.
+
+   - interrupts
+       Usage: required
+       Value type: <prop_encoded-array>
+       Definition:  Specifies the interrupts generated by this device.  The
+               value of the interrupts property consists of one interrupt
+               specifier. The format of the specifier is defined by the
+               binding document describing the node's interrupt parent.
+
+               A pair of IRQs are specified in this property.  The first
+               element is associated with the transmit (TX) interrupt and the
+               second element is associated with the receive (RX) interrupt.
+
+Port-Write Unit:
+
+   - compatible
+       Usage: required
+       Value type: <string>
+       Definition: Must include:
+                "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit"
+
+       The version X.Y should match the general SRIO controller's IP Block
+       revision register's Major(X) and Minor (Y) value.
+
+   - reg
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: A standard property.  Specifies the physical address and
+               length of the SRIO configuration registers for message units
+               and doorbell units.
+
+   - interrupts
+       Usage: required
+       Value type: <prop_encoded-array>
+       Definition:  Specifies the interrupts generated by this device.  The
+               value of the interrupts property consists of one interrupt
+               specifier. The format of the specifier is defined by the
+               binding document describing the node's interrupt parent.
+
+               A single IRQ that handles port-write conditions is
+               specified by this property.  (Typically shared with error).
+
+   Note: All other standard properties (see the ePAPR) are allowed
+   but are optional.
+
+Example:
+       rmu: rmu@d3000 {
+               compatible = "fsl,srio-rmu";
+               reg = <0xd3000 0x400>;
+               ranges = <0x0 0xd3000 0x400>;
+               fsl,liodn = <0xc8>;
+
+               message-unit@0 {
+                       compatible = "fsl,srio-msg-unit";
+                       reg = <0x0 0x100>;
+                       interrupts = <
+                               60 2 0 0  /* msg1_tx_irq */
+                               61 2 0 0>;/* msg1_rx_irq */
+               };
+               message-unit@100 {
+                       compatible = "fsl,srio-msg-unit";
+                       reg = <0x100 0x100>;
+                       interrupts = <
+                               62 2 0 0  /* msg2_tx_irq */
+                               63 2 0 0>;/* msg2_rx_irq */
+               };
+               doorbell-unit@400 {
+                       compatible = "fsl,srio-dbell-unit";
+                       reg = <0x400 0x80>;
+                       interrupts = <
+                               56 2 0 0  /* bell_outb_irq */
+                               57 2 0 0>;/* bell_inb_irq */
+               };
+               port-write-unit@4e0 {
+                       compatible = "fsl,srio-port-write-unit";
+                       reg = <0x4e0 0x20>;
+                       interrupts = <16 2 1 11>;
+               };
+       };
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/srio.txt b/Documentation/devicetree/bindings/powerpc/fsl/srio.txt
new file mode 100644 (file)
index 0000000..b039bcb
--- /dev/null
@@ -0,0 +1,103 @@
+* Freescale Serial RapidIO (SRIO) Controller
+
+RapidIO port node:
+Properties:
+   - compatible
+       Usage: required
+       Value type: <string>
+       Definition: Must include "fsl,srio" for IP blocks with IP Block
+       Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0.
+
+       Optionally, a compatiable string of "fsl,srio-vX.Y" where X is Major
+       version in IP Block Revision Register and Y is Minor version.  If this
+       compatiable is provided it should be ordered before "fsl,srio".
+
+   - reg
+       Usage: required
+       Value type: <prop-encoded-array>
+       Definition: A standard property.  Specifies the physical address and
+               length of the SRIO configuration registers.  The size should
+               be set to 0x11000.
+
+   - interrupts
+       Usage: required
+       Value type: <prop_encoded-array>
+       Definition:  Specifies the interrupts generated by this device.  The
+               value of the interrupts property consists of one interrupt
+               specifier. The format of the specifier is defined by the
+               binding document describing the node's interrupt parent.
+
+               A single IRQ that handles error conditions is specified by this
+               property.  (Typically shared with port-write).
+
+   - fsl,srio-rmu-handle:
+       Usage: required if rmu node is defined
+       Value type: <phandle>
+       Definition: A single <phandle> value that points to the RMU.
+       (See srio-rmu.txt for more details on RMU node binding)
+
+Port Child Nodes:  There should a port child node for each port that exists in
+the controller.  The ports are numbered starting at one (1) and should have
+the following properties:
+
+   - cell-index
+       Usage: required
+       Value type: <u32>
+       Definition: A standard property.  Matches the port id.
+
+   - ranges
+       Usage: required if local access windows preset
+       Value type: <prop-encoded-array>
+       Definition: A standard property. Utilized to describe the memory mapped
+               IO space utilized by the controller.  This corresponds to the
+               setting of the local access windows that are targeted to this
+               SRIO port.
+
+   - fsl,liodn
+       Usage: optional-but-recommended (for devices with PAMU)
+       Value type: <prop-encoded-array>
+       Definition: The logical I/O device number for the PAMU (IOMMU) to be
+               correctly configured for SRIO accesses.  The property should
+               not exist on devices that do not support PAMU.
+
+               For HW (ie, the P4080) that only supports a LIODN for both
+               memory and maintenance transactions then a single LIODN is
+               represented in the property for both transactions.
+
+               For HW (ie, the P304x/P5020, etc) that supports an LIODN for
+               memory transactions and a unique LIODN for maintenance
+               transactions then a pair of LIODNs are represented in the
+               property.  Within the pair, the first element represents the
+               LIODN associated with memory transactions and the second element
+               represents the LIODN associated with maintenance transactions
+               for the port.
+
+Note: All other standard properties (see ePAPR) are allowed but are optional.
+
+Example:
+
+       rapidio: rapidio@ffe0c0000 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               reg = <0xf 0xfe0c0000 0 0x11000>;
+               compatible = "fsl,srio";
+               interrupts = <16 2 1 11>; /* err_irq */
+               fsl,srio-rmu-handle = <&rmu>;
+               ranges;
+
+               port1 {
+                       cell-index = <1>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       fsl,liodn = <34>;
+                       ranges = <0 0 0xc 0x20000000 0 0x10000000>;
+               };
+
+               port2 {
+                       cell-index = <2>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       fsl,liodn = <48>;
+                       ranges = <0 0 0xc 0x30000000 0 0x10000000>;
+               };
+       };
diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
new file mode 100644 (file)
index 0000000..89af626
--- /dev/null
@@ -0,0 +1,248 @@
+/*
+ * MPC8536 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,mpc8536-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0x8000 */
+&pci0 {
+       compatible = "fsl,mpc8540-pci";
+       device_type = "pci";
+       interrupts = <24 0x2 0 0>;
+       bus-range = <0 0xff>;
+       #interrupt-cells = <1>;
+       #size-cells = <2>;
+       #address-cells = <3>;
+};
+
+/* controller at 0x9000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <25 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <25 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xa000 */
+&pci2 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <26 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <26 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xb000 */
+&pci3 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <27 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <27 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0
+                       >;
+       };
+};
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,mpc8536-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,mpc8536-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <17 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,mpc8536-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+
+/include/ "pq3-espi-0.dtsi"
+       spi@7000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "pq3-gpio-0.dtsi"
+
+       /* mark compat w/8572 to get some erratum treatment */
+       gpio-controller@f000 {
+               compatible = "fsl,mpc8572-gpio", "fsl,pq3-gpio";
+       };
+
+       sata@18000 {
+               compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
+               reg = <0x18000 0x1000>;
+               cell-index = <1>;
+               interrupts = <74 0x2 0 0>;
+       };
+
+       sata@19000 {
+               compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
+               reg = <0x19000 0x1000>;
+               cell-index = <2>;
+               interrupts = <41 0x2 0 0>;
+       };
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,mpc8536-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x80000>; // L2, 512K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-etsec1-0.dtsi"
+/include/ "pq3-etsec1-timer-0.dtsi"
+
+       usb@22000 {
+               compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
+               reg = <0x22000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <28 0x2 0 0>;
+       };
+
+       usb@23000 {
+               compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
+               reg = <0x23000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <46 0x2 0 0>;
+       };
+
+       ptp_clock@24e00 {
+               interrupts = <68 2 0 0 69 2 0 0 70 2 0 0 71 2 0 0>;
+       };
+
+/include/ "pq3-etsec1-2.dtsi"
+
+       ethernet@26000 {
+               cell-index = <1>;
+       };
+
+       usb@2b000 {
+               compatible = "fsl,mpc8536-usb2-dr", "fsl-usb2-dr";
+               reg = <0x2b000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <60 0x2 0 0>;
+       };
+
+/include/ "pq3-esdhc-0.dtsi"
+/include/ "pq3-sec3.0-0.dtsi"
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+       global-utilities@e0000 {
+               compatible = "fsl,mpc8536-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi
new file mode 100644 (file)
index 0000000..7de45a7
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * MPC8536 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,MPC8536";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet2;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+               pci3 = &pci3;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,8536@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi
new file mode 100644 (file)
index 0000000..b68eb11
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ * MPC8544 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,mpc8544-lbc", "fsl,pq3-localbus", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0x8000 */
+&pci0 {
+       compatible = "fsl,mpc8540-pci";
+       device_type = "pci";
+       interrupts = <24 0x2 0 0>;
+       bus-range = <0 0xff>;
+       #interrupt-cells = <1>;
+       #size-cells = <2>;
+       #address-cells = <3>;
+};
+
+/* controller at 0x9000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <25 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <25 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xa000 */
+&pci2 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <26 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <26 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xb000 */
+&pci3 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <27 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <27 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,mpc8544-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <10>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,mpc8544-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <17 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,mpc8544-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,mpc8544-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x40000>; // L2, 256K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-etsec1-0.dtsi"
+/include/ "pq3-etsec1-2.dtsi"
+
+       ethernet@26000 {
+               cell-index = <1>;
+       };
+
+/include/ "pq3-sec2.1-0.dtsi"
+/include/ "pq3-mpic.dtsi"
+
+       global-utilities@e0000 {
+               compatible = "fsl,mpc8544-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi
new file mode 100644 (file)
index 0000000..8777f92
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * MPC8544 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,MPC8544";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet2;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+               pci3 = &pci3;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,8544@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi
new file mode 100644 (file)
index 0000000..9d8023a
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * MPC8548 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,mpc8548-lbc", "fsl,pq3-localbus", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0x8000 */
+&pci0 {
+       compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
+       device_type = "pci";
+       interrupts = <24 0x2 0 0>;
+       bus-range = <0 0xff>;
+       #interrupt-cells = <1>;
+       #size-cells = <2>;
+       #address-cells = <3>;
+};
+
+/* controller at 0x9000 */
+&pci1 {
+       compatible = "fsl,mpc8540-pci";
+       device_type = "pci";
+       interrupts = <25 0x2 0 0>;
+       bus-range = <0 0xff>;
+       #interrupt-cells = <1>;
+       #size-cells = <2>;
+       #address-cells = <3>;
+};
+
+/* controller at 0xa000 */
+&pci2 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <26 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <26 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,mpc8548-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <10>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,mpc8548-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <17 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,mpc8548-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,mpc8548-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x80000>; // L2, 512K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-etsec1-0.dtsi"
+/include/ "pq3-etsec1-1.dtsi"
+/include/ "pq3-etsec1-2.dtsi"
+/include/ "pq3-etsec1-3.dtsi"
+
+/include/ "pq3-sec2.1-0.dtsi"
+/include/ "pq3-mpic.dtsi"
+
+       global-utilities@e0000 {
+               compatible = "fsl,mpc8548-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi
new file mode 100644 (file)
index 0000000..289f121
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * MPC8548 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,MPC8548";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet2;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,8548@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi
new file mode 100644 (file)
index 0000000..64e7075
--- /dev/null
@@ -0,0 +1,270 @@
+/*
+ * MPC8568 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,mpc8568-localbus", "fsl,pq3-localbus", "simple-bus";
+       interrupts = <19 2 0 0>;
+       sleep = <&pmc 0x08000000>;
+};
+
+/* controller at 0x8000 */
+&pci0 {
+       compatible = "fsl,mpc8540-pci";
+       device_type = "pci";
+       interrupts = <24 0x2 0 0>;
+       bus-range = <0 0xff>;
+       #interrupt-cells = <1>;
+       #size-cells = <2>;
+       #address-cells = <3>;
+       sleep = <&pmc 0x80000000>;
+};
+
+/* controller at 0xa000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <26 2 0 0>;
+       sleep = <&pmc 0x20000000>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <26 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&rio {
+       compatible = "fsl,srio";
+       interrupts = <48 2 0 0>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       fsl,srio-rmu-handle = <&rmu>;
+       sleep = <&pmc 0x00080000>;
+       ranges;
+
+       port1 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <1>;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,mpc8568-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <10>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,mpc8568-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <17 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,mpc8568-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+       i2c-sleep-nexus {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               sleep = <&pmc 0x00000004>;
+               ranges;
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+
+       };
+
+       duart-sleep-nexus {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               sleep = <&pmc 0x00000002>;
+               ranges;
+
+/include/ "pq3-duart-0.dtsi"
+
+       };
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,mpc8568-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x80000>; // L2, 512K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+       dma@21300 {
+               sleep = <&pmc 0x00000400>;
+       };
+
+/include/ "pq3-etsec1-0.dtsi"
+       ethernet@24000 {
+               sleep = <&pmc 0x00000080>;
+       };
+
+/include/ "pq3-etsec1-1.dtsi"
+       ethernet@25000 {
+               sleep = <&pmc 0x00000040>;
+       };
+
+       par_io@e0100 {
+               reg = <0xe0100 0x100>;
+               device_type = "par_io";
+       };
+
+/include/ "pq3-sec2.1-0.dtsi"
+       crypto@30000 {
+               sleep = <&pmc 0x01000000>;
+       };
+
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-rmu-0.dtsi"
+       rmu@d3000 {
+               sleep = <&pmc 0x00040000>;
+       };
+
+       global-utilities@e0000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,mpc8568-guts", "fsl,mpc8548-guts";
+               reg = <0xe0000 0x1000>;
+               ranges = <0 0xe0000 0x1000>;
+               fsl,has-rstcr;
+
+               pmc: power@70 {
+                       compatible = "fsl,mpc8568-pmc",
+                                    "fsl,mpc8548-pmc";
+                       reg = <0x70 0x20>;
+               };
+       };
+};
+
+&qe {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "qe";
+       compatible = "fsl,qe";
+       sleep = <&pmc 0x00000800>;
+       brg-frequency = <0>;
+       bus-frequency = <396000000>;
+       fsl,qe-num-riscs = <2>;
+       fsl,qe-num-snums = <28>;
+
+       qeic: interrupt-controller@80 {
+               interrupt-controller;
+               compatible = "fsl,qe-ic";
+               #address-cells = <0>;
+               #interrupt-cells = <1>;
+               reg = <0x80 0x80>;
+               interrupts = <46 2 0 0 46 2 0 0>; //high:30 low:30
+               interrupt-parent = <&mpic>;
+       };
+
+       spi@4c0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,spi";
+               reg = <0x4c0 0x40>;
+               cell-index = <0>;
+               interrupts = <2>;
+               interrupt-parent = <&qeic>;
+       };
+
+       spi@500 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cell-index = <1>;
+               compatible = "fsl,spi";
+               reg = <0x500 0x40>;
+               interrupts = <1>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@2000 {
+               cell-index = <1>;
+               reg = <0x2000 0x200>;
+               interrupts = <32>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@3000 {
+               cell-index = <2>;
+               reg = <0x3000 0x200>;
+               interrupts = <33>;
+               interrupt-parent = <&qeic>;
+       };
+
+       muram@10000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,qe-muram", "fsl,cpm-muram";
+               ranges = <0x0 0x10000 0x10000>;
+
+               data-only@0 {
+                       compatible = "fsl,qe-muram-data",
+                                    "fsl,cpm-muram-data";
+                       reg = <0x0 0x10000>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi
new file mode 100644 (file)
index 0000000..eacd62c
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * MPC8568 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,MPC8568";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               ethernet2 = &enet2;
+               ethernet3 = &enet3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,8568@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+                       sleep = <&pmc 0x00008000        // core
+                                &pmc 0x00004000>;      // timebase
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi
new file mode 100644 (file)
index 0000000..3e6346a
--- /dev/null
@@ -0,0 +1,304 @@
+/*
+ * MPC8569 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,mpc8569-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+       sleep = <&pmc 0x08000000>;
+};
+
+/* controller at 0xa000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <26 2 0 0>;
+       sleep = <&pmc 0x20000000>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <26 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&rio {
+       compatible = "fsl,srio";
+       interrupts = <48 2 0 0>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       fsl,srio-rmu-handle = <&rmu>;
+       sleep = <&pmc 0x00080000>;
+       ranges;
+
+       port1 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <1>;
+       };
+
+       port2 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <2>;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,mpc8569-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <10>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,mpc8569-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <17 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,mpc8569-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+       i2c-sleep-nexus {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               sleep = <&pmc 0x00000004>;
+               ranges;
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+
+       };
+
+       duart-sleep-nexus {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               sleep = <&pmc 0x00000002>;
+               ranges;
+
+/include/ "pq3-duart-0.dtsi"
+
+       };
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,mpc8569-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x80000>; // L2, 512K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-esdhc-0.dtsi"
+       sdhc@2e000 {
+               sleep = <&pmc 0x00200000>;
+       };
+
+       par_io@e0100 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0xe0100 0x100>;
+               ranges = <0x0 0xe0100 0x100>;
+               device_type = "par_io";
+       };
+
+/include/ "pq3-sec3.1-0.dtsi"
+       crypto@30000 {
+               sleep = <&pmc 0x01000000>;
+       };
+
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-rmu-0.dtsi"
+       rmu@d3000 {
+               sleep = <&pmc 0x00040000>;
+       };
+
+       global-utilities@e0000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,mpc8569-guts", "fsl,mpc8548-guts";
+               reg = <0xe0000 0x1000>;
+               ranges = <0 0xe0000 0x1000>;
+               fsl,has-rstcr;
+
+               pmc: power@70 {
+                       compatible = "fsl,mpc8569-pmc",
+                                    "fsl,mpc8548-pmc";
+                       reg = <0x70 0x20>;
+               };
+       };
+};
+
+&qe {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "qe";
+       compatible = "fsl,qe";
+       sleep = <&pmc 0x00000800>;
+       brg-frequency = <0>;
+       bus-frequency = <0>;
+       fsl,qe-num-riscs = <4>;
+       fsl,qe-num-snums = <46>;
+
+       qeic: interrupt-controller@80 {
+               interrupt-controller;
+               compatible = "fsl,qe-ic";
+               #address-cells = <0>;
+               #interrupt-cells = <1>;
+               reg = <0x80 0x80>;
+               interrupts = <46 2 0 0 46 2 0 0>; //high:30 low:30
+               interrupt-parent = <&mpic>;
+       };
+
+       timer@440 {
+               compatible = "fsl,mpc8569-qe-gtm",
+                            "fsl,qe-gtm", "fsl,gtm";
+               reg = <0x440 0x40>;
+               interrupts = <12 13 14 15>;
+               interrupt-parent = <&qeic>;
+               /* Filled in by U-Boot */
+               clock-frequency = <0>;
+       };
+
+       spi@4c0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,mpc8569-qe-spi", "fsl,spi";
+               reg = <0x4c0 0x40>;
+               cell-index = <0>;
+               interrupts = <2>;
+               interrupt-parent = <&qeic>;
+       };
+
+       spi@500 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cell-index = <1>;
+               compatible = "fsl,spi";
+               reg = <0x500 0x40>;
+               interrupts = <1>;
+               interrupt-parent = <&qeic>;
+       };
+
+       usb@6c0 {
+               compatible = "fsl,mpc8569-qe-usb",
+                            "fsl,mpc8323-qe-usb";
+               reg = <0x6c0 0x40 0x8b00 0x100>;
+               interrupts = <11>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@2000 {
+               cell-index = <1>;
+               reg = <0x2000 0x200>;
+               interrupts = <32>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@2200 {
+               cell-index = <3>;
+               reg = <0x2200 0x200>;
+               interrupts = <34>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@3000 {
+               cell-index = <2>;
+               reg = <0x3000 0x200>;
+               interrupts = <33>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@3200 {
+               cell-index = <4>;
+               reg = <0x3200 0x200>;
+               interrupts = <35>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@3400 {
+               cell-index = <6>;
+               reg = <0x3400 0x200>;
+               interrupts = <41>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@3600 {
+               cell-index = <8>;
+               reg = <0x3600 0x200>;
+               interrupts = <43>;
+               interrupt-parent = <&qeic>;
+       };
+
+       muram@10000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,qe-muram", "fsl,cpm-muram";
+               ranges = <0x0 0x10000 0x20000>;
+
+               data-only@0 {
+                       compatible = "fsl,qe-muram-data",
+                                    "fsl,cpm-muram-data";
+                       reg = <0x0 0x20000>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi
new file mode 100644 (file)
index 0000000..b07064d
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * MPC8569 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,MPC8569";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               ethernet2 = &enet2;
+               ethernet3 = &enet3;
+               pci1 = &pci1;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,8569@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+                       sleep = <&pmc 0x00008000        // core
+                                &pmc 0x00004000>;      // timebase
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi
new file mode 100644 (file)
index 0000000..d44e25a
--- /dev/null
@@ -0,0 +1,196 @@
+/*
+ * MPC8572 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0x8000 */
+&pci0 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <24 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <24 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0x9000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <25 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <25 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xa000 */
+&pci2 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <26 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <26 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,mpc8572-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,mpc8572-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <17 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,mpc8572-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+       memory-controller@6000 {
+               compatible = "fsl,mpc8572-memory-controller";
+               reg = <0x6000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+/include/ "pq3-dma-1.dtsi"
+/include/ "pq3-gpio-0.dtsi"
+       gpio-controller@f000 {
+               compatible = "fsl,mpc8572-gpio", "fsl,pq3-gpio";
+       };
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,mpc8572-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x100000>; // L2,1M
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-etsec1-0.dtsi"
+/include/ "pq3-etsec1-timer-0.dtsi"
+
+       ptp_clock@24e00 {
+               interrupts = <68 2 0 0 69 2 0 0 70 2 0 0 71 2 0 0>;
+       };
+
+/include/ "pq3-etsec1-1.dtsi"
+/include/ "pq3-etsec1-2.dtsi"
+/include/ "pq3-etsec1-3.dtsi"
+/include/ "pq3-sec3.0-0.dtsi"
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+       global-utilities@e0000 {
+               compatible = "fsl,mpc8572-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi b/arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi
new file mode 100644 (file)
index 0000000..ca18832
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * MPC8572 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,MPC8572";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               ethernet2 = &enet2;
+               ethernet3 = &enet3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,8572@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+
+               PowerPC,8572@1 {
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
new file mode 100644 (file)
index 0000000..bd9e163
--- /dev/null
@@ -0,0 +1,198 @@
+/*
+ * P1010/P1014 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&ifc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,ifc", "simple-bus";
+       interrupts = <16 2 0 0 19 2 0 0>;
+};
+
+/* controller at 0x9000 */
+&pci0 {
+       compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xa000 */
+&pci1 {
+       compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,p1010-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,p1010-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,p1010-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+/include/ "pq3-espi-0.dtsi"
+       spi0: spi@7000 {
+               fsl,espi-num-chipselects = <1>;
+       };
+
+/include/ "pq3-gpio-0.dtsi"
+/include/ "pq3-sata2-0.dtsi"
+/include/ "pq3-sata2-1.dtsi"
+
+       can0: can@1c000 {
+               compatible = "fsl,p1010-flexcan";
+               reg = <0x1c000 0x1000>;
+               interrupts = <48 0x2 0 0>;
+       };
+
+       can1: can@1d000 {
+               compatible = "fsl,p1010-flexcan";
+               reg = <0x1d000 0x1000>;
+               interrupts = <61 0x2 0 0>;
+       };
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,p1010-l2-cache-controller",
+                               "fsl,p1014-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x40000>; // L2,256K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-usb2-dr-0.dtsi"
+/include/ "pq3-esdhc-0.dtsi"
+       sdhc@2e000 {
+               fsl,sdhci-auto-cmd12;
+       };
+
+/include/ "pq3-sec4.4-0.dtsi"
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+/include/ "pq3-etsec2-0.dtsi"
+       enet0: ethernet@b0000 {
+               queue-group@b0000 {
+                       fsl,rx-bit-map = <0xff>;
+                       fsl,tx-bit-map = <0xff>;
+               };
+       };
+
+/include/ "pq3-etsec2-1.dtsi"
+       enet1: ethernet@b1000 {
+               queue-group@b1000 {
+                       fsl,rx-bit-map = <0xff>;
+                       fsl,tx-bit-map = <0xff>;
+               };
+       };
+
+/include/ "pq3-etsec2-2.dtsi"
+       enet2: ethernet@b2000 {
+               queue-group@b2000 {
+                       fsl,rx-bit-map = <0xff>;
+                       fsl,tx-bit-map = <0xff>;
+               };
+
+       };
+
+       global-utilities@e0000 {
+               compatible = "fsl,p1010-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi
new file mode 100644 (file)
index 0000000..7354a8f
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * P1010/P1014 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P1010";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               ethernet2 = &enet2;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               can0 = &can0;
+               can1 = &can1;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,P1010@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1020si-post.dtsi
new file mode 100644 (file)
index 0000000..fc924c5
--- /dev/null
@@ -0,0 +1,174 @@
+/*
+ * P1020/P1011 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,p1020-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0x9000 */
+&pci0 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xa000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,p1020-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,p1020-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,p1020-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+
+/include/ "pq3-espi-0.dtsi"
+       spi@7000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "pq3-gpio-0.dtsi"
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,p1020-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x40000>; // L2,256K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-usb2-dr-0.dtsi"
+/include/ "pq3-usb2-dr-1.dtsi"
+
+/include/ "pq3-esdhc-0.dtsi"
+/include/ "pq3-sec3.3-0.dtsi"
+
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+/include/ "pq3-etsec2-0.dtsi"
+       enet0: enet0_grp2: ethernet@b0000 {
+       };
+
+/include/ "pq3-etsec2-1.dtsi"
+       enet1: enet1_grp2: ethernet@b1000 {
+       };
+
+/include/ "pq3-etsec2-2.dtsi"
+       enet2: enet2_grp2: ethernet@b2000 {
+       };
+
+       global-utilities@e0000 {
+               compatible = "fsl,p1020-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
+
+/include/ "pq3-etsec2-grp2-0.dtsi"
+/include/ "pq3-etsec2-grp2-1.dtsi"
+/include/ "pq3-etsec2-grp2-2.dtsi"
diff --git a/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi
new file mode 100644 (file)
index 0000000..6f0376e
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * P1020/P1011 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P1020";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               ethernet2 = &enet2;
+               pci0 = &pci0;
+               pci1 = &pci1;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,P1020@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+
+               PowerPC,P1020@1 {
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1021si-post.dtsi
new file mode 100644 (file)
index 0000000..38ba54d
--- /dev/null
@@ -0,0 +1,225 @@
+/*
+ * P1021/P1012 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,p1021-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0x9000 */
+&pci0 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xa000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,p1021-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,p1021-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,p1021-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+
+/include/ "pq3-espi-0.dtsi"
+       spi@7000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "pq3-gpio-0.dtsi"
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,p1021-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x40000>; // L2,256K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-usb2-dr-0.dtsi"
+
+/include/ "pq3-esdhc-0.dtsi"
+/include/ "pq3-sec3.3-0.dtsi"
+
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+/include/ "pq3-etsec2-0.dtsi"
+       enet0: enet0_grp2: ethernet@b0000 {
+       };
+
+/include/ "pq3-etsec2-1.dtsi"
+       enet1: enet1_grp2: ethernet@b1000 {
+       };
+
+/include/ "pq3-etsec2-2.dtsi"
+       enet2: enet2_grp2: ethernet@b2000 {
+       };
+
+       global-utilities@e0000 {
+               compatible = "fsl,p1021-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
+
+&qe {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "qe";
+       compatible = "fsl,qe";
+       fsl,qe-num-riscs = <1>;
+       fsl,qe-num-snums = <28>;
+
+       qeic: interrupt-controller@80 {
+               interrupt-controller;
+               compatible = "fsl,qe-ic";
+               #address-cells = <0>;
+               #interrupt-cells = <1>;
+               reg = <0x80 0x80>;
+               interrupts = <63 2 0 0 60 2 0 0>; //high:47 low:44
+       };
+
+       ucc@2000 {
+               cell-index = <1>;
+               reg = <0x2000 0x200>;
+               interrupts = <32>;
+               interrupt-parent = <&qeic>;
+       };
+
+       mdio@2120 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x2120 0x18>;
+               compatible = "fsl,ucc-mdio";
+       };
+
+       ucc@2400 {
+               cell-index = <5>;
+               reg = <0x2400 0x200>;
+               interrupts = <40>;
+               interrupt-parent = <&qeic>;
+       };
+
+       muram@10000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,qe-muram", "fsl,cpm-muram";
+               ranges = <0x0 0x10000 0x6000>;
+
+               data-only@0 {
+                       compatible = "fsl,qe-muram-data",
+                       "fsl,cpm-muram-data";
+                       reg = <0x0 0x6000>;
+               };
+       };
+};
+
+/include/ "pq3-etsec2-grp2-0.dtsi"
+/include/ "pq3-etsec2-grp2-1.dtsi"
+/include/ "pq3-etsec2-grp2-2.dtsi"
diff --git a/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi
new file mode 100644 (file)
index 0000000..4abd54b
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * P1021/P1012 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P1021";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               ethernet2 = &enet2;
+               pci0 = &pci0;
+               pci1 = &pci1;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,P1021@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+
+               PowerPC,P1021@1 {
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
new file mode 100644 (file)
index 0000000..16239b1
--- /dev/null
@@ -0,0 +1,235 @@
+/*
+ * P1022/P1013 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,p1022-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0x9000 */
+&pci0 {
+       compatible = "fsl,p1022-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xa000 */
+&pci1 {
+       compatible = "fsl,p1022-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0xb000 */
+&pci2 {
+       compatible = "fsl,p1022-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,p1022-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,p1022-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,p1022-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+/include/ "pq3-espi-0.dtsi"
+       spi@7000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "pq3-dma-1.dtsi"
+       dma@c300 {
+               dma00: dma-channel@0 {
+                       compatible = "fsl,ssi-dma-channel";
+               };
+               dma01: dma-channel@80 {
+                       compatible = "fsl,ssi-dma-channel";
+               };
+       };
+
+/include/ "pq3-gpio-0.dtsi"
+
+       display@10000 {
+               compatible = "fsl,diu", "fsl,p1022-diu";
+               reg = <0x10000 1000>;
+               interrupts = <64 2 0 0>;
+       };
+
+       ssi@15000 {
+               compatible = "fsl,mpc8610-ssi";
+               cell-index = <0>;
+               reg = <0x15000 0x100>;
+               interrupts = <75 2 0 0>;
+               fsl,playback-dma = <&dma00>;
+               fsl,capture-dma = <&dma01>;
+               fsl,fifo-depth = <15>;
+       };
+
+/include/ "pq3-sata2-0.dtsi"
+/include/ "pq3-sata2-1.dtsi"
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,p1022-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x40000>; // L2,256K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-usb2-dr-0.dtsi"
+/include/ "pq3-usb2-dr-1.dtsi"
+
+/include/ "pq3-esdhc-0.dtsi"
+       sdhc@2e000 {
+               fsl,sdhci-auto-cmd12;
+       };
+
+/include/ "pq3-sec3.3-0.dtsi"
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+/include/ "pq3-etsec2-0.dtsi"
+       enet0: enet0_grp2: ethernet@b0000 {
+       };
+
+/include/ "pq3-etsec2-1.dtsi"
+       enet1: enet1_grp2: ethernet@b1000 {
+       };
+
+       global-utilities@e0000 {
+               compatible = "fsl,p1022-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+
+       power@e0070{
+               compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc";
+               reg = <0xe0070 0x20>;
+       };
+
+};
+
+/include/ "pq3-etsec2-grp2-0.dtsi"
+/include/ "pq3-etsec2-grp2-1.dtsi"
diff --git a/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi
new file mode 100644 (file)
index 0000000..e930f4f
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * P1022/P1013 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P1022";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,P1022@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+
+               PowerPC,P1022@1 {
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
new file mode 100644 (file)
index 0000000..b06bb4c
--- /dev/null
@@ -0,0 +1,224 @@
+/*
+ * P1023/P1017 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,p1023-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0xa000 */
+&pci0 {
+       compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+       };
+};
+
+/* controller at 0x9000 */
+&pci1 {
+       compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+       };
+};
+
+/* controller at 0xb000 */
+&pci2 {
+       compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 0 0>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 0 0>;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,p1023-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,p1023-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,p1023-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+
+/include/ "pq3-espi-0.dtsi"
+       spi@7000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "pq3-gpio-0.dtsi"
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,p1023-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x40000>; // L2,256K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-usb2-dr-0.dtsi"
+
+       crypto: crypto@300000 {
+               compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x30000 0x10000>;
+               ranges = <0 0x30000 0x10000>;
+               interrupts = <58 2 0 0>;
+
+               sec_jr0: jr@1000 {
+                       compatible = "fsl,sec-v4.2-job-ring",
+                                    "fsl,sec-v4.0-job-ring";
+                       reg = <0x1000 0x1000>;
+                       interrupts = <45 2 0 0>;
+               };
+
+               sec_jr1: jr@2000 {
+                       compatible = "fsl,sec-v4.2-job-ring",
+                                    "fsl,sec-v4.0-job-ring";
+                       reg = <0x2000 0x1000>;
+                       interrupts = <45 2 0 0>;
+               };
+
+               sec_jr2: jr@3000 {
+                       compatible = "fsl,sec-v4.2-job-ring",
+                                    "fsl,sec-v4.0-job-ring";
+                       reg = <0x3000 0x1000>;
+                       interrupts = <57 2 0 0>;
+               };
+
+               sec_jr3: jr@4000 {
+                       compatible = "fsl,sec-v4.2-job-ring",
+                                    "fsl,sec-v4.0-job-ring";
+                       reg = <0x4000 0x1000>;
+                       interrupts = <57 2 0 0>;
+               };
+
+               rtic@6000 {
+                       compatible = "fsl,sec-v4.2-rtic",
+                                    "fsl,sec-v4.0-rtic";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x6000 0x100>;
+                       ranges = <0x0 0x6100 0xe00>;
+
+                       rtic_a: rtic-a@0 {
+                               compatible = "fsl,sec-v4.2-rtic-memory",
+                                            "fsl,sec-v4.0-rtic-memory";
+                               reg = <0x00 0x20 0x100 0x80>;
+                       };
+
+                       rtic_b: rtic-b@20 {
+                               compatible = "fsl,sec-v4.2-rtic-memory",
+                                            "fsl,sec-v4.0-rtic-memory";
+                               reg = <0x20 0x20 0x200 0x80>;
+                       };
+
+                       rtic_c: rtic-c@40 {
+                               compatible = "fsl,sec-v4.2-rtic-memory",
+                                            "fsl,sec-v4.0-rtic-memory";
+                               reg = <0x40 0x20 0x300 0x80>;
+                       };
+
+                       rtic_d: rtic-d@60 {
+                               compatible = "fsl,sec-v4.2-rtic-memory",
+                                            "fsl,sec-v4.0-rtic-memory";
+                               reg = <0x60 0x20 0x500 0x80>;
+                       };
+               };
+       };
+
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+       global-utilities@e0000 {
+               compatible = "fsl,p1023-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi
new file mode 100644 (file)
index 0000000..ac45f6d
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * P1023/P1017 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P1023";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+
+               crypto = &crypto;
+               sec_jr0 = &sec_jr0;
+               sec_jr1 = &sec_jr1;
+               sec_jr2 = &sec_jr2;
+               sec_jr3 = &sec_jr3;
+               rtic_a = &rtic_a;
+               rtic_b = &rtic_b;
+               rtic_c = &rtic_c;
+               rtic_d = &rtic_d;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,P1023@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+
+               PowerPC,P1023@1 {
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
new file mode 100644 (file)
index 0000000..c041050
--- /dev/null
@@ -0,0 +1,194 @@
+/*
+ * P2020/P2010 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,p2020-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <19 2 0 0>;
+};
+
+/* controller at 0xa000 */
+&pci0 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <26 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <26 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x0 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x1 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x2 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x3 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0x9000 */
+&pci1 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <25 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <25 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x4 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x5 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0x6 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0x7 0x1 0x0 0x0
+                       >;
+       };
+};
+
+/* controller at 0x8000 */
+&pci2 {
+       compatible = "fsl,mpc8548-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 255>;
+       clock-frequency = <33333333>;
+       interrupts = <24 2 0 0>;
+
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <24 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0x0 0x0 0x1 &mpic 0x8 0x1 0x0 0x0
+                       0000 0x0 0x0 0x2 &mpic 0x9 0x1 0x0 0x0
+                       0000 0x0 0x0 0x3 &mpic 0xa 0x1 0x0 0x0
+                       0000 0x0 0x0 0x4 &mpic 0xb 0x1 0x0 0x0
+                       >;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "fsl,p2020-immr", "simple-bus";
+       bus-frequency = <0>;            // Filled out by uboot.
+
+       ecm-law@0 {
+               compatible = "fsl,ecm-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <12>;
+       };
+
+       ecm@1000 {
+               compatible = "fsl,p2020-ecm", "fsl,ecm";
+               reg = <0x1000 0x1000>;
+               interrupts = <17 2 0 0>;
+       };
+
+       memory-controller@2000 {
+               compatible = "fsl,p2020-memory-controller";
+               reg = <0x2000 0x1000>;
+               interrupts = <18 2 0 0>;
+       };
+
+/include/ "pq3-i2c-0.dtsi"
+/include/ "pq3-i2c-1.dtsi"
+/include/ "pq3-duart-0.dtsi"
+/include/ "pq3-espi-0.dtsi"
+       spi0: spi@7000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "pq3-dma-1.dtsi"
+/include/ "pq3-gpio-0.dtsi"
+
+       L2: l2-cache-controller@20000 {
+               compatible = "fsl,p2020-l2-cache-controller";
+               reg = <0x20000 0x1000>;
+               cache-line-size = <32>; // 32 bytes
+               cache-size = <0x80000>; // L2,512K
+               interrupts = <16 2 0 0>;
+       };
+
+/include/ "pq3-dma-0.dtsi"
+/include/ "pq3-usb2-dr-0.dtsi"
+/include/ "pq3-etsec1-0.dtsi"
+/include/ "pq3-etsec1-timer-0.dtsi"
+
+       ptp_clock@24e00 {
+               interrupts = <68 2 0 0 69 2 0 0 70 2 0 0>;
+       };
+
+
+/include/ "pq3-etsec1-1.dtsi"
+/include/ "pq3-etsec1-2.dtsi"
+/include/ "pq3-esdhc-0.dtsi"
+/include/ "pq3-sec3.1-0.dtsi"
+/include/ "pq3-mpic.dtsi"
+/include/ "pq3-mpic-timer-B.dtsi"
+
+       global-utilities@e0000 {
+               compatible = "fsl,p2020-guts";
+               reg = <0xe0000 0x1000>;
+               fsl,has-rstcr;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi
new file mode 100644 (file)
index 0000000..3213288
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * P2020/P2010 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P2020";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               ethernet0 = &enet0;
+               ethernet1 = &enet1;
+               ethernet2 = &enet2;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               PowerPC,P2020@0 {
+                       device_type = "cpu";
+                       reg = <0x0>;
+                       next-level-cache = <&L2>;
+               };
+
+               PowerPC,P2020@1 {
+                       device_type = "cpu";
+                       reg = <0x1>;
+                       next-level-cache = <&L2>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
new file mode 100644 (file)
index 0000000..234a399
--- /dev/null
@@ -0,0 +1,325 @@
+/*
+ * P2041/P2040 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       compatible = "fsl,p2041-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <25 2 0 0>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+};
+
+/* controller at 0x200000 */
+&pci0 {
+       compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 15>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 15>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 40 1 0 0
+                       0000 0 0 2 &mpic 1 1 0 0
+                       0000 0 0 3 &mpic 2 1 0 0
+                       0000 0 0 4 &mpic 3 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x201000 */
+&pci1 {
+       compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 14>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 14>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 41 1 0 0
+                       0000 0 0 2 &mpic 5 1 0 0
+                       0000 0 0 3 &mpic 6 1 0 0
+                       0000 0 0 4 &mpic 7 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x202000 */
+&pci2 {
+       compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 13>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 13>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 42 1 0 0
+                       0000 0 0 2 &mpic 9 1 0 0
+                       0000 0 0 3 &mpic 10 1 0 0
+                       0000 0 0 4 &mpic 11 1 0 0
+                       >;
+       };
+};
+
+&rio {
+       compatible = "fsl,srio";
+       interrupts = <16 2 1 11>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       ranges;
+
+       port1 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <1>;
+       };
+
+       port2 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <2>;
+       };
+};
+
+&dcsr {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,dcsr", "simple-bus";
+
+       dcsr-epu@0 {
+               compatible = "fsl,dcsr-epu";
+               interrupts = <52 2 0 0
+                             84 2 0 0
+                             85 2 0 0>;
+               reg = <0x0 0x1000>;
+       };
+       dcsr-npc {
+               compatible = "fsl,dcsr-npc";
+               reg = <0x1000 0x1000 0x1000000 0x8000>;
+       };
+       dcsr-nxc@2000 {
+               compatible = "fsl,dcsr-nxc";
+               reg = <0x2000 0x1000>;
+       };
+       dcsr-corenet {
+               compatible = "fsl,dcsr-corenet";
+               reg = <0x8000 0x1000 0xB0000 0x1000>;
+       };
+       dcsr-dpaa@9000 {
+               compatible = "fsl,p2041-dcsr-dpaa", "fsl,dcsr-dpaa";
+               reg = <0x9000 0x1000>;
+       };
+       dcsr-ocn@11000 {
+               compatible = "fsl,p2041-dcsr-ocn", "fsl,dcsr-ocn";
+               reg = <0x11000 0x1000>;
+       };
+       dcsr-ddr@12000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr1>;
+               reg = <0x12000 0x1000>;
+       };
+       dcsr-nal@18000 {
+               compatible = "fsl,p2041-dcsr-nal", "fsl,dcsr-nal";
+               reg = <0x18000 0x1000>;
+       };
+       dcsr-rcpm@22000 {
+               compatible = "fsl,p2041-dcsr-rcpm", "fsl,dcsr-rcpm";
+               reg = <0x22000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@40000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu0>;
+               reg = <0x40000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@41000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu1>;
+               reg = <0x41000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@42000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu2>;
+               reg = <0x42000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@43000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu3>;
+               reg = <0x43000 0x1000>;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "simple-bus";
+
+       soc-sram-error {
+               compatible = "fsl,soc-sram-error";
+               interrupts = <16 2 1 29>;
+       };
+
+       corenet-law@0 {
+               compatible = "fsl,corenet-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <32>;
+       };
+
+       ddr1: memory-controller@8000 {
+               compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
+               reg = <0x8000 0x1000>;
+               interrupts = <16 2 1 23>;
+       };
+
+       cpc: l3-cache-controller@10000 {
+               compatible = "fsl,p2041-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache";
+               reg = <0x10000 0x1000>;
+               interrupts = <16 2 1 27>;
+       };
+
+       corenet-cf@18000 {
+               compatible = "fsl,corenet-cf";
+               reg = <0x18000 0x1000>;
+               interrupts = <16 2 1 31>;
+               fsl,ccf-num-csdids = <32>;
+               fsl,ccf-num-snoopids = <32>;
+       };
+
+       iommu@20000 {
+               compatible = "fsl,pamu-v1.0", "fsl,pamu";
+               reg = <0x20000 0x4000>;
+               interrupts = <
+                       24 2 0 0
+                       16 2 1 30>;
+       };
+
+/include/ "qoriq-mpic.dtsi"
+
+       guts: global-utilities@e0000 {
+               compatible = "fsl,qoriq-device-config-1.0";
+               reg = <0xe0000 0xe00>;
+               fsl,has-rstcr;
+               #sleep-cells = <1>;
+               fsl,liodn-bits = <12>;
+       };
+
+       pins: global-utilities@e0e00 {
+               compatible = "fsl,qoriq-pin-control-1.0";
+               reg = <0xe0e00 0x200>;
+               #sleep-cells = <2>;
+       };
+
+       clockgen: global-utilities@e1000 {
+               compatible = "fsl,p2041-clockgen", "fsl,qoriq-clockgen-1.0";
+               reg = <0xe1000 0x1000>;
+               clock-frequency = <0>;
+       };
+
+       rcpm: global-utilities@e2000 {
+               compatible = "fsl,qoriq-rcpm-1.0";
+               reg = <0xe2000 0x1000>;
+               #sleep-cells = <1>;
+       };
+
+       sfp: sfp@e8000 {
+               compatible = "fsl,p2041-sfp", "fsl,qoriq-sfp-1.0";
+               reg        = <0xe8000 0x1000>;
+       };
+
+       serdes: serdes@ea000 {
+               compatible = "fsl,p2041-serdes";
+               reg        = <0xea000 0x1000>;
+       };
+
+/include/ "qoriq-dma-0.dtsi"
+/include/ "qoriq-dma-1.dtsi"
+/include/ "qoriq-espi-0.dtsi"
+       spi@110000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "qoriq-esdhc-0.dtsi"
+       sdhc@114000 {
+               sdhci,auto-cmd12;
+       };
+
+/include/ "qoriq-i2c-0.dtsi"
+/include/ "qoriq-i2c-1.dtsi"
+/include/ "qoriq-duart-0.dtsi"
+/include/ "qoriq-duart-1.dtsi"
+/include/ "qoriq-gpio-0.dtsi"
+/include/ "qoriq-usb2-mph-0.dtsi"
+               usb0: usb@210000 {
+                       phy_type = "utmi";
+                       port0;
+               };
+
+/include/ "qoriq-usb2-dr-0.dtsi"
+               usb1: usb@211000 {
+                       dr_mode = "host";
+                       phy_type = "utmi";
+               };
+
+/include/ "qoriq-sata2-0.dtsi"
+/include/ "qoriq-sata2-1.dtsi"
+/include/ "qoriq-sec4.2-0.dtsi"
+};
diff --git a/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi
new file mode 100644 (file)
index 0000000..2d0a40d
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * P2041 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P2041";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               ccsr = &soc;
+               dcsr = &dcsr;
+
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+               usb0 = &usb0;
+               usb1 = &usb1;
+               dma0 = &dma0;
+               dma1 = &dma1;
+               sdhc = &sdhc;
+               msi0 = &msi0;
+               msi1 = &msi1;
+               msi2 = &msi2;
+
+               crypto = &crypto;
+               sec_jr0 = &sec_jr0;
+               sec_jr1 = &sec_jr1;
+               sec_jr2 = &sec_jr2;
+               sec_jr3 = &sec_jr3;
+               rtic_a = &rtic_a;
+               rtic_b = &rtic_b;
+               rtic_c = &rtic_c;
+               rtic_d = &rtic_d;
+               sec_mon = &sec_mon;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: PowerPC,e500mc@0 {
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2_0>;
+                       L2_0: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu1: PowerPC,e500mc@1 {
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2_1>;
+                       L2_1: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu2: PowerPC,e500mc@2 {
+                       device_type = "cpu";
+                       reg = <2>;
+                       next-level-cache = <&L2_2>;
+                       L2_2: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu3: PowerPC,e500mc@3 {
+                       device_type = "cpu";
+                       reg = <3>;
+                       next-level-cache = <&L2_3>;
+                       L2_3: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi b/arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
new file mode 100644 (file)
index 0000000..d41d08d
--- /dev/null
@@ -0,0 +1,352 @@
+/*
+ * P3041 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       compatible = "fsl,p3041-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <25 2 0 0>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+};
+
+/* controller at 0x200000 */
+&pci0 {
+       compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 15>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 15>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 40 1 0 0
+                       0000 0 0 2 &mpic 1 1 0 0
+                       0000 0 0 3 &mpic 2 1 0 0
+                       0000 0 0 4 &mpic 3 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x201000 */
+&pci1 {
+       compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 14>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 14>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 41 1 0 0
+                       0000 0 0 2 &mpic 5 1 0 0
+                       0000 0 0 3 &mpic 6 1 0 0
+                       0000 0 0 4 &mpic 7 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x202000 */
+&pci2 {
+       compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 13>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 13>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 42 1 0 0
+                       0000 0 0 2 &mpic 9 1 0 0
+                       0000 0 0 3 &mpic 10 1 0 0
+                       0000 0 0 4 &mpic 11 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x203000 */
+&pci3 {
+       compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 12>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 12>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 43 1 0 0
+                       0000 0 0 2 &mpic 0 1 0 0
+                       0000 0 0 3 &mpic 4 1 0 0
+                       0000 0 0 4 &mpic 8 1 0 0
+                       >;
+       };
+};
+
+&rio {
+       compatible = "fsl,srio";
+       interrupts = <16 2 1 11>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       ranges;
+
+       port1 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <1>;
+       };
+
+       port2 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <2>;
+       };
+};
+
+&dcsr {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,dcsr", "simple-bus";
+
+       dcsr-epu@0 {
+               compatible = "fsl,dcsr-epu";
+               interrupts = <52 2 0 0
+                             84 2 0 0
+                             85 2 0 0>;
+               reg = <0x0 0x1000>;
+       };
+       dcsr-npc {
+               compatible = "fsl,dcsr-npc";
+               reg = <0x1000 0x1000 0x1000000 0x8000>;
+       };
+       dcsr-nxc@2000 {
+               compatible = "fsl,dcsr-nxc";
+               reg = <0x2000 0x1000>;
+       };
+       dcsr-corenet {
+               compatible = "fsl,dcsr-corenet";
+               reg = <0x8000 0x1000 0xB0000 0x1000>;
+       };
+       dcsr-dpaa@9000 {
+               compatible = "fsl,p3041-dcsr-dpaa", "fsl,dcsr-dpaa";
+               reg = <0x9000 0x1000>;
+       };
+       dcsr-ocn@11000 {
+               compatible = "fsl,p3041-dcsr-ocn", "fsl,dcsr-ocn";
+               reg = <0x11000 0x1000>;
+       };
+       dcsr-ddr@12000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr1>;
+               reg = <0x12000 0x1000>;
+       };
+       dcsr-nal@18000 {
+               compatible = "fsl,p3041-dcsr-nal", "fsl,dcsr-nal";
+               reg = <0x18000 0x1000>;
+       };
+       dcsr-rcpm@22000 {
+               compatible = "fsl,p3041-dcsr-rcpm", "fsl,dcsr-rcpm";
+               reg = <0x22000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@40000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu0>;
+               reg = <0x40000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@41000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu1>;
+               reg = <0x41000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@42000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu2>;
+               reg = <0x42000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@43000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu3>;
+               reg = <0x43000 0x1000>;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "simple-bus";
+
+       soc-sram-error {
+               compatible = "fsl,soc-sram-error";
+               interrupts = <16 2 1 29>;
+       };
+
+       corenet-law@0 {
+               compatible = "fsl,corenet-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <32>;
+       };
+
+       ddr1: memory-controller@8000 {
+               compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
+               reg = <0x8000 0x1000>;
+               interrupts = <16 2 1 23>;
+       };
+
+       cpc: l3-cache-controller@10000 {
+               compatible = "fsl,p3041-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache";
+               reg = <0x10000 0x1000>;
+               interrupts = <16 2 1 27>;
+       };
+
+       corenet-cf@18000 {
+               compatible = "fsl,corenet-cf";
+               reg = <0x18000 0x1000>;
+               interrupts = <16 2 1 31>;
+               fsl,ccf-num-csdids = <32>;
+               fsl,ccf-num-snoopids = <32>;
+       };
+
+       iommu@20000 {
+               compatible = "fsl,pamu-v1.0", "fsl,pamu";
+               reg = <0x20000 0x4000>;
+               interrupts = <
+                       24 2 0 0
+                       16 2 1 30>;
+       };
+
+/include/ "qoriq-mpic.dtsi"
+
+       guts: global-utilities@e0000 {
+               compatible = "fsl,qoriq-device-config-1.0";
+               reg = <0xe0000 0xe00>;
+               fsl,has-rstcr;
+               #sleep-cells = <1>;
+               fsl,liodn-bits = <12>;
+       };
+
+       pins: global-utilities@e0e00 {
+               compatible = "fsl,qoriq-pin-control-1.0";
+               reg = <0xe0e00 0x200>;
+               #sleep-cells = <2>;
+       };
+
+       clockgen: global-utilities@e1000 {
+               compatible = "fsl,p3041-clockgen", "fsl,qoriq-clockgen-1.0";
+               reg = <0xe1000 0x1000>;
+               clock-frequency = <0>;
+       };
+
+       rcpm: global-utilities@e2000 {
+               compatible = "fsl,qoriq-rcpm-1.0";
+               reg = <0xe2000 0x1000>;
+               #sleep-cells = <1>;
+       };
+
+       sfp: sfp@e8000 {
+               compatible = "fsl,p3041-sfp", "fsl,qoriq-sfp-1.0";
+               reg        = <0xe8000 0x1000>;
+       };
+
+       serdes: serdes@ea000 {
+               compatible = "fsl,p3041-serdes";
+               reg        = <0xea000 0x1000>;
+       };
+
+/include/ "qoriq-dma-0.dtsi"
+/include/ "qoriq-dma-1.dtsi"
+/include/ "qoriq-espi-0.dtsi"
+       spi@110000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "qoriq-esdhc-0.dtsi"
+       sdhc@114000 {
+               sdhci,auto-cmd12;
+       };
+
+/include/ "qoriq-i2c-0.dtsi"
+/include/ "qoriq-i2c-1.dtsi"
+/include/ "qoriq-duart-0.dtsi"
+/include/ "qoriq-duart-1.dtsi"
+/include/ "qoriq-gpio-0.dtsi"
+/include/ "qoriq-usb2-mph-0.dtsi"
+               usb0: usb@210000 {
+                       phy_type = "utmi";
+                       port0;
+               };
+
+/include/ "qoriq-usb2-dr-0.dtsi"
+               usb1: usb@211000 {
+                       dr_mode = "host";
+                       phy_type = "utmi";
+               };
+
+/include/ "qoriq-sata2-0.dtsi"
+/include/ "qoriq-sata2-1.dtsi"
+/include/ "qoriq-sec4.2-0.dtsi"
+};
diff --git a/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi
new file mode 100644 (file)
index 0000000..136def3
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * P3041 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P3041";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               ccsr = &soc;
+               dcsr = &dcsr;
+
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+               pci3 = &pci3;
+               usb0 = &usb0;
+               usb1 = &usb1;
+               dma0 = &dma0;
+               dma1 = &dma1;
+               sdhc = &sdhc;
+               msi0 = &msi0;
+               msi1 = &msi1;
+               msi2 = &msi2;
+
+               crypto = &crypto;
+               sec_jr0 = &sec_jr0;
+               sec_jr1 = &sec_jr1;
+               sec_jr2 = &sec_jr2;
+               sec_jr3 = &sec_jr3;
+               rtic_a = &rtic_a;
+               rtic_b = &rtic_b;
+               rtic_c = &rtic_c;
+               rtic_d = &rtic_d;
+               sec_mon = &sec_mon;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: PowerPC,e500mc@0 {
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2_0>;
+                       L2_0: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu1: PowerPC,e500mc@1 {
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2_1>;
+                       L2_1: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu2: PowerPC,e500mc@2 {
+                       device_type = "cpu";
+                       reg = <2>;
+                       next-level-cache = <&L2_2>;
+                       L2_2: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu3: PowerPC,e500mc@3 {
+                       device_type = "cpu";
+                       reg = <3>;
+                       next-level-cache = <&L2_3>;
+                       L2_3: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p3060si-post.dtsi b/arch/powerpc/boot/dts/fsl/p3060si-post.dtsi
new file mode 100644 (file)
index 0000000..a63edd1
--- /dev/null
@@ -0,0 +1,296 @@
+/*
+ * P3060 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       compatible = "fsl,p3060-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <25 2 0 0>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+};
+
+/* controller at 0x200000 */
+&pci0 {
+       compatible = "fsl,p3060-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 15>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 15>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 40 1 0 0
+                       0000 0 0 2 &mpic 1 1 0 0
+                       0000 0 0 3 &mpic 2 1 0 0
+                       0000 0 0 4 &mpic 3 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x201000 */
+&pci1 {
+       compatible = "fsl,p3060-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 14>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 14>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 41 1 0 0
+                       0000 0 0 2 &mpic 5 1 0 0
+                       0000 0 0 3 &mpic 6 1 0 0
+                       0000 0 0 4 &mpic 7 1 0 0
+                       >;
+       };
+};
+
+&rio {
+       compatible = "fsl,srio";
+       interrupts = <16 2 1 11>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       fsl,srio-rmu-handle = <&rmu>;
+       ranges;
+
+       port1 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <1>;
+       };
+
+       port2 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <2>;
+       };
+};
+
+&dcsr {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,dcsr", "simple-bus";
+
+       dcsr-epu@0 {
+               compatible = "fsl,dcsr-epu";
+               interrupts = <52 2 0 0
+                             84 2 0 0
+                             85 2 0 0>;
+               reg = <0x0 0x1000>;
+       };
+       dcsr-npc {
+               compatible = "fsl,dcsr-npc";
+               reg = <0x1000 0x1000 0x1000000 0x8000>;
+       };
+       dcsr-nxc@2000 {
+               compatible = "fsl,dcsr-nxc";
+               reg = <0x2000 0x1000>;
+       };
+       dcsr-corenet {
+               compatible = "fsl,dcsr-corenet";
+               reg = <0x8000 0x1000 0xB0000 0x1000>;
+       };
+       dcsr-dpaa@9000 {
+               compatible = "fsl,p3060-dcsr-dpaa", "fsl,dcsr-dpaa";
+               reg = <0x9000 0x1000>;
+       };
+       dcsr-ocn@11000 {
+               compatible = "fsl,p3060-dcsr-ocn", "fsl,dcsr-ocn";
+               reg = <0x11000 0x1000>;
+       };
+       dcsr-ddr@12000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr1>;
+               reg = <0x12000 0x1000>;
+       };
+       dcsr-nal@18000 {
+               compatible = "fsl,p3060-dcsr-nal", "fsl,dcsr-nal";
+               reg = <0x18000 0x1000>;
+       };
+       dcsr-rcpm@22000 {
+               compatible = "fsl,p3060-dcsr-rcpm", "fsl,dcsr-rcpm";
+               reg = <0x22000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@40000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu0>;
+               reg = <0x40000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@41000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu1>;
+               reg = <0x41000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@44000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu4>;
+               reg = <0x44000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@45000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu5>;
+               reg = <0x45000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@46000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu6>;
+               reg = <0x46000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@47000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu7>;
+               reg = <0x47000 0x1000>;
+       };
+
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "simple-bus";
+
+       soc-sram-error {
+               compatible = "fsl,soc-sram-error";
+               interrupts = <16 2 1 29>;
+       };
+
+       corenet-law@0 {
+               compatible = "fsl,corenet-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <32>;
+       };
+
+       ddr1: memory-controller@8000 {
+               compatible = "fsl,qoriq-memory-controller-v4.4", "fsl,qoriq-memory-controller";
+               reg = <0x8000 0x1000>;
+               interrupts = <16 2 1 23>;
+       };
+
+       cpc: l3-cache-controller@10000 {
+               compatible = "fsl,p3060-l3-cache-controller", "cache";
+               reg = <0x10000 0x1000
+                      0x11000 0x1000>;
+               interrupts = <16 2 1 27
+                             16 2 1 26>;
+       };
+
+       corenet-cf@18000 {
+               compatible = "fsl,corenet-cf";
+               reg = <0x18000 0x1000>;
+               interrupts = <16 2 1 31>;
+               fsl,ccf-num-csdids = <32>;
+               fsl,ccf-num-snoopids = <32>;
+       };
+
+       iommu@20000 {
+               compatible = "fsl,pamu-v1.0", "fsl,pamu";
+               reg = <0x20000 0x5000>;
+               interrupts = <
+                       24 2 0 0
+                       16 2 1 30>;
+       };
+
+/include/ "qoriq-rmu-0.dtsi"
+/include/ "qoriq-mpic.dtsi"
+
+       guts: global-utilities@e0000 {
+               compatible = "fsl,qoriq-device-config-1.0";
+               reg = <0xe0000 0xe00>;
+               fsl,has-rstcr;
+               #sleep-cells = <1>;
+               fsl,liodn-bits = <12>;
+       };
+
+       pins: global-utilities@e0e00 {
+               compatible = "fsl,qoriq-pin-control-1.0";
+               reg = <0xe0e00 0x200>;
+               #sleep-cells = <2>;
+       };
+
+       clockgen: global-utilities@e1000 {
+               compatible = "fsl,p3060-clockgen", "fsl,qoriq-clockgen-1.0";
+               reg = <0xe1000 0x1000>;
+               clock-frequency = <0>;
+       };
+
+       rcpm: global-utilities@e2000 {
+               compatible = "fsl,qoriq-rcpm-1.0";
+               reg = <0xe2000 0x1000>;
+               #sleep-cells = <1>;
+       };
+
+       sfp: sfp@e8000 {
+               compatible = "fsl,p3060-sfp", "fsl,qoriq-sfp-1.0";
+               reg        = <0xe8000 0x1000>;
+       };
+
+       serdes: serdes@ea000 {
+               compatible = "fsl,p3060-serdes";
+               reg        = <0xea000 0x1000>;
+       };
+
+/include/ "qoriq-dma-0.dtsi"
+/include/ "qoriq-dma-1.dtsi"
+/include/ "qoriq-espi-0.dtsi"
+       spi@110000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "qoriq-i2c-0.dtsi"
+/include/ "qoriq-i2c-1.dtsi"
+/include/ "qoriq-duart-0.dtsi"
+/include/ "qoriq-duart-1.dtsi"
+/include/ "qoriq-gpio-0.dtsi"
+/include/ "qoriq-usb2-mph-0.dtsi"
+/include/ "qoriq-usb2-dr-0.dtsi"
+/include/ "qoriq-sec4.1-0.dtsi"
+};
diff --git a/arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi
new file mode 100644 (file)
index 0000000..00c8e70
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * P3060 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P3060";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               ccsr = &soc;
+               dcsr = &dcsr;
+
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               usb0 = &usb0;
+               usb1 = &usb1;
+               dma0 = &dma0;
+               dma1 = &dma1;
+               msi0 = &msi0;
+               msi1 = &msi1;
+               msi2 = &msi2;
+
+               crypto = &crypto;
+               sec_jr0 = &sec_jr0;
+               sec_jr1 = &sec_jr1;
+               sec_jr2 = &sec_jr2;
+               sec_jr3 = &sec_jr3;
+               rtic_a = &rtic_a;
+               rtic_b = &rtic_b;
+               rtic_c = &rtic_c;
+               rtic_d = &rtic_d;
+               sec_mon = &sec_mon;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: PowerPC,e500mc@0 {
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2_0>;
+                       L2_0: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu1: PowerPC,e500mc@1 {
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2_1>;
+                       L2_1: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu4: PowerPC,e500mc@4 {
+                       device_type = "cpu";
+                       reg = <4>;
+                       next-level-cache = <&L2_4>;
+                       L2_4: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu5: PowerPC,e500mc@5 {
+                       device_type = "cpu";
+                       reg = <5>;
+                       next-level-cache = <&L2_5>;
+                       L2_5: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu6: PowerPC,e500mc@6 {
+                       device_type = "cpu";
+                       reg = <6>;
+                       next-level-cache = <&L2_6>;
+                       L2_6: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu7: PowerPC,e500mc@7 {
+                       device_type = "cpu";
+                       reg = <7>;
+                       next-level-cache = <&L2_7>;
+                       L2_7: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi b/arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
new file mode 100644 (file)
index 0000000..8d35d2c
--- /dev/null
@@ -0,0 +1,350 @@
+/*
+ * P4080/P4040 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <25 2 0 0>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+};
+
+/* controller at 0x200000 */
+&pci0 {
+       compatible = "fsl,p4080-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 15>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 15>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 40 1 0 0
+                       0000 0 0 2 &mpic 1 1 0 0
+                       0000 0 0 3 &mpic 2 1 0 0
+                       0000 0 0 4 &mpic 3 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x201000 */
+&pci1 {
+       compatible = "fsl,p4080-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 14>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 14>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 41 1 0 0
+                       0000 0 0 2 &mpic 5 1 0 0
+                       0000 0 0 3 &mpic 6 1 0 0
+                       0000 0 0 4 &mpic 7 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x202000 */
+&pci2 {
+       compatible = "fsl,p4080-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 13>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 13>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 42 1 0 0
+                       0000 0 0 2 &mpic 9 1 0 0
+                       0000 0 0 3 &mpic 10 1 0 0
+                       0000 0 0 4 &mpic 11 1 0 0
+                       >;
+       };
+};
+
+&rio {
+       compatible = "fsl,srio";
+       interrupts = <16 2 1 11>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       fsl,srio-rmu-handle = <&rmu>;
+       ranges;
+
+       port1 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <1>;
+       };
+
+       port2 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <2>;
+       };
+};
+
+&dcsr {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,dcsr", "simple-bus";
+
+       dcsr-epu@0 {
+               compatible = "fsl,dcsr-epu";
+               interrupts = <52 2 0 0
+                             84 2 0 0
+                             85 2 0 0>;
+               reg = <0x0 0x1000>;
+       };
+       dcsr-npc {
+               compatible = "fsl,dcsr-npc";
+               reg = <0x1000 0x1000 0x1000000 0x8000>;
+       };
+       dcsr-nxc@2000 {
+               compatible = "fsl,dcsr-nxc";
+               reg = <0x2000 0x1000>;
+       };
+       dcsr-corenet {
+               compatible = "fsl,dcsr-corenet";
+               reg = <0x8000 0x1000 0xB0000 0x1000>;
+       };
+       dcsr-dpaa@9000 {
+               compatible = "fsl,p4080-dcsr-dpaa", "fsl,dcsr-dpaa";
+               reg = <0x9000 0x1000>;
+       };
+       dcsr-ocn@11000 {
+               compatible = "fsl,p4080-dcsr-ocn", "fsl,dcsr-ocn";
+               reg = <0x11000 0x1000>;
+       };
+       dcsr-ddr@12000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr1>;
+               reg = <0x12000 0x1000>;
+       };
+       dcsr-ddr@13000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr2>;
+               reg = <0x13000 0x1000>;
+       };
+       dcsr-nal@18000 {
+               compatible = "fsl,p4080-dcsr-nal", "fsl,dcsr-nal";
+               reg = <0x18000 0x1000>;
+       };
+       dcsr-rcpm@22000 {
+               compatible = "fsl,p4080-dcsr-rcpm", "fsl,dcsr-rcpm";
+               reg = <0x22000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@40000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu0>;
+               reg = <0x40000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@41000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu1>;
+               reg = <0x41000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@42000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu2>;
+               reg = <0x42000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@43000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu3>;
+               reg = <0x43000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@44000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu4>;
+               reg = <0x44000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@45000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu5>;
+               reg = <0x45000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@46000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu6>;
+               reg = <0x46000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@47000 {
+               compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu7>;
+               reg = <0x47000 0x1000>;
+       };
+
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "simple-bus";
+
+       soc-sram-error {
+               compatible = "fsl,soc-sram-error";
+               interrupts = <16 2 1 29>;
+       };
+
+       corenet-law@0 {
+               compatible = "fsl,corenet-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <32>;
+       };
+
+       ddr1: memory-controller@8000 {
+               compatible = "fsl,qoriq-memory-controller-v4.4", "fsl,qoriq-memory-controller";
+               reg = <0x8000 0x1000>;
+               interrupts = <16 2 1 23>;
+       };
+
+       ddr2: memory-controller@9000 {
+               compatible = "fsl,qoriq-memory-controller-v4.4","fsl,qoriq-memory-controller";
+               reg = <0x9000 0x1000>;
+               interrupts = <16 2 1 22>;
+       };
+
+       cpc: l3-cache-controller@10000 {
+               compatible = "fsl,p4080-l3-cache-controller", "cache";
+               reg = <0x10000 0x1000
+                      0x11000 0x1000>;
+               interrupts = <16 2 1 27
+                             16 2 1 26>;
+       };
+
+       corenet-cf@18000 {
+               compatible = "fsl,corenet-cf";
+               reg = <0x18000 0x1000>;
+               interrupts = <16 2 1 31>;
+               fsl,ccf-num-csdids = <32>;
+               fsl,ccf-num-snoopids = <32>;
+       };
+
+       iommu@20000 {
+               compatible = "fsl,pamu-v1.0", "fsl,pamu";
+               reg = <0x20000 0x5000>;
+               interrupts = <
+                       24 2 0 0
+                       16 2 1 30>;
+       };
+
+/include/ "qoriq-rmu-0.dtsi"
+/include/ "qoriq-mpic.dtsi"
+
+       guts: global-utilities@e0000 {
+               compatible = "fsl,qoriq-device-config-1.0";
+               reg = <0xe0000 0xe00>;
+               fsl,has-rstcr;
+               #sleep-cells = <1>;
+               fsl,liodn-bits = <12>;
+       };
+
+       pins: global-utilities@e0e00 {
+               compatible = "fsl,qoriq-pin-control-1.0";
+               reg = <0xe0e00 0x200>;
+               #sleep-cells = <2>;
+       };
+
+       clockgen: global-utilities@e1000 {
+               compatible = "fsl,p4080-clockgen", "fsl,qoriq-clockgen-1.0";
+               reg = <0xe1000 0x1000>;
+               clock-frequency = <0>;
+       };
+
+       rcpm: global-utilities@e2000 {
+               compatible = "fsl,qoriq-rcpm-1.0";
+               reg = <0xe2000 0x1000>;
+               #sleep-cells = <1>;
+       };
+
+       sfp: sfp@e8000 {
+               compatible = "fsl,p4080-sfp", "fsl,qoriq-sfp-1.0";
+               reg        = <0xe8000 0x1000>;
+       };
+
+       serdes: serdes@ea000 {
+               compatible = "fsl,p4080-serdes";
+               reg        = <0xea000 0x1000>;
+       };
+
+/include/ "qoriq-dma-0.dtsi"
+/include/ "qoriq-dma-1.dtsi"
+/include/ "qoriq-espi-0.dtsi"
+       spi@110000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "qoriq-esdhc-0.dtsi"
+       sdhc@114000 {
+               voltage-ranges = <3300 3300>;
+               sdhci,auto-cmd12;
+       };
+
+/include/ "qoriq-i2c-0.dtsi"
+/include/ "qoriq-i2c-1.dtsi"
+/include/ "qoriq-duart-0.dtsi"
+/include/ "qoriq-duart-1.dtsi"
+/include/ "qoriq-gpio-0.dtsi"
+/include/ "qoriq-usb2-mph-0.dtsi"
+/include/ "qoriq-usb2-dr-0.dtsi"
+/include/ "qoriq-sec4.0-0.dtsi"
+};
diff --git a/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi
new file mode 100644 (file)
index 0000000..b9556ee
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * P4080/P4040 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P4080";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               ccsr = &soc;
+               dcsr = &dcsr;
+
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+               usb0 = &usb0;
+               usb1 = &usb1;
+               dma0 = &dma0;
+               dma1 = &dma1;
+               sdhc = &sdhc;
+               msi0 = &msi0;
+               msi1 = &msi1;
+               msi2 = &msi2;
+
+               crypto = &crypto;
+               sec_jr0 = &sec_jr0;
+               sec_jr1 = &sec_jr1;
+               sec_jr2 = &sec_jr2;
+               sec_jr3 = &sec_jr3;
+               rtic_a = &rtic_a;
+               rtic_b = &rtic_b;
+               rtic_c = &rtic_c;
+               rtic_d = &rtic_d;
+               sec_mon = &sec_mon;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: PowerPC,e500mc@0 {
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2_0>;
+                       L2_0: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu1: PowerPC,e500mc@1 {
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2_1>;
+                       L2_1: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu2: PowerPC,e500mc@2 {
+                       device_type = "cpu";
+                       reg = <2>;
+                       next-level-cache = <&L2_2>;
+                       L2_2: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu3: PowerPC,e500mc@3 {
+                       device_type = "cpu";
+                       reg = <3>;
+                       next-level-cache = <&L2_3>;
+                       L2_3: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu4: PowerPC,e500mc@4 {
+                       device_type = "cpu";
+                       reg = <4>;
+                       next-level-cache = <&L2_4>;
+                       L2_4: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu5: PowerPC,e500mc@5 {
+                       device_type = "cpu";
+                       reg = <5>;
+                       next-level-cache = <&L2_5>;
+                       L2_5: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu6: PowerPC,e500mc@6 {
+                       device_type = "cpu";
+                       reg = <6>;
+                       next-level-cache = <&L2_6>;
+                       L2_6: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu7: PowerPC,e500mc@7 {
+                       device_type = "cpu";
+                       reg = <7>;
+                       next-level-cache = <&L2_7>;
+                       L2_7: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
new file mode 100644 (file)
index 0000000..914074b
--- /dev/null
@@ -0,0 +1,355 @@
+/*
+ * P5020/5010 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&lbc {
+       compatible = "fsl,p5020-elbc", "fsl,elbc", "simple-bus";
+       interrupts = <25 2 0 0>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+};
+
+/* controller at 0x200000 */
+&pci0 {
+       compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 15>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 15>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 40 1 0 0
+                       0000 0 0 2 &mpic 1 1 0 0
+                       0000 0 0 3 &mpic 2 1 0 0
+                       0000 0 0 4 &mpic 3 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x201000 */
+&pci1 {
+       compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 14>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 14>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 41 1 0 0
+                       0000 0 0 2 &mpic 5 1 0 0
+                       0000 0 0 3 &mpic 6 1 0 0
+                       0000 0 0 4 &mpic 7 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x202000 */
+&pci2 {
+       compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 13>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 13>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 42 1 0 0
+                       0000 0 0 2 &mpic 9 1 0 0
+                       0000 0 0 3 &mpic 10 1 0 0
+                       0000 0 0 4 &mpic 11 1 0 0
+                       >;
+       };
+};
+
+/* controller at 0x203000 */
+&pci3 {
+       compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       clock-frequency = <33333333>;
+       interrupts = <16 2 1 12>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <16 2 1 12>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 43 1 0 0
+                       0000 0 0 2 &mpic 0 1 0 0
+                       0000 0 0 3 &mpic 4 1 0 0
+                       0000 0 0 4 &mpic 8 1 0 0
+                       >;
+       };
+};
+
+&rio {
+       compatible = "fsl,srio";
+       interrupts = <16 2 1 11>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       ranges;
+
+       port1 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <1>;
+       };
+
+       port2 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               cell-index = <2>;
+       };
+};
+
+&dcsr {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,dcsr", "simple-bus";
+
+       dcsr-epu@0 {
+               compatible = "fsl,dcsr-epu";
+               interrupts = <52 2 0 0
+                             84 2 0 0
+                             85 2 0 0>;
+               reg = <0x0 0x1000>;
+       };
+       dcsr-npc {
+               compatible = "fsl,dcsr-npc";
+               reg = <0x1000 0x1000 0x1000000 0x8000>;
+       };
+       dcsr-nxc@2000 {
+               compatible = "fsl,dcsr-nxc";
+               reg = <0x2000 0x1000>;
+       };
+       dcsr-corenet {
+               compatible = "fsl,dcsr-corenet";
+               reg = <0x8000 0x1000 0xB0000 0x1000>;
+       };
+       dcsr-dpaa@9000 {
+               compatible = "fsl,p5020-dcsr-dpaa", "fsl,dcsr-dpaa";
+               reg = <0x9000 0x1000>;
+       };
+       dcsr-ocn@11000 {
+               compatible = "fsl,p5020-dcsr-ocn", "fsl,dcsr-ocn";
+               reg = <0x11000 0x1000>;
+       };
+       dcsr-ddr@12000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr1>;
+               reg = <0x12000 0x1000>;
+       };
+       dcsr-ddr@13000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr2>;
+               reg = <0x13000 0x1000>;
+       };
+       dcsr-nal@18000 {
+               compatible = "fsl,p5020-dcsr-nal", "fsl,dcsr-nal";
+               reg = <0x18000 0x1000>;
+       };
+       dcsr-rcpm@22000 {
+               compatible = "fsl,p5020-dcsr-rcpm", "fsl,dcsr-rcpm";
+               reg = <0x22000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@40000 {
+               compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu0>;
+               reg = <0x40000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@41000 {
+               compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu1>;
+               reg = <0x41000 0x1000>;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "simple-bus";
+
+       soc-sram-error {
+               compatible = "fsl,soc-sram-error";
+               interrupts = <16 2 1 29>;
+       };
+
+       corenet-law@0 {
+               compatible = "fsl,corenet-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <32>;
+       };
+
+       ddr1: memory-controller@8000 {
+               compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
+               reg = <0x8000 0x1000>;
+               interrupts = <16 2 1 23>;
+       };
+
+       ddr2: memory-controller@9000 {
+               compatible = "fsl,qoriq-memory-controller-v4.5","fsl,qoriq-memory-controller";
+               reg = <0x9000 0x1000>;
+               interrupts = <16 2 1 22>;
+       };
+
+       cpc: l3-cache-controller@10000 {
+               compatible = "fsl,p5020-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache";
+               reg = <0x10000 0x1000
+                      0x11000 0x1000>;
+               interrupts = <16 2 1 27
+                             16 2 1 26>;
+       };
+
+       corenet-cf@18000 {
+               compatible = "fsl,corenet-cf";
+               reg = <0x18000 0x1000>;
+               interrupts = <16 2 1 31>;
+               fsl,ccf-num-csdids = <32>;
+               fsl,ccf-num-snoopids = <32>;
+       };
+
+       iommu@20000 {
+               compatible = "fsl,pamu-v1.0", "fsl,pamu";
+               reg = <0x20000 0x4000>;
+               interrupts = <
+                       24 2 0 0
+                       16 2 1 30>;
+       };
+
+/include/ "qoriq-mpic.dtsi"
+
+       guts: global-utilities@e0000 {
+               compatible = "fsl,qoriq-device-config-1.0";
+               reg = <0xe0000 0xe00>;
+               fsl,has-rstcr;
+               #sleep-cells = <1>;
+               fsl,liodn-bits = <12>;
+       };
+
+       pins: global-utilities@e0e00 {
+               compatible = "fsl,qoriq-pin-control-1.0";
+               reg = <0xe0e00 0x200>;
+               #sleep-cells = <2>;
+       };
+
+       clockgen: global-utilities@e1000 {
+               compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0";
+               reg = <0xe1000 0x1000>;
+               clock-frequency = <0>;
+       };
+
+       rcpm: global-utilities@e2000 {
+               compatible = "fsl,qoriq-rcpm-1.0";
+               reg = <0xe2000 0x1000>;
+               #sleep-cells = <1>;
+       };
+
+       sfp: sfp@e8000 {
+               compatible = "fsl,p5020-sfp", "fsl,qoriq-sfp-1.0";
+               reg        = <0xe8000 0x1000>;
+       };
+
+       serdes: serdes@ea000 {
+               compatible = "fsl,p5020-serdes";
+               reg        = <0xea000 0x1000>;
+       };
+
+/include/ "qoriq-dma-0.dtsi"
+/include/ "qoriq-dma-1.dtsi"
+/include/ "qoriq-espi-0.dtsi"
+       spi@110000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "qoriq-esdhc-0.dtsi"
+       sdhc@114000 {
+               sdhci,auto-cmd12;
+       };
+
+/include/ "qoriq-i2c-0.dtsi"
+/include/ "qoriq-i2c-1.dtsi"
+/include/ "qoriq-duart-0.dtsi"
+/include/ "qoriq-duart-1.dtsi"
+/include/ "qoriq-gpio-0.dtsi"
+/include/ "qoriq-usb2-mph-0.dtsi"
+               usb0: usb@210000 {
+                       phy_type = "utmi";
+                       port0;
+               };
+
+/include/ "qoriq-usb2-dr-0.dtsi"
+               usb1: usb@211000 {
+                       dr_mode = "host";
+                       phy_type = "utmi";
+               };
+
+/include/ "qoriq-sata2-0.dtsi"
+/include/ "qoriq-sata2-1.dtsi"
+/include/ "qoriq-sec4.2-0.dtsi"
+};
diff --git a/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi b/arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi
new file mode 100644 (file)
index 0000000..ae823a4
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * P5020/P5010 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+/ {
+       compatible = "fsl,P5020";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               ccsr = &soc;
+               dcsr = &dcsr;
+
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+               pci3 = &pci3;
+               usb0 = &usb0;
+               usb1 = &usb1;
+               dma0 = &dma0;
+               dma1 = &dma1;
+               sdhc = &sdhc;
+               msi0 = &msi0;
+               msi1 = &msi1;
+               msi2 = &msi2;
+
+               crypto = &crypto;
+               sec_jr0 = &sec_jr0;
+               sec_jr1 = &sec_jr1;
+               sec_jr2 = &sec_jr2;
+               sec_jr3 = &sec_jr3;
+               rtic_a = &rtic_a;
+               rtic_b = &rtic_b;
+               rtic_c = &rtic_c;
+               rtic_d = &rtic_d;
+               sec_mon = &sec_mon;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: PowerPC,e5500@0 {
+                       device_type = "cpu";
+                       reg = <0>;
+                       next-level-cache = <&L2_0>;
+                       L2_0: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu1: PowerPC,e5500@1 {
+                       device_type = "cpu";
+                       reg = <1>;
+                       next-level-cache = <&L2_1>;
+                       L2_1: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi
new file mode 100644 (file)
index 0000000..b5b37ad
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * PQ3 DMA device tree stub [ controller @ offset 0x21000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+dma@21300 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,eloplus-dma";
+       reg = <0x21300 0x4>;
+       ranges = <0x0 0x21100 0x200>;
+       cell-index = <0>;
+       dma-channel@0 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x0 0x80>;
+               cell-index = <0>;
+               interrupts = <20 2 0 0>;
+       };
+       dma-channel@80 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x80 0x80>;
+               cell-index = <1>;
+               interrupts = <21 2 0 0>;
+       };
+       dma-channel@100 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x100 0x80>;
+               cell-index = <2>;
+               interrupts = <22 2 0 0>;
+       };
+       dma-channel@180 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x180 0x80>;
+               cell-index = <3>;
+               interrupts = <23 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi
new file mode 100644 (file)
index 0000000..28cb8a5
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * PQ3 DMA device tree stub [ controller @ offset 0xc300 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+dma@c300 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,eloplus-dma";
+       reg = <0xc300 0x4>;
+       ranges = <0x0 0xc100 0x200>;
+       cell-index = <1>;
+       dma-channel@0 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x0 0x80>;
+               cell-index = <0>;
+               interrupts = <76 2 0 0>;
+       };
+       dma-channel@80 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x80 0x80>;
+               cell-index = <1>;
+               interrupts = <77 2 0 0>;
+       };
+       dma-channel@100 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x100 0x80>;
+               cell-index = <2>;
+               interrupts = <78 2 0 0>;
+       };
+       dma-channel@180 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x180 0x80>;
+               cell-index = <3>;
+               interrupts = <79 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi
new file mode 100644 (file)
index 0000000..00fa1fd
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * PQ3 DUART device tree stub [ controller @ offset 0x4000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+serial0: serial@4500 {
+       cell-index = <0>;
+       device_type = "serial";
+       compatible = "ns16550";
+       reg = <0x4500 0x100>;
+       clock-frequency = <0>;
+       interrupts = <42 2 0 0>;
+};
+
+serial1: serial@4600 {
+       cell-index = <1>;
+       device_type = "serial";
+       compatible = "ns16550";
+       reg = <0x4600 0x100>;
+       clock-frequency = <0>;
+       interrupts = <42 2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi
new file mode 100644 (file)
index 0000000..5743433
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * PQ3 eSDHC device tree stub [ controller @ offset 0x2e000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+sdhc@2e000 {
+       compatible = "fsl,esdhc";
+       reg = <0x2e000 0x1000>;
+       interrupts = <72 0x2 0 0>;
+       /* Filled in by U-Boot */
+       clock-frequency = <0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi
new file mode 100644 (file)
index 0000000..75854b2
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * PQ3 eSPI device tree stub [ controller @ offset 0x7000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+spi@7000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,mpc8536-espi";
+       reg = <0x7000 0x1000>;
+       interrupts = <59 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi
new file mode 100644 (file)
index 0000000..a1979ae
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * PQ3 eTSEC device tree stub [ @ offsets 0x24000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ethernet@24000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       cell-index = <0>;
+       device_type = "network";
+       model = "eTSEC";
+       compatible = "gianfar";
+       reg = <0x24000 0x1000>;
+       ranges = <0x0 0x24000 0x1000>;
+       local-mac-address = [ 00 00 00 00 00 00 ];
+       interrupts = <29 2 0 0 30 2 0 0 34 2 0 0>;
+};
+
+mdio@24520 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,gianfar-mdio";
+       reg = <0x24520 0x20>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi
new file mode 100644 (file)
index 0000000..4c4fdde
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * PQ3 eTSEC device tree stub [ @ offsets 0x25000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ethernet@25000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       cell-index = <1>;
+       device_type = "network";
+       model = "eTSEC";
+       compatible = "gianfar";
+       reg = <0x25000 0x1000>;
+       ranges = <0x0 0x25000 0x1000>;
+       local-mac-address = [ 00 00 00 00 00 00 ];
+       interrupts = <35 2 0 0 36 2 0 0 40 2 0 0>;
+};
+
+mdio@25520 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,gianfar-tbi";
+       reg = <0x25520 0x20>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi
new file mode 100644 (file)
index 0000000..4b8ab43
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * PQ3 eTSEC device tree stub [ @ offsets 0x26000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ethernet@26000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       cell-index = <2>;
+       device_type = "network";
+       model = "eTSEC";
+       compatible = "gianfar";
+       reg = <0x26000 0x1000>;
+       ranges = <0x0 0x26000 0x1000>;
+       local-mac-address = [ 00 00 00 00 00 00 ];
+       interrupts = <31 2 0 0 32 2 0 0 33 2 0 0>;
+};
+
+mdio@26520 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,gianfar-tbi";
+       reg = <0x26520 0x20>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi
new file mode 100644 (file)
index 0000000..40c9137
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * PQ3 eTSEC device tree stub [ @ offsets 0x27000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ethernet@27000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       cell-index = <3>;
+       device_type = "network";
+       model = "eTSEC";
+       compatible = "gianfar";
+       reg = <0x27000 0x1000>;
+       ranges = <0x0 0x27000 0x1000>;
+       local-mac-address = [ 00 00 00 00 00 00 ];
+       interrupts = <37 2 0 0 38 2 0 0 39 2 0 0>;
+};
+
+mdio@27520 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,gianfar-tbi";
+       reg = <0x27520 0x20>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi
new file mode 100644 (file)
index 0000000..efe2ca0
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * PQ3 eTSEC Timer (IEEE 1588) device tree stub [ @ offsets 0x24e00 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ptp_clock@24e00 {
+       compatible = "fsl,etsec-ptp";
+       reg = <0x24e00 0xb0>;
+       interrupts = <68 2 0 0 69 2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
new file mode 100644 (file)
index 0000000..1382fec
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * PQ3 eTSEC2 device tree stub [ @ offsets 0x24000/0xb0000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+mdio@24000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,etsec2-mdio";
+       reg = <0x24000 0x1000 0xb0030 0x4>;
+};
+
+ethernet@b0000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "network";
+       model = "eTSEC";
+       compatible = "fsl,etsec2";
+       fsl,num_rx_queues = <0x8>;
+       fsl,num_tx_queues = <0x8>;
+       fsl,magic-packet;
+       local-mac-address = [ 00 00 00 00 00 00 ];
+
+       queue-group@b0000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0xb0000 0x1000>;
+               interrupts = <29 2 0 0 30 2 0 0 34 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
new file mode 100644 (file)
index 0000000..221cd2e
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * PQ3 eTSEC2 device tree stub [ @ offsets 0x25000/0xb1000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+mdio@25000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,etsec2-tbi";
+       reg = <0x25000 0x1000 0xb1030 0x4>;
+};
+
+ethernet@b1000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "network";
+       model = "eTSEC";
+       compatible = "fsl,etsec2";
+       fsl,num_rx_queues = <0x8>;
+       fsl,num_tx_queues = <0x8>;
+       fsl,magic-packet;
+       local-mac-address = [ 00 00 00 00 00 00 ];
+
+       queue-group@b1000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0xb1000 0x1000>;
+               interrupts = <35 2 0 0 36 2 0 0 40 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
new file mode 100644 (file)
index 0000000..61456c3
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * PQ3 eTSEC2 device tree stub [ @ offsets 0x26000/0xb2000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+mdio@26000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,etsec2-tbi";
+       reg = <0x26000 0x1000 0xb1030 0x4>;
+};
+
+ethernet@b2000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "network";
+       model = "eTSEC";
+       compatible = "fsl,etsec2";
+       fsl,num_rx_queues = <0x8>;
+       fsl,num_tx_queues = <0x8>;
+       fsl,magic-packet;
+       local-mac-address = [ 00 00 00 00 00 00 ];
+
+       queue-group@b2000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0xb2000 0x1000>;
+               interrupts = <31 2 0 0 32 2 0 0 33 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi
new file mode 100644 (file)
index 0000000..034ab8f
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb4000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&enet0_grp2 {
+       queue-group@b4000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0xb4000 0x1000>;
+               interrupts = <17 2 0 0 18 2 0 0 24 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi
new file mode 100644 (file)
index 0000000..3be9ba3
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb5000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&enet1_grp2 {
+       queue-group@b5000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0xb5000 0x1000>;
+               interrupts = <51 2 0 0 52 2 0 0 67 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi b/arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi
new file mode 100644 (file)
index 0000000..02a3345
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * PQ3 eTSEC2 Group 2 device tree stub [ @ offsets 0xb6000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&enet2_grp2 {
+       queue-group@b6000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0xb6000 0x1000>;
+               interrupts = <25 2 0 0 26 2 0 0 27 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi
new file mode 100644 (file)
index 0000000..72a3ef5
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * PQ3 GPIO device tree stub [ controller @ offset 0xf000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+gpio-controller@f000 {
+       #gpio-cells = <2>;
+       compatible = "fsl,pq3-gpio";
+       reg = <0xf000 0x100>;
+       interrupts = <47 0x2 0 0>;
+       gpio-controller;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi
new file mode 100644 (file)
index 0000000..d1dd6fb
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * PQ3 I2C device tree stub [ controller @ offset 0x3000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+i2c@3000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cell-index = <0>;
+       compatible = "fsl-i2c";
+       reg = <0x3000 0x100>;
+       interrupts = <43 2 0 0>;
+       dfsrr;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi
new file mode 100644 (file)
index 0000000..a9bd803
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * PQ3 I2C device tree stub [ controller @ offset 0x3100 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+i2c@3100 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cell-index = <1>;
+       compatible = "fsl-i2c";
+       reg = <0x3100 0x100>;
+       interrupts = <43 2 0 0>;
+       dfsrr;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi
new file mode 100644 (file)
index 0000000..8734cff
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * PQ3 MPIC Timer (Group B) device tree stub [ controller @ offset 0x42100 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+timer@42100 {
+       compatible = "fsl,mpic-global-timer";
+       reg = <0x42100 0x100 0x42300 4>;
+       interrupts = <4 0 3 0
+                     5 0 3 0
+                     6 0 3 0
+                     7 0 3 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
new file mode 100644 (file)
index 0000000..5c80460
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * PQ3 MPIC device tree stub [ controller @ offset 0x40000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+mpic: pic@40000 {
+       interrupt-controller;
+       #address-cells = <0>;
+       #interrupt-cells = <4>;
+       reg = <0x40000 0x40000>;
+       compatible = "fsl,mpic";
+       device_type = "open-pic";
+};
+
+timer@41100 {
+       compatible = "fsl,mpic-global-timer";
+       reg = <0x41100 0x100 0x41300 4>;
+       interrupts = <0 0 3 0
+                     1 0 3 0
+                     2 0 3 0
+                     3 0 3 0>;
+};
+
+msi@41600 {
+       compatible = "fsl,mpic-msi";
+       reg = <0x41600 0x80>;
+       msi-available-ranges = <0 0x100>;
+       interrupts = <
+               0xe0 0 0 0
+               0xe1 0 0 0
+               0xe2 0 0 0
+               0xe3 0 0 0
+               0xe4 0 0 0
+               0xe5 0 0 0
+               0xe6 0 0 0
+               0xe7 0 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi
new file mode 100644 (file)
index 0000000..587ca9f
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * PQ3 RIO Message Unit device tree stub [ controller @ offset 0xd3000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+rmu: rmu@d3000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,srio-rmu";
+       reg = <0xd3000 0x500>;
+       ranges = <0x0 0xd3000 0x500>;
+
+       message-unit@0 {
+               compatible = "fsl,srio-msg-unit";
+               reg = <0x0 0x100>;
+               interrupts = <
+                       53 2 0 0 /* msg1_tx_irq */
+                       54 2 0 0>;/* msg1_rx_irq */
+       };
+       message-unit@100 {
+               compatible = "fsl,srio-msg-unit";
+               reg = <0x100 0x100>;
+               interrupts = <
+                       55 2 0 0  /* msg2_tx_irq */
+                       56 2 0 0>;/* msg2_rx_irq */
+       };
+       doorbell-unit@400 {
+               compatible = "fsl,srio-dbell-unit";
+               reg = <0x400 0x80>;
+               interrupts = <
+                       49 2 0 0  /* bell_outb_irq */
+                       50 2 0 0>;/* bell_inb_irq */
+       };
+       port-write-unit@4e0 {
+               compatible = "fsl,srio-port-write-unit";
+               reg = <0x4e0 0x20>;
+               interrupts = <48 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi
new file mode 100644 (file)
index 0000000..3c28dd0
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * PQ3 SATAv2 device tree stub [ controller @ offset 0x18000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+sata@18000 {
+       compatible = "fsl,pq-sata-v2";
+       reg = <0x18000 0x1000>;
+       cell-index = <1>;
+       interrupts = <74 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi
new file mode 100644 (file)
index 0000000..eefaf28
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * PQ3 SATAv2 device tree stub [ controller @ offset 0x19000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+sata@19000 {
+       compatible = "fsl,pq-sata-v2";
+       reg = <0x19000 0x1000>;
+       cell-index = <2>;
+       interrupts = <41 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi
new file mode 100644 (file)
index 0000000..02a5c7a
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * PQ3 Sec/Crypto 2.1 device tree stub [ controller @ offset 0x30000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+crypto@30000 {
+       compatible = "fsl,sec2.1", "fsl,sec2.0";
+       reg = <0x30000 0x10000>;
+       interrupts = <45 2 0 0>;
+       fsl,num-channels = <4>;
+       fsl,channel-fifo-len = <24>;
+       fsl,exec-units-mask = <0xfe>;
+       fsl,descriptor-types-mask = <0x12b0ebf>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi
new file mode 100644 (file)
index 0000000..bba1ba4
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * PQ3 Sec/Crypto 3.0 device tree stub [ controller @ offset 0x30000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+crypto@30000 {
+       compatible = "fsl,sec3.0",
+                    "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1",
+                    "fsl,sec2.0";
+       reg = <0x30000 0x10000>;
+       interrupts = <45 2 0 0 58 2 0 0>;
+       fsl,num-channels = <4>;
+       fsl,channel-fifo-len = <24>;
+       fsl,exec-units-mask = <0x9fe>;
+       fsl,descriptor-types-mask = <0x3ab0ebf>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi
new file mode 100644 (file)
index 0000000..8f0a566
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * PQ3 Sec/Crypto 3.1 device tree stub [ controller @ offset 0x30000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+crypto@30000 {
+       compatible = "fsl,sec3.1", "fsl,sec3.0",
+                    "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1",
+                    "fsl,sec2.0";
+       reg = <0x30000 0x10000>;
+       interrupts = <45 2 0 0 58 2 0 0>;
+       fsl,num-channels = <4>;
+       fsl,channel-fifo-len = <24>;
+       fsl,exec-units-mask = <0xbfe>;
+       fsl,descriptor-types-mask = <0x3ab0ebf>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi
new file mode 100644 (file)
index 0000000..c227f27
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * PQ3 Sec/Crypto 3.3 device tree stub [ controller @ offset 0x30000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+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 = <45 2 0 0 58 2 0 0>;
+       fsl,num-channels = <4>;
+       fsl,channel-fifo-len = <24>;
+       fsl,exec-units-mask = <0x97c>;
+       fsl,descriptor-types-mask = <0x3a30abf>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi
new file mode 100644 (file)
index 0000000..bf957a7
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * PQ3 Sec/Crypto 4.4 device tree stub [ controller @ offset 0x30000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+crypto@30000 {
+       compatible = "fsl,sec4.4", "fsl,sec4.0";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       reg              = <0x30000 0x10000>;
+       interrupts       = <58 2 0 0>;
+
+       sec_jr0: jr@1000 {
+               compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
+               reg        = <0x1000 0x1000>;
+               interrupts       = <45 2 0 0>;
+       };
+
+       sec_jr1: jr@2000 {
+               compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
+               reg        = <0x2000 0x1000>;
+               interrupts       = <45 2 0 0>;
+       };
+
+       sec_jr2: jr@3000 {
+               compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
+               reg        = <0x3000 0x1000>;
+               interrupts       = <45 2 0 0>;
+       };
+
+       sec_jr3: jr@4000 {
+               compatible = "fsl,sec4.4-job-ring", "fsl,sec4.0-job-ring";
+               reg        = <0x4000 0x1000>;
+               interrupts       = <45 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi
new file mode 100644 (file)
index 0000000..185ab9d
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * PQ3 USB DR device tree stub [ controller @ offset 0x22000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+usb@22000 {
+       compatible = "fsl-usb2-dr";
+       reg = <0x22000 0x1000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       interrupts = <28 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi b/arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi
new file mode 100644 (file)
index 0000000..fe24cd6
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * PQ3 USB DR device tree stub [ controller @ offset 0x23000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+usb@23000 {
+       compatible = "fsl-usb2-dr";
+       reg = <0x23000 0x1000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       interrupts = <46 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi
new file mode 100644 (file)
index 0000000..1aebf3e
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * QorIQ DMA device tree stub [ controller @ offset 0x100000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+dma0: dma@100300 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,eloplus-dma";
+       reg = <0x100300 0x4>;
+       ranges = <0x0 0x100100 0x200>;
+       cell-index = <0>;
+       dma-channel@0 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x0 0x80>;
+               cell-index = <0>;
+               interrupts = <28 2 0 0>;
+       };
+       dma-channel@80 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x80 0x80>;
+               cell-index = <1>;
+               interrupts = <29 2 0 0>;
+       };
+       dma-channel@100 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x100 0x80>;
+               cell-index = <2>;
+               interrupts = <30 2 0 0>;
+       };
+       dma-channel@180 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x180 0x80>;
+               cell-index = <3>;
+               interrupts = <31 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi
new file mode 100644 (file)
index 0000000..ecf5e18
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * QorIQ DMA device tree stub [ controller @ offset 0x101000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+dma1: dma@101300 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,eloplus-dma";
+       reg = <0x101300 0x4>;
+       ranges = <0x0 0x101100 0x200>;
+       cell-index = <1>;
+       dma-channel@0 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x0 0x80>;
+               cell-index = <0>;
+               interrupts = <32 2 0 0>;
+       };
+       dma-channel@80 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x80 0x80>;
+               cell-index = <1>;
+               interrupts = <33 2 0 0>;
+       };
+       dma-channel@100 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x100 0x80>;
+               cell-index = <2>;
+               interrupts = <34 2 0 0>;
+       };
+       dma-channel@180 {
+               compatible = "fsl,eloplus-dma-channel";
+               reg = <0x180 0x80>;
+               cell-index = <3>;
+               interrupts = <35 2 0 0>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi
new file mode 100644 (file)
index 0000000..66271e3
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * QorIQ DUART device tree stub [ controller @ offset 0x11c000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+serial0: serial@11c500 {
+       cell-index = <0>;
+       device_type = "serial";
+       compatible = "ns16550";
+       reg = <0x11c500 0x100>;
+       clock-frequency = <0>;
+       interrupts = <36 2 0 0>;
+};
+
+serial1: serial@11c600 {
+       cell-index = <1>;
+       device_type = "serial";
+       compatible = "ns16550";
+       reg = <0x11c600 0x100>;
+       clock-frequency = <0>;
+       interrupts = <36 2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi
new file mode 100644 (file)
index 0000000..cf1a0ac
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * QorIQ DUART device tree stub [ controller @ offset 0x11d000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+serial2: serial@11d500 {
+       cell-index = <2>;
+       device_type = "serial";
+       compatible = "ns16550";
+       reg = <0x11d500 0x100>;
+       clock-frequency = <0>;
+       interrupts = <37 2 0 0>;
+};
+
+serial3: serial@11d600 {
+       cell-index = <3>;
+       device_type = "serial";
+       compatible = "ns16550";
+       reg = <0x11d600 0x100>;
+       clock-frequency = <0>;
+       interrupts = <37 2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi
new file mode 100644 (file)
index 0000000..20835ae
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * QorIQ eSDHC device tree stub [ controller @ offset 0x114000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+sdhc: sdhc@114000 {
+       compatible = "fsl,esdhc";
+       reg = <0x114000 0x1000>;
+       interrupts = <48 2 0 0>;
+       clock-frequency = <0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi
new file mode 100644 (file)
index 0000000..6db0697
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * QorIQ eSPI device tree stub [ controller @ offset 0x110000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+spi@110000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       compatible = "fsl,mpc8536-espi";
+       reg = <0x110000 0x1000>;
+       interrupts = <53 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi
new file mode 100644 (file)
index 0000000..cf714f5
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * QorIQ GPIO device tree stub [ controller @ offset 0x130000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+gpio0: gpio@130000 {
+       compatible = "fsl,qoriq-gpio";
+       reg = <0x130000 0x1000>;
+       interrupts = <55 2 0 0>;
+       #gpio-cells = <2>;
+       gpio-controller;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi
new file mode 100644 (file)
index 0000000..5f9bf7d
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * QorIQ I2C device tree stub [ controller @ offset 0x118000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+i2c@118000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cell-index = <0>;
+       compatible = "fsl-i2c";
+       reg = <0x118000 0x100>;
+       interrupts = <38 2 0 0>;
+       dfsrr;
+};
+
+i2c@118100 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cell-index = <1>;
+       compatible = "fsl-i2c";
+       reg = <0x118100 0x100>;
+       interrupts = <38 2 0 0>;
+       dfsrr;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi
new file mode 100644 (file)
index 0000000..7989bf5
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * QorIQ I2C device tree stub [ controller @ offset 0x119000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+i2c@119000 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cell-index = <2>;
+       compatible = "fsl-i2c";
+       reg = <0x119000 0x100>;
+       interrupts = <39 2 0 0>;
+       dfsrr;
+};
+
+i2c@119100 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cell-index = <3>;
+       compatible = "fsl-i2c";
+       reg = <0x119100 0x100>;
+       interrupts = <39 2 0 0>;
+       dfsrr;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi
new file mode 100644 (file)
index 0000000..b9bada6
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * QorIQ MPIC device tree stub [ controller @ offset 0x40000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+mpic: pic@40000 {
+       interrupt-controller;
+       #address-cells = <0>;
+       #interrupt-cells = <4>;
+       reg = <0x40000 0x40000>;
+       compatible = "fsl,mpic", "chrp,open-pic";
+       device_type = "open-pic";
+       clock-frequency = <0x0>;
+};
+
+timer@41100 {
+       compatible = "fsl,mpic-global-timer";
+       reg = <0x41100 0x100 0x41300 4>;
+       interrupts = <0 0 3 0
+                     1 0 3 0
+                     2 0 3 0
+                     3 0 3 0>;
+};
+
+msi0: msi@41600 {
+       compatible = "fsl,mpic-msi";
+       reg = <0x41600 0x200>;
+       msi-available-ranges = <0 0x100>;
+       interrupts = <
+               0xe0 0 0 0
+               0xe1 0 0 0
+               0xe2 0 0 0
+               0xe3 0 0 0
+               0xe4 0 0 0
+               0xe5 0 0 0
+               0xe6 0 0 0
+               0xe7 0 0 0>;
+};
+
+msi1: msi@41800 {
+       compatible = "fsl,mpic-msi";
+       reg = <0x41800 0x200>;
+       msi-available-ranges = <0 0x100>;
+       interrupts = <
+               0xe8 0 0 0
+               0xe9 0 0 0
+               0xea 0 0 0
+               0xeb 0 0 0
+               0xec 0 0 0
+               0xed 0 0 0
+               0xee 0 0 0
+               0xef 0 0 0>;
+};
+
+msi2: msi@41a00 {
+       compatible = "fsl,mpic-msi";
+       reg = <0x41a00 0x200>;
+       msi-available-ranges = <0 0x100>;
+       interrupts = <
+               0xf0 0 0 0
+               0xf1 0 0 0
+               0xf2 0 0 0
+               0xf3 0 0 0
+               0xf4 0 0 0
+               0xf5 0 0 0
+               0xf6 0 0 0
+               0xf7 0 0 0>;
+};
+
+timer@42100 {
+       compatible = "fsl,mpic-global-timer";
+       reg = <0x42100 0x100 0x42300 4>;
+       interrupts = <4 0 3 0
+                     5 0 3 0
+                     6 0 3 0
+                     7 0 3 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi
new file mode 100644 (file)
index 0000000..ca7fec7
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * QorIQ RIO Message Unit device tree stub [ controller @ offset 0xd3000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+rmu: rmu@d3000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,srio-rmu";
+       reg = <0xd3000 0x500>;
+       ranges = <0x0 0xd3000 0x500>;
+
+       message-unit@0 {
+               compatible = "fsl,srio-msg-unit";
+               reg = <0x0 0x100>;
+               interrupts = <
+                       60 2 0 0  /* msg1_tx_irq */
+                       61 2 0 0>;/* msg1_rx_irq */
+       };
+       message-unit@100 {
+               compatible = "fsl,srio-msg-unit";
+               reg = <0x100 0x100>;
+               interrupts = <
+                       62 2 0 0  /* msg2_tx_irq */
+                       63 2 0 0>;/* msg2_rx_irq */
+       };
+       doorbell-unit@400 {
+               compatible = "fsl,srio-dbell-unit";
+               reg = <0x400 0x80>;
+               interrupts = <
+                       56 2 0 0  /* bell_outb_irq */
+                       57 2 0 0>;/* bell_inb_irq */
+       };
+       port-write-unit@4e0 {
+               compatible = "fsl,srio-port-write-unit";
+               reg = <0x4e0 0x20>;
+               interrupts = <16 2 1 11>;
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi
new file mode 100644 (file)
index 0000000..b642047
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * QorIQ SATAv2 device tree stub [ controller @ offset 0x220000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+sata@220000 {
+       compatible = "fsl,pq-sata-v2";
+       reg = <0x220000 0x1000>;
+       interrupts = <68 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi
new file mode 100644 (file)
index 0000000..c573702
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * QorIQ SATAv2 device tree stub [ controller @ offset 0x221000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+sata@221000 {
+       compatible = "fsl,pq-sata-v2";
+       reg = <0x221000 0x1000>;
+       interrupts = <69 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi
new file mode 100644 (file)
index 0000000..0cbbac3
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * QorIQ Sec/Crypto 4.0 device tree stub [ controller @ offset 0x300000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+crypto: crypto@300000 {
+       compatible = "fsl,sec-v4.0";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       reg = <0x300000 0x10000>;
+       ranges = <0 0x300000 0x10000>;
+       interrupts = <92 2 0 0>;
+
+       sec_jr0: jr@1000 {
+               compatible = "fsl,sec-v4.0-job-ring";
+               reg = <0x1000 0x1000>;
+               interrupts = <88 2 0 0>;
+       };
+
+       sec_jr1: jr@2000 {
+               compatible = "fsl,sec-v4.0-job-ring";
+               reg = <0x2000 0x1000>;
+               interrupts = <89 2 0 0>;
+       };
+
+       sec_jr2: jr@3000 {
+               compatible = "fsl,sec-v4.0-job-ring";
+               reg = <0x3000 0x1000>;
+               interrupts = <90 2 0 0>;
+       };
+
+       sec_jr3: jr@4000 {
+               compatible = "fsl,sec-v4.0-job-ring";
+               reg = <0x4000 0x1000>;
+               interrupts = <91 2 0 0>;
+       };
+
+       rtic@6000 {
+               compatible = "fsl,sec-v4.0-rtic";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x6000 0x100>;
+               ranges = <0x0 0x6100 0xe00>;
+
+               rtic_a: rtic-a@0 {
+                       compatible = "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x00 0x20 0x100 0x80>;
+               };
+
+               rtic_b: rtic-b@20 {
+                       compatible = "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x20 0x20 0x200 0x80>;
+               };
+
+               rtic_c: rtic-c@40 {
+                       compatible = "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x40 0x20 0x300 0x80>;
+               };
+
+               rtic_d: rtic-d@60 {
+                       compatible = "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x60 0x20 0x500 0x80>;
+               };
+       };
+};
+
+sec_mon: sec_mon@314000 {
+       compatible = "fsl,sec-v4.0-mon";
+       reg = <0x314000 0x1000>;
+       interrupts = <93 2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi
new file mode 100644 (file)
index 0000000..3308986
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * QorIQ Sec/Crypto 4.1 device tree stub [ controller @ offset 0x300000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+crypto: crypto@300000 {
+       compatible = "fsl,sec-v4.1", "fsl,sec-v4.0";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       reg              = <0x300000 0x10000>;
+       ranges           = <0 0x300000 0x10000>;
+       interrupts       = <92 2 0 0>;
+
+       sec_jr0: jr@1000 {
+               compatible = "fsl,sec-v4.1-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x1000 0x1000>;
+               interrupts = <88 2 0 0>;
+       };
+
+       sec_jr1: jr@2000 {
+               compatible = "fsl,sec-v4.1-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x2000 0x1000>;
+               interrupts = <89 2 0 0>;
+       };
+
+       sec_jr2: jr@3000 {
+               compatible = "fsl,sec-v4.1-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x3000 0x1000>;
+               interrupts = <90 2 0 0>;
+       };
+
+       sec_jr3: jr@4000 {
+               compatible = "fsl,sec-v4.1-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x4000 0x1000>;
+               interrupts = <91 2 0 0>;
+       };
+
+       rtic@6000 {
+               compatible = "fsl,sec-v4.1-rtic",
+                            "fsl,sec-v4.0-rtic";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x6000 0x100>;
+               ranges = <0x0 0x6100 0xe00>;
+
+               rtic_a: rtic-a@0 {
+                       compatible = "fsl,sec-v4.1-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x00 0x20 0x100 0x80>;
+               };
+
+               rtic_b: rtic-b@20 {
+                       compatible = "fsl,sec-v4.1-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x20 0x20 0x200 0x80>;
+               };
+
+               rtic_c: rtic-c@40 {
+                       compatible = "fsl,sec-v4.1-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x40 0x20 0x300 0x80>;
+               };
+
+               rtic_d: rtic-d@60 {
+                       compatible = "fsl,sec-v4.1-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x60 0x20 0x500 0x80>;
+               };
+       };
+};
+
+sec_mon: sec_mon@314000 {
+       compatible = "fsl,sec-v4.1-mon", "fsl,sec-v4.0-mon";
+       reg = <0x314000 0x1000>;
+       interrupts = <93 2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi
new file mode 100644 (file)
index 0000000..7990e0d
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * QorIQ Sec/Crypto 4.2 device tree stub [ controller @ offset 0x300000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+crypto: crypto@300000 {
+       compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       reg              = <0x300000 0x10000>;
+       ranges           = <0 0x300000 0x10000>;
+       interrupts       = <92 2 0 0>;
+
+       sec_jr0: jr@1000 {
+               compatible = "fsl,sec-v4.2-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x1000 0x1000>;
+               interrupts = <88 2 0 0>;
+       };
+
+       sec_jr1: jr@2000 {
+               compatible = "fsl,sec-v4.2-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x2000 0x1000>;
+               interrupts = <89 2 0 0>;
+       };
+
+       sec_jr2: jr@3000 {
+               compatible = "fsl,sec-v4.2-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x3000 0x1000>;
+               interrupts = <90 2 0 0>;
+       };
+
+       sec_jr3: jr@4000 {
+               compatible = "fsl,sec-v4.2-job-ring",
+                            "fsl,sec-v4.0-job-ring";
+               reg = <0x4000 0x1000>;
+               interrupts = <91 2 0 0>;
+       };
+
+       rtic@6000 {
+               compatible = "fsl,sec-v4.2-rtic",
+                            "fsl,sec-v4.0-rtic";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x6000 0x100>;
+               ranges = <0x0 0x6100 0xe00>;
+
+               rtic_a: rtic-a@0 {
+                       compatible = "fsl,sec-v4.2-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x00 0x20 0x100 0x80>;
+               };
+
+               rtic_b: rtic-b@20 {
+                       compatible = "fsl,sec-v4.2-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x20 0x20 0x200 0x80>;
+               };
+
+               rtic_c: rtic-c@40 {
+                       compatible = "fsl,sec-v4.2-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x40 0x20 0x300 0x80>;
+               };
+
+               rtic_d: rtic-d@60 {
+                       compatible = "fsl,sec-v4.2-rtic-memory",
+                                    "fsl,sec-v4.0-rtic-memory";
+                       reg = <0x60 0x20 0x500 0x80>;
+               };
+       };
+};
+
+sec_mon: sec_mon@314000 {
+       compatible = "fsl,sec-v4.2-mon", "fsl,sec-v4.0-mon";
+       reg = <0x314000 0x1000>;
+       interrupts = <93 2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi
new file mode 100644 (file)
index 0000000..4dd6f84
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * QorIQ USB DR device tree stub [ controller @ offset 0x211000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+usb@211000 {
+       compatible = "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
+       reg = <0x211000 0x1000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       interrupts = <45 0x2 0 0>;
+};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi
new file mode 100644 (file)
index 0000000..f053835
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * QorIQ USB Host device tree stub [ controller @ offset 0x210000 ]
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+usb@210000 {
+       compatible = "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
+       reg = <0x210000 0x1000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       interrupts = <44 0x2 0 0>;
+};
index a75c10eed2690ba1d9c7084683517c9cd2a418d3..c15881574fdc1909532063569c851f17215dcc64 100644 (file)
@@ -9,24 +9,11 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8536si-pre.dtsi"
 
 / {
        model = "fsl,mpc8536ds";
        compatible = "fsl,mpc8536ds";
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-               pci3 = &pci3;
-       };
 
        cpus {
                #cpus = <1>;
                reg = <0 0 0 0>;        // Filled by U-Boot
        };
 
-       soc@ffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x0 0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8536-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8536-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 0x2>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8536-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 0x2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 0x2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 0x2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-                       rtc@68 {
-                               compatible = "dallas,ds3232";
-                               reg = <0x68>;
-                               interrupts = <0 0x1>;
-                               interrupt-parent = <&mpic>;
-                       };
-               };
-
-               spi@7000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,mpc8536-espi";
-                       reg = <0x7000 0x1000>;
-                       interrupts = <59 0x2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,espi-num-chipselects = <4>;
-
-                       flash@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "spansion,s25sl12801";
-                               reg = <0>;
-                               spi-max-frequency = <40000000>;
-                               partition@u-boot {
-                                       label = "u-boot";
-                                       reg = <0x00000000 0x00100000>;
-                                       read-only;
-                               };
-                               partition@kernel {
-                                       label = "kernel";
-                                       reg = <0x00100000 0x00500000>;
-                                       read-only;
-                               };
-                               partition@dtb {
-                                       label = "dtb";
-                                       reg = <0x00600000 0x00100000>;
-                                       read-only;
-                               };
-                               partition@fs {
-                                       label = "file system";
-                                       reg = <0x00700000 0x00900000>;
-                               };
-                       };
-                       flash@1 {
-                               compatible = "spansion,s25sl12801";
-                               reg = <1>;
-                               spi-max-frequency = <40000000>;
-                       };
-                       flash@2 {
-                               compatible = "spansion,s25sl12801";
-                               reg = <2>;
-                               spi-max-frequency = <40000000>;
-                       };
-                       flash@3 {
-                               compatible = "spansion,s25sl12801";
-                               reg = <3>;
-                               spi-max-frequency = <40000000>;
-                       };
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8536-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 4>;
-                       ranges = <0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               usb@22000 {
-                       compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x22000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <28 0x2>;
-                       phy_type = "ulpi";
-               };
-
-               usb@23000 {
-                       compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x23000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <46 0x2>;
-                       phy_type = "ulpi";
-               };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi0>;
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@0 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 0x1>;
-                                       reg = <0>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 0x1>;
-                                       reg = <1>;
-                                       device_type = "ethernet-phy";
-                               };
-                               tbi0: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet1: ethernet@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       ranges = <0x0 0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi1>;
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi1: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               usb@2b000 {
-                       compatible = "fsl,mpc8536-usb2-dr", "fsl-usb2-dr";
-                       reg = <0x2b000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <60 0x2>;
-                       dr_mode = "peripheral";
-                       phy_type = "ulpi";
-               };
-
-               sdhci@2e000 {
-                       compatible = "fsl,mpc8536-esdhc", "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x2>;
-                       interrupt-parent = <&mpic>;
-                       clock-frequency = <250000000>;
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
-                                    "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0x9fe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-               };
-
-               sata@18000 {
-                       compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
-                       reg = <0x18000 0x1000>;
-                       cell-index = <1>;
-                       interrupts = <74 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               sata@19000 {
-                       compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
-                       reg = <0x19000 0x1000>;
-                       cell-index = <2>;
-                       interrupts = <41 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,mpc8548-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-
-               mpic: pic@40000 {
-                       clock-frequency = <0>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-                       big-endian;
-               };
+       lbc: localbus@ffe05000 {
+               reg = <0 0xffe05000 0 0x1000>;
+       };
 
-               msi@41600 {
-                       compatible = "fsl,mpc8536-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
+       board_soc: soc: soc@ffe00000 {
+               ranges = <0x0 0 0xffe00000 0x100000>;
        };
 
        pci0: pci@ffe08000 {
-               compatible = "fsl,mpc8540-pci";
-               device_type = "pci";
+               reg = <0 0xffe08000 0 0x1000>;
+               ranges = <0x02000000 0 0x80000000 0 0x80000000 0 0x10000000
+                         0x01000000 0 0x00000000 0 0xffc00000 0 0x00010000>;
+               clock-frequency = <66666666>;
                interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                interrupt-map = <
 
                        /* IDSEL 0x11 J17 Slot 1 */
-                       0x8800 0 0 1 &mpic 1 1
-                       0x8800 0 0 2 &mpic 2 1
-                       0x8800 0 0 3 &mpic 3 1
-                       0x8800 0 0 4 &mpic 4 1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <24 0x2>;
-               bus-range = <0 0xff>;
-               ranges = <0x02000000 0 0x80000000 0 0x80000000 0 0x10000000
-                         0x01000000 0 0x00000000 0 0xffc00000 0 0x00010000>;
-               clock-frequency = <66666666>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe08000 0 0x1000>;
+                       0x8800 0 0 1 &mpic 1 1 0 0
+                       0x8800 0 0 2 &mpic 2 1 0 0
+                       0x8800 0 0 3 &mpic 3 1 0 0
+                       0x8800 0 0 4 &mpic 4 1 0 0>;
        };
 
        pci1: pcie@ffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xffe09000 0 0x1000>;
-               bus-range = <0 0xff>;
                ranges = <0x02000000 0 0x98000000 0 0x98000000 0 0x08000000
                          0x01000000 0 0x00000000 0 0xffc20000 0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <25 0x2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 4 1
-                       0000 0 0 2 &mpic 5 1
-                       0000 0 0 3 &mpic 6 1
-                       0000 0 0 4 &mpic 7 1
-                       >;
                pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x02000000 0 0x98000000
                                  0x02000000 0 0x98000000
                                  0 0x08000000
        };
 
        pci2: pcie@ffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xffe0a000 0 0x1000>;
-               bus-range = <0 0xff>;
                ranges = <0x02000000 0 0x90000000 0 0x90000000 0 0x08000000
                          0x01000000 0 0x00000000 0 0xffc10000 0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <26 0x2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 0 1
-                       0000 0 0 2 &mpic 1 1
-                       0000 0 0 3 &mpic 2 1
-                       0000 0 0 4 &mpic 3 1
-                       >;
                pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x02000000 0 0x90000000
                                  0x02000000 0 0x90000000
                                  0 0x08000000
        };
 
        pci3: pcie@ffe0b000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xffe0b000 0 0x1000>;
-               bus-range = <0 0xff>;
                ranges = <0x02000000 0 0xa0000000 0 0xa0000000 0 0x20000000
                          0x01000000 0 0x00000000 0 0xffc30000 0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <27 0x2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 8 1
-                       0000 0 0 2 &mpic 9 1
-                       0000 0 0 3 &mpic 10 1
-                       0000 0 0 4 &mpic 11 1
-                       >;
-
                pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x02000000 0 0xa0000000
                                  0x02000000 0 0xa0000000
                                  0 0x20000000
                };
        };
 };
+
+/include/ "fsl/mpc8536si-post.dtsi"
+/include/ "mpc8536ds.dtsi"
diff --git a/arch/powerpc/boot/dts/mpc8536ds.dtsi b/arch/powerpc/boot/dts/mpc8536ds.dtsi
new file mode 100644 (file)
index 0000000..1462e4c
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * MPC8536DS Device Tree Source stub (no addresses or top-level ranges)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&board_soc {
+       i2c@3100 {
+               rtc@68 {
+                       compatible = "dallas,ds3232";
+                       reg = <0x68>;
+                       interrupts = <0 0x1 0 0>;
+               };
+       };
+
+       spi@7000 {
+               flash@0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "spansion,s25sl12801";
+                       reg = <0>;
+                       spi-max-frequency = <40000000>;
+                       partition@u-boot {
+                               label = "u-boot";
+                               reg = <0x00000000 0x00100000>;
+                               read-only;
+                       };
+                       partition@kernel {
+                               label = "kernel";
+                               reg = <0x00100000 0x00500000>;
+                               read-only;
+                       };
+                       partition@dtb {
+                               label = "dtb";
+                               reg = <0x00600000 0x00100000>;
+                               read-only;
+                       };
+                       partition@fs {
+                               label = "file system";
+                               reg = <0x00700000 0x00900000>;
+                       };
+               };
+               flash@1 {
+                       compatible = "spansion,s25sl12801";
+                       reg = <1>;
+                       spi-max-frequency = <40000000>;
+               };
+               flash@2 {
+                       compatible = "spansion,s25sl12801";
+                       reg = <2>;
+                       spi-max-frequency = <40000000>;
+               };
+               flash@3 {
+                       compatible = "spansion,s25sl12801";
+                       reg = <3>;
+                       spi-max-frequency = <40000000>;
+               };
+       };
+
+       usb@22000 {
+               phy_type = "ulpi";
+       };
+
+       usb@23000 {
+               phy_type = "ulpi";
+       };
+
+       enet0: ethernet@24000 {
+               tbi-handle = <&tbi0>;
+               phy-handle = <&phy1>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       mdio@24520 {
+               phy0: ethernet-phy@0 {
+                       interrupts = <10 0x1 0 0>;
+                       reg = <0>;
+                       device_type = "ethernet-phy";
+               };
+               phy1: ethernet-phy@1 {
+                       interrupts = <10 0x1 0 0>;
+                       reg = <1>;
+                       device_type = "ethernet-phy";
+               };
+               tbi0: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       enet2: ethernet@26000 {
+               tbi-handle = <&tbi1>;
+               phy-handle = <&phy0>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       mdio@26520 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "fsl,gianfar-tbi";
+               reg = <0x26520 0x20>;
+
+               tbi1: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       usb@2b000 {
+               dr_mode = "peripheral";
+               phy_type = "ulpi";
+       };
+};
index d95b26021e625edcce2178df75ff5a1372a08908..8f4b929b1d1d8cdc24dc6aacca3e2b903280759e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * MPC8536 DS Device Tree Source
+ * MPC8536DS Device Tree Source (36-bit address map)
  *
  * Copyright 2008-2009 Freescale Semiconductor, Inc.
  *
@@ -9,24 +9,11 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8536si-pre.dtsi"
 
 / {
        model = "fsl,mpc8536ds";
        compatible = "fsl,mpc8536ds";
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-               pci3 = &pci3;
-       };
 
        cpus {
                #cpus = <1>;
                reg = <0 0 0 0>;        // Filled by U-Boot
        };
 
-       soc@fffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x0 0xf 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8536-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8536-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 0x2>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8536-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 0x2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 0x2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 0x2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-                       rtc@68 {
-                               compatible = "dallas,ds3232";
-                               reg = <0x68>;
-                               interrupts = <0 0x1>;
-                               interrupt-parent = <&mpic>;
-                       };
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8536-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 4>;
-                       ranges = <0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8536-dma-channel",
-                                            "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               usb@22000 {
-                       compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x22000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <28 0x2>;
-                       phy_type = "ulpi";
-               };
-
-               usb@23000 {
-                       compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x23000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <46 0x2>;
-                       phy_type = "ulpi";
-               };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi0>;
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@0 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 0x1>;
-                                       reg = <0>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 0x1>;
-                                       reg = <1>;
-                                       device_type = "ethernet-phy";
-                               };
-                               tbi0: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet1: ethernet@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       ranges = <0x0 0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi1>;
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi1: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               usb@2b000 {
-                       compatible = "fsl,mpc8536-usb2-dr", "fsl-usb2-dr";
-                       reg = <0x2b000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <60 0x2>;
-                       dr_mode = "peripheral";
-                       phy_type = "ulpi";
-               };
-
-               sdhci@2e000 {
-                       compatible = "fsl,mpc8536-esdhc", "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x2>;
-                       interrupt-parent = <&mpic>;
-                       clock-frequency = <250000000>;
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
-                                    "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0x9fe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-               };
-
-               sata@18000 {
-                       compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
-                       reg = <0x18000 0x1000>;
-                       cell-index = <1>;
-                       interrupts = <74 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               sata@19000 {
-                       compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
-                       reg = <0x19000 0x1000>;
-                       cell-index = <2>;
-                       interrupts = <41 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,mpc8548-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-
-               mpic: pic@40000 {
-                       clock-frequency = <0>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-                       big-endian;
-               };
+       lbc: localbus@ffe05000 {
+               reg = <0 0xffe05000 0 0x1000>;
+       };
 
-               msi@41600 {
-                       compatible = "fsl,mpc8536-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
+       board_soc: soc: soc@fffe00000 {
+               ranges = <0x0 0xf 0xffe00000 0x100000>;
        };
 
-       pci0: pci@fffe08000 {
-               compatible = "fsl,mpc8540-pci";
-               device_type = "pci";
+       pci0: pci@ffe08000 {
+               reg = <0xf 0xffe08000 0 0x1000>;
+               ranges = <0x02000000 0 0xf0000000 0xc 0x00000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xffc00000 0 0x00010000>;
+               clock-frequency = <66666666>;
                interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                interrupt-map = <
 
                        /* IDSEL 0x11 J17 Slot 1 */
-                       0x8800 0 0 1 &mpic 1 1
-                       0x8800 0 0 2 &mpic 2 1
-                       0x8800 0 0 3 &mpic 3 1
-                       0x8800 0 0 4 &mpic 4 1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <24 0x2>;
-               bus-range = <0 0xff>;
-               ranges = <0x02000000 0 0xf0000000 0xc 0x00000000 0 0x10000000
-                         0x01000000 0 0x00000000 0xf 0xffc00000 0 0x00010000>;
-               clock-frequency = <66666666>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xf 0xffe08000 0 0x1000>;
+                       0x8800 0 0 1 &mpic 1 1 0 0
+                       0x8800 0 0 2 &mpic 2 1 0 0
+                       0x8800 0 0 3 &mpic 3 1 0 0
+                       0x8800 0 0 4 &mpic 4 1 0 0>;
        };
 
-       pci1: pcie@fffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
+       pci1: pcie@ffe09000 {
                reg = <0xf 0xffe09000 0 0x1000>;
-               bus-range = <0 0xff>;
                ranges = <0x02000000 0 0xf8000000 0xc 0x18000000 0 0x08000000
                          0x01000000 0 0x00000000 0xf 0xffc20000 0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <25 0x2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 4 1
-                       0000 0 0 2 &mpic 5 1
-                       0000 0 0 3 &mpic 6 1
-                       0000 0 0 4 &mpic 7 1
-                       >;
                pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x02000000 0 0xf8000000
                                  0x02000000 0 0xf8000000
                                  0 0x08000000
        };
 
        pci2: pcie@fffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0xf 0xffe0a000 0 0x1000>;
-               bus-range = <0 0xff>;
                ranges = <0x02000000 0 0xf8000000 0xc 0x10000000 0 0x08000000
                          0x01000000 0 0x00000000 0xf 0xffc10000 0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <26 0x2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 0 1
-                       0000 0 0 2 &mpic 1 1
-                       0000 0 0 3 &mpic 2 1
-                       0000 0 0 4 &mpic 3 1
-                       >;
                pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x02000000 0 0xf8000000
                                  0x02000000 0 0xf8000000
                                  0 0x08000000
        };
 
        pci3: pcie@fffe0b000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0xf 0xffe0b000 0 0x1000>;
-               bus-range = <0 0xff>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xffc30000 0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <27 0x2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 8 1
-                       0000 0 0 2 &mpic 9 1
-                       0000 0 0 3 &mpic 10 1
-                       0000 0 0 4 &mpic 11 1
-                       >;
-
                pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                                  0 0x20000000
                };
        };
 };
+
+/include/ "fsl/mpc8536si-post.dtsi"
+/include/ "mpc8536ds.dtsi"
index d793968743c9531e8157cc8cfabfd0eae7be9969..e934987e882b89bbc5db0be268ba32792e981cad 100644 (file)
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8544si-pre.dtsi"
+
 / {
        model = "MPC8544DS";
        compatible = "MPC8544DS", "MPC85xxDS";
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-               pci3 = &pci3;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,8544@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
-               };
-       };
 
        memory {
                device_type = "memory";
-               reg = <0x0 0x0>;        // Filled by U-Boot
+               reg = <0 0 0 0>;        // Filled by U-Boot
        };
 
-       soc8544@e0000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-
-               ranges = <0x0 0xe0000000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <10>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8544-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8544-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8544-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x40000>; // L2, 256K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8544-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8544-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8544-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8544-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8544-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "TSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-                       phy-handle = <&phy0>;
-                       tbi-handle = <&tbi0>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@0 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x0>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x1>;
-                                       device_type = "ethernet-phy";
-                               };
-
-                               tbi0: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet1: ethernet@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "TSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       ranges = <0x0 0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
-                       phy-handle = <&phy1>;
-                       tbi-handle = <&tbi1>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi1: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,mpc8548-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0xfe>;
-                       fsl,descriptor-types-mask = <0x12b0ebf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
+       lbc: localbus@e0005000 {
+               reg = <0 0xe0005000 0 0x1000>;
+       };
 
-               msi@41600 {
-                       compatible = "fsl,mpc8544-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
+       board_soc: soc: soc8544@e0000000 {
+               ranges = <0x0 0x0 0xe0000000 0x100000>;
        };
 
        pci0: pci@e0008000 {
-               compatible = "fsl,mpc8540-pci";
-               device_type = "pci";
+               reg = <0 0xe0008000 0 0x1000>;
+               ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0 0xe1000000 0x0 0x10000>;
+               clock-frequency = <66666666>;
                interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                interrupt-map = <
 
                        /* IDSEL 0x11 J17 Slot 1 */
-                       0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8800 0x0 0x0 0x4 &mpic 0x1 0x1
+                       0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
 
                        /* IDSEL 0x12 J16 Slot 2 */
 
-                       0x9000 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9000 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0x9000 0x0 0x0 0x4 &mpic 0x1 0x1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <24 2>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000
-                         0x1000000 0x0 0x0 0xe1000000 0x0 0x10000>;
-               clock-frequency = <66666666>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe0008000 0x1000>;
+                       0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0x9000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0>;
        };
 
        pci1: pcie@e0009000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe0009000 0x1000>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
-                         0x1000000 0x0 0x0 0xe1010000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <25 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
+               reg = <0x0 0xe0009000 0x0 0x1000>;
+               ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0 0xe1010000 0x0 0x10000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0x80000000
                                  0x2000000 0x0 0x80000000
                                  0x0 0x20000000
        };
 
        pci2: pcie@e000a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe000a000 0x1000>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
-                         0x1000000 0x0 0x0 0xe1020000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
+               reg = <0x0 0xe000a000 0x0 0x1000>;
+               ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x10000000
+                         0x1000000 0x0 0x00000000 0 0xe1020000 0x0 0x10000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x10000000
                };
        };
 
-       pci3: pcie@e000b000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe000b000 0x1000>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xb0000000 0xb0000000 0x0 0x100000
-                         0x1000000 0x0 0x0 0xb0100000 0x0 0x100000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <27 2>;
-               interrupt-map-mask = <0xff00 0x0 0x0 0x1>;
-               interrupt-map = <
-                       // IDSEL 0x1c  USB
-                       0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
-                       0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
-                       0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
-                       0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
-
-                       // IDSEL 0x1d  Audio
-                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
-
-                       // IDSEL 0x1e Legacy
-                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
-                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
-
-                       // IDSEL 0x1f IDE/SATA
-                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
-                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
-               >;
-
+       board_pci3: pci3: pcie@e000b000 {
+               reg = <0x0 0xe000b000 0x0 0x1000>;
+               ranges = <0x2000000 0x0 0xb0000000 0 0xb0000000 0x0 0x100000
+                         0x1000000 0x0 0x00000000 0 0xb0100000 0x0 0x100000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xb0000000
                                  0x2000000 0x0 0xb0000000
                                  0x0 0x100000
                                  0x1000000 0x0 0x0
                                  0x1000000 0x0 0x0
                                  0x0 0x100000>;
-
-                       uli1575@0 {
-                               reg = <0x0 0x0 0x0 0x0 0x0>;
-                               #size-cells = <2>;
-                               #address-cells = <3>;
-                               ranges = <0x2000000 0x0 0xb0000000
-                                         0x2000000 0x0 0xb0000000
-                                         0x0 0x100000
-
-                                         0x1000000 0x0 0x0
-                                         0x1000000 0x0 0x0
-                                         0x0 0x100000>;
-                               isa@1e {
-                                       device_type = "isa";
-                                       #interrupt-cells = <2>;
-                                       #size-cells = <1>;
-                                       #address-cells = <2>;
-                                       reg = <0xf000 0x0 0x0 0x0 0x0>;
-                                       ranges = <0x1 0x0
-                                                 0x1000000 0x0 0x0
-                                                 0x1000>;
-                                       interrupt-parent = <&i8259>;
-
-                                       i8259: interrupt-controller@20 {
-                                               reg = <0x1 0x20 0x2
-                                                      0x1 0xa0 0x2
-                                                      0x1 0x4d0 0x2>;
-                                               interrupt-controller;
-                                               device_type = "interrupt-controller";
-                                               #address-cells = <0>;
-                                               #interrupt-cells = <2>;
-                                               compatible = "chrp,iic";
-                                               interrupts = <9 2>;
-                                               interrupt-parent = <&mpic>;
-                                       };
-
-                                       i8042@60 {
-                                               #size-cells = <0>;
-                                               #address-cells = <1>;
-                                               reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
-                                               interrupts = <1 3 12 3>;
-                                               interrupt-parent = <&i8259>;
-
-                                               keyboard@0 {
-                                                       reg = <0x0>;
-                                                       compatible = "pnpPNP,303";
-                                               };
-
-                                               mouse@1 {
-                                                       reg = <0x1>;
-                                                       compatible = "pnpPNP,f03";
-                                               };
-                                       };
-
-                                       rtc@70 {
-                                               compatible = "pnpPNP,b00";
-                                               reg = <0x1 0x70 0x2>;
-                                       };
-
-                                       gpio@400 {
-                                               reg = <0x1 0x400 0x80>;
-                                       };
-                               };
-                       };
                };
        };
 };
+
+/*
+ * mpc8544ds.dtsi must be last to ensure board_pci3 overrides pci3 settings
+ * for interrupt-map & interrupt-map-mask
+ */
+
+/include/ "fsl/mpc8544si-post.dtsi"
+/include/ "mpc8544ds.dtsi"
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dtsi b/arch/powerpc/boot/dts/mpc8544ds.dtsi
new file mode 100644 (file)
index 0000000..270f64b
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * MPC8544DS Device Tree Source stub (no addresses or top-level ranges)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&board_soc {
+       enet0: ethernet@24000 {
+               phy-handle = <&phy0>;
+               tbi-handle = <&tbi0>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       mdio@24520 {
+               phy0: ethernet-phy@0 {
+                       interrupts = <10 1 0 0>;
+                       reg = <0x0>;
+                       device_type = "ethernet-phy";
+               };
+               phy1: ethernet-phy@1 {
+                       interrupts = <10 1 0 0>;
+                       reg = <0x1>;
+                       device_type = "ethernet-phy";
+               };
+
+               tbi0: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       enet2: ethernet@26000 {
+               phy-handle = <&phy1>;
+               tbi-handle = <&tbi1>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       mdio@26520 {
+               tbi1: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+};
+
+&board_pci3 {
+       pcie@0 {
+               interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
+               interrupt-map = <
+                       // IDSEL 0x1c  USB
+                       0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
+                       0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
+                       0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
+                       0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
+
+                       // IDSEL 0x1d  Audio
+                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
+
+                       // IDSEL 0x1e Legacy
+                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
+                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
+
+                       // IDSEL 0x1f IDE/SATA
+                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
+                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
+                       >;
+
+
+               uli1575@0 {
+                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                       #size-cells = <2>;
+                       #address-cells = <3>;
+                       ranges = <0x2000000 0x0 0xb0000000
+                                 0x2000000 0x0 0xb0000000
+                                 0x0 0x100000
+
+                                 0x1000000 0x0 0x0
+                                 0x1000000 0x0 0x0
+                                 0x0 0x100000>;
+                       isa@1e {
+                               device_type = "isa";
+                               #interrupt-cells = <2>;
+                               #size-cells = <1>;
+                               #address-cells = <2>;
+                               reg = <0xf000 0x0 0x0 0x0 0x0>;
+                               ranges = <0x1 0x0 0x1000000 0x0 0x0
+                                         0x1000>;
+                               interrupt-parent = <&i8259>;
+
+                               i8259: interrupt-controller@20 {
+                                       reg = <0x1 0x20 0x2
+                                              0x1 0xa0 0x2
+                                              0x1 0x4d0 0x2>;
+                                       interrupt-controller;
+                                       device_type = "interrupt-controller";
+                                       #address-cells = <0>;
+                                       #interrupt-cells = <2>;
+                                       compatible = "chrp,iic";
+                                       interrupts = <9 2 0 0>;
+                                       interrupt-parent = <&mpic>;
+                               };
+
+                               i8042@60 {
+                                       #size-cells = <0>;
+                                       #address-cells = <1>;
+                                       reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
+                                       interrupts = <1 3 12 3>;
+                                       interrupt-parent =
+                                               <&i8259>;
+
+                                       keyboard@0 {
+                                               reg = <0x0>;
+                                               compatible = "pnpPNP,303";
+                                       };
+
+                                       mouse@1 {
+                                               reg = <0x1>;
+                                               compatible = "pnpPNP,f03";
+                                       };
+                               };
+
+                               rtc@70 {
+                                       compatible = "pnpPNP,b00";
+                                       reg = <0x1 0x70 0x2>;
+                               };
+
+                               gpio@400 {
+                                       reg = <0x1 0x400 0x80>;
+                               };
+                       };
+               };
+       };
+};
index a17a5572fb7317eaa94e3bc37b44fac603a7e359..07b8dae0f46e5366f684e871dc3e97334901dc90 100644 (file)
@@ -9,13 +9,11 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8548si-pre.dtsi"
 
 / {
        model = "MPC8548CDS";
        compatible = "MPC8548CDS", "MPC85xxCDS";
-       #address-cells = <1>;
-       #size-cells = <1>;
 
        aliases {
                ethernet0 = &enet0;
                pci2 = &pci2;
        };
 
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,8548@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;       //  33 MHz, from uboot
-                       bus-frequency = <0>;    // 166 MHz
-                       clock-frequency = <0>;  // 825 MHz, from uboot
-                       next-level-cache = <&L2>;
-               };
-       };
-
        memory {
                device_type = "memory";
-               reg = <0x0 0x8000000>;  // 128M at 0x0
+               reg = <0 0 0x0 0x8000000>;      // 128M at 0x0
        };
 
-       soc8548@e0000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x0 0xe0000000 0x100000>;
-               bus-frequency = <0>;
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <10>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8548-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8548-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
+       lbc: localbus@e0005000 {
+               reg = <0 0xe0005000 0 0x1000>;
+       };
 
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8548-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x80000>; // L2, 512K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
+       soc: soc8548@e0000000 {
+               ranges = <0 0x0 0xe0000000 0x100000>;
 
                i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-
                        eeprom@50 {
                                compatible = "atmel,24c64";
                                reg = <0x50>;
                };
 
                i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-
                        eeprom@50 {
                                compatible = "atmel,24c64";
                                reg = <0x50>;
                        };
                };
 
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8548-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8548-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8548-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8548-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
                enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
                        tbi-handle = <&tbi0>;
                        phy-handle = <&phy0>;
+               };
 
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@0 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <5 1>;
-                                       reg = <0x0>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <5 1>;
-                                       reg = <0x1>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy2: ethernet-phy@2 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <5 1>;
-                                       reg = <0x2>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy3: ethernet-phy@3 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <5 1>;
-                                       reg = <0x3>;
-                                       device_type = "ethernet-phy";
-                               };
-                               tbi0: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
+               mdio@24520 {
+                       phy0: ethernet-phy@0 {
+                               interrupts = <5 1 0 0>;
+                               reg = <0x0>;
+                               device_type = "ethernet-phy";
+                       };
+                       phy1: ethernet-phy@1 {
+                               interrupts = <5 1 0 0>;
+                               reg = <0x1>;
+                               device_type = "ethernet-phy";
+                       };
+                       phy2: ethernet-phy@2 {
+                               interrupts = <5 1 0 0>;
+                               reg = <0x2>;
+                               device_type = "ethernet-phy";
+                       };
+                       phy3: ethernet-phy@3 {
+                               interrupts = <5 1 0 0>;
+                               reg = <0x3>;
+                               device_type = "ethernet-phy";
+                       };
+                       tbi0: tbi-phy@11 {
+                               reg = <0x11>;
+                               device_type = "tbi-phy";
                        };
                };
 
                enet1: ethernet@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x25000 0x1000>;
-                       ranges = <0x0 0x25000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <35 2 36 2 40 2>;
-                       interrupt-parent = <&mpic>;
                        tbi-handle = <&tbi1>;
                        phy-handle = <&phy1>;
+               };
 
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi1: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
+               mdio@25520 {
+                       tbi1: tbi-phy@11 {
+                               reg = <0x11>;
+                               device_type = "tbi-phy";
                        };
                };
 
                enet2: ethernet@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <2>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       ranges = <0x0 0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
                        tbi-handle = <&tbi2>;
                        phy-handle = <&phy2>;
+               };
 
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi2: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
+               mdio@26520 {
+                       tbi2: tbi-phy@11 {
+                               reg = <0x11>;
+                               device_type = "tbi-phy";
                        };
                };
 
                enet3: ethernet@27000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <3>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x27000 0x1000>;
-                       ranges = <0x0 0x27000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <37 2 38 2 39 2>;
-                       interrupt-parent = <&mpic>;
                        tbi-handle = <&tbi3>;
                        phy-handle = <&phy3>;
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi3: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;   // reg base, size
-                       clock-frequency = <0>;  // should we fill in in uboot?
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;   // reg base, size
-                       clock-frequency = <0>;  // should we fill in in uboot?
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
                };
 
-               global-utilities@e0000 {        //global utilities reg
-                       compatible = "fsl,mpc8548-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0xfe>;
-                       fsl,descriptor-types-mask = <0x12b0ebf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
+               mdio@27520 {
+                       tbi3: tbi-phy@11 {
+                               reg = <0x11>;
+                               device_type = "tbi-phy";
+                       };
                };
        };
 
        pci0: pci@e0008000 {
+               reg = <0 0xe0008000 0 0x1000>;
+               ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x10000000
+                         0x1000000 0x0 0x00000000 0 0xe2000000 0x0 0x800000>;
+               clock-frequency = <66666666>;
                interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                interrupt-map = <
                        /* IDSEL 0x4 (PCIX Slot 2) */
-                       0x2000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0x2000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0x2000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0x2000 0x0 0x0 0x4 &mpic 0x3 0x1
+                       0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                       0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                       0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
 
                        /* IDSEL 0x5 (PCIX Slot 3) */
-                       0x2800 0x0 0x0 0x1 &mpic 0x1 0x1
-                       0x2800 0x0 0x0 0x2 &mpic 0x2 0x1
-                       0x2800 0x0 0x0 0x3 &mpic 0x3 0x1
-                       0x2800 0x0 0x0 0x4 &mpic 0x0 0x1
+                       0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
+                       0x2800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0
+                       0x2800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0
+                       0x2800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0
 
                        /* IDSEL 0x6 (PCIX Slot 4) */
-                       0x3000 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x3000 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x3000 0x0 0x0 0x3 &mpic 0x0 0x1
-                       0x3000 0x0 0x0 0x4 &mpic 0x1 0x1
+                       0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
+                       0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
 
                        /* IDSEL 0x8 (PCIX Slot 5) */
-                       0x4000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0x4000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0x4000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0x4000 0x0 0x0 0x4 &mpic 0x3 0x1
+                       0x4000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                       0x4000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                       0x4000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0x4000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
 
                        /* IDSEL 0xC (Tsi310 bridge) */
-                       0x6000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0x6000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0x6000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0x6000 0x0 0x0 0x4 &mpic 0x3 0x1
+                       0x6000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                       0x6000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                       0x6000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0x6000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
 
                        /* IDSEL 0x14 (Slot 2) */
-                       0xa000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0xa000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0xa000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0xa000 0x0 0x0 0x4 &mpic 0x3 0x1
+                       0xa000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                       0xa000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                       0xa000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0xa000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
 
                        /* IDSEL 0x15 (Slot 3) */
-                       0xa800 0x0 0x0 0x1 &mpic 0x1 0x1
-                       0xa800 0x0 0x0 0x2 &mpic 0x2 0x1
-                       0xa800 0x0 0x0 0x3 &mpic 0x3 0x1
-                       0xa800 0x0 0x0 0x4 &mpic 0x0 0x1
+                       0xa800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
+                       0xa800 0x0 0x0 0x2 &mpic 0x2 0x1 0 0
+                       0xa800 0x0 0x0 0x3 &mpic 0x3 0x1 0 0
+                       0xa800 0x0 0x0 0x4 &mpic 0x0 0x1 0 0
 
                        /* IDSEL 0x16 (Slot 4) */
-                       0xb000 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0xb000 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0xb000 0x0 0x0 0x3 &mpic 0x0 0x1
-                       0xb000 0x0 0x0 0x4 &mpic 0x1 0x1
+                       0xb000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0xb000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0xb000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
+                       0xb000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
 
                        /* IDSEL 0x18 (Slot 5) */
-                       0xc000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0xc000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0xc000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0xc000 0x0 0x0 0x4 &mpic 0x3 0x1
+                       0xc000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                       0xc000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                       0xc000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0xc000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
 
                        /* IDSEL 0x1C (Tsi310 bridge PCI primary) */
-                       0xe000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0xe000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0xe000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0xe000 0x0 0x0 0x4 &mpic 0x3 0x1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <24 2>;
-               bus-range = <0 0>;
-               ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x10000000
-                         0x1000000 0x0 0x0 0xe2000000 0x0 0x800000>;
-               clock-frequency = <66666666>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe0008000 0x1000>;
-               compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
-               device_type = "pci";
+                       0xe000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                       0xe000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                       0xe000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0xe000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>;
 
                pci_bridge@1c {
                        interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                        interrupt-map = <
 
                                /* IDSEL 0x00 (PrPMC Site) */
-                               0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                               0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                               0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                               0000 0x0 0x0 0x4 &mpic 0x3 0x1
+                               0000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                               0000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                               0000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                               0000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
 
                                /* IDSEL 0x04 (VIA chip) */
-                               0x2000 0x0 0x0 0x1 &mpic 0x0 0x1
-                               0x2000 0x0 0x0 0x2 &mpic 0x1 0x1
-                               0x2000 0x0 0x0 0x3 &mpic 0x2 0x1
-                               0x2000 0x0 0x0 0x4 &mpic 0x3 0x1
+                               0x2000 0x0 0x0 0x1 &mpic 0x0 0x1 0 0
+                               0x2000 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                               0x2000 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                               0x2000 0x0 0x0 0x4 &mpic 0x3 0x1 0 0
 
                                /* IDSEL 0x05 (8139) */
-                               0x2800 0x0 0x0 0x1 &mpic 0x1 0x1
+                               0x2800 0x0 0x0 0x1 &mpic 0x1 0x1 0 0
 
                                /* IDSEL 0x06 (Slot 6) */
-                               0x3000 0x0 0x0 0x1 &mpic 0x2 0x1
-                               0x3000 0x0 0x0 0x2 &mpic 0x3 0x1
-                               0x3000 0x0 0x0 0x3 &mpic 0x0 0x1
-                               0x3000 0x0 0x0 0x4 &mpic 0x1 0x1
+                               0x3000 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                               0x3000 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                               0x3000 0x0 0x0 0x3 &mpic 0x0 0x1 0 0
+                               0x3000 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
 
                                /* IDESL 0x07 (Slot 7) */
-                               0x3800 0x0 0x0 0x1 &mpic 0x3 0x1
-                               0x3800 0x0 0x0 0x2 &mpic 0x0 0x1
-                               0x3800 0x0 0x0 0x3 &mpic 0x1 0x1
-                               0x3800 0x0 0x0 0x4 &mpic 0x2 0x1>;
+                               0x3800 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                               0x3800 0x0 0x0 0x2 &mpic 0x0 0x1 0 0
+                               0x3800 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                               0x3800 0x0 0x0 0x4 &mpic 0x2 0x1 0 0>;
 
                        reg = <0xe000 0x0 0x0 0x0 0x0>;
                        #interrupt-cells = <1>;
                                        #address-cells = <0>;
                                        #interrupt-cells = <2>;
                                        compatible = "chrp,iic";
-                                       interrupts = <0 1>;
+                                       interrupts = <0 1 0 0>;
                                        interrupt-parent = <&mpic>;
                                };
 
        };
 
        pci1: pci@e0009000 {
+               reg = <0 0xe0009000 0 0x1000>;
+               ranges = <0x2000000 0x0 0x90000000 0 0x90000000 0x0 0x10000000
+                         0x1000000 0x0 0x00000000 0 0xe2800000 0x0 0x800000>;
+               clock-frequency = <66666666>;
                interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                interrupt-map = <
 
                        /* IDSEL 0x15 */
-                       0xa800 0x0 0x0 0x1 &mpic 0xb 0x1
-                       0xa800 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0xa800 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0xa800 0x0 0x0 0x4 &mpic 0x3 0x1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <25 2>;
-               bus-range = <0 0>;
-               ranges = <0x2000000 0x0 0x90000000 0x90000000 0x0 0x10000000
-                         0x1000000 0x0 0x0 0xe2800000 0x0 0x800000>;
-               clock-frequency = <66666666>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe0009000 0x1000>;
-               compatible = "fsl,mpc8540-pci";
-               device_type = "pci";
+                       0xa800 0x0 0x0 0x1 &mpic 0xb 0x1 0 0
+                       0xa800 0x0 0x0 0x2 &mpic 0x1 0x1 0 0
+                       0xa800 0x0 0x0 0x3 &mpic 0x2 0x1 0 0
+                       0xa800 0x0 0x0 0x4 &mpic 0x3 0x1 0 0>;
        };
 
        pci2: pcie@e000a000 {
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-
-                       /* IDSEL 0x0 (PEX) */
-                       00000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       00000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       00000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       00000 0x0 0x0 0x4 &mpic 0x3 0x1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
-                         0x1000000 0x0 0x0 0xe3000000 0x0 0x100000>;
-               clock-frequency = <33333333>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe000a000 0x1000>;
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
+               reg = <0 0xe000a000 0 0x1000>;
+               ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0 0xe3000000 0x0 0x100000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
                };
        };
 };
+
+/include/ "fsl/mpc8548si-post.dtsi"
index 647daf8e7291cf0562b3ad5bf72b8df424cab49f..09598bb5d443497669ebdc998fbbca30e085371f 100644 (file)
@@ -9,60 +9,25 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8568si-pre.dtsi"
 
 / {
        model = "MPC8568EMDS";
        compatible = "MPC8568EMDS", "MPC85xxMDS";
-       #address-cells = <1>;
-       #size-cells = <1>;
 
        aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
-               ethernet3 = &enet3;
-               serial0 = &serial0;
-               serial1 = &serial1;
                pci0 = &pci0;
                pci1 = &pci1;
-               rapidio0 = &rio0;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,8568@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       sleep = <&pmc 0x00008000        // core
-                                &pmc 0x00004000>;      // timebase
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
-               };
+               rapidio0 = &rio;
        };
 
        memory {
                device_type = "memory";
-               reg = <0x0 0x10000000>;
+               reg = <0x0 0x0 0x0 0x0>;
        };
 
-       localbus@e0005000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,mpc8568-localbus", "fsl,pq3-localbus",
-                            "simple-bus";
-               reg = <0xe0005000 0x1000>;
-               interrupt-parent = <&mpic>;
-               interrupts = <19 2>;
-
+       lbc: localbus@e0005000 {
+               reg = <0x0 0xe0005000 0x0 0x1000>;
                ranges = <0x0 0x0 0xfe000000 0x02000000
                          0x1 0x0 0xf8000000 0x00008000
                          0x2 0x0 0xf0000000 0x04000000
                };
        };
 
-       soc8568@e0000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x0 0xe0000000 0x100000>;
-               bus-frequency = <0>;
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <10>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8568-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8568-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8568-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x80000>; // L2, 512K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
+       soc: soc8568@e0000000 {
+               ranges = <0x0 0x0 0xe0000000 0x100000>;
 
                i2c-sleep-nexus {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "simple-bus";
-                       sleep = <&pmc 0x00000004>;
-                       ranges;
-
                        i2c@3000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <0>;
-                               compatible = "fsl-i2c";
-                               reg = <0x3000 0x100>;
-                               interrupts = <43 2>;
-                               interrupt-parent = <&mpic>;
-                               dfsrr;
-
                                rtc@68 {
                                        compatible = "dallas,ds1374";
                                        reg = <0x68>;
-                                       interrupts = <3 1>;
-                                       interrupt-parent = <&mpic>;
+                                       interrupts = <3 1 0 0>;
                                };
                        };
+               };
 
-                       i2c@3100 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <1>;
-                               compatible = "fsl-i2c";
-                               reg = <0x3100 0x100>;
-                               interrupts = <43 2>;
-                               interrupt-parent = <&mpic>;
-                               dfsrr;
-                       };
+               enet0: ethernet@24000 {
+                       tbi-handle = <&tbi0>;
+                       phy-handle = <&phy2>;
                };
 
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8568-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       sleep = <&pmc 0x00000400>;
-
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8568-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
+               mdio@24520 {
+                       phy0: ethernet-phy@7 {
+                               interrupts = <1 1 0 0>;
+                               reg = <0x7>;
+                               device_type = "ethernet-phy";
                        };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8568-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
+                       phy1: ethernet-phy@1 {
+                               interrupts = <2 1 0 0>;
+                               reg = <0x1>;
+                               device_type = "ethernet-phy";
                        };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8568-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
+                       phy2: ethernet-phy@2 {
+                               interrupts = <1 1 0 0>;
+                               reg = <0x2>;
+                               device_type = "ethernet-phy";
                        };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8568-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
+                       phy3: ethernet-phy@3 {
+                               interrupts = <2 1 0 0>;
+                               reg = <0x3>;
+                               device_type = "ethernet-phy";
                        };
-               };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi0>;
-                       phy-handle = <&phy2>;
-                       sleep = <&pmc 0x00000080>;
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@7 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <1 1>;
-                                       reg = <0x7>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <2 1>;
-                                       reg = <0x1>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy2: ethernet-phy@2 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <1 1>;
-                                       reg = <0x2>;
-                                       device_type = "ethernet-phy";
-                               };
-                               phy3: ethernet-phy@3 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <2 1>;
-                                       reg = <0x3>;
-                                       device_type = "ethernet-phy";
-                               };
-                               tbi0: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
+                       tbi0: tbi-phy@11 {
+                               reg = <0x11>;
+                               device_type = "tbi-phy";
                        };
                };
 
                enet1: ethernet@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x25000 0x1000>;
-                       ranges = <0x0 0x25000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <35 2 36 2 40 2>;
-                       interrupt-parent = <&mpic>;
                        tbi-handle = <&tbi1>;
                        phy-handle = <&phy3>;
                        sleep = <&pmc 0x00000040>;
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi1: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
                };
 
-               duart-sleep-nexus {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "simple-bus";
-                       sleep = <&pmc 0x00000002>;
-                       ranges;
-
-                       serial0: serial@4500 {
-                               cell-index = <0>;
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0x4500 0x100>;
-                               clock-frequency = <0>;
-                               interrupts = <42 2>;
-                               interrupt-parent = <&mpic>;
-                       };
-
-                       serial1: serial@4600 {
-                               cell-index = <1>;
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0x4600 0x100>;
-                               clock-frequency = <0>;
-                               interrupts = <42 2>;
-                               interrupt-parent = <&mpic>;
+               mdio@25520 {
+                       tbi1: tbi-phy@11 {
+                               reg = <0x11>;
+                               device_type = "tbi-phy";
                        };
                };
 
-               global-utilities@e0000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8568-guts", "fsl,mpc8548-guts";
-                       reg = <0xe0000 0x1000>;
-                       ranges = <0 0xe0000 0x1000>;
-                       fsl,has-rstcr;
-
-                       pmc: power@70 {
-                               compatible = "fsl,mpc8568-pmc",
-                                            "fsl,mpc8548-pmc";
-                               reg = <0x70 0x20>;
-                       };
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0xfe>;
-                       fsl,descriptor-types-mask = <0x12b0ebf>;
-                       sleep = <&pmc 0x01000000>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,mpc8568-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
                par_io@e0100 {
-                       reg = <0xe0100 0x100>;
-                       device_type = "par_io";
                        num-ports = <7>;
 
                        pio1: ucc_pin@01 {
                };
        };
 
-       qe@e0080000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "qe";
-               compatible = "fsl,qe";
-               ranges = <0x0 0xe0080000 0x40000>;
-               reg = <0xe0080000 0x480>;
-               sleep = <&pmc 0x00000800>;
-               brg-frequency = <0>;
-               bus-frequency = <396000000>;
-               fsl,qe-num-riscs = <2>;
-               fsl,qe-num-snums = <28>;
-
-               muram@10000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,qe-muram", "fsl,cpm-muram";
-                       ranges = <0x0 0x10000 0x10000>;
-
-                       data-only@0 {
-                               compatible = "fsl,qe-muram-data",
-                                            "fsl,cpm-muram-data";
-                               reg = <0x0 0x10000>;
-                       };
-               };
+       qe: qe@e0080000 {
+               ranges = <0x0 0x0 0xe0080000 0x40000>;
+               reg = <0x0 0xe0080000 0x0 0x480>;
 
                spi@4c0 {
-                       cell-index = <0>;
-                       compatible = "fsl,spi";
-                       reg = <0x4c0 0x40>;
-                       interrupts = <2>;
-                       interrupt-parent = <&qeic>;
                        mode = "cpu";
                };
 
                spi@500 {
-                       cell-index = <1>;
-                       compatible = "fsl,spi";
-                       reg = <0x500 0x40>;
-                       interrupts = <1>;
-                       interrupt-parent = <&qeic>;
                        mode = "cpu";
                };
 
                enet2: ucc@2000 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <1>;
-                       reg = <0x2000 0x200>;
-                       interrupts = <32>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "clk16";
                enet3: ucc@3000 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <2>;
-                       reg = <0x3000 0x200>;
-                       interrupts = <33>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "clk16";
                         * gianfar's MDIO bus */
                        qe_phy0: ethernet-phy@07 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <1 1>;
+                               interrupts = <1 1 0 0>;
                                reg = <0x7>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy1: ethernet-phy@01 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
+                               interrupts = <2 1 0 0>;
                                reg = <0x1>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy2: ethernet-phy@02 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <1 1>;
+                               interrupts = <1 1 0 0>;
                                reg = <0x2>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy3: ethernet-phy@03 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
+                               interrupts = <2 1 0 0>;
                                reg = <0x3>;
                                device_type = "ethernet-phy";
                        };
                };
-
-               qeic: interrupt-controller@80 {
-                       interrupt-controller;
-                       compatible = "fsl,qe-ic";
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       reg = <0x80 0x80>;
-                       big-endian;
-                       interrupts = <46 2 46 2>; //high:30 low:30
-                       interrupt-parent = <&mpic>;
-               };
-
        };
 
        pci0: pci@e0008000 {
+               reg = <0x0 0xe0008000 0x0 0x1000>;
+               ranges = <0x2000000 0x0 0x80000000 0x0 0x80000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0x0 0xe2000000 0x0 0x800000>;
+               clock-frequency = <66666666>;
                interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
                interrupt-map = <
                        /* IDSEL 0x12 AD18 */
-                       0x9000 0x0 0x0 0x1 &mpic 0x5 0x1
-                       0x9000 0x0 0x0 0x2 &mpic 0x6 0x1
-                       0x9000 0x0 0x0 0x3 &mpic 0x7 0x1
-                       0x9000 0x0 0x0 0x4 &mpic 0x4 0x1
+                       0x9000 0x0 0x0 0x1 &mpic 0x5 0x1 0 0
+                       0x9000 0x0 0x0 0x2 &mpic 0x6 0x1 0 0
+                       0x9000 0x0 0x0 0x3 &mpic 0x7 0x1 0 0
+                       0x9000 0x0 0x0 0x4 &mpic 0x4 0x1 0 0
 
                        /* IDSEL 0x13 AD19 */
-                       0x9800 0x0 0x0 0x1 &mpic 0x6 0x1
-                       0x9800 0x0 0x0 0x2 &mpic 0x7 0x1
-                       0x9800 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x9800 0x0 0x0 0x4 &mpic 0x5 0x1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <24 2>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
-                         0x1000000 0x0 0x0 0xe2000000 0x0 0x800000>;
-               sleep = <&pmc 0x80000000>;
-               clock-frequency = <66666666>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe0008000 0x1000>;
-               compatible = "fsl,mpc8540-pci";
-               device_type = "pci";
+                       0x9800 0x0 0x0 0x1 &mpic 0x6 0x1 0 0
+                       0x9800 0x0 0x0 0x2 &mpic 0x7 0x1 0 0
+                       0x9800 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x9800 0x0 0x0 0x4 &mpic 0x5 0x1 0 0>;
        };
 
        /* PCI Express */
        pci1: pcie@e000a000 {
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-
-                       /* IDSEL 0x0 (PEX) */
-                       00000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       00000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       00000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       00000 0x0 0x0 0x4 &mpic 0x3 0x1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
-                         0x1000000 0x0 0x0 0xe2800000 0x0 0x800000>;
-               sleep = <&pmc 0x20000000>;
-               clock-frequency = <33333333>;
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe000a000 0x1000>;
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
+               ranges = <0x2000000 0x0 0xa0000000 0x0 0xa0000000 0x0 0x10000000
+                         0x1000000 0x0 0x00000000 0x0 0xe2800000 0x0 0x800000>;
+               reg = <0x0 0xe000a000 0x0 0x1000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x10000000
                };
        };
 
-       rio0: rapidio@e00c00000 {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               compatible = "fsl,mpc8568-rapidio", "fsl,rapidio-delta";
-               reg = <0xe00c0000 0x20000>;
-               ranges = <0x0 0x0 0xc0000000 0x0 0x20000000>;
-               interrupts = <48 2 /* error     */
-                             49 2 /* bell_outb */
-                             50 2 /* bell_inb  */
-                             53 2 /* msg1_tx   */
-                             54 2 /* msg1_rx   */
-                             55 2 /* msg2_tx   */
-                             56 2 /* msg2_rx   */>;
-               interrupt-parent = <&mpic>;
-               sleep = <&pmc 0x00080000   /* controller */
-                        &pmc 0x00040000>; /* message unit */
+       rio: rapidio@e00c00000 {
+               reg = <0x0 0xe00c0000 0x0 0x20000>;
+               port1 {
+                       ranges = <0x0 0x0 0x0 0xc0000000 0x0 0x20000000>;
+               };
        };
 
        leds {
                };
        };
 };
+
+/include/ "fsl/mpc8568si-post.dtsi"
index 8b72eaff5b0329e56ffb27279076b6ef111724e4..7e283c891b7f8871eca5dc5a64a79d9bb4e56590 100644 (file)
@@ -9,66 +9,36 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8569si-pre.dtsi"
 
 / {
        model = "MPC8569EMDS";
        compatible = "fsl,MPC8569EMDS";
-       #address-cells = <1>;
-       #size-cells = <1>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
 
        aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
                ethernet2 = &enet2;
                ethernet3 = &enet3;
                ethernet5 = &enet5;
                ethernet7 = &enet7;
-               pci1 = &pci1;
-               rapidio0 = &rio0;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,8569@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       sleep = <&pmc 0x00008000        // core
-                                &pmc 0x00004000>;      // timebase
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
-               };
+               rapidio0 = &rio;
        };
 
        memory {
                device_type = "memory";
        };
 
-       localbus@e0005000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,mpc8569-elbc", "fsl,elbc", "simple-bus";
-               reg = <0xe0005000 0x1000>;
-               interrupts = <19 2>;
-               interrupt-parent = <&mpic>;
-               sleep = <&pmc 0x08000000>;
-
-               ranges = <0x0 0x0 0xfe000000 0x02000000
-                         0x1 0x0 0xf8000000 0x00008000
-                         0x2 0x0 0xf0000000 0x04000000
-                         0x3 0x0 0xfc000000 0x00008000
-                         0x4 0x0 0xf8008000 0x00008000
-                         0x5 0x0 0xf8010000 0x00008000>;
+       lbc: localbus@e0005000 {
+               reg = <0x0 0xe0005000 0x0 0x1000>;
+
+               ranges = <0x0 0x0 0x0 0xfe000000 0x02000000
+                         0x1 0x0 0x0 0xf8000000 0x00008000
+                         0x2 0x0 0x0 0xf0000000 0x04000000
+                         0x3 0x0 0x0 0xfc000000 0x00008000
+                         0x4 0x0 0x0 0xf8008000 0x00008000
+                         0x5 0x0 0x0 0xf8010000 0x00008000>;
 
                nor@0,0 {
                        #address-cells = <1>;
                };
        };
 
-       soc@e0000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "fsl,mpc8569-immr", "simple-bus";
-               ranges = <0x0 0xe0000000 0x100000>;
-               bus-frequency = <0>;
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <10>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8569-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8569-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
+       soc: soc@e0000000 {
+               ranges = <0x0 0x0 0xe0000000 0x100000>;
 
                i2c-sleep-nexus {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "simple-bus";
-                       sleep = <&pmc 0x00000004>;
-                       ranges;
-
                        i2c@3000 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <0>;
-                               compatible = "fsl-i2c";
-                               reg = <0x3000 0x100>;
-                               interrupts = <43 2>;
-                               interrupt-parent = <&mpic>;
-                               dfsrr;
-
                                rtc@68 {
                                        compatible = "dallas,ds1374";
                                        reg = <0x68>;
-                                       interrupts = <3 1>;
-                                       interrupt-parent = <&mpic>;
+                                       interrupts = <3 1 0 0>;
                                };
                        };
-
-                       i2c@3100 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               cell-index = <1>;
-                               compatible = "fsl-i2c";
-                               reg = <0x3100 0x100>;
-                               interrupts = <43 2>;
-                               interrupt-parent = <&mpic>;
-                               dfsrr;
-                       };
-               };
-
-               duart-sleep-nexus {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "simple-bus";
-                       sleep = <&pmc 0x00000002>;
-                       ranges;
-
-                       serial0: serial@4500 {
-                               cell-index = <0>;
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0x4500 0x100>;
-                               clock-frequency = <0>;
-                               interrupts = <42 2>;
-                               interrupt-parent = <&mpic>;
-                       };
-
-                       serial1: serial@4600 {
-                               cell-index = <1>;
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0x4600 0x100>;
-                               clock-frequency = <0>;
-                               interrupts = <42 2>;
-                               interrupt-parent = <&mpic>;
-                       };
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8569-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x80000>; // L2, 512K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
                };
 
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8569-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8569-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8569-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8569-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8569-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               sdhci@2e000 {
-                       compatible = "fsl,mpc8569-esdhc", "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x8>;
-                       interrupt-parent = <&mpic>;
-                       sleep = <&pmc 0x00200000>;
-                       /* Filled in by U-Boot */
-                       clock-frequency = <0>;
+               sdhc@2e000 {
                        status = "disabled";
                        sdhci,1-bit-only;
                };
 
-               crypto@30000 {
-                       compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4",
-                               "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0xbfe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-                       sleep = <&pmc 0x01000000>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,mpc8568-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8569-guts", "fsl,mpc8548-guts";
-                       reg = <0xe0000 0x1000>;
-                       ranges = <0 0xe0000 0x1000>;
-                       fsl,has-rstcr;
-
-                       pmc: power@70 {
-                               compatible = "fsl,mpc8569-pmc",
-                                            "fsl,mpc8548-pmc";
-                               reg = <0x70 0x20>;
-                       };
-               };
-
                par_io@e0100 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0xe0100 0x100>;
-                       ranges = <0x0 0xe0100 0x100>;
-                       device_type = "par_io";
                        num-ports = <7>;
 
                        qe_pio_e: gpio-controller@80 {
                };
        };
 
-       qe@e0080000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "qe";
-               compatible = "fsl,qe";
-               ranges = <0x0 0xe0080000 0x40000>;
-               reg = <0xe0080000 0x480>;
-               sleep = <&pmc 0x00000800>;
-               brg-frequency = <0>;
-               bus-frequency = <0>;
-               fsl,qe-num-riscs = <4>;
-               fsl,qe-num-snums = <46>;
-
-               qeic: interrupt-controller@80 {
-                       interrupt-controller;
-                       compatible = "fsl,qe-ic";
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       reg = <0x80 0x80>;
-                       interrupts = <46 2 46 2>; //high:30 low:30
-                       interrupt-parent = <&mpic>;
-               };
-
-               timer@440 {
-                       compatible = "fsl,mpc8569-qe-gtm",
-                                    "fsl,qe-gtm", "fsl,gtm";
-                       reg = <0x440 0x40>;
-                       interrupts = <12 13 14 15>;
-                       interrupt-parent = <&qeic>;
-                       /* Filled in by U-Boot */
-                       clock-frequency = <0>;
-               };
+       qe: qe@e0080000 {
+               ranges = <0x0 0x0 0xe0080000 0x40000>;
+               reg = <0x0 0xe0080000 0x0 0x480>;
 
                spi@4c0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,mpc8569-qe-spi", "fsl,spi";
-                       reg = <0x4c0 0x40>;
-                       cell-index = <0>;
-                       interrupts = <2>;
-                       interrupt-parent = <&qeic>;
                        gpios = <&qe_pio_e 30 0>;
                        mode = "cpu-qe";
 
                };
 
                spi@500 {
-                       cell-index = <1>;
-                       compatible = "fsl,spi";
-                       reg = <0x500 0x40>;
-                       interrupts = <1>;
-                       interrupt-parent = <&qeic>;
                        mode = "cpu";
                };
 
                usb@6c0 {
-                       compatible = "fsl,mpc8569-qe-usb",
-                                    "fsl,mpc8323-qe-usb";
-                       reg = <0x6c0 0x40 0x8b00 0x100>;
-                       interrupts = <11>;
-                       interrupt-parent = <&qeic>;
                        fsl,fullspeed-clock = "clk5";
                        fsl,lowspeed-clock = "brg10";
                        gpios = <&qe_pio_f 3 0   /* USBOE */
                enet0: ucc@2000 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <1>;
-                       reg = <0x2000 0x200>;
-                       interrupts = <32>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "clk12";
 
                        qe_phy0: ethernet-phy@07 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <1 1>;
+                               interrupts = <1 1 0 0>;
                                reg = <0x7>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy1: ethernet-phy@01 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
+                               interrupts = <2 1 0 0>;
                                reg = <0x1>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy2: ethernet-phy@02 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
+                               interrupts = <3 1 0 0>;
                                reg = <0x2>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy3: ethernet-phy@03 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <4 1>;
+                               interrupts = <4 1 0 0>;
                                reg = <0x3>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy5: ethernet-phy@04 {
-                               interrupt-parent = <&mpic>;
                                reg = <0x04>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy7: ethernet-phy@06 {
-                               interrupt-parent = <&mpic>;
                                reg = <0x6>;
                                device_type = "ethernet-phy";
                        };
                enet2: ucc@2200 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <3>;
-                       reg = <0x2200 0x200>;
-                       interrupts = <34>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "clk12";
                enet1: ucc@3000 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <2>;
-                       reg = <0x3000 0x200>;
-                       interrupts = <33>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "clk17";
                enet3: ucc@3200 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <4>;
-                       reg = <0x3200 0x200>;
-                       interrupts = <35>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "clk17";
                enet5: ucc@3400 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <6>;
-                       reg = <0x3400 0x200>;
-                       interrupts = <41>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "none";
                enet7: ucc@3600 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <8>;
-                       reg = <0x3600 0x200>;
-                       interrupts = <43>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "none";
                        phy-handle = <&qe_phy7>;
                        phy-connection-type = "sgmii";
                };
-
-               muram@10000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,qe-muram", "fsl,cpm-muram";
-                       ranges = <0x0 0x10000 0x20000>;
-
-                       data-only@0 {
-                               compatible = "fsl,qe-muram-data",
-                                            "fsl,cpm-muram-data";
-                               reg = <0x0 0x20000>;
-                       };
-               };
-
        };
 
        /* PCI Express */
        pci1: pcie@e000a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xe000a000 0x1000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 (PEX) */
-                       00000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       00000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       00000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       00000 0x0 0x0 0x4 &mpic 0x3 0x1>;
-
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
-                         0x1000000 0x0 0x00000000 0xe2800000 0x0 0x00800000>;
-               sleep = <&pmc 0x20000000>;
-               clock-frequency = <33333333>;
+               reg = <0x0 0xe000a000 0x0 0x1000>;
+               ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x10000000
+                         0x1000000 0x0 0x00000000 0 0xe2800000 0x0 0x00800000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x10000000
                };
        };
 
-       rio0: rapidio@e00c00000 {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               compatible = "fsl,mpc8569-rapidio", "fsl,rapidio-delta";
-               reg = <0xe00c0000 0x20000>;
-               ranges = <0x0 0x0 0xc0000000 0x0 0x20000000>;
-               interrupts = <48 2 /* error     */
-                             49 2 /* bell_outb */
-                             50 2 /* bell_inb  */
-                             53 2 /* msg1_tx   */
-                             54 2 /* msg1_rx   */
-                             55 2 /* msg2_tx   */
-                             56 2 /* msg2_rx   */>;
-               interrupt-parent = <&mpic>;
-               sleep = <&pmc 0x00080000>;
+       rio: rapidio@e00c00000 {
+               reg = <0x0 0xe00c0000 0x0 0x20000>;
+               port1 {
+                       ranges = <0x0 0x0 0x0 0xc0000000 0x0 0x20000000>;
+               };
+               port2 {
+                       status = "disabled";
+               };
        };
 };
+
+/include/ "fsl/mpc8569si-post.dtsi"
index f6c04d25e91681c06628ecc5eda09afd153ab81d..0c9f2955deb4af8d7064a82c73e23bcfbe4d89ac 100644 (file)
@@ -9,67 +9,18 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8572si-pre.dtsi"
+
 / {
        model = "fsl,MPC8572DS";
        compatible = "fsl,MPC8572DS";
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
-               ethernet3 = &enet3;
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,8572@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
-               };
-
-               PowerPC,8572@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
-               };
-       };
 
        memory {
                device_type = "memory";
        };
 
-       localbus@ffe05000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
+       board_lbc: lbc: localbus@ffe05000 {
                reg = <0 0xffe05000 0 0x1000>;
-               interrupts = <19 2>;
-               interrupt-parent = <&mpic>;
 
                ranges = <0x0 0x0 0x0 0xe8000000 0x08000000
                          0x1 0x0 0x0 0xe0000000 0x08000000
                          0x4 0x0 0x0 0xffa40000 0x00040000
                          0x5 0x0 0x0 0xffa80000 0x00040000
                          0x6 0x0 0x0 0xffac0000 0x00040000>;
-
-               nor@0,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "cfi-flash";
-                       reg = <0x0 0x0 0x8000000>;
-                       bank-width = <2>;
-                       device-width = <1>;
-
-                       ramdisk@0 {
-                               reg = <0x0 0x03000000>;
-                               read-only;
-                       };
-
-                       diagnostic@3000000 {
-                               reg = <0x03000000 0x00e00000>;
-                               read-only;
-                       };
-
-                       dink@3e00000 {
-                               reg = <0x03e00000 0x00200000>;
-                               read-only;
-                       };
-
-                       kernel@4000000 {
-                               reg = <0x04000000 0x00400000>;
-                               read-only;
-                       };
-
-                       jffs2@4400000 {
-                               reg = <0x04400000 0x03b00000>;
-                       };
-
-                       dtb@7f00000 {
-                               reg = <0x07f00000 0x00080000>;
-                               read-only;
-                       };
-
-                       u-boot@7f80000 {
-                               reg = <0x07f80000 0x00080000>;
-                               read-only;
-                       };
-               };
-
-               nand@2,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x2 0x0 0x40000>;
-
-                       u-boot@0 {
-                               reg = <0x0 0x02000000>;
-                               read-only;
-                       };
-
-                       jffs2@2000000 {
-                               reg = <0x02000000 0x10000000>;
-                       };
-
-                       ramdisk@12000000 {
-                               reg = <0x12000000 0x08000000>;
-                               read-only;
-                       };
-
-                       kernel@1a000000 {
-                               reg = <0x1a000000 0x04000000>;
-                       };
-
-                       dtb@1e000000 {
-                               reg = <0x1e000000 0x01000000>;
-                               read-only;
-                       };
-
-                       empty@1f000000 {
-                               reg = <0x1f000000 0x21000000>;
-                       };
-               };
-
-               nand@4,0 {
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x4 0x0 0x40000>;
-               };
-
-               nand@5,0 {
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x5 0x0 0x40000>;
-               };
-
-               nand@6,0 {
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x6 0x0 0x40000>;
-               };
        };
 
-       soc8572@ffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
+       board_soc: soc: soc8572@ffe00000 {
                ranges = <0x0 0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8572-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8572-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               memory-controller@6000 {
-                       compatible = "fsl,mpc8572-memory-controller";
-                       reg = <0x6000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8572-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x100000>; // L2, 1M
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               dma@c300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
-                       reg = <0xc300 0x4>;
-                       ranges = <0x0 0xc100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <76 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <77 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <78 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <79 2>;
-                       };
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               ptp_clock@24E00 {
-                       compatible = "fsl,etsec-ptp";
-                       reg = <0x24E00 0xB0>;
-                       interrupts = <68 2 69 2 70 2 71 2>;
-                       interrupt-parent = < &mpic >;
-                       fsl,tclk-period = <5>;
-                       fsl,tmr-prsc = <200>;
-                       fsl,tmr-add = <0xAAAAAAAB>;
-                       fsl,tmr-fiper1 = <0x3B9AC9FB>;
-                       fsl,tmr-fiper2 = <0x3B9AC9FB>;
-                       fsl,max-adj = <499999999>;
-               };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi0>;
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@0 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x0>;
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x1>;
-                               };
-                               phy2: ethernet-phy@2 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x2>;
-                               };
-                               phy3: ethernet-phy@3 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x3>;
-                               };
-
-                               tbi0: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet1: ethernet@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x25000 0x1000>;
-                       ranges = <0x0 0x25000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <35 2 36 2 40 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi1>;
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi1: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet2: ethernet@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <2>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       ranges = <0x0 0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi2>;
-                       phy-handle = <&phy2>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi2: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet3: ethernet@27000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <3>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x27000 0x1000>;
-                       ranges = <0x0 0x27000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <37 2 38 2 39 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi3>;
-                       phy-handle = <&phy3>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi3: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,mpc8572-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-
-               msi@41600 {
-                       compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
-                                    "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0x9fe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
        };
 
-       pci0: pcie@ffe08000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
+       board_pci0: pci0: pcie@ffe08000 {
                reg = <0 0xffe08000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <24 2>;
-               interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x11 func 0 - PCI slot 1 */
-                       0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8800 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 1 - PCI slot 1 */
-                       0x8900 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8900 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8900 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8900 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 2 - PCI slot 1 */
-                       0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 3 - PCI slot 1 */
-                       0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 4 - PCI slot 1 */
-                       0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 5 - PCI slot 1 */
-                       0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 6 - PCI slot 1 */
-                       0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 7 - PCI slot 1 */
-                       0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x12 func 0 - PCI slot 2 */
-                       0x9000 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9000 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9000 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9000 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 1 - PCI slot 2 */
-                       0x9100 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9100 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9100 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9100 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 2 - PCI slot 2 */
-                       0x9200 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9200 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9200 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9200 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 3 - PCI slot 2 */
-                       0x9300 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9300 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9300 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9300 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 4 - PCI slot 2 */
-                       0x9400 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9400 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9400 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9400 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 5 - PCI slot 2 */
-                       0x9500 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9500 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9500 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9500 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 6 - PCI slot 2 */
-                       0x9600 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9600 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9600 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9600 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 7 - PCI slot 2 */
-                       0x9700 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9700 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9700 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9700 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       // IDSEL 0x1c  USB
-                       0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
-                       0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
-                       0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
-                       0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
-
-                       // IDSEL 0x1d  Audio
-                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
-
-                       // IDSEL 0x1e Legacy
-                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
-                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
-
-                       // IDSEL 0x1f IDE/SATA
-                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
-                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
-
-                       >;
-
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0x80000000
                                  0x2000000 0x0 0x80000000
                                  0x0 0x20000000
                                  0x1000000 0x0 0x0
                                  0x1000000 0x0 0x0
                                  0x0 0x10000>;
-                       uli1575@0 {
-                               reg = <0x0 0x0 0x0 0x0 0x0>;
-                               #size-cells = <2>;
-                               #address-cells = <3>;
-                               ranges = <0x2000000 0x0 0x80000000
-                                         0x2000000 0x0 0x80000000
-                                         0x0 0x20000000
-
-                                         0x1000000 0x0 0x0
-                                         0x1000000 0x0 0x0
-                                         0x0 0x10000>;
-                               isa@1e {
-                                       device_type = "isa";
-                                       #interrupt-cells = <2>;
-                                       #size-cells = <1>;
-                                       #address-cells = <2>;
-                                       reg = <0xf000 0x0 0x0 0x0 0x0>;
-                                       ranges = <0x1 0x0 0x1000000 0x0 0x0
-                                                 0x1000>;
-                                       interrupt-parent = <&i8259>;
-
-                                       i8259: interrupt-controller@20 {
-                                               reg = <0x1 0x20 0x2
-                                                      0x1 0xa0 0x2
-                                                      0x1 0x4d0 0x2>;
-                                               interrupt-controller;
-                                               device_type = "interrupt-controller";
-                                               #address-cells = <0>;
-                                               #interrupt-cells = <2>;
-                                               compatible = "chrp,iic";
-                                               interrupts = <9 2>;
-                                               interrupt-parent = <&mpic>;
-                                       };
-
-                                       i8042@60 {
-                                               #size-cells = <0>;
-                                               #address-cells = <1>;
-                                               reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
-                                               interrupts = <1 3 12 3>;
-                                               interrupt-parent =
-                                                       <&i8259>;
-
-                                               keyboard@0 {
-                                                       reg = <0x0>;
-                                                       compatible = "pnpPNP,303";
-                                               };
-
-                                               mouse@1 {
-                                                       reg = <0x1>;
-                                                       compatible = "pnpPNP,f03";
-                                               };
-                                       };
-
-                                       rtc@70 {
-                                               compatible = "pnpPNP,b00";
-                                               reg = <0x1 0x70 0x2>;
-                                       };
-
-                                       gpio@400 {
-                                               reg = <0x1 0x400 0x80>;
-                                       };
-                               };
-                       };
                };
-
        };
 
        pci1: pcie@ffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xffe09000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <25 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
        };
 
        pci2: pcie@ffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xffe0a000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xc0000000
                                  0x2000000 0x0 0xc0000000
                                  0x0 0x20000000
                };
        };
 };
+
+/*
+ * mpc8572ds.dtsi must be last to ensure board_pci0 overrides pci0 settings
+ * for interrupt-map & interrupt-map-mask
+ */
+
+/include/ "fsl/mpc8572si-post.dtsi"
+/include/ "mpc8572ds.dtsi"
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dtsi b/arch/powerpc/boot/dts/mpc8572ds.dtsi
new file mode 100644 (file)
index 0000000..c3d4fac
--- /dev/null
@@ -0,0 +1,397 @@
+/*
+ * MPC8572DS Device Tree Source stub (no addresses or top-level ranges)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&board_lbc {
+       nor@0,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "cfi-flash";
+               reg = <0x0 0x0 0x8000000>;
+               bank-width = <2>;
+               device-width = <1>;
+
+               ramdisk@0 {
+                       reg = <0x0 0x03000000>;
+                       read-only;
+               };
+
+               diagnostic@3000000 {
+                       reg = <0x03000000 0x00e00000>;
+                       read-only;
+               };
+
+               dink@3e00000 {
+                       reg = <0x03e00000 0x00200000>;
+                       read-only;
+               };
+
+               kernel@4000000 {
+                       reg = <0x04000000 0x00400000>;
+                       read-only;
+               };
+
+               jffs2@4400000 {
+                       reg = <0x04400000 0x03b00000>;
+               };
+
+               dtb@7f00000 {
+                       reg = <0x07f00000 0x00080000>;
+                       read-only;
+               };
+
+               u-boot@7f80000 {
+                       reg = <0x07f80000 0x00080000>;
+                       read-only;
+               };
+       };
+
+       nand@2,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,mpc8572-fcm-nand",
+                            "fsl,elbc-fcm-nand";
+               reg = <0x2 0x0 0x40000>;
+
+               u-boot@0 {
+                       reg = <0x0 0x02000000>;
+                       read-only;
+               };
+
+               jffs2@2000000 {
+                       reg = <0x02000000 0x10000000>;
+               };
+
+               ramdisk@12000000 {
+                       reg = <0x12000000 0x08000000>;
+                       read-only;
+               };
+
+               kernel@1a000000 {
+                       reg = <0x1a000000 0x04000000>;
+               };
+
+               dtb@1e000000 {
+                       reg = <0x1e000000 0x01000000>;
+                       read-only;
+               };
+
+               empty@1f000000 {
+                       reg = <0x1f000000 0x21000000>;
+               };
+       };
+
+       nand@4,0 {
+               compatible = "fsl,mpc8572-fcm-nand",
+                            "fsl,elbc-fcm-nand";
+               reg = <0x4 0x0 0x40000>;
+       };
+
+       nand@5,0 {
+               compatible = "fsl,mpc8572-fcm-nand",
+                            "fsl,elbc-fcm-nand";
+               reg = <0x5 0x0 0x40000>;
+       };
+
+       nand@6,0 {
+               compatible = "fsl,mpc8572-fcm-nand",
+                            "fsl,elbc-fcm-nand";
+               reg = <0x6 0x0 0x40000>;
+       };
+};
+
+&board_soc {
+       enet0: ethernet@24000 {
+               tbi-handle = <&tbi0>;
+               phy-handle = <&phy0>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       mdio@24520 {
+               phy0: ethernet-phy@0 {
+                       interrupts = <10 1 0 0>;
+                       reg = <0x0>;
+               };
+               phy1: ethernet-phy@1 {
+                       interrupts = <10 1 0 0>;
+                       reg = <0x1>;
+               };
+               phy2: ethernet-phy@2 {
+                       interrupts = <10 1 0 0>;
+                       reg = <0x2>;
+               };
+               phy3: ethernet-phy@3 {
+                       interrupts = <10 1 0 0>;
+                       reg = <0x3>;
+               };
+
+               tbi0: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       ptp_clock@24e00 {
+               fsl,tclk-period = <5>;
+               fsl,tmr-prsc = <200>;
+               fsl,tmr-add = <0xAAAAAAAB>;
+               fsl,tmr-fiper1 = <0x3B9AC9FB>;
+               fsl,tmr-fiper2 = <0x3B9AC9FB>;
+               fsl,max-adj = <499999999>;
+       };
+
+       enet1: ethernet@25000 {
+               tbi-handle = <&tbi1>;
+               phy-handle = <&phy1>;
+               phy-connection-type = "rgmii-id";
+
+       };
+
+       mdio@25520 {
+               tbi1: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       enet2: ethernet@26000 {
+               tbi-handle = <&tbi2>;
+               phy-handle = <&phy2>;
+               phy-connection-type = "rgmii-id";
+
+       };
+       mdio@26520 {
+               tbi2: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       enet3: ethernet@27000 {
+               tbi-handle = <&tbi3>;
+               phy-handle = <&phy3>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       mdio@27520 {
+               tbi3: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+};
+
+&board_pci0 {
+       pcie@0 {
+               interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
+               interrupt-map = <
+                       /* IDSEL 0x11 func 0 - PCI slot 1 */
+                       0x8800 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8800 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8800 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8800 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x11 func 1 - PCI slot 1 */
+                       0x8900 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8900 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8900 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8900 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x11 func 2 - PCI slot 1 */
+                       0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x11 func 3 - PCI slot 1 */
+                       0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x11 func 4 - PCI slot 1 */
+                       0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x11 func 5 - PCI slot 1 */
+                       0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x11 func 6 - PCI slot 1 */
+                       0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x11 func 7 - PCI slot 1 */
+                       0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1 0 0
+                       0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1 0 0
+                       0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1 0 0
+                       0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1 0 0
+
+                       /* IDSEL 0x12 func 0 - PCI slot 2 */
+                       0x9000 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9000 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9000 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9000 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       /* IDSEL 0x12 func 1 - PCI slot 2 */
+                       0x9100 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9100 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9100 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9100 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       /* IDSEL 0x12 func 2 - PCI slot 2 */
+                       0x9200 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9200 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9200 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9200 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       /* IDSEL 0x12 func 3 - PCI slot 2 */
+                       0x9300 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9300 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9300 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9300 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       /* IDSEL 0x12 func 4 - PCI slot 2 */
+                       0x9400 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9400 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9400 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9400 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       /* IDSEL 0x12 func 5 - PCI slot 2 */
+                       0x9500 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9500 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9500 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9500 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       /* IDSEL 0x12 func 6 - PCI slot 2 */
+                       0x9600 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9600 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9600 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9600 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       /* IDSEL 0x12 func 7 - PCI slot 2 */
+                       0x9700 0x0 0x0 0x1 &mpic 0x3 0x1 0 0
+                       0x9700 0x0 0x0 0x2 &mpic 0x4 0x1 0 0
+                       0x9700 0x0 0x0 0x3 &mpic 0x1 0x1 0 0
+                       0x9700 0x0 0x0 0x4 &mpic 0x2 0x1 0 0
+
+                       // IDSEL 0x1c  USB
+                       0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
+                       0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
+                       0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
+                       0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
+
+                       // IDSEL 0x1d  Audio
+                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
+
+                       // IDSEL 0x1e Legacy
+                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
+                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
+
+                       // IDSEL 0x1f IDE/SATA
+                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
+                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
+                       >;
+
+
+               uli1575@0 {
+                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                       #size-cells = <2>;
+                       #address-cells = <3>;
+                       ranges = <0x2000000 0x0 0x80000000
+                                 0x2000000 0x0 0x80000000
+                                 0x0 0x20000000
+
+                                 0x1000000 0x0 0x0
+                                 0x1000000 0x0 0x0
+                                 0x0 0x10000>;
+                       isa@1e {
+                               device_type = "isa";
+                               #interrupt-cells = <2>;
+                               #size-cells = <1>;
+                               #address-cells = <2>;
+                               reg = <0xf000 0x0 0x0 0x0 0x0>;
+                               ranges = <0x1 0x0 0x1000000 0x0 0x0
+                                         0x1000>;
+                               interrupt-parent = <&i8259>;
+
+                               i8259: interrupt-controller@20 {
+                                       reg = <0x1 0x20 0x2
+                                              0x1 0xa0 0x2
+                                              0x1 0x4d0 0x2>;
+                                       interrupt-controller;
+                                       device_type = "interrupt-controller";
+                                       #address-cells = <0>;
+                                       #interrupt-cells = <2>;
+                                       compatible = "chrp,iic";
+                                       interrupts = <9 2 0 0>;
+                                       interrupt-parent = <&mpic>;
+                               };
+
+                               i8042@60 {
+                                       #size-cells = <0>;
+                                       #address-cells = <1>;
+                                       reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
+                                       interrupts = <1 3 12 3>;
+                                       interrupt-parent =
+                                               <&i8259>;
+
+                                       keyboard@0 {
+                                               reg = <0x0>;
+                                               compatible = "pnpPNP,303";
+                                       };
+
+                                       mouse@1 {
+                                               reg = <0x1>;
+                                               compatible = "pnpPNP,f03";
+                                       };
+                               };
+
+                               rtc@70 {
+                                       compatible = "pnpPNP,b00";
+                                       reg = <0x1 0x70 0x2>;
+                               };
+
+                               gpio@400 {
+                                       reg = <0x1 0x400 0x80>;
+                               };
+                       };
+               };
+       };
+};
index f6365db3b97dbc62eed6d565f0d21c6b886f8ebb..6c3d0b305e1b21c3519f16539bb9f963ce948583 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * MPC8572 DS Device Tree Source
+ * MPC8572DS Device Tree Source (36-bit address map)
  *
  * Copyright 2007-2009 Freescale Semiconductor Inc.
  *
@@ -9,67 +9,18 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/mpc8572si-pre.dtsi"
+
 / {
        model = "fsl,MPC8572DS";
        compatible = "fsl,MPC8572DS";
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
-               ethernet3 = &enet3;
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,8572@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
-               };
-
-               PowerPC,8572@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
-               };
-       };
 
        memory {
                device_type = "memory";
        };
 
-       localbus@fffe05000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
+       board_lbc: lbc: localbus@fffe05000 {
                reg = <0xf 0xffe05000 0 0x1000>;
-               interrupts = <19 2>;
-               interrupt-parent = <&mpic>;
 
                ranges = <0x0 0x0 0xf 0xe8000000 0x08000000
                          0x1 0x0 0xf 0xe0000000 0x08000000
                          0x4 0x0 0xf 0xffa40000 0x00040000
                          0x5 0x0 0xf 0xffa80000 0x00040000
                          0x6 0x0 0xf 0xffac0000 0x00040000>;
-
-               nor@0,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "cfi-flash";
-                       reg = <0x0 0x0 0x8000000>;
-                       bank-width = <2>;
-                       device-width = <1>;
-
-                       ramdisk@0 {
-                               reg = <0x0 0x03000000>;
-                               read-only;
-                       };
-
-                       diagnostic@3000000 {
-                               reg = <0x03000000 0x00e00000>;
-                               read-only;
-                       };
-
-                       dink@3e00000 {
-                               reg = <0x03e00000 0x00200000>;
-                               read-only;
-                       };
-
-                       kernel@4000000 {
-                               reg = <0x04000000 0x00400000>;
-                               read-only;
-                       };
-
-                       jffs2@4400000 {
-                               reg = <0x04400000 0x03b00000>;
-                       };
-
-                       dtb@7f00000 {
-                               reg = <0x07f00000 0x00080000>;
-                               read-only;
-                       };
-
-                       u-boot@7f80000 {
-                               reg = <0x07f80000 0x00080000>;
-                               read-only;
-                       };
-               };
-
-               nand@2,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x2 0x0 0x40000>;
-
-                       u-boot@0 {
-                               reg = <0x0 0x02000000>;
-                               read-only;
-                       };
-
-                       jffs2@2000000 {
-                               reg = <0x02000000 0x10000000>;
-                       };
-
-                       ramdisk@12000000 {
-                               reg = <0x12000000 0x08000000>;
-                               read-only;
-                       };
-
-                       kernel@1a000000 {
-                               reg = <0x1a000000 0x04000000>;
-                       };
-
-                       dtb@1e000000 {
-                               reg = <0x1e000000 0x01000000>;
-                               read-only;
-                       };
-
-                       empty@1f000000 {
-                               reg = <0x1f000000 0x21000000>;
-                       };
-               };
-
-               nand@4,0 {
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x4 0x0 0x40000>;
-               };
-
-               nand@5,0 {
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x5 0x0 0x40000>;
-               };
-
-               nand@6,0 {
-                       compatible = "fsl,mpc8572-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x6 0x0 0x40000>;
-               };
        };
 
-       soc8572@fffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
+       board_soc: soc: soc8572@fffe00000 {
                ranges = <0x0 0xf 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8572-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8572-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               memory-controller@6000 {
-                       compatible = "fsl,mpc8572-memory-controller";
-                       reg = <0x6000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8572-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x100000>; // L2, 1M
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               dma@c300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
-                       reg = <0xc300 0x4>;
-                       ranges = <0x0 0xc100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <76 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <77 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <78 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <79 2>;
-                       };
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi0>;
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@0 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x0>;
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x1>;
-                               };
-                               phy2: ethernet-phy@2 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x2>;
-                               };
-                               phy3: ethernet-phy@3 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x3>;
-                               };
-
-                               tbi0: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet1: ethernet@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x25000 0x1000>;
-                       ranges = <0x0 0x25000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <35 2 36 2 40 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi1>;
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi1: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet2: ethernet@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <2>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       ranges = <0x0 0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi2>;
-                       phy-handle = <&phy2>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi2: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               enet3: ethernet@27000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <3>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x27000 0x1000>;
-                       ranges = <0x0 0x27000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <37 2 38 2 39 2>;
-                       interrupt-parent = <&mpic>;
-                       tbi-handle = <&tbi3>;
-                       phy-handle = <&phy3>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-tbi";
-                               reg = <0x520 0x20>;
-
-                               tbi3: tbi-phy@11 {
-                                       reg = <0x11>;
-                                       device_type = "tbi-phy";
-                               };
-                       };
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,mpc8572-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-
-               msi@41600 {
-                       compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
-                                    "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0x9fe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
        };
 
-       pci0: pcie@fffe08000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
+       board_pci0: pci0: pcie@fffe08000 {
                reg = <0xf 0xffe08000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <24 2>;
-               interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x11 func 0 - PCI slot 1 */
-                       0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8800 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 1 - PCI slot 1 */
-                       0x8900 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8900 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8900 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8900 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 2 - PCI slot 1 */
-                       0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 3 - PCI slot 1 */
-                       0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 4 - PCI slot 1 */
-                       0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 5 - PCI slot 1 */
-                       0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 6 - PCI slot 1 */
-                       0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 7 - PCI slot 1 */
-                       0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x12 func 0 - PCI slot 2 */
-                       0x9000 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9000 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9000 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9000 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 1 - PCI slot 2 */
-                       0x9100 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9100 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9100 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9100 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 2 - PCI slot 2 */
-                       0x9200 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9200 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9200 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9200 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 3 - PCI slot 2 */
-                       0x9300 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9300 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9300 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9300 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 4 - PCI slot 2 */
-                       0x9400 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9400 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9400 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9400 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 5 - PCI slot 2 */
-                       0x9500 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9500 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9500 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9500 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 6 - PCI slot 2 */
-                       0x9600 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9600 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9600 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9600 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 7 - PCI slot 2 */
-                       0x9700 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9700 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9700 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9700 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       // IDSEL 0x1c  USB
-                       0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
-                       0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
-                       0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
-                       0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
-
-                       // IDSEL 0x1d  Audio
-                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
-
-                       // IDSEL 0x1e Legacy
-                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
-                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
-
-                       // IDSEL 0x1f IDE/SATA
-                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
-                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
-
-                       >;
-
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xe0000000
                                  0x2000000 0x0 0xe0000000
                                  0x0 0x20000000
                                  0x1000000 0x0 0x0
                                  0x1000000 0x0 0x0
                                  0x0 0x10000>;
-                       uli1575@0 {
-                               reg = <0x0 0x0 0x0 0x0 0x0>;
-                               #size-cells = <2>;
-                               #address-cells = <3>;
-                               ranges = <0x2000000 0x0 0xe0000000
-                                         0x2000000 0x0 0xe0000000
-                                         0x0 0x20000000
-
-                                         0x1000000 0x0 0x0
-                                         0x1000000 0x0 0x0
-                                         0x0 0x10000>;
-                               isa@1e {
-                                       device_type = "isa";
-                                       #interrupt-cells = <2>;
-                                       #size-cells = <1>;
-                                       #address-cells = <2>;
-                                       reg = <0xf000 0x0 0x0 0x0 0x0>;
-                                       ranges = <0x1 0x0 0x1000000 0x0 0x0
-                                                 0x1000>;
-                                       interrupt-parent = <&i8259>;
-
-                                       i8259: interrupt-controller@20 {
-                                               reg = <0x1 0x20 0x2
-                                                      0x1 0xa0 0x2
-                                                      0x1 0x4d0 0x2>;
-                                               interrupt-controller;
-                                               device_type = "interrupt-controller";
-                                               #address-cells = <0>;
-                                               #interrupt-cells = <2>;
-                                               compatible = "chrp,iic";
-                                               interrupts = <9 2>;
-                                               interrupt-parent = <&mpic>;
-                                       };
-
-                                       i8042@60 {
-                                               #size-cells = <0>;
-                                               #address-cells = <1>;
-                                               reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
-                                               interrupts = <1 3 12 3>;
-                                               interrupt-parent =
-                                                       <&i8259>;
-
-                                               keyboard@0 {
-                                                       reg = <0x0>;
-                                                       compatible = "pnpPNP,303";
-                                               };
-
-                                               mouse@1 {
-                                                       reg = <0x1>;
-                                                       compatible = "pnpPNP,f03";
-                                               };
-                                       };
-
-                                       rtc@70 {
-                                               compatible = "pnpPNP,b00";
-                                               reg = <0x1 0x70 0x2>;
-                                       };
-
-                                       gpio@400 {
-                                               reg = <0x1 0x400 0x80>;
-                                       };
-                               };
-                       };
                };
-
        };
 
        pci1: pcie@fffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0xf 0xffe09000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <25 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xe0000000
                                  0x2000000 0x0 0xe0000000
                                  0x0 0x20000000
        };
 
        pci2: pcie@fffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0xf 0xffe0a000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xe0000000 0xc 0x40000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x00010000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xe0000000
                                  0x2000000 0x0 0xe0000000
                                  0x0 0x20000000
                };
        };
 };
+
+/*
+ * mpc8572ds.dtsi must be last to ensure board_pci0 overrides pci0 settings
+ * for interrupt-map & interrupt-map-mask
+ */
+
+/include/ "fsl/mpc8572si-post.dtsi"
+/include/ "mpc8572ds.dtsi"
index 3375c2ab0c32862ca9111a5e9b08267c5a089ba6..d34d12712125ea398e1d2fccfee5c8dce715bf8b 100644 (file)
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "mpc8572ds.dts"
+
 / {
        model = "fsl,MPC8572DS";
        compatible = "fsl,MPC8572DS", "fsl,MPC8572DS-CAMP";
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               serial0 = &serial0;
-               pci0 = &pci0;
-               pci1 = &pci1;
-       };
 
        cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
                PowerPC,8572@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
                };
-
+               PowerPC,8572@1 {
+                       status = "disabled";
+               };
        };
 
-       memory {
-               device_type = "memory";
-               reg = <0x0 0x0>;        // Filled by U-Boot
+       localbus@ffe05000 {
+               status = "disabled";
        };
 
        soc8572@ffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
+               serial@4600 {
+                       status = "disabled";
                };
-
-               ecm@1000 {
-                       compatible = "fsl,mpc8572-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
+               dma@c300 {
+                       status = "disabled";
                };
-
-               memory-controller@2000 {
-                       compatible = "fsl,mpc8572-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
+               gpio-controller@f000 {
                };
-
-               memory-controller@6000 {
-                       compatible = "fsl,mpc8572-memory-controller";
-                       reg = <0x6000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8572-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
+               l2-cache-controller@20000 {
                        cache-size = <0x80000>; // L2, 512K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
                };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
+               ethernet@26000 {
+                       status = "disabled";
                };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
+               mdio@26520 {
+                       status = "disabled";
                };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
+               ethernet@27000 {
+                       status = "disabled";
                };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "rgmii-id";
-
-                       mdio@520 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "fsl,gianfar-mdio";
-                               reg = <0x520 0x20>;
-
-                               phy0: ethernet-phy@0 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x0>;
-                               };
-                               phy1: ethernet-phy@1 {
-                                       interrupt-parent = <&mpic>;
-                                       interrupts = <10 1>;
-                                       reg = <0x1>;
-                               };
-                       };
+               mdio@27520 {
+                       status = "disabled";
                };
-
-               enet1: ethernet@25000 {
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x25000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <35 2 36 2 40 2>;
-                       interrupt-parent = <&mpic>;
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
+               pic@40000 {
+                       protected-sources = <
+                       31 32 33 37 38 39       /* enet2 enet3 */
+                       76 77 78 79 26 42       /* dma2 pci2 serial*/
+                       0xe4 0xe5 0xe6 0xe7     /* msi */
+                       >;
                };
 
                msi@41600 {
-                       compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
                        msi-available-ranges = <0 0x80>;
                        interrupts = <
                                0xe0 0
                                0xe1 0
                                0xe2 0
                                0xe3 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,mpc8572-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
-                                    "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0x9fe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-                       protected-sources = <
-                       31 32 33 37 38 39       /* enet2 enet3 */
-                       76 77 78 79 26 42       /* dma2 pci2 serial*/
-                       0xe4 0xe5 0xe6 0xe7     /* msi */
-                       >;
                };
-       };
-
-       pci0: pcie@ffe08000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xffe08000 0x1000>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
-                         0x1000000 0x0 0x0 0xffc00000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <24 2>;
-               interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x11 func 0 - PCI slot 1 */
-                       0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8800 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 1 - PCI slot 1 */
-                       0x8900 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8900 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8900 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8900 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 2 - PCI slot 1 */
-                       0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 3 - PCI slot 1 */
-                       0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 4 - PCI slot 1 */
-                       0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 5 - PCI slot 1 */
-                       0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 6 - PCI slot 1 */
-                       0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x11 func 7 - PCI slot 1 */
-                       0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1
-                       0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1
-                       0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1
-                       0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1
-
-                       /* IDSEL 0x12 func 0 - PCI slot 2 */
-                       0x9000 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9000 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9000 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9000 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 1 - PCI slot 2 */
-                       0x9100 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9100 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9100 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9100 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 2 - PCI slot 2 */
-                       0x9200 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9200 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9200 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9200 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 3 - PCI slot 2 */
-                       0x9300 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9300 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9300 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9300 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 4 - PCI slot 2 */
-                       0x9400 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9400 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9400 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9400 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 5 - PCI slot 2 */
-                       0x9500 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9500 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9500 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9500 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 6 - PCI slot 2 */
-                       0x9600 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9600 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9600 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9600 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       /* IDSEL 0x12 func 7 - PCI slot 2 */
-                       0x9700 0x0 0x0 0x1 &mpic 0x3 0x1
-                       0x9700 0x0 0x0 0x2 &mpic 0x4 0x1
-                       0x9700 0x0 0x0 0x3 &mpic 0x1 0x1
-                       0x9700 0x0 0x0 0x4 &mpic 0x2 0x1
-
-                       // IDSEL 0x1c  USB
-                       0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
-                       0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
-                       0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
-                       0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
-
-                       // IDSEL 0x1d  Audio
-                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
-
-                       // IDSEL 0x1e Legacy
-                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
-                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
-
-                       // IDSEL 0x1f IDE/SATA
-                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
-                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
-
-                       >;
-
-               pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       ranges = <0x2000000 0x0 0x80000000
-                                 0x2000000 0x0 0x80000000
-                                 0x0 0x20000000
-
-                                 0x1000000 0x0 0x0
-                                 0x1000000 0x0 0x0
-                                 0x0 0x10000>;
-                       uli1575@0 {
-                               reg = <0x0 0x0 0x0 0x0 0x0>;
-                               #size-cells = <2>;
-                               #address-cells = <3>;
-                               ranges = <0x2000000 0x0 0x80000000
-                                         0x2000000 0x0 0x80000000
-                                         0x0 0x20000000
-
-                                         0x1000000 0x0 0x0
-                                         0x1000000 0x0 0x0
-                                         0x0 0x10000>;
-                               isa@1e {
-                                       device_type = "isa";
-                                       #interrupt-cells = <2>;
-                                       #size-cells = <1>;
-                                       #address-cells = <2>;
-                                       reg = <0xf000 0x0 0x0 0x0 0x0>;
-                                       ranges = <0x1 0x0 0x1000000 0x0 0x0
-                                                 0x1000>;
-                                       interrupt-parent = <&i8259>;
-
-                                       i8259: interrupt-controller@20 {
-                                               reg = <0x1 0x20 0x2
-                                                      0x1 0xa0 0x2
-                                                      0x1 0x4d0 0x2>;
-                                               interrupt-controller;
-                                               device_type = "interrupt-controller";
-                                               #address-cells = <0>;
-                                               #interrupt-cells = <2>;
-                                               compatible = "chrp,iic";
-                                               interrupts = <9 2>;
-                                               interrupt-parent = <&mpic>;
-                                       };
-
-                                       i8042@60 {
-                                               #size-cells = <0>;
-                                               #address-cells = <1>;
-                                               reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
-                                               interrupts = <1 3 12 3>;
-                                               interrupt-parent =
-                                                       <&i8259>;
-
-                                               keyboard@0 {
-                                                       reg = <0x0>;
-                                                       compatible = "pnpPNP,303";
-                                               };
-
-                                               mouse@1 {
-                                                       reg = <0x1>;
-                                                       compatible = "pnpPNP,f03";
-                                               };
-                                       };
-
-                                       rtc@70 {
-                                               compatible = "pnpPNP,b00";
-                                               reg = <0x1 0x70 0x2>;
-                                       };
-
-                                       gpio@400 {
-                                               reg = <0x1 0x400 0x80>;
-                                       };
-                               };
-                       };
+               timer@42100 {
+                       status = "disabled";
                };
-
        };
-
-       pci1: pcie@ffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xffe09000 0x1000>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
-                         0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <25 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
-               pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       ranges = <0x2000000 0x0 0xa0000000
-                                 0x2000000 0x0 0xa0000000
-                                 0x0 0x20000000
-
-                                 0x1000000 0x0 0x0
-                                 0x1000000 0x0 0x0
-                                 0x0 0x10000>;
-               };
+       pcie@ffe0a000 {
+               status = "disabled";
        };
 };
index e7b477f6a3fea32d68aaceb623469c9f8bd0053a..d6a8fafc0d0d5adf9dd69afe894ce734a939d8e2 100644 (file)
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "mpc8572ds.dts"
+
 / {
        model = "fsl,MPC8572DS";
        compatible = "fsl,MPC8572DS", "fsl,MPC8572DS-CAMP";
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       aliases {
-               ethernet2 = &enet2;
-               ethernet3 = &enet3;
-               serial0 = &serial0;
-               pci2 = &pci2;
-       };
 
        cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
+               PowerPC,8572@0 {
+                       status = "disabled";
+               };
                PowerPC,8572@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       d-cache-line-size = <32>;       // 32 bytes
-                       i-cache-line-size = <32>;       // 32 bytes
-                       d-cache-size = <0x8000>;                // L1, 32K
-                       i-cache-size = <0x8000>;                // L1, 32K
-                       timebase-frequency = <0>;
-                       bus-frequency = <0>;
-                       clock-frequency = <0>;
-                       next-level-cache = <&L2>;
                };
        };
 
-       memory {
-               device_type = "memory";
-               reg = <0x0 0x0>;        // Filled by U-Boot
+       localbus@ffe05000 {
+               status = "disabled";
        };
 
        soc8572@ffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,mpc8572-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x80000>; // L2, 512K
-                       interrupt-parent = <&mpic>;
+               ecm-law@0 {
+                       status = "disabled";
                };
-
-               dma@c300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
-                       reg = <0xc300 0x4>;
-                       ranges = <0x0 0xc100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <76 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <77 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <78 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,mpc8572-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <79 2>;
-                       };
+               ecm@1000 {
+                       status = "disabled";
+               };
+               memory-controller@2000 {
+                       status = "disabled";
+               };
+               memory-controller@6000 {
+                       status = "disabled";
+               };
+               i2c@3000 {
+                       status = "disabled";
+               };
+               i2c@3100 {
+                       status = "disabled";
+               };
+               serial@4500 {
+                       status = "disabled";
+               };
+               gpio-controller@f000 {
+                       status = "disabled";
+               };
+               l2-cache-controller@20000 {
+                       cache-size = <0x80000>; // L2, 512K
+               };
+               dma@21300 {
+                       status = "disabled";
+               };
+               ethernet@24000 {
+                       status = "disabled";
                };
-
                mdio@24520 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,gianfar-mdio";
-                       reg = <0x24520 0x20>;
-
-                       phy2: ethernet-phy@2 {
-                               interrupt-parent = <&mpic>;
-                               reg = <0x2>;
-                       };
-                       phy3: ethernet-phy@3 {
-                               interrupt-parent = <&mpic>;
-                               reg = <0x3>;
-                       };
+                       status = "disabled";
                };
-
-               enet2: ethernet@26000 {
-                       cell-index = <2>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
-                       phy-handle = <&phy2>;
-                       phy-connection-type = "rgmii-id";
+               ptp_clock@24e00 {
+                       status = "disabled";
                };
-
-               enet3: ethernet@27000 {
-                       cell-index = <3>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x27000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <37 2 38 2 39 2>;
-                       interrupt-parent = <&mpic>;
-                       phy-handle = <&phy3>;
-                       phy-connection-type = "rgmii-id";
+               ethernet@25000 {
+                       status = "disabled";
                };
-
-               msi@41600 {
-                       compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0x80 0x80>;
-                       interrupts = <
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
+               mdio@25520 {
+                       status = "disabled";
                };
-
-               serial0: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
+               crypto@30000 {
+                       status = "disabled";
                };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
+               pic@40000 {
                        protected-sources = <
                        18 16 10 42 45 58       /* MEM L2 mdio serial crypto */
                        29 30 34 35 36 40       /* enet0 enet1 */
                        0xe0 0xe1 0xe2 0xe3     /* msi */
                        >;
                };
-       };
-
-       pci2: pcie@ffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0xffe0a000 0x1000>;
-               bus-range = <0 255>;
-               ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000
-                         0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
-               pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       ranges = <0x2000000 0x0 0xc0000000
-                                 0x2000000 0x0 0xc0000000
-                                 0x0 0x20000000
-
-                                 0x1000000 0x0 0x0
-                                 0x1000000 0x0 0x0
-                                 0x0 0x10000>;
+               timer@41100 {
+                       status = "disabled";
                };
+               msi@41600 {
+                       msi-available-ranges = <0x80 0x80>;
+                       interrupts = <
+                               0xe4 0
+                               0xe5 0
+                               0xe6 0
+                               0xe7 0>;
+               };
+               global-utilities@e0000 {
+                       status = "disabled";
+               };
+       };
+       pcie@ffe08000 {
+               status = "disabled";
+       };
+       pcie@ffe09000 {
+               status = "disabled";
        };
 };
index 848320e4d3c4060049e6d78b1449aa24a62b8606..fb8640e0c5b8ca4ea37b61ae3f79e5e4f8bfbe5e 100644 (file)
                serial1 = &serial1;
                pci0 = &pci0;
                pci1 = &pci1;
-/*
- * Only one of Rapid IO or PCI can be present due to HW limitations and
- * due to the fact that the 2 now share address space in the new memory
- * map.  The most likely case is that we have PCI, so comment out the
- * rapidio node.  Leave it here for reference.
- */
-               /* rapidio0 = &rapidio0; */
        };
 
        cpus {
                        device_type = "open-pic";
                };
 
+               rmu: rmu@d3000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,srio-rmu";
+                       reg = <0xd3000 0x500>;
+                       ranges = <0x0 0xd3000 0x500>;
+
+                       message-unit@0 {
+                               compatible = "fsl,srio-msg-unit";
+                               reg = <0x0 0x100>;
+                               interrupts = <
+                                       53 2 /* msg1_tx_irq */
+                                       54 2>;/* msg1_rx_irq */
+                       };
+                       message-unit@100 {
+                               compatible = "fsl,srio-msg-unit";
+                               reg = <0x100 0x100>;
+                               interrupts = <
+                                       55 2  /* msg2_tx_irq */
+                                       56 2>;/* msg2_rx_irq */
+                       };
+                       doorbell-unit@400 {
+                               compatible = "fsl,srio-dbell-unit";
+                               reg = <0x400 0x80>;
+                               interrupts = <
+                                       49 2  /* bell_outb_irq */
+                                       50 2>;/* bell_inb_irq */
+                       };
+                       port-write-unit@4e0 {
+                               compatible = "fsl,srio-port-write-unit";
+                               reg = <0x4e0 0x20>;
+                               interrupts = <48 2>;
+                       };
+               };
+
                global-utilities@e0000 {
                        compatible = "fsl,mpc8641-guts";
                        reg = <0xe0000 0x1000>;
                };
        };
 /*
-       rapidio0: rapidio@ffec0000 {
+ * Only one of Rapid IO or PCI can be present due to HW limitations and
+ * due to the fact that the 2 now share address space in the new memory
+ * map.  The most likely case is that we have PCI, so comment out the
+ * rapidio node.  Leave it here for reference.
+
+       rapidio@ffec0000 {
+               reg = <0xffec0000 0x11000>;
+               compatible = "fsl,srio";
+               interrupt-parent = <&mpic>;
+               interrupts = <48 2>;
                #address-cells = <2>;
                #size-cells = <2>;
-               compatible = "fsl,rapidio-delta";
-               reg = <0xffec0000 0x20000>;
-               ranges = <0 0 0x80000000 0 0x20000000>;
-               interrupt-parent = <&mpic>;
-               // err_irq bell_outb_irq bell_inb_irq
-               //      msg1_tx_irq msg1_rx_irq msg2_tx_irq msg2_rx_irq
-               interrupts = <48 2 49 2 50 2 53 2 54 2 55 2 56 2>;
+               fsl,srio-rmu-handle = <&rmu>;
+               ranges;
+
+               port1 {
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       cell-index = <1>;
+                       ranges = <0 0 0x80000000 0 0x20000000>;
+               };
        };
 */
 
index d6c669c888e9f9571595e0bc4a70b66ee1e20607..b868d22984e961eb9c05a7d7340c8accd5ef89e0 100644 (file)
  * option) any later version.
  */
 
-/include/ "p1010si.dtsi"
+/include/ "fsl/p1010si-pre.dtsi"
 
 / {
        model = "fsl,P1010RDB";
        compatible = "fsl,P1010RDB";
 
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               can0 = &can0;
-               can1 = &can1;
-       };
-
        memory {
                device_type = "memory";
        };
 
-       ifc@ffe1e000 {
+       board_ifc: ifc: ifc@ffe1e000 {
                /* NOR, NAND Flashes and CPLD on board */
                ranges = <0x0 0x0 0x0 0xee000000 0x02000000
                          0x1 0x0 0x0 0xff800000 0x00010000
                          0x3 0x0 0x0 0xffb00000 0x00000020>;
-
-               nor@0,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "cfi-flash";
-                       reg = <0x0 0x0 0x2000000>;
-                       bank-width = <2>;
-                       device-width = <1>;
-
-                       partition@40000 {
-                               /* 256KB for DTB Image */
-                               reg = <0x00040000 0x00040000>;
-                               label = "NOR DTB Image";
-                       };
-
-                       partition@80000 {
-                               /* 7 MB for Linux Kernel Image */
-                               reg = <0x00080000 0x00700000>;
-                               label = "NOR Linux Kernel Image";
-                       };
-
-                       partition@800000 {
-                               /* 20MB for JFFS2 based Root file System */
-                               reg = <0x00800000 0x01400000>;
-                               label = "NOR JFFS2 Root File System";
-                       };
-
-                       partition@1f00000 {
-                               /* This location must not be altered  */
-                               /* 512KB for u-boot Bootloader Image */
-                               /* 512KB for u-boot Environment Variables */
-                               reg = <0x01f00000 0x00100000>;
-                               label = "NOR U-Boot Image";
-                               read-only;
-                       };
-               };
-
-               nand@1,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,ifc-nand";
-                       reg = <0x1 0x0 0x10000>;
-
-                       partition@0 {
-                               /* This location must not be altered  */
-                               /* 1MB for u-boot Bootloader Image */
-                               reg = <0x0 0x00100000>;
-                               label = "NAND U-Boot Image";
-                               read-only;
-                       };
-
-                       partition@100000 {
-                               /* 1MB for DTB Image */
-                               reg = <0x00100000 0x00100000>;
-                               label = "NAND DTB Image";
-                       };
-
-                       partition@200000 {
-                               /* 4MB for Linux Kernel Image */
-                               reg = <0x00200000 0x00400000>;
-                               label = "NAND Linux Kernel Image";
-                       };
-
-                       partition@600000 {
-                               /* 4MB for Compressed Root file System Image */
-                               reg = <0x00600000 0x00400000>;
-                               label = "NAND Compressed RFS Image";
-                       };
-
-                       partition@a00000 {
-                               /* 15MB for JFFS2 based Root file System */
-                               reg = <0x00a00000 0x00f00000>;
-                               label = "NAND JFFS2 Root File System";
-                       };
-
-                       partition@1900000 {
-                               /* 7MB for User Area */
-                               reg = <0x01900000 0x00700000>;
-                               label = "NAND User area";
-                       };
-               };
-
-               cpld@3,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p1010rdb-cpld";
-                       reg = <0x3 0x0 0x0000020>;
-                       bank-width = <1>;
-                       device-width = <1>;
-               };
+               reg = <0x0 0xffe1e000 0 0x2000>;
        };
 
-       soc@ffe00000 {
-               spi@7000 {
-                       flash@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "spansion,s25sl12801";
-                               reg = <0>;
-                               spi-max-frequency = <50000000>;
-
-                               partition@0 {
-                                       /* 1MB for u-boot Bootloader Image */
-                                       /* 1MB for Environment */
-                                       reg = <0x0 0x00100000>;
-                                       label = "SPI Flash U-Boot Image";
-                                       read-only;
-                               };
-
-                               partition@100000 {
-                                       /* 512KB for DTB Image */
-                                       reg = <0x00100000 0x00080000>;
-                                       label = "SPI Flash DTB Image";
-                               };
-
-                               partition@180000 {
-                                       /* 4MB for Linux Kernel Image */
-                                       reg = <0x00180000 0x00400000>;
-                                       label = "SPI Flash Linux Kernel Image";
-                               };
-
-                               partition@580000 {
-                                       /* 4MB for Compressed RFS Image */
-                                       reg = <0x00580000 0x00400000>;
-                                       label = "SPI Flash Compressed RFSImage";
-                               };
-
-                               partition@980000 {
-                                       /* 6.5MB for JFFS2 based RFS */
-                                       reg = <0x00980000 0x00680000>;
-                                       label = "SPI Flash JFFS2 RFS";
-                               };
-                       };
-               };
-
-               usb@22000 {
-                       phy_type = "utmi";
-               };
-
-               mdio@24000 {
-                       phy0: ethernet-phy@0 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x1>;
-                       };
-
-                       phy1: ethernet-phy@1 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
-                               reg = <0x0>;
-                       };
-
-                       phy2: ethernet-phy@2 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
-                               reg = <0x2>;
-                       };
-               };
-
-               enet0: ethernet@b0000 {
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "rgmii-id";
-               };
-
-               enet1: ethernet@b1000 {
-                       phy-handle = <&phy1>;
-                       tbi-handle = <&tbi0>;
-                       phy-connection-type = "sgmii";
-               };
-
-               enet2: ethernet@b2000 {
-                       phy-handle = <&phy2>;
-                       tbi-handle = <&tbi1>;
-                       phy-connection-type = "sgmii";
-               };
+       board_soc: soc: soc@ffe00000 {
+               ranges = <0x0 0x0 0xffe00000 0x100000>;
        };
 
        pci0: pcie@ffe09000 {
+               reg = <0 0xffe09000 0 0x1000>;
                ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-                       interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-                       interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
-
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
        };
 
        pci1: pcie@ffe0a000 {
+               reg = <0 0xffe0a000 0 0x1000>;
                ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-                       interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-                       interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
                        ranges = <0x2000000 0x0 0x80000000
                                  0x2000000 0x0 0x80000000
                                  0x0 0x20000000
                };
        };
 };
+
+/include/ "p1010rdb.dtsi"
+/include/ "fsl/p1010si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p1010rdb.dtsi b/arch/powerpc/boot/dts/p1010rdb.dtsi
new file mode 100644 (file)
index 0000000..3aa2b82
--- /dev/null
@@ -0,0 +1,229 @@
+/*
+ * P1010 RDB Device Tree Source stub (no addresses or top-level ranges)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&board_ifc {
+       nor@0,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "cfi-flash";
+               reg = <0x0 0x0 0x2000000>;
+               bank-width = <2>;
+               device-width = <1>;
+
+               partition@40000 {
+                       /* 256KB for DTB Image */
+                       reg = <0x00040000 0x00040000>;
+                       label = "NOR DTB Image";
+               };
+
+               partition@80000 {
+                       /* 7 MB for Linux Kernel Image */
+                       reg = <0x00080000 0x00700000>;
+                       label = "NOR Linux Kernel Image";
+               };
+
+               partition@800000 {
+                       /* 20MB for JFFS2 based Root file System */
+                       reg = <0x00800000 0x01400000>;
+                       label = "NOR JFFS2 Root File System";
+               };
+
+               partition@1f00000 {
+                       /* This location must not be altered  */
+                       /* 512KB for u-boot Bootloader Image */
+                       /* 512KB for u-boot Environment Variables */
+                       reg = <0x01f00000 0x00100000>;
+                       label = "NOR U-Boot Image";
+                       read-only;
+               };
+       };
+
+       nand@1,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,ifc-nand";
+               reg = <0x1 0x0 0x10000>;
+
+               partition@0 {
+                       /* This location must not be altered  */
+                       /* 1MB for u-boot Bootloader Image */
+                       reg = <0x0 0x00100000>;
+                       label = "NAND U-Boot Image";
+                       read-only;
+               };
+
+               partition@100000 {
+                       /* 1MB for DTB Image */
+                       reg = <0x00100000 0x00100000>;
+                       label = "NAND DTB Image";
+               };
+
+               partition@200000 {
+                       /* 4MB for Linux Kernel Image */
+                       reg = <0x00200000 0x00400000>;
+                       label = "NAND Linux Kernel Image";
+               };
+
+               partition@600000 {
+                       /* 4MB for Compressed Root file System Image */
+                       reg = <0x00600000 0x00400000>;
+                       label = "NAND Compressed RFS Image";
+               };
+
+               partition@a00000 {
+                       /* 15MB for JFFS2 based Root file System */
+                       reg = <0x00a00000 0x00f00000>;
+                       label = "NAND JFFS2 Root File System";
+               };
+
+               partition@1900000 {
+                       /* 7MB for User Area */
+                       reg = <0x01900000 0x00700000>;
+                       label = "NAND User area";
+               };
+       };
+
+       cpld@3,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,p1010rdb-cpld";
+               reg = <0x3 0x0 0x0000020>;
+               bank-width = <1>;
+               device-width = <1>;
+       };
+};
+
+&board_soc {
+       i2c@3000 {
+               rtc@68 {
+                       compatible = "pericom,pt7c4338";
+                       reg = <0x68>;
+               };
+       };
+
+       spi@7000 {
+               flash@0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "spansion,s25sl12801";
+                       reg = <0>;
+                       spi-max-frequency = <50000000>;
+
+                       partition@0 {
+                               /* 1MB for u-boot Bootloader Image */
+                               /* 1MB for Environment */
+                               reg = <0x0 0x00100000>;
+                               label = "SPI Flash U-Boot Image";
+                               read-only;
+                       };
+
+                       partition@100000 {
+                               /* 512KB for DTB Image */
+                               reg = <0x00100000 0x00080000>;
+                               label = "SPI Flash DTB Image";
+                       };
+
+                       partition@180000 {
+                               /* 4MB for Linux Kernel Image */
+                               reg = <0x00180000 0x00400000>;
+                               label = "SPI Flash Linux Kernel Image";
+                       };
+
+                       partition@580000 {
+                               /* 4MB for Compressed RFS Image */
+                               reg = <0x00580000 0x00400000>;
+                               label = "SPI Flash Compressed RFSImage";
+                       };
+
+                       partition@980000 {
+                               /* 6.5MB for JFFS2 based RFS */
+                               reg = <0x00980000 0x00680000>;
+                               label = "SPI Flash JFFS2 RFS";
+                       };
+               };
+       };
+
+       usb@22000 {
+               phy_type = "utmi";
+               dr_mode = "host";
+       };
+
+       mdio@24000 {
+               phy0: ethernet-phy@0 {
+                       interrupts = <3 1 0 0>;
+                       reg = <0x1>;
+               };
+
+               phy1: ethernet-phy@1 {
+                       interrupts = <2 1 0 0>;
+                       reg = <0x0>;
+               };
+
+               phy2: ethernet-phy@2 {
+                       interrupts = <2 1 0 0>;
+                       reg = <0x2>;
+               };
+       };
+
+       mdio@25000 {
+               tbi0: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       mdio@26000 {
+               tbi1: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       enet0: ethernet@b0000 {
+               phy-handle = <&phy0>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       enet1: ethernet@b1000 {
+               phy-handle = <&phy1>;
+               tbi-handle = <&tbi0>;
+               phy-connection-type = "sgmii";
+       };
+
+       enet2: ethernet@b2000 {
+               phy-handle = <&phy2>;
+               tbi-handle = <&tbi1>;
+               phy-connection-type = "sgmii";
+       };
+};
diff --git a/arch/powerpc/boot/dts/p1010rdb_36b.dts b/arch/powerpc/boot/dts/p1010rdb_36b.dts
new file mode 100644 (file)
index 0000000..64776f4
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * P1010 RDB Device Tree Source (36-bit address map)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/include/ "fsl/p1010si-pre.dtsi"
+
+/ {
+       model = "fsl,P1010RDB";
+       compatible = "fsl,P1010RDB";
+
+       memory {
+               device_type = "memory";
+       };
+
+       board_ifc: ifc: ifc@fffe1e000 {
+               /* NOR, NAND Flashes and CPLD on board */
+               ranges = <0x0 0x0 0xf 0xee000000 0x02000000
+                         0x1 0x0 0xf 0xff800000 0x00010000
+                         0x3 0x0 0xf 0xffb00000 0x00000020>;
+               reg = <0xf 0xffe1e000 0 0x2000>;
+       };
+
+       board_soc: soc: soc@fffe00000 {
+               ranges = <0x0 0xf 0xffe00000 0x100000>;
+       };
+
+       pci0: pcie@fffe09000 {
+               reg = <0xf 0xffe09000 0 0x1000>;
+               ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
+               pcie@0 {
+                       ranges = <0x2000000 0x0 0xc0000000
+                                 0x2000000 0x0 0xc0000000
+                                 0x0 0x20000000
+
+                                 0x1000000 0x0 0x0
+                                 0x1000000 0x0 0x0
+                                 0x0 0x100000>;
+               };
+       };
+
+       pci1: pcie@fffe0a000 {
+               reg = <0xf 0xffe0a000 0 0x1000>;
+               ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
+               pcie@0 {
+                       ranges = <0x2000000 0x0 0xc0000000
+                                 0x2000000 0x0 0xc0000000
+                                 0x0 0x20000000
+
+                                 0x1000000 0x0 0x0
+                                 0x1000000 0x0 0x0
+                                 0x0 0x100000>;
+               };
+       };
+};
+
+/include/ "p1010rdb.dtsi"
+/include/ "fsl/p1010si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p1010si.dtsi b/arch/powerpc/boot/dts/p1010si.dtsi
deleted file mode 100644 (file)
index cabe0a4..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * P1010si Device Tree Source
- *
- * Copyright 2011 Freescale Semiconductor Inc.
- *
- * This program is free software; you can redistribute  it and/or modify it
- * under  the terms of  the GNU General  Public License as published by the
- * Free Software Foundation;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-/dts-v1/;
-/ {
-       compatible = "fsl,P1010";
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,P1010@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       next-level-cache = <&L2>;
-               };
-       };
-
-       ifc@ffe1e000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,ifc", "simple-bus";
-               reg = <0x0 0xffe1e000 0 0x2000>;
-               interrupts = <16 2 19 2>;
-               interrupt-parent = <&mpic>;
-       };
-
-       soc@ffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "fsl,p1010-immr", "simple-bus";
-               ranges = <0x0  0x0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,p1010-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <16 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,p1010-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               spi@7000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,mpc8536-espi";
-                       reg = <0x7000 0x1000>;
-                       interrupts = <59 0x2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,espi-num-chipselects = <1>;
-               };
-
-               gpio: gpio-controller@f000 {
-                       #gpio-cells = <2>;
-                       compatible = "fsl,mpc8572-gpio";
-                       reg = <0xf000 0x100>;
-                       interrupts = <47 0x2>;
-                       interrupt-parent = <&mpic>;
-                       gpio-controller;
-               };
-
-               sata@18000 {
-                       compatible = "fsl,pq-sata-v2";
-                       reg = <0x18000 0x1000>;
-                       cell-index = <1>;
-                       interrupts = <74 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               sata@19000 {
-                       compatible = "fsl,pq-sata-v2";
-                       reg = <0x19000 0x1000>;
-                       cell-index = <2>;
-                       interrupts = <41 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               can0: can@1c000 {
-                       compatible = "fsl,p1010-flexcan";
-                       reg = <0x1c000 0x1000>;
-                       interrupts = <48 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               can1: can@1d000 {
-                       compatible = "fsl,p1010-flexcan";
-                       reg = <0x1d000 0x1000>;
-                       interrupts = <61 0x2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,p1010-l2-cache-controller",
-                                       "fsl,p1014-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x40000>; // L2,256K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p1010-dma", "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,p1010-dma-channel", "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p1010-dma-channel", "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p1010-dma-channel", "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p1010-dma-channel", "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               usb@22000 {
-                       compatible = "fsl-usb2-dr";
-                       reg = <0x22000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <28 0x2>;
-                       dr_mode = "host";
-               };
-
-               mdio@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-mdio";
-                       reg = <0x24000 0x1000 0xb0030 0x4>;
-               };
-
-               mdio@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-tbi";
-                       reg = <0x25000 0x1000 0xb1030 0x4>;
-                       tbi0: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-               };
-
-               mdio@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-tbi";
-                       reg = <0x26000 0x1000 0xb1030 0x4>;
-                       tbi1: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-               };
-
-               sdhci@2e000 {
-                       compatible = "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x8>;
-                       interrupt-parent = <&mpic>;
-                       /* Filled in by U-Boot */
-                       clock-frequency = <0>;
-                       fsl,sdhci-auto-cmd12;
-               };
-
-               enet0: ethernet@b0000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
-
-                       queue-group@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb0000 0x1000>;
-                               fsl,rx-bit-map = <0xff>;
-                               fsl,tx-bit-map = <0xff>;
-                               interrupts = <29 2 30 2 34 2>;
-                       };
-
-               };
-
-               enet1: ethernet@b1000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
-
-                       queue-group@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb1000 0x1000>;
-                               fsl,rx-bit-map = <0xff>;
-                               fsl,tx-bit-map = <0xff>;
-                               interrupts = <35 2 36 2 40 2>;
-                       };
-
-               };
-
-               enet2: ethernet@b2000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
-
-                       queue-group@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb2000 0x1000>;
-                               fsl,rx-bit-map = <0xff>;
-                               fsl,tx-bit-map = <0xff>;
-                               interrupts = <31 2 32 2 33 2>;
-                       };
-
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,p1010-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,p1010-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-       };
-
-       pci0: pcie@ffe09000 {
-               compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe09000 0 0x1000>;
-               bus-range = <0 255>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
-       };
-
-       pci1: pcie@ffe0a000 {
-               compatible = "fsl,p1010-pcie", "fsl,qoriq-pcie-v2.3", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe0a000 0 0x1000>;
-               bus-range = <0 255>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
-       };
-};
index d6a8ae4581370482d3f2b050f472a69c3facf57a..518bf99b1f5082acdded16fbd8c8eca91005b773 100644 (file)
  * option) any later version.
  */
 
-/include/ "p1020si.dtsi"
-
+/include/ "fsl/p1020si-pre.dtsi"
 / {
        model = "fsl,P1020RDB";
        compatible = "fsl,P1020RDB";
 
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
-               pci0 = &pci0;
-               pci1 = &pci1;
-       };
-
        memory {
                device_type = "memory";
        };
 
-       localbus@ffe05000 {
+       board_lbc: lbc: localbus@ffe05000 {
+               reg = <0 0xffe05000 0 0x1000>;
 
                /* NOR, NAND Flashes and Vitesse 5 port L2 switch */
                ranges = <0x0 0x0 0x0 0xef000000 0x01000000
                          0x1 0x0 0x0 0xffa00000 0x00040000
                          0x2 0x0 0x0 0xffb00000 0x00020000>;
-
-               nor@0,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "cfi-flash";
-                       reg = <0x0 0x0 0x1000000>;
-                       bank-width = <2>;
-                       device-width = <1>;
-
-                       partition@0 {
-                               /* This location must not be altered  */
-                               /* 256KB for Vitesse 7385 Switch firmware */
-                               reg = <0x0 0x00040000>;
-                               label = "NOR (RO) Vitesse-7385 Firmware";
-                               read-only;
-                       };
-
-                       partition@40000 {
-                               /* 256KB for DTB Image */
-                               reg = <0x00040000 0x00040000>;
-                               label = "NOR (RO) DTB Image";
-                               read-only;
-                       };
-
-                       partition@80000 {
-                               /* 3.5 MB for Linux Kernel Image */
-                               reg = <0x00080000 0x00380000>;
-                               label = "NOR (RO) Linux Kernel Image";
-                               read-only;
-                       };
-
-                       partition@400000 {
-                               /* 11MB for JFFS2 based Root file System */
-                               reg = <0x00400000 0x00b00000>;
-                               label = "NOR (RW) JFFS2 Root File System";
-                       };
-
-                       partition@f00000 {
-                               /* This location must not be altered  */
-                               /* 512KB for u-boot Bootloader Image */
-                               /* 512KB for u-boot Environment Variables */
-                               reg = <0x00f00000 0x00100000>;
-                               label = "NOR (RO) U-Boot Image";
-                               read-only;
-                       };
-               };
-
-               nand@1,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p1020-fcm-nand",
-                                    "fsl,elbc-fcm-nand";
-                       reg = <0x1 0x0 0x40000>;
-
-                       partition@0 {
-                               /* This location must not be altered  */
-                               /* 1MB for u-boot Bootloader Image */
-                               reg = <0x0 0x00100000>;
-                               label = "NAND (RO) U-Boot Image";
-                               read-only;
-                       };
-
-                       partition@100000 {
-                               /* 1MB for DTB Image */
-                               reg = <0x00100000 0x00100000>;
-                               label = "NAND (RO) DTB Image";
-                               read-only;
-                       };
-
-                       partition@200000 {
-                               /* 4MB for Linux Kernel Image */
-                               reg = <0x00200000 0x00400000>;
-                               label = "NAND (RO) Linux Kernel Image";
-                               read-only;
-                       };
-
-                       partition@600000 {
-                               /* 4MB for Compressed Root file System Image */
-                               reg = <0x00600000 0x00400000>;
-                               label = "NAND (RO) Compressed RFS Image";
-                               read-only;
-                       };
-
-                       partition@a00000 {
-                               /* 7MB for JFFS2 based Root file System */
-                               reg = <0x00a00000 0x00700000>;
-                               label = "NAND (RW) JFFS2 Root File System";
-                       };
-
-                       partition@1100000 {
-                               /* 15MB for JFFS2 based Root file System */
-                               reg = <0x01100000 0x00f00000>;
-                               label = "NAND (RW) Writable User area";
-                       };
-               };
-
-               L2switch@2,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "vitesse-7385";
-                       reg = <0x2 0x0 0x20000>;
-               };
-
        };
 
-       soc@ffe00000 {
-               i2c@3000 {
-                       rtc@68 {
-                               compatible = "dallas,ds1339";
-                               reg = <0x68>;
-                       };
-               };
-
-               spi@7000 {
-
-                       fsl_m25p80@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "fsl,espi-flash";
-                               reg = <0>;
-                               linux,modalias = "fsl_m25p80";
-                               modal = "s25sl128b";
-                               spi-max-frequency = <50000000>;
-                               mode = <0>;
-
-                               partition@0 {
-                                       /* 512KB for u-boot Bootloader Image */
-                                       reg = <0x0 0x00080000>;
-                                       label = "SPI (RO) U-Boot Image";
-                                       read-only;
-                               };
-
-                               partition@80000 {
-                                       /* 512KB for DTB Image */
-                                       reg = <0x00080000 0x00080000>;
-                                       label = "SPI (RO) DTB Image";
-                                       read-only;
-                               };
-
-                               partition@100000 {
-                                       /* 4MB for Linux Kernel Image */
-                                       reg = <0x00100000 0x00400000>;
-                                       label = "SPI (RO) Linux Kernel Image";
-                                       read-only;
-                               };
-
-                               partition@500000 {
-                                       /* 4MB for Compressed RFS Image */
-                                       reg = <0x00500000 0x00400000>;
-                                       label = "SPI (RO) Compressed RFS Image";
-                                       read-only;
-                               };
-
-                               partition@900000 {
-                                       /* 7MB for JFFS2 based RFS */
-                                       reg = <0x00900000 0x00700000>;
-                                       label = "SPI (RW) JFFS2 RFS";
-                               };
-                       };
-               };
-
-               mdio@24000 {
-
-                       phy0: ethernet-phy@0 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x0>;
-                       };
-
-                       phy1: ethernet-phy@1 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
-                               reg = <0x1>;
-                       };
-               };
-
-               mdio@25000 {
-
-                       tbi0: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-               };
-
-               enet0: ethernet@b0000 {
-                       fixed-link = <1 1 1000 0 0>;
-                       phy-connection-type = "rgmii-id";
-
-               };
-
-               enet1: ethernet@b1000 {
-                       phy-handle = <&phy0>;
-                       tbi-handle = <&tbi0>;
-                       phy-connection-type = "sgmii";
-
-               };
-
-               enet2: ethernet@b2000 {
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-
-               };
-
-               usb@22000 {
-                       phy_type = "ulpi";
-               };
-
-               /* USB2 is shared with localbus, so it must be disabled
-                  by default. We can't put 'status = "disabled";' here
-                  since U-Boot doesn't clear the status property when
-                  it enables USB2. OTOH, U-Boot does create a new node
-                  when there isn't any. So, just comment it out.
-               usb@23000 {
-                       phy_type = "ulpi";
-               };
-               */
-
+       board_soc: soc: soc@ffe00000 {
+               ranges = <0x0 0x0 0xffe00000 0x100000>;
        };
 
        pci0: pcie@ffe09000 {
                ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
+               reg = <0 0xffe09000 0 0x1000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
        };
 
        pci1: pcie@ffe0a000 {
+               reg = <0 0xffe0a000 0 0x1000>;
                ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0x80000000
                                  0x2000000 0x0 0x80000000
                                  0x0 0x20000000
                };
        };
 };
+
+/include/ "p1020rdb.dtsi"
+/include/ "fsl/p1020si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p1020rdb.dtsi b/arch/powerpc/boot/dts/p1020rdb.dtsi
new file mode 100644 (file)
index 0000000..3738946
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+ * P1020 RDB Device Tree Source stub (no addresses or top-level ranges)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&board_lbc {
+       nor@0,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "cfi-flash";
+               reg = <0x0 0x0 0x1000000>;
+               bank-width = <2>;
+               device-width = <1>;
+
+               partition@0 {
+                       /* This location must not be altered  */
+                       /* 256KB for Vitesse 7385 Switch firmware */
+                       reg = <0x0 0x00040000>;
+                       label = "NOR (RO) Vitesse-7385 Firmware";
+                       read-only;
+               };
+
+               partition@40000 {
+                       /* 256KB for DTB Image */
+                       reg = <0x00040000 0x00040000>;
+                       label = "NOR (RO) DTB Image";
+                       read-only;
+               };
+
+               partition@80000 {
+                       /* 3.5 MB for Linux Kernel Image */
+                       reg = <0x00080000 0x00380000>;
+                       label = "NOR (RO) Linux Kernel Image";
+                       read-only;
+               };
+
+               partition@400000 {
+                       /* 11MB for JFFS2 based Root file System */
+                       reg = <0x00400000 0x00b00000>;
+                       label = "NOR (RW) JFFS2 Root File System";
+               };
+
+               partition@f00000 {
+                       /* This location must not be altered  */
+                       /* 512KB for u-boot Bootloader Image */
+                       /* 512KB for u-boot Environment Variables */
+                       reg = <0x00f00000 0x00100000>;
+                       label = "NOR (RO) U-Boot Image";
+                       read-only;
+               };
+       };
+
+       nand@1,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,p1020-fcm-nand",
+                            "fsl,elbc-fcm-nand";
+               reg = <0x1 0x0 0x40000>;
+
+               partition@0 {
+                       /* This location must not be altered  */
+                       /* 1MB for u-boot Bootloader Image */
+                       reg = <0x0 0x00100000>;
+                       label = "NAND (RO) U-Boot Image";
+                       read-only;
+               };
+
+               partition@100000 {
+                       /* 1MB for DTB Image */
+                       reg = <0x00100000 0x00100000>;
+                       label = "NAND (RO) DTB Image";
+                       read-only;
+               };
+
+               partition@200000 {
+                       /* 4MB for Linux Kernel Image */
+                       reg = <0x00200000 0x00400000>;
+                       label = "NAND (RO) Linux Kernel Image";
+                       read-only;
+               };
+
+               partition@600000 {
+                       /* 4MB for Compressed Root file System Image */
+                       reg = <0x00600000 0x00400000>;
+                       label = "NAND (RO) Compressed RFS Image";
+                       read-only;
+               };
+
+               partition@a00000 {
+                       /* 7MB for JFFS2 based Root file System */
+                       reg = <0x00a00000 0x00700000>;
+                       label = "NAND (RW) JFFS2 Root File System";
+               };
+
+               partition@1100000 {
+                       /* 15MB for JFFS2 based Root file System */
+                       reg = <0x01100000 0x00f00000>;
+                       label = "NAND (RW) Writable User area";
+               };
+       };
+
+       L2switch@2,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "vitesse-7385";
+               reg = <0x2 0x0 0x20000>;
+       };
+};
+
+&board_soc {
+       i2c@3000 {
+               rtc@68 {
+                       compatible = "dallas,ds1339";
+                       reg = <0x68>;
+               };
+       };
+
+       spi@7000 {
+               flash@0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "spansion,s25sl12801";
+                       reg = <0>;
+                       spi-max-frequency = <40000000>; /* input clock */
+
+                       partition@u-boot {
+                               /* 512KB for u-boot Bootloader Image */
+                               reg = <0x0 0x00080000>;
+                               label = "u-boot";
+                               read-only;
+                       };
+
+                       partition@dtb {
+                               /* 512KB for DTB Image */
+                               reg = <0x00080000 0x00080000>;
+                               label = "dtb";
+                               read-only;
+                       };
+
+                       partition@kernel {
+                               /* 4MB for Linux Kernel Image */
+                               reg = <0x00100000 0x00400000>;
+                               label = "kernel";
+                               read-only;
+                       };
+
+                       partition@fs {
+                               /* 4MB for Compressed RFS Image */
+                               reg = <0x00500000 0x00400000>;
+                               label = "file system";
+                               read-only;
+                       };
+
+                       partition@jffs-fs {
+                               /* 7MB for JFFS2 based RFS */
+                               reg = <0x00900000 0x00700000>;
+                               label = "file system jffs2";
+                       };
+               };
+       };
+
+       usb@22000 {
+               phy_type = "ulpi";
+       };
+
+       /* USB2 is shared with localbus, so it must be disabled
+          by default. We can't put 'status = "disabled";' here
+          since U-Boot doesn't clear the status property when
+          it enables USB2. OTOH, U-Boot does create a new node
+          when there isn't any. So, just comment it out.
+       usb@23000 {
+               phy_type = "ulpi";
+       };
+       */
+
+       mdio@24000 {
+               phy0: ethernet-phy@0 {
+                       interrupt-parent = <&mpic>;
+                       interrupts = <3 1>;
+                       reg = <0x0>;
+               };
+
+               phy1: ethernet-phy@1 {
+                       interrupt-parent = <&mpic>;
+                       interrupts = <2 1>;
+                       reg = <0x1>;
+               };
+       };
+
+       mdio@25000 {
+               tbi0: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       enet0: ethernet@b0000 {
+               fixed-link = <1 1 1000 0 0>;
+               phy-connection-type = "rgmii-id";
+
+       };
+
+       enet1: ethernet@b1000 {
+               phy-handle = <&phy0>;
+               tbi-handle = <&tbi0>;
+               phy-connection-type = "sgmii";
+       };
+
+       enet2: ethernet@b2000 {
+               phy-handle = <&phy1>;
+               phy-connection-type = "rgmii-id";
+       };
+};
diff --git a/arch/powerpc/boot/dts/p1020rdb_36b.dts b/arch/powerpc/boot/dts/p1020rdb_36b.dts
new file mode 100644 (file)
index 0000000..bdbdb60
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * P1020 RDB Device Tree Source (36-bit address map)
+ *
+ * Copyright 2009-2011 Freescale Semiconductor Inc.
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+/include/ "fsl/p1020si-pre.dtsi"
+/ {
+       model = "fsl,P1020RDB";
+       compatible = "fsl,P1020RDB";
+
+       memory {
+               device_type = "memory";
+       };
+
+       board_lbc: lbc: localbus@fffe05000 {
+               reg = <0xf 0xffe05000 0 0x1000>;
+
+               /* NOR, NAND Flashes and Vitesse 5 port L2 switch */
+               ranges = <0x0 0x0 0xf 0xef000000 0x01000000
+                         0x1 0x0 0xf 0xffa00000 0x00040000
+                         0x2 0x0 0xf 0xffb00000 0x00020000>;
+       };
+
+       board_soc: soc: soc@fffe00000 {
+               ranges = <0x0 0xf 0xffe00000 0x100000>;
+       };
+
+       pci0: pcie@fffe09000 {
+               reg = <0xf 0xffe09000 0 0x1000>;
+               ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
+               pcie@0 {
+                       ranges = <0x2000000 0x0 0xc0000000
+                                 0x2000000 0x0 0xc0000000
+                                 0x0 0x20000000
+
+                                 0x1000000 0x0 0x0
+                                 0x1000000 0x0 0x0
+                                 0x0 0x100000>;
+               };
+       };
+
+       pci1: pcie@fffe0a000 {
+               reg = <0xf 0xffe0a000 0 0x1000>;
+               ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000
+                         0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
+               pcie@0 {
+                       ranges = <0x2000000 0x0 0x80000000
+                                 0x2000000 0x0 0x80000000
+                                 0x0 0x20000000
+
+                                 0x1000000 0x0 0x0
+                                 0x1000000 0x0 0x0
+                                 0x0 0x100000>;
+               };
+       };
+};
+
+/include/ "p1020rdb.dtsi"
+/include/ "fsl/p1020si-post.dtsi"
index f0bf7f42f097c8dbe535898bd56548080dd691b0..41b4585c5da831904aa31971f906db3b07c52166 100644 (file)
@@ -16,7 +16,7 @@
  * option) any later version.
  */
 
-/include/ "p1020si.dtsi"
+/include/ "p1020rdb.dts"
 
 / {
        model = "fsl,P1020RDB";
@@ -32,7 +32,7 @@
 
        cpus {
                PowerPC,P1020@1 {
-               status = "disabled";
+                       status = "disabled";
                };
        };
 
        };
 
        soc@ffe00000 {
-               i2c@3000 {
-                       rtc@68 {
-                               compatible = "dallas,ds1339";
-                               reg = <0x68>;
-                       };
-               };
-
                serial1: serial@4600 {
                        status = "disabled";
                };
 
-               spi@7000 {
-                       fsl_m25p80@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "fsl,espi-flash";
-                               reg = <0>;
-                               linux,modalias = "fsl_m25p80";
-                               spi-max-frequency = <40000000>;
-
-                               partition@0 {
-                                       /* 512KB for u-boot Bootloader Image */
-                                       reg = <0x0 0x00080000>;
-                                       label = "SPI (RO) U-Boot Image";
-                                       read-only;
-                               };
-
-                               partition@80000 {
-                                       /* 512KB for DTB Image */
-                                       reg = <0x00080000 0x00080000>;
-                                       label = "SPI (RO) DTB Image";
-                                       read-only;
-                               };
-
-                               partition@100000 {
-                                       /* 4MB for Linux Kernel Image */
-                                       reg = <0x00100000 0x00400000>;
-                                       label = "SPI (RO) Linux Kernel Image";
-                                       read-only;
-                               };
-
-                               partition@500000 {
-                                       /* 4MB for Compressed RFS Image */
-                                       reg = <0x00500000 0x00400000>;
-                                       label = "SPI (RO) Compressed RFS Image";
-                                       read-only;
-                               };
-
-                               partition@900000 {
-                                       /* 7MB for JFFS2 based RFS */
-                                       reg = <0x00900000 0x00700000>;
-                                       label = "SPI (RW) JFFS2 RFS";
-                               };
-                       };
-               };
-
-               mdio@24000 {
-                       phy0: ethernet-phy@0 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x0>;
-                       };
-                       phy1: ethernet-phy@1 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
-                               reg = <0x1>;
-                       };
-               };
-
-               mdio@25000 {
-                       tbi0: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-               };
-
                enet0: ethernet@b0000 {
                        status = "disabled";
                };
 
-               enet1: ethernet@b1000 {
-                       phy-handle = <&phy0>;
-                       tbi-handle = <&tbi0>;
-                       phy-connection-type = "sgmii";
-               };
-
-               enet2: ethernet@b2000 {
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-               };
-
-               usb@22000 {
-                       phy_type = "ulpi";
-               };
-
-               /* USB2 is shared with localbus, so it must be disabled
-                  by default. We can't put 'status = "disabled";' here
-                  since U-Boot doesn't clear the status property when
-                  it enables USB2. OTOH, U-Boot does create a new node
-                  when there isn't any. So, just comment it out.
-               usb@23000 {
-                       phy_type = "ulpi";
-               };
-               */
-
                mpic: pic@40000 {
                        protected-sources = <
                        42 29 30 34     /* serial1, enet0-queue-group0 */
                        17 18 24 45     /* enet0-queue-group1, crypto */
                        >;
                };
-
-       };
-
-       pci0: pcie@ffe09000 {
-               ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
-                         0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
-               pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       ranges = <0x2000000 0x0 0xa0000000
-                                 0x2000000 0x0 0xa0000000
-                                 0x0 0x20000000
-
-                                 0x1000000 0x0 0x0
-                                 0x1000000 0x0 0x0
-                                 0x0 0x100000>;
-               };
-       };
-
-       pci1: pcie@ffe0a000 {
-               ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
-                         0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
-               pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       ranges = <0x2000000 0x0 0x80000000
-                                 0x2000000 0x0 0x80000000
-                                 0x0 0x20000000
-
-                                 0x1000000 0x0 0x0
-                                 0x1000000 0x0 0x0
-                                 0x0 0x100000>;
-               };
        };
 };
index 6ec02204a44eb47d86612911065905b65d29eff9..51745382188470854d6ab26058259e99253b2a77 100644 (file)
@@ -15,7 +15,7 @@
  * option) any later version.
  */
 
-/include/ "p1020si.dtsi"
+/include/ "p1020rdb.dts"
 
 / {
        model = "fsl,P1020RDB";
@@ -28,7 +28,7 @@
 
        cpus {
                PowerPC,P1020@0 {
-               status = "disabled";
+                       status = "disabled";
                };
        };
 
                        status = "disabled";
                };
 
-               enet0: ethernet@b0000 {
-                       fixed-link = <1 1 1000 0 0>;
-                       phy-connection-type = "rgmii-id";
-
-               };
-
                enet1: ethernet@b1000 {
                        status = "disabled";
                };
                global-utilities@e0000 {        //global utilities block
                        status = "disabled";
                };
-
        };
 
        pci0: pcie@ffe09000 {
diff --git a/arch/powerpc/boot/dts/p1020si.dtsi b/arch/powerpc/boot/dts/p1020si.dtsi
deleted file mode 100644 (file)
index 5c5acb6..0000000
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * P1020si Device Tree Source
- *
- * Copyright 2011 Freescale Semiconductor Inc.
- *
- * This program is free software; you can redistribute  it and/or modify it
- * under  the terms of  the GNU General  Public License as published by the
- * Free Software Foundation;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-/dts-v1/;
-/ {
-       compatible = "fsl,P1020";
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,P1020@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       next-level-cache = <&L2>;
-               };
-
-               PowerPC,P1020@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       next-level-cache = <&L2>;
-               };
-       };
-
-       localbus@ffe05000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,p1020-elbc", "fsl,elbc", "simple-bus";
-               reg = <0 0xffe05000 0 0x1000>;
-               interrupts = <19 2>;
-               interrupt-parent = <&mpic>;
-       };
-
-       soc@ffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "fsl,p1020-immr", "simple-bus";
-               ranges = <0x0  0x0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,p1020-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <16 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,p1020-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               spi@7000 {
-                       cell-index = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,espi";
-                       reg = <0x7000 0x1000>;
-                       interrupts = <59 0x2>;
-                       interrupt-parent = <&mpic>;
-                       mode = "cpu";
-               };
-
-               gpio: gpio-controller@f000 {
-                       #gpio-cells = <2>;
-                       compatible = "fsl,mpc8572-gpio";
-                       reg = <0xf000 0x100>;
-                       interrupts = <47 0x2>;
-                       interrupt-parent = <&mpic>;
-                       gpio-controller;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,p1020-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x40000>; // L2,256K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               mdio@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-mdio";
-                       reg = <0x24000 0x1000 0xb0030 0x4>;
-
-               };
-
-               mdio@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-tbi";
-                       reg = <0x25000 0x1000 0xb1030 0x4>;
-
-               };
-
-               enet0: ethernet@b0000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
-
-                       queue-group@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb0000 0x1000>;
-                               interrupts = <29 2 30 2 34 2>;
-                       };
-
-                       queue-group@1 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb4000 0x1000>;
-                               interrupts = <17 2 18 2 24 2>;
-                       };
-               };
-
-               enet1: ethernet@b1000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
-
-                       queue-group@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb1000 0x1000>;
-                               interrupts = <35 2 36 2 40 2>;
-                       };
-
-                       queue-group@1 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb5000 0x1000>;
-                               interrupts = <51 2 52 2 67 2>;
-                       };
-               };
-
-               enet2: ethernet@b2000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
-
-                       queue-group@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb2000 0x1000>;
-                               interrupts = <31 2 32 2 33 2>;
-                       };
-
-                       queue-group@1 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xb6000 0x1000>;
-                               interrupts = <25 2 26 2 27 2>;
-                       };
-               };
-
-               usb@22000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl-usb2-dr";
-                       reg = <0x22000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <28 0x2>;
-               };
-
-               /* USB2 is shared with localbus, so it must be disabled
-                  by default. We can't put 'status = "disabled";' here
-                  since U-Boot doesn't clear the status property when
-                  it enables USB2. OTOH, U-Boot does create a new node
-                  when there isn't any. So, just comment it out.
-               usb@23000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl-usb2-dr";
-                       reg = <0x23000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <46 0x2>;
-                       phy_type = "ulpi";
-               };
-               */
-
-               sdhci@2e000 {
-                       compatible = "fsl,p1020-esdhc", "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x2>;
-                       interrupt-parent = <&mpic>;
-                       /* Filled in by U-Boot */
-                       clock-frequency = <0>;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4",
-                                    "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0xbfe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,p1020-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,p1020-guts","fsl,p2020-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-       };
-
-       pci0: pcie@ffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe09000 0 0x1000>;
-               bus-range = <0 255>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
-       };
-
-       pci1: pcie@ffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe0a000 0 0x1000>;
-               bus-range = <0 255>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
-       };
-};
index ad5b852690042b4cc64cad3d18e5259e48947a47..b1bef1fa66dac38c81aa602e98b323b0d8913695 100644 (file)
@@ -9,53 +9,22 @@
  * option) any later version.
  */
 
-/dts-v1/;
+/include/ "fsl/p1021si-pre.dtsi"
 / {
        model = "fsl,P1021";
        compatible = "fsl,P1021MDS";
-       #address-cells = <2>;
-       #size-cells = <2>;
 
        aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
                ethernet3 = &enet3;
                ethernet4 = &enet4;
-               pci0 = &pci0;
-               pci1 = &pci1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,P1021@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       next-level-cache = <&L2>;
-               };
-
-               PowerPC,P1021@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       next-level-cache = <&L2>;
-               };
        };
 
        memory {
                device_type = "memory";
        };
 
-       localbus@ffe05000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,p1021-elbc", "fsl,elbc", "simple-bus";
-               reg = <0 0xffe05000 0 0x1000>;
-               interrupts = <19 2>;
-               interrupt-parent = <&mpic>;
+       lbc: localbus@ffe05000 {
+               reg = <0x0 0xffe05000 0x0 0x1000>;
 
                /* NAND Flash, BCSR, PMC0/1*/
                ranges = <0x0 0x0 0x0 0xfc000000 0x02000000
                };
        };
 
-       soc@ffe00000 {
-
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
+       soc: soc@ffe00000 {
                compatible = "fsl,p1021-immr", "simple-bus";
-               ranges = <0x0  0x0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,p1021-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <16 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,p1021-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
+               ranges = <0x0 0x0 0xffe00000 0x100000>;
 
                i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
                        rtc@68 {
                                compatible = "dallas,ds1374";
                                reg = <0x68>;
                        };
                };
 
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
                spi@7000 {
-                       cell-index = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,espi";
-                       reg = <0x7000 0x1000>;
-                       interrupts = <59 0x2>;
-                       interrupt-parent = <&mpic>;
-                       espi,num-ss-bits = <4>;
-                       mode = "cpu";
-
-                       fsl_m25p80@0 {
+
+                       flash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "fsl,espi-flash";
+                               compatible = "spansion,s25sl12801";
                                reg = <0>;
-                               linux,modalias = "fsl_m25p80";
                                spi-max-frequency = <40000000>; /* input clock */
+
                                partition@u-boot {
                                        label = "u-boot-spi";
                                        reg = <0x00000000 0x00100000>;
                        };
                };
 
-               gpio: gpio-controller@f000 {
-                       #gpio-cells = <2>;
-                       compatible = "fsl,mpc8572-gpio";
-                       reg = <0xf000 0x100>;
-                       interrupts = <47 0x2>;
-                       interrupt-parent = <&mpic>;
-                       gpio-controller;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,p1021-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x40000>; // L2,256K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
                usb@22000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl-usb2-dr";
-                       reg = <0x22000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <28 0x2>;
                        phy_type = "ulpi";
                };
 
-                mdio@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-mdio";
-                       reg = <0x24000 0x1000 0xb0030 0x4>;
-
+               mdio@24000 {
                        phy0: ethernet-phy@0 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <1 1>;
+                               interrupts = <1 1 0 0>;
                                reg = <0x0>;
                        };
                        phy1: ethernet-phy@1 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <2 1>;
+                               interrupts = <2 1 0 0>;
                                reg = <0x1>;
                        };
                        phy4: ethernet-phy@4 {
-                               interrupt-parent = <&mpic>;
                                reg = <0x4>;
                        };
                };
 
                mdio@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-tbi";
-                       reg = <0x25000 0x1000 0xb1030 0x4>;
                        tbi0: tbi-phy@11 {
                                reg = <0x11>;
                                device_type = "tbi-phy";
                        };
                };
 
-               enet0: ethernet@B0000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
+               ethernet@b0000 {
                        phy-handle = <&phy0>;
                        phy-connection-type = "rgmii-id";
-                       queue-group@0{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB0000 0x1000>;
-                               interrupts = <29 2 30 2 34 2>;
-                       };
-                       queue-group@1{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB4000 0x1000>;
-                               interrupts = <17 2 18 2 24 2>;
-                       };
                };
 
-               enet1: ethernet@B1000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
+               ethernet@b1000 {
                        phy-handle = <&phy4>;
                        tbi-handle = <&tbi0>;
                        phy-connection-type = "sgmii";
-                       queue-group@0{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB1000 0x1000>;
-                               interrupts = <35 2 36 2 40 2>;
-                       };
-                       queue-group@1{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB5000 0x1000>;
-                               interrupts = <51 2 52 2 67 2>;
-                       };
                };
 
-               enet2: ethernet@B2000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupt-parent = <&mpic>;
+               ethernet@b2000 {
                        phy-handle = <&phy1>;
                        phy-connection-type = "rgmii-id";
-                       queue-group@0{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB2000 0x1000>;
-                               interrupts = <31 2 32 2 33 2>;
-                       };
-                       queue-group@1{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB6000 0x1000>;
-                               interrupts = <25 2 26 2 27 2>;
-                       };
-               };
-
-               sdhci@2e000 {
-                       compatible = "fsl,p1021-esdhc", "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x2>;
-                       interrupt-parent = <&mpic>;
-                       /* Filled in by U-Boot */
-                       clock-frequency = <0>;
-               };
-
-               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 = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0x97c>;
-                       fsl,descriptor-types-mask = <0x3a30abf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,p1021-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,p1021-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
                };
 
                par_io@e0100 {
                                        0x1  0x13 0x1  0x0  0x1  0x0    /* QE_MUX_MDC */
                                        0x1  0x14 0x3  0x0  0x1  0x0    /* QE_MUX_MDIO */
                                        0x0  0x17 0x2  0x0  0x2  0x0    /* CLK12 */
-                                       0x0  0x18 0x2  0x0  0x1  0x0    /* CLK9
-*/
+                                       0x0  0x18 0x2  0x0  0x1  0x0    /* CLK9 */
                                        0x0  0x7  0x1  0x0  0x2  0x0    /* ENET1_TXD0_SER1_TXD0 */
                                        0x0  0x9  0x1  0x0  0x2  0x0    /* ENET1_TXD1_SER1_TXD1 */
                                        0x0  0xb  0x1  0x0  0x2  0x0    /* ENET1_TXD2_SER1_TXD2 */
        };
 
        pci0: pcie@ffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xffe09000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 4 1
-                       0000 0 0 2 &mpic 5 1
-                       0000 0 0 3 &mpic 6 1
-                       0000 0 0 4 &mpic 7 1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
        };
 
        pci1: pcie@ffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xffe0a000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 0 1
-                       0000 0 0 2 &mpic 1 1
-                       0000 0 0 3 &mpic 2 1
-                       0000 0 0 4 &mpic 3 1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xc0000000
                                  0x2000000 0x0 0xc0000000
                                  0x0 0x20000000
                };
        };
 
-       qe@ffe80000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "qe";
-               compatible = "fsl,qe";
+       qe: qe@ffe80000 {
                ranges = <0x0 0x0 0xffe80000 0x40000>;
                reg = <0 0xffe80000 0 0x480>;
                brg-frequency = <0>;
                bus-frequency = <0>;
-               fsl,qe-num-riscs = <1>;
-               fsl,qe-num-snums = <28>;
                status = "disabled"; /* no firmware loaded */
 
-               qeic: interrupt-controller@80 {
-                       interrupt-controller;
-                       compatible = "fsl,qe-ic";
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       reg = <0x80 0x80>;
-                       interrupts = <63 2 60 2>; //high:47 low:44
-                       interrupt-parent = <&mpic>;
-               };
-
                enet3: ucc@2000 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <1>;
-                       reg = <0x2000 0x200>;
-                       interrupts = <32>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "clk12";
                        tx-clock-name = "clk9";
                };
 
                mdio@2120 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <0x2120 0x18>;
-                       compatible = "fsl,ucc-mdio";
-
                        qe_phy0: ethernet-phy@0 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <4 1>;
+                               interrupts = <4 1 0 0>;
                                reg = <0x0>;
                                device_type = "ethernet-phy";
                        };
                        qe_phy1: ethernet-phy@03 {
                                interrupt-parent = <&mpic>;
-                               interrupts = <5 1>;
+                               interrupts = <5 1 0 0>;
                                reg = <0x3>;
                                device_type = "ethernet-phy";
                        };
                enet4: ucc@2400 {
                        device_type = "network";
                        compatible = "ucc_geth";
-                       cell-index = <5>;
-                       reg = <0x2400 0x200>;
-                       interrupts = <40>;
-                       interrupt-parent = <&qeic>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
                        rx-clock-name = "none";
                        tx-clock-name = "clk13";
                        phy-handle = <&qe_phy1>;
                        phy-connection-type = "rmii";
                };
-
-               muram@10000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,qe-muram", "fsl,cpm-muram";
-                       ranges = <0x0 0x10000 0x6000>;
-
-                       data-only@0 {
-                               compatible = "fsl,qe-muram-data",
-                               "fsl,cpm-muram-data";
-                               reg = <0x0 0x6000>;
-                       };
-               };
        };
 };
+
+/include/ "fsl/p1021si-post.dtsi"
index b9b8719a6204d9a6a9f374b455493b94c2f7554c..3e85d8c3850340d2e421e29c4d1197d1a517cd44 100644 (file)
@@ -8,57 +8,36 @@
  * kind, whether express or implied.
  */
 
-/dts-v1/;
+/include/ "fsl/p1022si-pre.dtsi"
 / {
-       model = "fsl,P1022";
+       model = "fsl,P1022DS";
        compatible = "fsl,P1022DS";
-       #address-cells = <2>;
-       #size-cells = <2>;
-       interrupt-parent = <&mpic>;
-
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,P1022@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       next-level-cache = <&L2>;
-               };
-
-               PowerPC,P1022@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       next-level-cache = <&L2>;
-               };
-       };
 
        memory {
                device_type = "memory";
        };
 
-       localbus@fffe05000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,p1022-elbc", "fsl,elbc", "simple-bus";
-               reg = <0 0xffe05000 0 0x1000>;
-               interrupts = <19 2 0 0>;
-
+       lbc: localbus@fffe05000 {
+               reg = <0xf 0xffe05000 0 0x1000>;
                ranges = <0x0 0x0 0xf 0xe8000000 0x08000000
                          0x1 0x0 0xf 0xe0000000 0x08000000
-                         0x2 0x0 0x0 0xffa00000 0x00040000
+                         0x2 0x0 0xf 0xffa00000 0x00040000
                          0x3 0x0 0xf 0xffdf0000 0x00008000>;
 
+               /*
+                * This node is used to access the pixis via "indirect" mode,
+                * which is done by writing the pixis register index to chip
+                * select 0 and the value to/from chip select 1.  Indirect
+                * mode is the only way to access the pixis when DIU video
+                * is enabled.  Note that this assumes that the first column
+                * of the 'ranges' property above is the chip select number.
+                */
+               board-control@0,0 {
+                       compatible = "fsl,p1022ds-indirect-pixis";
+                       reg = <0x0 0x0 1        /* CS0 */
+                              0x1 0x0 1>;      /* CS1 */
+               };
+
                nor@0,0 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                };
        };
 
-       soc@fffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "fsl,p1022-immr", "simple-bus";
+       soc: soc@fffe00000 {
                ranges = <0x0 0xf 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,p1022-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <16 2 0 0>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,p1022-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupts = <16 2 0 0>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2 0 0>;
-                       dfsrr;
-               };
 
                i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2 0 0>;
-                       dfsrr;
-
                        wm8776:codec@1a {
                                compatible = "wlf,wm8776";
                                reg = <0x1a>;
                        };
                };
 
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2 0 0>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2 0 0>;
-               };
-
                spi@7000 {
-                       cell-index = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,espi";
-                       reg = <0x7000 0x1000>;
-                       interrupts = <59 0x2 0 0>;
-                       espi,num-ss-bits = <4>;
-                       mode = "cpu";
-
-                       fsl_m25p80@0 {
+                       flash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "fsl,espi-flash";
+                               compatible = "spansion,s25sl12801";
                                reg = <0>;
-                               linux,modalias = "fsl_m25p80";
                                spi-max-frequency = <40000000>; /* input clock */
+
                                partition@0 {
                                        label = "u-boot-spi";
                                        reg = <0x00000000 0x00100000>;
                };
 
                ssi@15000 {
-                       compatible = "fsl,mpc8610-ssi";
-                       cell-index = <0>;
-                       reg = <0x15000 0x100>;
-                       interrupts = <75 2 0 0>;
                        fsl,mode = "i2s-slave";
                        codec-handle = <&wm8776>;
-                       fsl,playback-dma = <&dma00>;
-                       fsl,capture-dma = <&dma01>;
-                       fsl,fifo-depth = <15>;
                        fsl,ssi-asynchronous;
                };
 
-               dma@c300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0xc300 0x4>;
-                       ranges = <0x0 0xc100 0x200>;
-                       cell-index = <1>;
-                       dma00: dma-channel@0 {
-                               compatible = "fsl,ssi-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <76 2 0 0>;
-                       };
-                       dma01: dma-channel@80 {
-                               compatible = "fsl,ssi-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <77 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <78 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <79 2 0 0>;
-                       };
-               };
-
-               gpio: gpio-controller@f000 {
-                       #gpio-cells = <2>;
-                       compatible = "fsl,mpc8572-gpio";
-                       reg = <0xf000 0x100>;
-                       interrupts = <47 0x2 0 0>;
-                       gpio-controller;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,p1022-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x40000>; // L2, 256K
-                       interrupts = <16 2 0 0>;
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <20 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <21 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <22 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <23 2 0 0>;
-                       };
-               };
-
                usb@22000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl-usb2-dr";
-                       reg = <0x22000 0x1000>;
-                       interrupts = <28 0x2 0 0>;
                        phy_type = "ulpi";
                };
 
-               mdio@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-mdio";
-                       reg = <0x24000 0x1000 0xb0030 0x4>;
+               usb@23000 {
+                       status = "disabled";
+               };
 
+               mdio@24000 {
                        phy0: ethernet-phy@0 {
                                interrupts = <3 1 0 0>;
                                reg = <0x1>;
                        };
                };
 
-               mdio@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,etsec2-mdio";
-                       reg = <0x25000 0x1000 0xb1030 0x4>;
-               };
-
-               enet0: ethernet@B0000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       fsl,magic-packet;
-                       fsl,wake-on-filer;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
+               ethernet@b0000 {
                        phy-handle = <&phy0>;
                        phy-connection-type = "rgmii-id";
-                       queue-group@0{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB0000 0x1000>;
-                               interrupts = <29 2 0 0 30 2 0 0 34 2 0 0>;
-                       };
-                       queue-group@1{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB4000 0x1000>;
-                               interrupts = <17 2 0 0 18 2 0 0 24 2 0 0>;
-                       };
                };
 
-               enet1: ethernet@B1000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "fsl,etsec2";
-                       fsl,num_rx_queues = <0x8>;
-                       fsl,num_tx_queues = <0x8>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
+               ethernet@b1000 {
                        phy-handle = <&phy1>;
                        phy-connection-type = "rgmii-id";
-                       queue-group@0{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB1000 0x1000>;
-                               interrupts = <35 2 0 0 36 2 0 0 40 2 0 0>;
-                       };
-                       queue-group@1{
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0xB5000 0x1000>;
-                               interrupts = <51 2 0 0 52 2 0 0 67 2 0 0>;
-                       };
-               };
-
-               sdhci@2e000 {
-                       compatible = "fsl,p1022-esdhc", "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x2 0 0>;
-                       fsl,sdhci-auto-cmd12;
-                       /* Filled in by U-Boot */
-                       clock-frequency = <0>;
-               };
-
-               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 = <45 2 0 0 58 2 0 0>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0x97c>;
-                       fsl,descriptor-types-mask = <0x3a30abf>;
-               };
-
-               sata@18000 {
-                       compatible = "fsl,p1022-sata", "fsl,pq-sata-v2";
-                       reg = <0x18000 0x1000>;
-                       cell-index = <1>;
-                       interrupts = <74 0x2 0 0>;
-               };
-
-               sata@19000 {
-                       compatible = "fsl,p1022-sata", "fsl,pq-sata-v2";
-                       reg = <0x19000 0x1000>;
-                       cell-index = <2>;
-                       interrupts = <41 0x2 0 0>;
-               };
-
-               power@e0070{
-                       compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc";
-                       reg = <0xe0070 0x20>;
-               };
-
-               display@10000 {
-                       compatible = "fsl,diu", "fsl,p1022-diu";
-                       reg = <0x10000 1000>;
-                       interrupts = <64 2 0 0>;
-               };
-
-               timer@41100 {
-                       compatible = "fsl,mpic-global-timer";
-                       reg = <0x41100 0x100 0x41300 4>;
-                       interrupts = <0 0 3 0
-                                     1 0 3 0
-                                     2 0 3 0
-                                     3 0 3 0>;
-               };
-
-               timer@42100 {
-                       compatible = "fsl,mpic-global-timer";
-                       reg = <0x42100 0x100 0x42300 4>;
-                       interrupts = <4 0 3 0
-                                     5 0 3 0
-                                     6 0 3 0
-                                     7 0 3 0>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <4>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "fsl,mpic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,p1022-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0 0 0
-                               0xe1 0 0 0
-                               0xe2 0 0 0
-                               0xe3 0 0 0
-                               0xe4 0 0 0
-                               0xe5 0 0 0
-                               0xe6 0 0 0
-                               0xe7 0 0 0>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,p1022-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
                };
        };
 
        pci0: pcie@fffe09000 {
-               compatible = "fsl,p1022-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0xf 0xffe09000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xa0000000 0xc 0x20000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupts = <16 2 0 0>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 4 1
-                       0000 0 0 2 &mpic 5 1
-                       0000 0 0 3 &mpic 6 1
-                       0000 0 0 4 &mpic 7 1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xe0000000
                                  0x2000000 0x0 0xe0000000
                                  0x0 0x20000000
        };
 
        pci1: pcie@fffe0a000 {
-               compatible = "fsl,p1022-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0xf 0xffe0a000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xc0000000 0xc 0x40000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupts = <16 2 0 0>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 0 1
-                       0000 0 0 2 &mpic 1 1
-                       0000 0 0 3 &mpic 2 1
-                       0000 0 0 4 &mpic 3 1
-                       >;
                pcie@0 {
                        reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xe0000000
                                  0x2000000 0x0 0xe0000000
                                  0x0 0x20000000
                };
        };
 
-
        pci2: pcie@fffe0b000 {
-               compatible = "fsl,p1022-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0xf 0xffe0b000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0x80000000 0xc 0x00000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupts = <16 2 0 0>;
-               interrupt-map-mask = <0xf800 0 0 7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0 0 1 &mpic 8 1
-                       0000 0 0 2 &mpic 9 1
-                       0000 0 0 3 &mpic 10 1
-                       0000 0 0 4 &mpic 11 1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xe0000000
                                  0x2000000 0x0 0xe0000000
                                  0x0 0x20000000
                };
        };
 };
+
+/include/ "fsl/p1022si-post.dtsi"
index d9b776740a6739707d26a9ad836a39533bc8718c..beb6cb12e59dc1eaa041975769613a69346d1a81 100644 (file)
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/dts-v1/;
+/include/ "fsl/p1023si-pre.dtsi"
 
 / {
        model = "fsl,P1023";
        compatible = "fsl,P1023RDS";
        #address-cells = <2>;
        #size-cells = <2>;
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-
-               crypto = &crypto;
-               sec_jr0 = &sec_jr0;
-               sec_jr1 = &sec_jr1;
-               sec_jr2 = &sec_jr2;
-               sec_jr3 = &sec_jr3;
-               rtic_a = &rtic_a;
-               rtic_b = &rtic_b;
-               rtic_c = &rtic_c;
-               rtic_d = &rtic_d;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: PowerPC,P1023@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       next-level-cache = <&L2>;
-               };
-
-               cpu1: PowerPC,P1023@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       next-level-cache = <&L2>;
-               };
-       };
+       interrupt-parent = <&mpic>;
 
        memory {
                device_type = "memory";
        };
 
-       soc@ff600000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "fsl,p1023-immr", "simple-bus";
+       soc: soc@ff600000 {
                ranges = <0x0 0x0 0xff600000 0x200000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,p1023-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <16 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,p1023-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
 
                i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
                        rtc@68 {
                                compatible = "dallas,ds1374";
                                reg = <0x68>;
                        };
                };
 
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
                spi@7000 {
-                       cell-index = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,p1023-espi", "fsl,mpc8536-espi";
-                       reg = <0x7000 0x1000>;
-                       interrupts = <59 0x2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,espi-num-chipselects = <4>;
-
                        fsl_dataflash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
                        };
                };
 
-               gpio: gpio-controller@f000 {
-                       #gpio-cells = <2>;
-                       compatible = "fsl,qoriq-gpio";
-                       reg = <0xf000 0x100>;
-                       interrupts = <47 0x2>;
-                       interrupt-parent = <&mpic>;
-                       gpio-controller;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,p1023-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x40000>; // L2,256K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
                usb@22000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl-usb2-dr";
-                       reg = <0x22000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <28 0x2>;
                        dr_mode = "host";
                        phy_type = "ulpi";
                };
-
-               crypto: crypto@300000 {
-                       compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x30000 0x10000>;
-                       ranges = <0 0x30000 0x10000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <58 2>;
-
-                       sec_jr0: jr@1000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x1000 0x1000>;
-                               interrupts = <45 2>;
-                       };
-
-                       sec_jr1: jr@2000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x2000 0x1000>;
-                               interrupts = <45 2>;
-                       };
-
-                       sec_jr2: jr@3000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x3000 0x1000>;
-                               interrupts = <57 2>;
-                       };
-
-                       sec_jr3: jr@4000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x4000 0x1000>;
-                               interrupts = <57 2>;
-                       };
-
-                       rtic@6000 {
-                               compatible = "fsl,sec-v4.2-rtic",
-                                            "fsl,sec-v4.0-rtic";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0x6000 0x100>;
-                               ranges = <0x0 0x6100 0xe00>;
-
-                               rtic_a: rtic-a@0 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x00 0x20 0x100 0x80>;
-                               };
-
-                               rtic_b: rtic-b@20 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x20 0x20 0x200 0x80>;
-                               };
-
-                               rtic_c: rtic-c@40 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x40 0x20 0x300 0x80>;
-                               };
-
-                               rtic_d: rtic-d@60 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x60 0x20 0x500 0x80>;
-                               };
-                       };
-               };
-
-               power@e0070{
-                       compatible = "fsl,mpc8536-pmc", "fsl,mpc8548-pmc",
-                                    "fsl,p1022-pmc";
-                       reg = <0xe0070 0x20>;
-                       etsec1_clk: soc-clk@B0{
-                               fsl,pmcdr-mask = <0x00000080>;
-                       };
-                       etsec2_clk: soc-clk@B1{
-                               fsl,pmcdr-mask = <0x00000040>;
-                       };
-                       etsec3_clk: soc-clk@B2{
-                               fsl,pmcdr-mask = <0x00000020>;
-                       };
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,p1023-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,p1023-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
        };
 
-       localbus@ff605000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,p1023-elbc", "fsl,elbc", "simple-bus";
+       lbc: localbus@ff605000 {
                reg = <0 0xff605000 0 0x1000>;
-               interrupts = <19 2>;
-               interrupt-parent = <&mpic>;
 
                /* NOR Flash, BCSR */
                ranges = <0x0 0x0 0x0 0xee000000 0x02000000
        };
 
        pci0: pcie@ff60a000 {
-               compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
-               cell-index = <1>;
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xff60a000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
+                       /* IRQ[0:3] are pulled up on board, set to active-low */
                        interrupt-map-mask = <0xf800 0 0 7>;
                        interrupt-map = <
                                /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 0 1
-                               0000 0 0 2 &mpic 1 1
-                               0000 0 0 3 &mpic 2 1
-                               0000 0 0 4 &mpic 3 1
+                               0000 0 0 1 &mpic 0 1 0 0
+                               0000 0 0 2 &mpic 1 1 0 0
+                               0000 0 0 3 &mpic 2 1 0 0
+                               0000 0 0 4 &mpic 3 1 0 0
                                >;
                        ranges = <0x2000000 0x0 0xc0000000
                                  0x2000000 0x0 0xc0000000
                };
        };
 
-       pci1: pcie@ff609000 {
-               compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
-               cell-index = <2>;
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
+       board_pci1: pci1: pcie@ff609000 {
                reg = <0 0xff609000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
+                       /*
+                        * IRQ[4:6] only for PCIe, set to active-high,
+                        * IRQ[7] is pulled up on board, set to active-low
+                        */
                        interrupt-map-mask = <0xf800 0 0 7>;
                        interrupt-map = <
                                /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 4 1
-                               0000 0 0 2 &mpic 5 1
-                               0000 0 0 3 &mpic 6 1
-                               0000 0 0 4 &mpic 7 1
+                               0000 0 0 1 &mpic 4 2 0 0
+                               0000 0 0 2 &mpic 5 2 0 0
+                               0000 0 0 3 &mpic 6 2 0 0
+                               0000 0 0 4 &mpic 7 1 0 0
                                >;
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
        };
 
        pci2: pcie@ff60b000 {
-               cell-index = <3>;
-               compatible = "fsl,p1023-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
                reg = <0 0xff60b000 0 0x1000>;
-               bus-range = <0 255>;
                ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <16 2>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
+                       /*
+                        * IRQ[8:10] are pulled up on board, set to active-low
+                        * IRQ[11] only for PCIe, set to active-high,
+                        */
                        interrupt-map-mask = <0xf800 0 0 7>;
                        interrupt-map = <
                                /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 8 1
-                               0000 0 0 2 &mpic 9 1
-                               0000 0 0 3 &mpic 10 1
-                               0000 0 0 4 &mpic 11 1
+                               0000 0 0 1 &mpic 8 1 0 0
+                               0000 0 0 2 &mpic 9 1 0 0
+                               0000 0 0 3 &mpic 10 1 0 0
+                               0000 0 0 4 &mpic 11 2 0 0
                                >;
                        ranges = <0x2000000 0x0 0x80000000
                                  0x2000000 0x0 0x80000000
                };
        };
 };
+
+/include/ "fsl/p1023si-post.dtsi"
index 66f03d6477b2804cb1774f33ac833e0359d73619..237310cc7e6ce077958857c9996725c4242d12a9 100644 (file)
@@ -9,30 +9,17 @@
  * option) any later version.
  */
 
-/include/ "p2020si.dtsi"
+/include/ "fsl/p2020si-pre.dtsi"
 
 / {
        model = "fsl,P2020DS";
        compatible = "fsl,P2020DS";
 
-       aliases {
-               ethernet0 = &enet0;
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
-               serial0 = &serial0;
-               serial1 = &serial1;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-       };
-
-
        memory {
                device_type = "memory";
        };
 
-       localbus@ffe05000 {
-               compatible = "fsl,elbc", "simple-bus";
+       board_lbc: lbc: localbus@ffe05000 {
                ranges = <0x0 0x0 0x0 0xe8000000 0x08000000
                          0x1 0x0 0x0 0xe0000000 0x08000000
                          0x2 0x0 0x0 0xffa00000 0x00040000
                          0x4 0x0 0x0 0xffa40000 0x00040000
                          0x5 0x0 0x0 0xffa80000 0x00040000
                          0x6 0x0 0x0 0xffac0000 0x00040000>;
-
-               nor@0,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "cfi-flash";
-                       reg = <0x0 0x0 0x8000000>;
-                       bank-width = <2>;
-                       device-width = <1>;
-
-                       ramdisk@0 {
-                               reg = <0x0 0x03000000>;
-                               read-only;
-                       };
-
-                       diagnostic@3000000 {
-                               reg = <0x03000000 0x00e00000>;
-                               read-only;
-                       };
-
-                       dink@3e00000 {
-                               reg = <0x03e00000 0x00200000>;
-                               read-only;
-                       };
-
-                       kernel@4000000 {
-                               reg = <0x04000000 0x00400000>;
-                               read-only;
-                       };
-
-                       jffs2@4400000 {
-                               reg = <0x04400000 0x03b00000>;
-                       };
-
-                       dtb@7f00000 {
-                               reg = <0x07f00000 0x00080000>;
-                               read-only;
-                       };
-
-                       u-boot@7f80000 {
-                               reg = <0x07f80000 0x00080000>;
-                               read-only;
-                       };
-               };
-
-               nand@2,0 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,elbc-fcm-nand";
-                       reg = <0x2 0x0 0x40000>;
-
-                       u-boot@0 {
-                               reg = <0x0 0x02000000>;
-                               read-only;
-                       };
-
-                       jffs2@2000000 {
-                               reg = <0x02000000 0x10000000>;
-                       };
-
-                       ramdisk@12000000 {
-                               reg = <0x12000000 0x08000000>;
-                               read-only;
-                       };
-
-                       kernel@1a000000 {
-                               reg = <0x1a000000 0x04000000>;
-                       };
-
-                       dtb@1e000000 {
-                               reg = <0x1e000000 0x01000000>;
-                               read-only;
-                       };
-
-                       empty@1f000000 {
-                               reg = <0x1f000000 0x21000000>;
-                       };
-               };
-
-               board-control@3,0 {
-                       compatible = "fsl,p2020ds-fpga", "fsl,fpga-ngpixis";
-                       reg = <0x3 0x0 0x30>;
-               };
-
-               nand@4,0 {
-                       compatible = "fsl,elbc-fcm-nand";
-                       reg = <0x4 0x0 0x40000>;
-               };
-
-               nand@5,0 {
-                       compatible = "fsl,elbc-fcm-nand";
-                       reg = <0x5 0x0 0x40000>;
-               };
-
-               nand@6,0 {
-                       compatible = "fsl,elbc-fcm-nand";
-                       reg = <0x6 0x0 0x40000>;
-               };
+               reg = <0 0xffe05000 0 0x1000>;
        };
 
-       soc@ffe00000 {
-
-               usb@22000 {
-                       phy_type = "ulpi";
-               };
-
-               mdio@24520 {
-                       phy0: ethernet-phy@0 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x0>;
-                       };
-                       phy1: ethernet-phy@1 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x1>;
-                       };
-                       phy2: ethernet-phy@2 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x2>;
-                       };
-                       tbi0: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-
-               };
-
-               mdio@25520 {
-                       tbi1: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-               };
-
-               mdio@26520 {
-                       tbi2: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-
-               };
-
-               ptp_clock@24E00 {
-                       compatible = "fsl,etsec-ptp";
-                       reg = <0x24E00 0xB0>;
-                       interrupts = <68 2 69 2 70 2>;
-                       interrupt-parent = < &mpic >;
-                       fsl,tclk-period = <5>;
-                       fsl,tmr-prsc = <200>;
-                       fsl,tmr-add = <0xCCCCCCCD>;
-                       fsl,tmr-fiper1 = <0x3B9AC9FB>;
-                       fsl,tmr-fiper2 = <0x0001869B>;
-                       fsl,max-adj = <249999999>;
-               };
-
-               enet0: ethernet@24000 {
-                       tbi-handle = <&tbi0>;
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "rgmii-id";
-               };
-
-               enet1: ethernet@25000 {
-                       tbi-handle = <&tbi1>;
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-
-               };
-
-               enet2: ethernet@26000 {
-                       tbi-handle = <&tbi2>;
-                       phy-handle = <&phy2>;
-                       phy-connection-type = "rgmii-id";
-               };
-
-
-               msi@41600 {
-                       compatible = "fsl,mpic-msi";
-               };
+       board_soc: soc: soc@ffe00000 {
+               ranges = <0x0 0x0 0xffe00000 0x100000>;
        };
 
-       pci0: pcie@ffe08000 {
+       pci2: pcie@ffe08000 {
                ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x8 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x9 0x1
-                       0000 0x0 0x0 0x3 &mpic 0xa 0x1
-                       0000 0x0 0x0 0x4 &mpic 0xb 0x1
-                       >;
+               reg = <0 0xffe08000 0 0x1000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0x80000000
                                  0x2000000 0x0 0x80000000
                                  0x0 0x20000000
                };
        };
 
-       pci1: pcie@ffe09000 {
+       board_pci1: pci1: pcie@ffe09000 {
                ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
-               interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
-               interrupt-map = <
-
-                       // IDSEL 0x11 func 0 - PCI slot 1
-                       0x8800 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8800 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x11 func 1 - PCI slot 1
-                       0x8900 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8900 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x11 func 2 - PCI slot 1
-                       0x8a00 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8a00 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x11 func 3 - PCI slot 1
-                       0x8b00 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8b00 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x11 func 4 - PCI slot 1
-                       0x8c00 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8c00 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x11 func 5 - PCI slot 1
-                       0x8d00 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8d00 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x11 func 6 - PCI slot 1
-                       0x8e00 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8e00 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x11 func 7 - PCI slot 1
-                       0x8f00 0x0 0x0 0x1 &i8259 0x9 0x2
-                       0x8f00 0x0 0x0 0x2 &i8259 0xa 0x2
-
-                       // IDSEL 0x1d  Audio
-                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
-
-                       // IDSEL 0x1e Legacy
-                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
-                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
-
-                       // IDSEL 0x1f IDE/SATA
-                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
-                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
-                       >;
-
+               reg = <0 0xffe09000 0 0x1000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
                                  0x1000000 0x0 0x0
                                  0x1000000 0x0 0x0
                                  0x0 0x10000>;
-                       uli1575@0 {
-                               reg = <0x0 0x0 0x0 0x0 0x0>;
-                               #size-cells = <2>;
-                               #address-cells = <3>;
-                               ranges = <0x2000000 0x0 0xa0000000
-                                         0x2000000 0x0 0xa0000000
-                                         0x0 0x20000000
-
-                                         0x1000000 0x0 0x0
-                                         0x1000000 0x0 0x0
-                                         0x0 0x10000>;
-                               isa@1e {
-                                       device_type = "isa";
-                                       #interrupt-cells = <2>;
-                                       #size-cells = <1>;
-                                       #address-cells = <2>;
-                                       reg = <0xf000 0x0 0x0 0x0 0x0>;
-                                       ranges = <0x1 0x0 0x1000000 0x0 0x0
-                                                 0x1000>;
-                                       interrupt-parent = <&i8259>;
-
-                                       i8259: interrupt-controller@20 {
-                                               reg = <0x1 0x20 0x2
-                                                      0x1 0xa0 0x2
-                                                      0x1 0x4d0 0x2>;
-                                               interrupt-controller;
-                                               device_type = "interrupt-controller";
-                                               #address-cells = <0>;
-                                               #interrupt-cells = <2>;
-                                               compatible = "chrp,iic";
-                                               interrupts = <4 1>;
-                                               interrupt-parent = <&mpic>;
-                                       };
-
-                                       i8042@60 {
-                                               #size-cells = <0>;
-                                               #address-cells = <1>;
-                                               reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
-                                               interrupts = <1 3 12 3>;
-                                               interrupt-parent =
-                                                       <&i8259>;
-
-                                               keyboard@0 {
-                                                       reg = <0x0>;
-                                                       compatible = "pnpPNP,303";
-                                               };
-
-                                               mouse@1 {
-                                                       reg = <0x1>;
-                                                       compatible = "pnpPNP,f03";
-                                               };
-                                       };
-
-                                       rtc@70 {
-                                               compatible = "pnpPNP,b00";
-                                               reg = <0x1 0x70 0x2>;
-                                       };
-
-                                       gpio@400 {
-                                               reg = <0x1 0x400 0x80>;
-                                       };
-                               };
-                       };
                };
-
        };
 
-       pci2: pcie@ffe0a000 {
+       pci0: pcie@ffe0a000 {
                ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
+               reg = <0 0xffe0a000 0 0x1000>;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0xc0000000
                                  0x2000000 0x0 0xc0000000
                                  0x0 0x20000000
                };
        };
 };
+
+/*
+ * p2020ds.dtsi must be last to ensure board_pci0 overrides pci0 settings
+ * for interrupt-map & interrupt-map-mask
+ */
+
+/include/ "fsl/p2020si-post.dtsi"
+/include/ "p2020ds.dtsi"
diff --git a/arch/powerpc/boot/dts/p2020ds.dtsi b/arch/powerpc/boot/dts/p2020ds.dtsi
new file mode 100644 (file)
index 0000000..c1cf6ce
--- /dev/null
@@ -0,0 +1,316 @@
+/*
+ * P2020DS Device Tree Source stub (no addresses or top-level ranges)
+ *
+ * Copyright 2011 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&board_lbc {
+       nor@0,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "cfi-flash";
+               reg = <0x0 0x0 0x8000000>;
+               bank-width = <2>;
+               device-width = <1>;
+
+               ramdisk@0 {
+                       reg = <0x0 0x03000000>;
+                       read-only;
+               };
+
+               diagnostic@3000000 {
+                       reg = <0x03000000 0x00e00000>;
+                       read-only;
+               };
+
+               dink@3e00000 {
+                       reg = <0x03e00000 0x00200000>;
+                       read-only;
+               };
+
+               kernel@4000000 {
+                       reg = <0x04000000 0x00400000>;
+                       read-only;
+               };
+
+               jffs2@4400000 {
+                       reg = <0x04400000 0x03b00000>;
+               };
+
+               dtb@7f00000 {
+                       reg = <0x07f00000 0x00080000>;
+                       read-only;
+               };
+
+               u-boot@7f80000 {
+                       reg = <0x07f80000 0x00080000>;
+                       read-only;
+               };
+       };
+
+       nand@2,0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,elbc-fcm-nand";
+               reg = <0x2 0x0 0x40000>;
+
+               u-boot@0 {
+                       reg = <0x0 0x02000000>;
+                       read-only;
+               };
+
+               jffs2@2000000 {
+                       reg = <0x02000000 0x10000000>;
+               };
+
+               ramdisk@12000000 {
+                       reg = <0x12000000 0x08000000>;
+                       read-only;
+               };
+
+               kernel@1a000000 {
+                       reg = <0x1a000000 0x04000000>;
+               };
+
+               dtb@1e000000 {
+                       reg = <0x1e000000 0x01000000>;
+                       read-only;
+               };
+
+               empty@1f000000 {
+                       reg = <0x1f000000 0x21000000>;
+               };
+       };
+
+       board-control@3,0 {
+               compatible = "fsl,p2020ds-fpga", "fsl,fpga-ngpixis";
+               reg = <0x3 0x0 0x30>;
+       };
+
+       nand@4,0 {
+               compatible = "fsl,elbc-fcm-nand";
+               reg = <0x4 0x0 0x40000>;
+       };
+
+       nand@5,0 {
+               compatible = "fsl,elbc-fcm-nand";
+               reg = <0x5 0x0 0x40000>;
+       };
+
+       nand@6,0 {
+               compatible = "fsl,elbc-fcm-nand";
+               reg = <0x6 0x0 0x40000>;
+       };
+};
+
+&board_soc {
+       usb@22000 {
+               phy_type = "ulpi";
+       };
+
+       mdio@24520 {
+               phy0: ethernet-phy@0 {
+                       interrupts = <3 1 0 0>;
+                       reg = <0x0>;
+               };
+               phy1: ethernet-phy@1 {
+                       interrupts = <3 1 0 0>;
+                       reg = <0x1>;
+               };
+               phy2: ethernet-phy@2 {
+                       interrupts = <3 1 0 0>;
+                       reg = <0x2>;
+               };
+               tbi0: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+
+       };
+
+       mdio@25520 {
+               tbi1: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+       };
+
+       mdio@26520 {
+               tbi2: tbi-phy@11 {
+                       reg = <0x11>;
+                       device_type = "tbi-phy";
+               };
+
+       };
+
+       ptp_clock@24e00 {
+               fsl,tclk-period = <5>;
+               fsl,tmr-prsc = <200>;
+               fsl,tmr-add = <0xCCCCCCCD>;
+               fsl,tmr-fiper1 = <0x3B9AC9FB>;
+               fsl,tmr-fiper2 = <0x0001869B>;
+               fsl,max-adj = <249999999>;
+       };
+
+       enet0: ethernet@24000 {
+               tbi-handle = <&tbi0>;
+               phy-handle = <&phy0>;
+               phy-connection-type = "rgmii-id";
+       };
+
+       enet1: ethernet@25000 {
+               tbi-handle = <&tbi1>;
+               phy-handle = <&phy1>;
+               phy-connection-type = "rgmii-id";
+
+       };
+
+       enet2: ethernet@26000 {
+               tbi-handle = <&tbi2>;
+               phy-handle = <&phy2>;
+               phy-connection-type = "rgmii-id";
+       };
+};
+
+&board_pci1 {
+       pcie@0 {
+               interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
+               interrupt-map = <
+
+                       // IDSEL 0x11 func 0 - PCI slot 1
+                       0x8800 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8800 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x11 func 1 - PCI slot 1
+                       0x8900 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8900 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x11 func 2 - PCI slot 1
+                       0x8a00 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8a00 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x11 func 3 - PCI slot 1
+                       0x8b00 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8b00 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x11 func 4 - PCI slot 1
+                       0x8c00 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8c00 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x11 func 5 - PCI slot 1
+                       0x8d00 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8d00 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x11 func 6 - PCI slot 1
+                       0x8e00 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8e00 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x11 func 7 - PCI slot 1
+                       0x8f00 0x0 0x0 0x1 &i8259 0x9 0x2
+                       0x8f00 0x0 0x0 0x2 &i8259 0xa 0x2
+
+                       // IDSEL 0x1d  Audio
+                       0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
+
+                       // IDSEL 0x1e Legacy
+                       0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
+                       0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
+
+                       // IDSEL 0x1f IDE/SATA
+                       0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
+                       0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
+                       >;
+
+               uli1575@0 {
+                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                       #size-cells = <2>;
+                       #address-cells = <3>;
+                       ranges = <0x2000000 0x0 0xa0000000
+                                 0x2000000 0x0 0xa0000000
+                                 0x0 0x20000000
+
+                                 0x1000000 0x0 0x0
+                                 0x1000000 0x0 0x0
+                                 0x0 0x10000>;
+                       isa@1e {
+                               device_type = "isa";
+                               #interrupt-cells = <2>;
+                               #size-cells = <1>;
+                               #address-cells = <2>;
+                               reg = <0xf000 0x0 0x0 0x0 0x0>;
+                               ranges = <0x1 0x0 0x1000000 0x0 0x0
+                                         0x1000>;
+                               interrupt-parent = <&i8259>;
+
+                               i8259: interrupt-controller@20 {
+                                       reg = <0x1 0x20 0x2
+                                              0x1 0xa0 0x2
+                                              0x1 0x4d0 0x2>;
+                                       interrupt-controller;
+                                       device_type = "interrupt-controller";
+                                       #address-cells = <0>;
+                                       #interrupt-cells = <2>;
+                                       compatible = "chrp,iic";
+                                       interrupts = <4 1 0 0>;
+                                       interrupt-parent = <&mpic>;
+                               };
+
+                               i8042@60 {
+                                       #size-cells = <0>;
+                                       #address-cells = <1>;
+                                       reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
+                                       interrupts = <1 3 12 3>;
+                                       interrupt-parent =
+                                               <&i8259>;
+
+                                       keyboard@0 {
+                                               reg = <0x0>;
+                                               compatible = "pnpPNP,303";
+                                       };
+
+                                       mouse@1 {
+                                               reg = <0x1>;
+                                               compatible = "pnpPNP,f03";
+                                       };
+                               };
+
+                               rtc@70 {
+                                       compatible = "pnpPNP,b00";
+                                       reg = <0x1 0x70 0x2>;
+                               };
+
+                               gpio@400 {
+                                       reg = <0x1 0x400 0x80>;
+                               };
+                       };
+               };
+       };
+};
index 1d7a05f3021e058bd59eabb6fd049446accf7073..fd4271296f85d6ae24d596d391ffa81613171e01 100644 (file)
@@ -9,7 +9,7 @@
  * option) any later version.
  */
 
-/include/ "p2020si.dtsi"
+/include/ "fsl/p2020si-pre.dtsi"
 
 / {
        model = "fsl,P2020RDB";
@@ -29,7 +29,8 @@
                device_type = "memory";
        };
 
-       localbus@ffe05000 {
+       lbc: localbus@ffe05000 {
+               reg = <0 0xffe05000 0 0x1000>;
 
                /* NOR and NAND Flashes */
                ranges = <0x0 0x0 0x0 0xef000000 0x01000000
 
        };
 
-       soc@ffe00000 {
+       soc: soc@ffe00000 {
+               ranges = <0x0 0x0 0xffe00000 0x100000>;
+
                i2c@3000 {
                        rtc@68 {
                                compatible = "dallas,ds1339";
                        };
                };
 
-       spi@7000 {
-
-               fsl_m25p80@0 {
+               spi@7000 {
+                       flash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               compatible = "fsl,espi-flash";
+                               compatible = "spansion,s25sl12801";
                                reg = <0>;
-                               linux,modalias = "fsl_m25p80";
-                               modal = "s25sl128b";
                                spi-max-frequency = <50000000>;
-                               mode = <0>;
 
                                partition@0 {
                                        /* 512KB for u-boot Bootloader Image */
 
                mdio@24520 {
                        phy0: ethernet-phy@0 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
+                               interrupts = <3 1 0 0>;
                                reg = <0x0>;
                                };
                        phy1: ethernet-phy@1 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
+                               interrupts = <3 1 0 0>;
                                reg = <0x1>;
                                };
                };
                        status = "disabled";
                };
 
-               ptp_clock@24E00 {
-                       compatible = "fsl,etsec-ptp";
-                       reg = <0x24E00 0xB0>;
-                       interrupts = <68 2 69 2 70 2>;
-                       interrupt-parent = < &mpic >;
+               ptp_clock@24e00 {
                        fsl,tclk-period = <5>;
                        fsl,tmr-prsc = <200>;
                        fsl,tmr-add = <0xCCCCCCCD>;
                        phy-handle = <&phy1>;
                        phy-connection-type = "rgmii-id";
                };
-
        };
 
        pci0: pcie@ffe08000 {
+               reg = <0 0xffe08000 0 0x1000>;
                status = "disabled";
        };
 
        pci1: pcie@ffe09000 {
+               reg = <0 0xffe09000 0 0x1000>;
                ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
-                       pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
+               pcie@0 {
                        ranges = <0x2000000 0x0 0xa0000000
                                  0x2000000 0x0 0xa0000000
                                  0x0 0x20000000
        };
 
        pci2: pcie@ffe0a000 {
+               reg = <0 0xffe0a000 0 0x1000>;
                ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
                          0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
                pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
                        ranges = <0x2000000 0x0 0x80000000
                                  0x2000000 0x0 0x80000000
                                  0x0 0x20000000
                };
        };
 };
+
+/include/ "fsl/p2020si-post.dtsi"
index fc8ddddfccb6dc831e715a5eec9a45131228362a..66aac864c4ccc9c9e62e82bf79c85d5f36f67f95 100644 (file)
  * option) any later version.
  */
 
-/include/ "p2020si.dtsi"
+/include/ "p2020rdb.dts"
 
 / {
        model = "fsl,P2020RDB";
        compatible = "fsl,P2020RDB", "fsl,MPC85XXRDB-CAMP";
 
-       aliases {
-               ethernet1 = &enet1;
-               ethernet2 = &enet2;
-               serial0 = &serial0;
-               pci0 = &pci0;
-       };
-
        cpus {
                PowerPC,P2020@1 {
-               status = "disabled";
+                       status = "disabled";
                };
-
-       };
-
-       memory {
-               device_type = "memory";
        };
 
        localbus@ffe05000 {
        };
 
        soc@ffe00000 {
-               i2c@3000 {
-                       rtc@68 {
-                               compatible = "dallas,ds1339";
-                               reg = <0x68>;
-                       };
-               };
-
                serial1: serial@4600 {
                        status = "disabled";
                };
 
-               spi@7000 {
-
-                       fsl_m25p80@0 {
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               compatible = "fsl,espi-flash";
-                               reg = <0>;
-                               linux,modalias = "fsl_m25p80";
-                               modal = "s25sl128b";
-                               spi-max-frequency = <50000000>;
-                               mode = <0>;
-
-                               partition@0 {
-                                       /* 512KB for u-boot Bootloader Image */
-                                       reg = <0x0 0x00080000>;
-                                       label = "SPI (RO) U-Boot Image";
-                                       read-only;
-                               };
-
-                               partition@80000 {
-                                       /* 512KB for DTB Image */
-                                       reg = <0x00080000 0x00080000>;
-                                       label = "SPI (RO) DTB Image";
-                                       read-only;
-                               };
-
-                               partition@100000 {
-                                       /* 4MB for Linux Kernel Image */
-                                       reg = <0x00100000 0x00400000>;
-                                       label = "SPI (RO) Linux Kernel Image";
-                                       read-only;
-                               };
-
-                               partition@500000 {
-                                       /* 4MB for Compressed RFS Image */
-                                       reg = <0x00500000 0x00400000>;
-                                       label = "SPI (RO) Compressed RFS Image";
-                                       read-only;
-                               };
-
-                               partition@900000 {
-                                       /* 7MB for JFFS2 based RFS */
-                                       reg = <0x00900000 0x00700000>;
-                                       label = "SPI (RW) JFFS2 RFS";
-                               };
-                       };
-               };
-
                dma@c300 {
                        status = "disabled";
                };
 
-               usb@22000 {
-                       phy_type = "ulpi";
-               };
-
-               mdio@24520 {
-
-                       phy0: ethernet-phy@0 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x0>;
-                       };
-                       phy1: ethernet-phy@1 {
-                               interrupt-parent = <&mpic>;
-                               interrupts = <3 1>;
-                               reg = <0x1>;
-                       };
-               };
-
-               mdio@25520 {
-                       tbi0: tbi-phy@11 {
-                               reg = <0x11>;
-                               device_type = "tbi-phy";
-                       };
-               };
-
-               mdio@26520 {
-                       status = "disabled";
-               };
-
                enet0: ethernet@24000 {
                        status = "disabled";
                };
 
-               enet1: ethernet@25000 {
-                       tbi-handle = <&tbi0>;
-                       phy-handle = <&phy0>;
-                       phy-connection-type = "sgmii";
-
-               };
-
-               enet2: ethernet@26000 {
-                       phy-handle = <&phy1>;
-                       phy-connection-type = "rgmii-id";
-               };
-
-
                mpic: pic@40000 {
                        protected-sources = <
                        42 76 77 78 79 /* serial1 , dma2 */
                msi@41600 {
                        status = "disabled";
                };
-
-
        };
 
        pci0: pcie@ffe08000 {
                status = "disabled";
        };
 
-       pci1: pcie@ffe09000 {
-               ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
-                         0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x4 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x5 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x6 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x7 0x1
-                       >;
-               pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       ranges = <0x2000000 0x0 0xa0000000
-                                 0x2000000 0x0 0xa0000000
-                                 0x0 0x20000000
-
-                                 0x1000000 0x0 0x0
-                                 0x1000000 0x0 0x0
-                                 0x0 0x100000>;
-               };
-       };
-
        pci2: pcie@ffe0a000 {
                status = "disabled";
        };
index 261c34ba45ec9a2c3431664eee8d8f6adb288073..9bd8ef493dd26fe66d89f0ed1ed517fd20a6d57c 100644 (file)
  * option) any later version.
  */
 
-/include/ "p2020si.dtsi"
+/include/ "p2020rdb.dts"
 
 / {
        model = "fsl,P2020RDB";
        compatible = "fsl,P2020RDB", "fsl,MPC85XXRDB-CAMP";
 
-       aliases {
-               ethernet0 = &enet0;
-               serial0 = &serial1;
-               pci1 = &pci1;
-       };
-
        cpus {
                PowerPC,P2020@0 {
-               status = "disabled";
+                       status = "disabled";
                };
        };
 
-       memory {
-               device_type = "memory";
-       };
-
        localbus@ffe05000 {
                status = "disabled";
        };
                        status = "disabled";
                };
 
-               dma@c300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0xc300 0x4>;
-                       ranges = <0x0 0xc100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <76 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <77 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <78 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <79 2>;
-                       };
-               };
-
                gpio: gpio-controller@f000 {
                        status = "disabled";
                };
 
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,p2020-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x80000>; // L2,512K
-                       interrupt-parent = <&mpic>;
-               };
-
                dma@21300 {
                        status = "disabled";
                };
                        status = "disabled";
                };
 
-               enet0: ethernet@24000 {
-                       fixed-link = <1 1 1000 0 0>;
-                       phy-connection-type = "rgmii-id";
-
-               };
-
                enet1: ethernet@25000 {
                        status = "disabled";
                };
                        >;
                };
 
-               msi@41600 {
-                       compatible = "fsl,p2020-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
                global-utilities@e0000 {        //global utilities block
                        status = "disabled";
                };
        pci1: pcie@ffe09000 {
                status = "disabled";
        };
-
-       pci2: pcie@ffe0a000 {
-               ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
-                         0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
-               interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-               interrupt-map = <
-                       /* IDSEL 0x0 */
-                       0000 0x0 0x0 0x1 &mpic 0x0 0x1
-                       0000 0x0 0x0 0x2 &mpic 0x1 0x1
-                       0000 0x0 0x0 0x3 &mpic 0x2 0x1
-                       0000 0x0 0x0 0x4 &mpic 0x3 0x1
-                       >;
-               pcie@0 {
-                       reg = <0x0 0x0 0x0 0x0 0x0>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       ranges = <0x2000000 0x0 0x80000000
-                                 0x2000000 0x0 0x80000000
-                                 0x0 0x20000000
-
-                                 0x1000000 0x0 0x0
-                                 0x1000000 0x0 0x0
-                                 0x0 0x100000>;
-               };
-       };
 };
diff --git a/arch/powerpc/boot/dts/p2020si.dtsi b/arch/powerpc/boot/dts/p2020si.dtsi
deleted file mode 100644 (file)
index 6def17f..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-/*
- * P2020 Device Tree Source
- *
- * Copyright 2011 Freescale Semiconductor Inc.
- *
- * This program is free software; you can redistribute  it and/or modify it
- * under  the terms of  the GNU General  Public License as published by the
- * Free Software Foundation;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-/dts-v1/;
-/ {
-       compatible = "fsl,P2020";
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               PowerPC,P2020@0 {
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       next-level-cache = <&L2>;
-               };
-
-               PowerPC,P2020@1 {
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       next-level-cache = <&L2>;
-               };
-       };
-
-       localbus@ffe05000 {
-               #address-cells = <2>;
-               #size-cells = <1>;
-               compatible = "fsl,p2020-elbc", "fsl,elbc", "simple-bus";
-               reg = <0 0xffe05000 0 0x1000>;
-               interrupts = <19 2>;
-               interrupt-parent = <&mpic>;
-       };
-
-       soc@ffe00000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "fsl,p2020-immr", "simple-bus";
-               ranges = <0x0  0x0 0xffe00000 0x100000>;
-               bus-frequency = <0>;            // Filled out by uboot.
-
-               ecm-law@0 {
-                       compatible = "fsl,ecm-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <12>;
-               };
-
-               ecm@1000 {
-                       compatible = "fsl,p2020-ecm", "fsl,ecm";
-                       reg = <0x1000 0x1000>;
-                       interrupts = <17 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               memory-controller@2000 {
-                       compatible = "fsl,p2020-memory-controller";
-                       reg = <0x2000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <18 2>;
-               };
-
-               i2c@3000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3000 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               i2c@3100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x3100 0x100>;
-                       interrupts = <43 2>;
-                       interrupt-parent = <&mpic>;
-                       dfsrr;
-               };
-
-               serial0: serial@4500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               serial1: serial@4600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x4600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <42 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               spi@7000 {
-                       cell-index = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,espi";
-                       reg = <0x7000 0x1000>;
-                       interrupts = <59 0x2>;
-                       interrupt-parent = <&mpic>;
-                       mode = "cpu";
-               };
-
-               dma@c300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0xc300 0x4>;
-                       ranges = <0x0 0xc100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <76 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <77 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <78 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <79 2>;
-                       };
-               };
-
-               gpio: gpio-controller@f000 {
-                       #gpio-cells = <2>;
-                       compatible = "fsl,mpc8572-gpio";
-                       reg = <0xf000 0x100>;
-                       interrupts = <47 0x2>;
-                       interrupt-parent = <&mpic>;
-                       gpio-controller;
-               };
-
-               L2: l2-cache-controller@20000 {
-                       compatible = "fsl,p2020-l2-cache-controller";
-                       reg = <0x20000 0x1000>;
-                       cache-line-size = <32>; // 32 bytes
-                       cache-size = <0x80000>; // L2,512K
-                       interrupt-parent = <&mpic>;
-                       interrupts = <16 2>;
-               };
-
-               dma@21300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,eloplus-dma";
-                       reg = <0x21300 0x4>;
-                       ranges = <0x0 0x21100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <20 2>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <21 2>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <22 2>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <23 2>;
-                       };
-               };
-
-               usb@22000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl-usb2-dr";
-                       reg = <0x22000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <28 0x2>;
-               };
-
-               mdio@24520 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,gianfar-mdio";
-                       reg = <0x24520 0x20>;
-               };
-
-               mdio@25520 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,gianfar-tbi";
-                       reg = <0x26520 0x20>;
-               };
-
-               mdio@26520 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,gianfar-tbi";
-                       reg = <0x520 0x20>;
-               };
-
-               enet0: ethernet@24000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <0>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x24000 0x1000>;
-                       ranges = <0x0 0x24000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <29 2 30 2 34 2>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               enet1: ethernet@25000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <1>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x25000 0x1000>;
-                       ranges = <0x0 0x25000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <35 2 36 2 40 2>;
-                       interrupt-parent = <&mpic>;
-
-               };
-
-               enet2: ethernet@26000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       cell-index = <2>;
-                       device_type = "network";
-                       model = "eTSEC";
-                       compatible = "gianfar";
-                       reg = <0x26000 0x1000>;
-                       ranges = <0x0 0x26000 0x1000>;
-                       local-mac-address = [ 00 00 00 00 00 00 ];
-                       interrupts = <31 2 32 2 33 2>;
-                       interrupt-parent = <&mpic>;
-
-               };
-
-               sdhci@2e000 {
-                       compatible = "fsl,p2020-esdhc", "fsl,esdhc";
-                       reg = <0x2e000 0x1000>;
-                       interrupts = <72 0x2>;
-                       interrupt-parent = <&mpic>;
-                       /* Filled in by U-Boot */
-                       clock-frequency = <0>;
-               };
-
-               crypto@30000 {
-                       compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4",
-                                    "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
-                       reg = <0x30000 0x10000>;
-                       interrupts = <45 2 58 2>;
-                       interrupt-parent = <&mpic>;
-                       fsl,num-channels = <4>;
-                       fsl,channel-fifo-len = <24>;
-                       fsl,exec-units-mask = <0xbfe>;
-                       fsl,descriptor-types-mask = <0x3ab0ebf>;
-               };
-
-               mpic: pic@40000 {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <2>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi@41600 {
-                       compatible = "fsl,p2020-msi", "fsl,mpic-msi";
-                       reg = <0x41600 0x80>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0
-                               0xe1 0
-                               0xe2 0
-                               0xe3 0
-                               0xe4 0
-                               0xe5 0
-                               0xe6 0
-                               0xe7 0>;
-                       interrupt-parent = <&mpic>;
-               };
-
-               global-utilities@e0000 {        //global utilities block
-                       compatible = "fsl,p2020-guts";
-                       reg = <0xe0000 0x1000>;
-                       fsl,has-rstcr;
-               };
-       };
-
-       pci0: pcie@ffe08000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe08000 0 0x1000>;
-               bus-range = <0 255>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <24 2>;
-       };
-
-       pci1: pcie@ffe09000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe09000 0 0x1000>;
-               bus-range = <0 255>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <25 2>;
-       };
-
-       pci2: pcie@ffe0a000 {
-               compatible = "fsl,mpc8548-pcie";
-               device_type = "pci";
-               #interrupt-cells = <1>;
-               #size-cells = <2>;
-               #address-cells = <3>;
-               reg = <0 0xffe0a000 0 0x1000>;
-               bus-range = <0 255>;
-               clock-frequency = <33333333>;
-               interrupt-parent = <&mpic>;
-               interrupts = <26 2>;
-       };
-};
index 79b6895027c0d5dbacc03b6246131fb1b5a1c632..4f957db01230906e23b8cdd854a2f4ac00813491 100644 (file)
@@ -32,7 +32,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/include/ "p2041si.dtsi"
+/include/ "fsl/p2041si-pre.dtsi"
 
 / {
        model = "fsl,P2041RDB";
@@ -50,6 +50,8 @@
        };
 
        soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
                spi@110000 {
                        flash@0 {
                                #address-cells = <1>;
                };
        };
 
-       localbus@ffe124000 {
+       rio: rapidio@ffe0c0000 {
+               reg = <0xf 0xfe0c0000 0 0x11000>;
+
+               port1 {
+                       ranges = <0 0 0xc 0x20000000 0 0x10000000>;
+               };
+               port2 {
+                       ranges = <0 0 0xc 0x30000000 0 0x10000000>;
+               };
+       };
+
+       lbc: localbus@ffe124000 {
                reg = <0xf 0xfe124000 0 0x1000>;
                ranges = <0 0 0xf 0xe8000000 0x08000000>;
 
                reg = <0xf 0xfe200000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>;
+               fsl,msi = <&msi0>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe201000 0 0x1000>;
                ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
                          0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>;
+               fsl,msi = <&msi1>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe202000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
+               fsl,msi = <&msi2>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                };
        };
 };
+
+/include/ "fsl/p2041si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p2041si.dtsi b/arch/powerpc/boot/dts/p2041si.dtsi
deleted file mode 100644 (file)
index f7492ed..0000000
+++ /dev/null
@@ -1,692 +0,0 @@
-/*
- * P2041 Silicon Device Tree Source
- *
- * Copyright 2011 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/dts-v1/;
-
-/ {
-       compatible = "fsl,P2041";
-       #address-cells = <2>;
-       #size-cells = <2>;
-       interrupt-parent = <&mpic>;
-
-       aliases {
-               ccsr = &soc;
-               dcsr = &dcsr;
-
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-               usb0 = &usb0;
-               usb1 = &usb1;
-               dma0 = &dma0;
-               dma1 = &dma1;
-               sdhc = &sdhc;
-               msi0 = &msi0;
-               msi1 = &msi1;
-               msi2 = &msi2;
-
-               crypto = &crypto;
-               sec_jr0 = &sec_jr0;
-               sec_jr1 = &sec_jr1;
-               sec_jr2 = &sec_jr2;
-               sec_jr3 = &sec_jr3;
-               rtic_a = &rtic_a;
-               rtic_b = &rtic_b;
-               rtic_c = &rtic_c;
-               rtic_d = &rtic_d;
-               sec_mon = &sec_mon;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: PowerPC,e500mc@0 {
-                       device_type = "cpu";
-                       reg = <0>;
-                       next-level-cache = <&L2_0>;
-                       L2_0: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu1: PowerPC,e500mc@1 {
-                       device_type = "cpu";
-                       reg = <1>;
-                       next-level-cache = <&L2_1>;
-                       L2_1: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu2: PowerPC,e500mc@2 {
-                       device_type = "cpu";
-                       reg = <2>;
-                       next-level-cache = <&L2_2>;
-                       L2_2: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu3: PowerPC,e500mc@3 {
-                       device_type = "cpu";
-                       reg = <3>;
-                       next-level-cache = <&L2_3>;
-                       L2_3: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-       };
-
-       dcsr: dcsr@f00000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "fsl,dcsr", "simple-bus";
-
-               dcsr-epu@0 {
-                       compatible = "fsl,dcsr-epu";
-                       interrupts = <52 2 0 0
-                                     84 2 0 0
-                                     85 2 0 0>;
-                       interrupt-parent = <&mpic>;
-                       reg = <0x0 0x1000>;
-               };
-               dcsr-npc {
-                       compatible = "fsl,dcsr-npc";
-                       reg = <0x1000 0x1000 0x1000000 0x8000>;
-               };
-               dcsr-nxc@2000 {
-                       compatible = "fsl,dcsr-nxc";
-                       reg = <0x2000 0x1000>;
-               };
-               dcsr-corenet {
-                       compatible = "fsl,dcsr-corenet";
-                       reg = <0x8000 0x1000 0xB0000 0x1000>;
-               };
-               dcsr-dpaa@9000 {
-                       compatible = "fsl,p2041-dcsr-dpaa", "fsl,dcsr-dpaa";
-                       reg = <0x9000 0x1000>;
-               };
-               dcsr-ocn@11000 {
-                       compatible = "fsl,p2041-dcsr-ocn", "fsl,dcsr-ocn";
-                       reg = <0x11000 0x1000>;
-               };
-               dcsr-ddr@12000 {
-                       compatible = "fsl,dcsr-ddr";
-                       dev-handle = <&ddr>;
-                       reg = <0x12000 0x1000>;
-               };
-               dcsr-nal@18000 {
-                       compatible = "fsl,p2041-dcsr-nal", "fsl,dcsr-nal";
-                       reg = <0x18000 0x1000>;
-               };
-               dcsr-rcpm@22000 {
-                       compatible = "fsl,p2041-dcsr-rcpm", "fsl,dcsr-rcpm";
-                       reg = <0x22000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@40000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu0>;
-                       reg = <0x40000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@41000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu1>;
-                       reg = <0x41000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@42000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu2>;
-                       reg = <0x42000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@43000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu3>;
-                       reg = <0x43000 0x1000>;
-               };
-       };
-
-       soc: soc@ffe000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
-               reg = <0xf 0xfe000000 0 0x00001000>;
-
-               soc-sram-error {
-                       compatible = "fsl,soc-sram-error";
-                       interrupts = <16 2 1 29>;
-               };
-
-               corenet-law@0 {
-                       compatible = "fsl,corenet-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <32>;
-               };
-
-               ddr: memory-controller@8000 {
-                       compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
-                       reg = <0x8000 0x1000>;
-                       interrupts = <16 2 1 23>;
-               };
-
-               cpc: l3-cache-controller@10000 {
-                       compatible = "fsl,p2041-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache";
-                       reg = <0x10000 0x1000>;
-                       interrupts = <16 2 1 27>;
-               };
-
-               corenet-cf@18000 {
-                       compatible = "fsl,corenet-cf";
-                       reg = <0x18000 0x1000>;
-                       interrupts = <16 2 1 31>;
-                       fsl,ccf-num-csdids = <32>;
-                       fsl,ccf-num-snoopids = <32>;
-               };
-
-               iommu@20000 {
-                       compatible = "fsl,pamu-v1.0", "fsl,pamu";
-                       reg = <0x20000 0x4000>;
-                       interrupts = <
-                               24 2 0 0
-                               16 2 1 30>;
-               };
-
-               mpic: pic@40000 {
-                       clock-frequency = <0>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <4>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "fsl,mpic", "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi0: msi@41600 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41600 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0 0 0
-                               0xe1 0 0 0
-                               0xe2 0 0 0
-                               0xe3 0 0 0
-                               0xe4 0 0 0
-                               0xe5 0 0 0
-                               0xe6 0 0 0
-                               0xe7 0 0 0>;
-               };
-
-               msi1: msi@41800 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41800 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe8 0 0 0
-                               0xe9 0 0 0
-                               0xea 0 0 0
-                               0xeb 0 0 0
-                               0xec 0 0 0
-                               0xed 0 0 0
-                               0xee 0 0 0
-                               0xef 0 0 0>;
-               };
-
-               msi2: msi@41a00 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41a00 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xf0 0 0 0
-                               0xf1 0 0 0
-                               0xf2 0 0 0
-                               0xf3 0 0 0
-                               0xf4 0 0 0
-                               0xf5 0 0 0
-                               0xf6 0 0 0
-                               0xf7 0 0 0>;
-               };
-
-               guts: global-utilities@e0000 {
-                       compatible = "fsl,qoriq-device-config-1.0";
-                       reg = <0xe0000 0xe00>;
-                       fsl,has-rstcr;
-                       #sleep-cells = <1>;
-                       fsl,liodn-bits = <12>;
-               };
-
-               pins: global-utilities@e0e00 {
-                       compatible = "fsl,qoriq-pin-control-1.0";
-                       reg = <0xe0e00 0x200>;
-                       #sleep-cells = <2>;
-               };
-
-               clockgen: global-utilities@e1000 {
-                       compatible = "fsl,p2041-clockgen", "fsl,qoriq-clockgen-1.0";
-                       reg = <0xe1000 0x1000>;
-                       clock-frequency = <0>;
-               };
-
-               rcpm: global-utilities@e2000 {
-                       compatible = "fsl,qoriq-rcpm-1.0";
-                       reg = <0xe2000 0x1000>;
-                       #sleep-cells = <1>;
-               };
-
-               sfp: sfp@e8000 {
-                       compatible = "fsl,p2041-sfp", "fsl,qoriq-sfp-1.0";
-                       reg        = <0xe8000 0x1000>;
-               };
-
-               serdes: serdes@ea000 {
-                       compatible = "fsl,p2041-serdes";
-                       reg        = <0xea000 0x1000>;
-               };
-
-               dma0: dma@100300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p2041-dma", "fsl,eloplus-dma";
-                       reg = <0x100300 0x4>;
-                       ranges = <0x0 0x100100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <28 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <29 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <30 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <31 2 0 0>;
-                       };
-               };
-
-               dma1: dma@101300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p2041-dma", "fsl,eloplus-dma";
-                       reg = <0x101300 0x4>;
-                       ranges = <0x0 0x101100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <32 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <33 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <34 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p2041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <35 2 0 0>;
-                       };
-               };
-
-               spi@110000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,p2041-espi", "fsl,mpc8536-espi";
-                       reg = <0x110000 0x1000>;
-                       interrupts = <53 0x2 0 0>;
-                       fsl,espi-num-chipselects = <4>;
-               };
-
-               sdhc: sdhc@114000 {
-                       compatible = "fsl,p2041-esdhc", "fsl,esdhc";
-                       reg = <0x114000 0x1000>;
-                       interrupts = <48 2 0 0>;
-                       sdhci,auto-cmd12;
-                       clock-frequency = <0>;
-               };
-
-               i2c@118000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118000 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@118100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118100 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <2>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119000 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <3>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119100 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               serial0: serial@11c500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial1: serial@11c600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial2: serial@11d500 {
-                       cell-index = <2>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               serial3: serial@11d600 {
-                       cell-index = <3>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               gpio0: gpio@130000 {
-                       compatible = "fsl,p2041-gpio", "fsl,qoriq-gpio";
-                       reg = <0x130000 0x1000>;
-                       interrupts = <55 2 0 0>;
-                       #gpio-cells = <2>;
-                       gpio-controller;
-               };
-
-               usb0: usb@210000 {
-                       compatible = "fsl,p2041-usb2-mph",
-                                       "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x210000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <44 0x2 0 0>;
-                       phy_type = "utmi";
-                       port0;
-               };
-
-               usb1: usb@211000 {
-                       compatible = "fsl,p2041-usb2-dr",
-                                       "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
-                       reg = <0x211000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <45 0x2 0 0>;
-                       phy_type = "utmi";
-               };
-
-               sata@220000 {
-                       compatible = "fsl,p2041-sata", "fsl,pq-sata-v2";
-                       reg = <0x220000 0x1000>;
-                       interrupts = <68 0x2 0 0>;
-               };
-
-               sata@221000 {
-                       compatible = "fsl,p2041-sata", "fsl,pq-sata-v2";
-                       reg = <0x221000 0x1000>;
-                       interrupts = <69 0x2 0 0>;
-               };
-
-               crypto: crypto@300000 {
-                       compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x300000 0x10000>;
-                       ranges = <0 0x300000 0x10000>;
-                       interrupts = <92 2 0 0>;
-
-                       sec_jr0: jr@1000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x1000 0x1000>;
-                               interrupts = <88 2 0 0>;
-                       };
-
-                       sec_jr1: jr@2000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x2000 0x1000>;
-                               interrupts = <89 2 0 0>;
-                       };
-
-                       sec_jr2: jr@3000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x3000 0x1000>;
-                               interrupts = <90 2 0 0>;
-                       };
-
-                       sec_jr3: jr@4000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x4000 0x1000>;
-                               interrupts = <91 2 0 0>;
-                       };
-
-                       rtic@6000 {
-                               compatible = "fsl,sec-v4.2-rtic",
-                                            "fsl,sec-v4.0-rtic";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0x6000 0x100>;
-                               ranges = <0x0 0x6100 0xe00>;
-
-                               rtic_a: rtic-a@0 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x00 0x20 0x100 0x80>;
-                               };
-
-                               rtic_b: rtic-b@20 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x20 0x20 0x200 0x80>;
-                               };
-
-                               rtic_c: rtic-c@40 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x40 0x20 0x300 0x80>;
-                               };
-
-                               rtic_d: rtic-d@60 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x60 0x20 0x500 0x80>;
-                               };
-                       };
-               };
-
-               sec_mon: sec_mon@314000 {
-                       compatible = "fsl,sec-v4.2-mon", "fsl,sec-v4.0-mon";
-                       reg = <0x314000 0x1000>;
-                       interrupts = <93 2 0 0>;
-               };
-
-       };
-
-       localbus@ffe124000 {
-               compatible = "fsl,p2041-elbc", "fsl,elbc", "simple-bus";
-               interrupts = <25 2 0 0>;
-               #address-cells = <2>;
-               #size-cells = <1>;
-       };
-
-       pci0: pcie@ffe200000 {
-               compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <33333333>;
-               fsl,msi = <&msi0>;
-               interrupts = <16 2 1 15>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 15>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 40 1 0 0
-                               0000 0 0 2 &mpic 1 1 0 0
-                               0000 0 0 3 &mpic 2 1 0 0
-                               0000 0 0 4 &mpic 3 1 0 0
-                               >;
-               };
-       };
-
-       pci1: pcie@ffe201000 {
-               compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0 0xff>;
-               clock-frequency = <33333333>;
-               fsl,msi = <&msi1>;
-               interrupts = <16 2 1 14>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 14>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 41 1 0 0
-                               0000 0 0 2 &mpic 5 1 0 0
-                               0000 0 0 3 &mpic 6 1 0 0
-                               0000 0 0 4 &mpic 7 1 0 0
-                               >;
-               };
-       };
-
-       pci2: pcie@ffe202000 {
-               compatible = "fsl,p2041-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <33333333>;
-               fsl,msi = <&msi2>;
-               interrupts = <16 2 1 13>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 13>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 42 1 0 0
-                               0000 0 0 2 &mpic 9 1 0 0
-                               0000 0 0 3 &mpic 10 1 0 0
-                               0000 0 0 4 &mpic 11 1 0 0
-                               >;
-               };
-       };
-};
index bbd113b49a8f215625fd6f993b09fab0bf5009b6..f469145abaeb420e8dc31b44a87672273c14ab4d 100644 (file)
@@ -32,7 +32,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/include/ "p3041si.dtsi"
+/include/ "fsl/p3041si-pre.dtsi"
 
 / {
        model = "fsl,P3041DS";
@@ -50,6 +50,8 @@
        };
 
        soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
                spi@110000 {
                        flash@0 {
                                #address-cells = <1>;
                };
        };
 
-       localbus@ffe124000 {
+       rio: rapidio@ffe0c0000 {
+               reg = <0xf 0xfe0c0000 0 0x11000>;
+
+               port1 {
+                       ranges = <0 0 0xc 0x20000000 0 0x10000000>;
+               };
+               port2 {
+                       ranges = <0 0 0xc 0x30000000 0 0x10000000>;
+               };
+       };
+
+       lbc: localbus@ffe124000 {
                reg = <0xf 0xfe124000 0 0x1000>;
                ranges = <0 0 0xf 0xe8000000 0x08000000
                          2 0 0xf 0xffa00000 0x00040000
                reg = <0xf 0xfe200000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>;
+               fsl,msi = <&msi0>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe201000 0 0x1000>;
                ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
                          0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>;
+               fsl,msi = <&msi1>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe202000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
+               fsl,msi = <&msi2>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe203000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x60000000 0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>;
+               fsl,msi = <&msi2>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                };
        };
 };
+
+/include/ "fsl/p3041si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p3041si.dtsi b/arch/powerpc/boot/dts/p3041si.dtsi
deleted file mode 100644 (file)
index 87130b7..0000000
+++ /dev/null
@@ -1,729 +0,0 @@
-/*
- * P3041 Silicon Device Tree Source
- *
- * Copyright 2010-2011 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/dts-v1/;
-
-/ {
-       compatible = "fsl,P3041";
-       #address-cells = <2>;
-       #size-cells = <2>;
-       interrupt-parent = <&mpic>;
-
-       aliases {
-               ccsr = &soc;
-               dcsr = &dcsr;
-
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-               pci3 = &pci3;
-               usb0 = &usb0;
-               usb1 = &usb1;
-               dma0 = &dma0;
-               dma1 = &dma1;
-               sdhc = &sdhc;
-               msi0 = &msi0;
-               msi1 = &msi1;
-               msi2 = &msi2;
-
-               crypto = &crypto;
-               sec_jr0 = &sec_jr0;
-               sec_jr1 = &sec_jr1;
-               sec_jr2 = &sec_jr2;
-               sec_jr3 = &sec_jr3;
-               rtic_a = &rtic_a;
-               rtic_b = &rtic_b;
-               rtic_c = &rtic_c;
-               rtic_d = &rtic_d;
-               sec_mon = &sec_mon;
-
-/*
-               rio0 = &rapidio0;
- */
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: PowerPC,e500mc@0 {
-                       device_type = "cpu";
-                       reg = <0>;
-                       next-level-cache = <&L2_0>;
-                       L2_0: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu1: PowerPC,e500mc@1 {
-                       device_type = "cpu";
-                       reg = <1>;
-                       next-level-cache = <&L2_1>;
-                       L2_1: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu2: PowerPC,e500mc@2 {
-                       device_type = "cpu";
-                       reg = <2>;
-                       next-level-cache = <&L2_2>;
-                       L2_2: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu3: PowerPC,e500mc@3 {
-                       device_type = "cpu";
-                       reg = <3>;
-                       next-level-cache = <&L2_3>;
-                       L2_3: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-       };
-
-       dcsr: dcsr@f00000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "fsl,dcsr", "simple-bus";
-
-               dcsr-epu@0 {
-                       compatible = "fsl,dcsr-epu";
-                       interrupts = <52 2 0 0
-                                     84 2 0 0
-                                     85 2 0 0>;
-                       interrupt-parent = <&mpic>;
-                       reg = <0x0 0x1000>;
-               };
-               dcsr-npc {
-                       compatible = "fsl,dcsr-npc";
-                       reg = <0x1000 0x1000 0x1000000 0x8000>;
-               };
-               dcsr-nxc@2000 {
-                       compatible = "fsl,dcsr-nxc";
-                       reg = <0x2000 0x1000>;
-               };
-               dcsr-corenet {
-                       compatible = "fsl,dcsr-corenet";
-                       reg = <0x8000 0x1000 0xB0000 0x1000>;
-               };
-               dcsr-dpaa@9000 {
-                       compatible = "fsl,p43041-dcsr-dpaa", "fsl,dcsr-dpaa";
-                       reg = <0x9000 0x1000>;
-               };
-               dcsr-ocn@11000 {
-                       compatible = "fsl,p43041-dcsr-ocn", "fsl,dcsr-ocn";
-                       reg = <0x11000 0x1000>;
-               };
-               dcsr-ddr@12000 {
-                       compatible = "fsl,dcsr-ddr";
-                       dev-handle = <&ddr>;
-                       reg = <0x12000 0x1000>;
-               };
-               dcsr-nal@18000 {
-                       compatible = "fsl,p43041-dcsr-nal", "fsl,dcsr-nal";
-                       reg = <0x18000 0x1000>;
-               };
-               dcsr-rcpm@22000 {
-                       compatible = "fsl,p43041-dcsr-rcpm", "fsl,dcsr-rcpm";
-                       reg = <0x22000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@40000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu0>;
-                       reg = <0x40000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@41000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu1>;
-                       reg = <0x41000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@42000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu2>;
-                       reg = <0x42000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@43000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu3>;
-                       reg = <0x43000 0x1000>;
-               };
-       };
-
-       soc: soc@ffe000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
-               reg = <0xf 0xfe000000 0 0x00001000>;
-
-               soc-sram-error {
-                       compatible = "fsl,soc-sram-error";
-                       interrupts = <16 2 1 29>;
-               };
-
-               corenet-law@0 {
-                       compatible = "fsl,corenet-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <32>;
-               };
-
-               ddr: memory-controller@8000 {
-                       compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
-                       reg = <0x8000 0x1000>;
-                       interrupts = <16 2 1 23>;
-               };
-
-               cpc: l3-cache-controller@10000 {
-                       compatible = "fsl,p3041-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache";
-                       reg = <0x10000 0x1000>;
-                       interrupts = <16 2 1 27>;
-               };
-
-               corenet-cf@18000 {
-                       compatible = "fsl,corenet-cf";
-                       reg = <0x18000 0x1000>;
-                       interrupts = <16 2 1 31>;
-                       fsl,ccf-num-csdids = <32>;
-                       fsl,ccf-num-snoopids = <32>;
-               };
-
-               iommu@20000 {
-                       compatible = "fsl,pamu-v1.0", "fsl,pamu";
-                       reg = <0x20000 0x4000>;
-                       interrupts = <
-                               24 2 0 0
-                               16 2 1 30>;
-               };
-
-               mpic: pic@40000 {
-                       clock-frequency = <0>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <4>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "fsl,mpic", "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi0: msi@41600 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41600 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0 0 0
-                               0xe1 0 0 0
-                               0xe2 0 0 0
-                               0xe3 0 0 0
-                               0xe4 0 0 0
-                               0xe5 0 0 0
-                               0xe6 0 0 0
-                               0xe7 0 0 0>;
-               };
-
-               msi1: msi@41800 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41800 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe8 0 0 0
-                               0xe9 0 0 0
-                               0xea 0 0 0
-                               0xeb 0 0 0
-                               0xec 0 0 0
-                               0xed 0 0 0
-                               0xee 0 0 0
-                               0xef 0 0 0>;
-               };
-
-               msi2: msi@41a00 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41a00 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xf0 0 0 0
-                               0xf1 0 0 0
-                               0xf2 0 0 0
-                               0xf3 0 0 0
-                               0xf4 0 0 0
-                               0xf5 0 0 0
-                               0xf6 0 0 0
-                               0xf7 0 0 0>;
-               };
-
-               guts: global-utilities@e0000 {
-                       compatible = "fsl,qoriq-device-config-1.0";
-                       reg = <0xe0000 0xe00>;
-                       fsl,has-rstcr;
-                       #sleep-cells = <1>;
-                       fsl,liodn-bits = <12>;
-               };
-
-               pins: global-utilities@e0e00 {
-                       compatible = "fsl,qoriq-pin-control-1.0";
-                       reg = <0xe0e00 0x200>;
-                       #sleep-cells = <2>;
-               };
-
-               clockgen: global-utilities@e1000 {
-                       compatible = "fsl,p3041-clockgen", "fsl,qoriq-clockgen-1.0";
-                       reg = <0xe1000 0x1000>;
-                       clock-frequency = <0>;
-               };
-
-               rcpm: global-utilities@e2000 {
-                       compatible = "fsl,qoriq-rcpm-1.0";
-                       reg = <0xe2000 0x1000>;
-                       #sleep-cells = <1>;
-               };
-
-               sfp: sfp@e8000 {
-                       compatible = "fsl,p3041-sfp", "fsl,qoriq-sfp-1.0";
-                       reg        = <0xe8000 0x1000>;
-               };
-
-               serdes: serdes@ea000 {
-                       compatible = "fsl,p3041-serdes";
-                       reg        = <0xea000 0x1000>;
-               };
-
-               dma0: dma@100300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p3041-dma", "fsl,eloplus-dma";
-                       reg = <0x100300 0x4>;
-                       ranges = <0x0 0x100100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <28 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <29 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <30 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <31 2 0 0>;
-                       };
-               };
-
-               dma1: dma@101300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p3041-dma", "fsl,eloplus-dma";
-                       reg = <0x101300 0x4>;
-                       ranges = <0x0 0x101100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <32 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <33 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <34 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p3041-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <35 2 0 0>;
-                       };
-               };
-
-               spi@110000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,p3041-espi", "fsl,mpc8536-espi";
-                       reg = <0x110000 0x1000>;
-                       interrupts = <53 0x2 0 0>;
-                       fsl,espi-num-chipselects = <4>;
-               };
-
-               sdhc: sdhc@114000 {
-                       compatible = "fsl,p3041-esdhc", "fsl,esdhc";
-                       reg = <0x114000 0x1000>;
-                       interrupts = <48 2 0 0>;
-                       sdhci,auto-cmd12;
-                       clock-frequency = <0>;
-               };
-
-               i2c@118000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118000 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@118100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118100 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <2>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119000 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <3>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119100 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               serial0: serial@11c500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial1: serial@11c600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial2: serial@11d500 {
-                       cell-index = <2>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               serial3: serial@11d600 {
-                       cell-index = <3>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               gpio0: gpio@130000 {
-                       compatible = "fsl,p3041-gpio", "fsl,qoriq-gpio";
-                       reg = <0x130000 0x1000>;
-                       interrupts = <55 2 0 0>;
-                       #gpio-cells = <2>;
-                       gpio-controller;
-               };
-
-               usb0: usb@210000 {
-                       compatible = "fsl,p3041-usb2-mph",
-                                       "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x210000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <44 0x2 0 0>;
-                       phy_type = "utmi";
-                       port0;
-               };
-
-               usb1: usb@211000 {
-                       compatible = "fsl,p3041-usb2-dr",
-                                       "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
-                       reg = <0x211000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <45 0x2 0 0>;
-                       dr_mode = "host";
-                       phy_type = "utmi";
-               };
-
-               sata@220000 {
-                       compatible = "fsl,p3041-sata", "fsl,pq-sata-v2";
-                       reg = <0x220000 0x1000>;
-                       interrupts = <68 0x2 0 0>;
-               };
-
-               sata@221000 {
-                       compatible = "fsl,p3041-sata", "fsl,pq-sata-v2";
-                       reg = <0x221000 0x1000>;
-                       interrupts = <69 0x2 0 0>;
-               };
-
-               crypto: crypto@300000 {
-                       compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg              = <0x300000 0x10000>;
-                       ranges           = <0 0x300000 0x10000>;
-                       interrupts       = <92 2 0 0>;
-
-                       sec_jr0: jr@1000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x1000 0x1000>;
-                               interrupts = <88 2 0 0>;
-                       };
-
-                       sec_jr1: jr@2000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x2000 0x1000>;
-                               interrupts = <89 2 0 0>;
-                       };
-
-                       sec_jr2: jr@3000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x3000 0x1000>;
-                               interrupts = <90 2 0 0>;
-                       };
-
-                       sec_jr3: jr@4000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x4000 0x1000>;
-                               interrupts = <91 2 0 0>;
-                       };
-
-                       rtic@6000 {
-                               compatible = "fsl,sec-v4.2-rtic",
-                                            "fsl,sec-v4.0-rtic";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0x6000 0x100>;
-                               ranges = <0x0 0x6100 0xe00>;
-
-                               rtic_a: rtic-a@0 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x00 0x20 0x100 0x80>;
-                               };
-
-                               rtic_b: rtic-b@20 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x20 0x20 0x200 0x80>;
-                               };
-
-                               rtic_c: rtic-c@40 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x40 0x20 0x300 0x80>;
-                               };
-
-                               rtic_d: rtic-d@60 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x60 0x20 0x500 0x80>;
-                               };
-                       };
-               };
-
-               sec_mon: sec_mon@314000 {
-                       compatible = "fsl,sec-v4.2-mon", "fsl,sec-v4.0-mon";
-                       reg = <0x314000 0x1000>;
-                       interrupts = <93 2 0 0>;
-               };
-       };
-
-/*
-       rapidio0: rapidio@ffe0c0000
-*/
-
-       localbus@ffe124000 {
-               compatible = "fsl,p3041-elbc", "fsl,elbc", "simple-bus";
-               interrupts = <25 2 0 0>;
-               #address-cells = <2>;
-               #size-cells = <1>;
-       };
-
-       pci0: pcie@ffe200000 {
-               compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi0>;
-               interrupts = <16 2 1 15>;
-
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 15>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 40 1 0 0
-                               0000 0 0 2 &mpic 1 1 0 0
-                               0000 0 0 3 &mpic 2 1 0 0
-                               0000 0 0 4 &mpic 3 1 0 0
-                               >;
-               };
-       };
-
-       pci1: pcie@ffe201000 {
-               compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi1>;
-               interrupts = <16 2 1 14>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 14>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 41 1 0 0
-                               0000 0 0 2 &mpic 5 1 0 0
-                               0000 0 0 3 &mpic 6 1 0 0
-                               0000 0 0 4 &mpic 7 1 0 0
-                               >;
-               };
-       };
-
-       pci2: pcie@ffe202000 {
-               compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi2>;
-               interrupts = <16 2 1 13>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 13>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 42 1 0 0
-                               0000 0 0 2 &mpic 9 1 0 0
-                               0000 0 0 3 &mpic 10 1 0 0
-                               0000 0 0 4 &mpic 11 1 0 0
-                               >;
-               };
-       };
-
-       pci3: pcie@ffe203000 {
-               compatible = "fsl,p3041-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi2>;
-               interrupts = <16 2 1 12>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 12>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 43 1 0 0
-                               0000 0 0 2 &mpic 0 1 0 0
-                               0000 0 0 3 &mpic 4 1 0 0
-                               0000 0 0 4 &mpic 8 1 0 0
-                               >;
-               };
-       };
-};
index 08b9193213e7d0a95c62c13a3bf506debe65694e..529042e4b9a22427577bc99211b9582a1f260aae 100644 (file)
@@ -32,7 +32,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/include/ "p3060si.dtsi"
+/include/ "fsl/p3060si-pre.dtsi"
 
 / {
        model = "fsl,P3060QDS";
@@ -50,6 +50,8 @@
        };
 
        soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
                spi@110000 {
                        flash@0 {
                                #address-cells = <1>;
                };
        };
 
-       rapidio@ffe0c0000 {
+       rio: rapidio@ffe0c0000 {
                reg = <0xf 0xfe0c0000 0 0x11000>;
 
                port1 {
                };
        };
 
-       localbus@ffe124000 {
+       lbc: localbus@ffe124000 {
                reg = <0xf 0xfe124000 0 0x1000>;
                ranges = <0 0 0xf 0xe8000000 0x08000000
                          2 0 0xf 0xffa00000 0x00040000
                reg = <0xf 0xfe200000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>;
+               fsl,msi = <&msi0>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe201000 0 0x1000>;
                ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
                          0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>;
+               fsl,msi = <&msi1>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                };
        };
 };
+
+/include/ "fsl/p3060si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p3060si.dtsi b/arch/powerpc/boot/dts/p3060si.dtsi
deleted file mode 100644 (file)
index 68947e1..0000000
+++ /dev/null
@@ -1,719 +0,0 @@
-/*
- * P3060 Silicon Device Tree Source
- *
- * Copyright 2011 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/dts-v1/;
-
-/ {
-       compatible = "fsl,P3060";
-       #address-cells = <2>;
-       #size-cells = <2>;
-       interrupt-parent = <&mpic>;
-
-       aliases {
-               ccsr = &soc;
-               dcsr = &dcsr;
-
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               usb0 = &usb0;
-               usb1 = &usb1;
-               dma0 = &dma0;
-               dma1 = &dma1;
-               msi0 = &msi0;
-               msi1 = &msi1;
-               msi2 = &msi2;
-
-               crypto = &crypto;
-               sec_jr0 = &sec_jr0;
-               sec_jr1 = &sec_jr1;
-               sec_jr2 = &sec_jr2;
-               sec_jr3 = &sec_jr3;
-               rtic_a = &rtic_a;
-               rtic_b = &rtic_b;
-               rtic_c = &rtic_c;
-               rtic_d = &rtic_d;
-               sec_mon = &sec_mon;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: PowerPC,e500mc@0 {
-                       device_type = "cpu";
-                       reg = <0>;
-                       next-level-cache = <&L2_0>;
-                       L2_0: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu1: PowerPC,e500mc@1 {
-                       device_type = "cpu";
-                       reg = <1>;
-                       next-level-cache = <&L2_1>;
-                       L2_1: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu4: PowerPC,e500mc@4 {
-                       device_type = "cpu";
-                       reg = <4>;
-                       next-level-cache = <&L2_4>;
-                       L2_4: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu5: PowerPC,e500mc@5 {
-                       device_type = "cpu";
-                       reg = <5>;
-                       next-level-cache = <&L2_5>;
-                       L2_5: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu6: PowerPC,e500mc@6 {
-                       device_type = "cpu";
-                       reg = <6>;
-                       next-level-cache = <&L2_6>;
-                       L2_6: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu7: PowerPC,e500mc@7 {
-                       device_type = "cpu";
-                       reg = <7>;
-                       next-level-cache = <&L2_7>;
-                       L2_7: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-       };
-
-       dcsr: dcsr@f00000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "fsl,dcsr", "simple-bus";
-
-               dcsr-epu@0 {
-                       compatible = "fsl,dcsr-epu";
-                       interrupts = <52 2 0 0
-                                     84 2 0 0
-                                     85 2 0 0>;
-                       interrupt-parent = <&mpic>;
-                       reg = <0x0 0x1000>;
-               };
-               dcsr-npc {
-                       compatible = "fsl,dcsr-npc";
-                       reg = <0x1000 0x1000 0x1000000 0x8000>;
-               };
-               dcsr-nxc@2000 {
-                       compatible = "fsl,dcsr-nxc";
-                       reg = <0x2000 0x1000>;
-               };
-               dcsr-corenet {
-                       compatible = "fsl,dcsr-corenet";
-                       reg = <0x8000 0x1000 0xB0000 0x1000>;
-               };
-               dcsr-dpaa@9000 {
-                       compatible = "fsl,p3060-dcsr-dpaa", "fsl,dcsr-dpaa";
-                       reg = <0x9000 0x1000>;
-               };
-               dcsr-ocn@11000 {
-                       compatible = "fsl,p3060-dcsr-ocn", "fsl,dcsr-ocn";
-                       reg = <0x11000 0x1000>;
-               };
-               dcsr-ddr@12000 {
-                       compatible = "fsl,dcsr-ddr";
-                       dev-handle = <&ddr>;
-                       reg = <0x12000 0x1000>;
-               };
-               dcsr-nal@18000 {
-                       compatible = "fsl,p3060-dcsr-nal", "fsl,dcsr-nal";
-                       reg = <0x18000 0x1000>;
-               };
-               dcsr-rcpm@22000 {
-                       compatible = "fsl,p3060-dcsr-rcpm", "fsl,dcsr-rcpm";
-                       reg = <0x22000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@40000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu0>;
-                       reg = <0x40000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@41000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu1>;
-                       reg = <0x41000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@44000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu4>;
-                       reg = <0x44000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@45000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu5>;
-                       reg = <0x45000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@46000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu6>;
-                       reg = <0x46000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@47000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu7>;
-                       reg = <0x47000 0x1000>;
-               };
-       };
-
-       soc: soc@ffe000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
-               reg = <0xf 0xfe000000 0 0x00001000>;
-
-               soc-sram-error {
-                       compatible = "fsl,soc-sram-error";
-                       interrupts = <16 2 1 29>;
-               };
-
-               corenet-law@0 {
-                       compatible = "fsl,corenet-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <32>;
-               };
-
-               ddr: memory-controller@8000 {
-                       compatible = "fsl,qoriq-memory-controller-v4.4", "fsl,qoriq-memory-controller";
-                       reg = <0x8000 0x1000>;
-                       interrupts = <16 2 1 23>;
-               };
-
-               cpc: l3-cache-controller@10000 {
-                       compatible = "fsl,p3060-l3-cache-controller", "cache";
-                       reg = <0x10000 0x1000
-                              0x11000 0x1000>;
-                       interrupts = <16 2 1 27>;
-               };
-
-               corenet-cf@18000 {
-                       compatible = "fsl,corenet-cf";
-                       reg = <0x18000 0x1000>;
-                       interrupts = <16 2 1 31>;
-                       fsl,ccf-num-csdids = <32>;
-                       fsl,ccf-num-snoopids = <32>;
-               };
-
-               iommu@20000 {
-                       compatible = "fsl,pamu-v1.0", "fsl,pamu";
-                       reg = <0x20000 0x5000>;
-                       interrupts = <
-                               24 2 0 0
-                               16 2 1 30>;
-               };
-
-               mpic: pic@40000 {
-                       clock-frequency = <0>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <4>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "fsl,mpic", "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi0: msi@41600 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41600 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0 0 0
-                               0xe1 0 0 0
-                               0xe2 0 0 0
-                               0xe3 0 0 0
-                               0xe4 0 0 0
-                               0xe5 0 0 0
-                               0xe6 0 0 0
-                               0xe7 0 0 0>;
-               };
-
-               msi1: msi@41800 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41800 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe8 0 0 0
-                               0xe9 0 0 0
-                               0xea 0 0 0
-                               0xeb 0 0 0
-                               0xec 0 0 0
-                               0xed 0 0 0
-                               0xee 0 0 0
-                               0xef 0 0 0>;
-               };
-
-               msi2: msi@41a00 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41a00 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xf0 0 0 0
-                               0xf1 0 0 0
-                               0xf2 0 0 0
-                               0xf3 0 0 0
-                               0xf4 0 0 0
-                               0xf5 0 0 0
-                               0xf6 0 0 0
-                               0xf7 0 0 0>;
-               };
-
-               rmu: rmu@d3000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,srio-rmu";
-                       reg = <0xd3000 0x500>;
-                       ranges = <0x0 0xd3000 0x500>;
-
-                       message-unit@0 {
-                               compatible = "fsl,srio-msg-unit";
-                               reg = <0x0 0x100>;
-                               interrupts = <
-                                       60 2 0 0  /* msg1_tx_irq */
-                                       61 2 0 0>;/* msg1_rx_irq */
-                       };
-                       message-unit@100 {
-                               compatible = "fsl,srio-msg-unit";
-                               reg = <0x100 0x100>;
-                               interrupts = <
-                                       62 2 0 0  /* msg2_tx_irq */
-                                       63 2 0 0>;/* msg2_rx_irq */
-                       };
-                       doorbell-unit@400 {
-                               compatible = "fsl,srio-dbell-unit";
-                               reg = <0x400 0x80>;
-                               interrupts = <
-                                       56 2 0 0  /* bell_outb_irq */
-                                       57 2 0 0>;/* bell_inb_irq */
-                       };
-                       port-write-unit@4e0 {
-                               compatible = "fsl,srio-port-write-unit";
-                               reg = <0x4e0 0x20>;
-                               interrupts = <16 2 1 11>;
-                       };
-               };
-
-               guts: global-utilities@e0000 {
-                       compatible = "fsl,qoriq-device-config-1.0";
-                       reg = <0xe0000 0xe00>;
-                       fsl,has-rstcr;
-                       #sleep-cells = <1>;
-                       fsl,liodn-bits = <12>;
-               };
-
-               pins: global-utilities@e0e00 {
-                       compatible = "fsl,qoriq-pin-control-1.0";
-                       reg = <0xe0e00 0x200>;
-                       #sleep-cells = <2>;
-               };
-
-               clockgen: global-utilities@e1000 {
-                       compatible = "fsl,p3060-clockgen", "fsl,qoriq-clockgen-1.0";
-                       reg = <0xe1000 0x1000>;
-                       clock-frequency = <0>;
-               };
-
-               rcpm: global-utilities@e2000 {
-                       compatible = "fsl,qoriq-rcpm-1.0";
-                       reg = <0xe2000 0x1000>;
-                       #sleep-cells = <1>;
-               };
-
-               sfp: sfp@e8000 {
-                       compatible = "fsl,p3060-sfp", "fsl,qoriq-sfp-1.0";
-                       reg        = <0xe8000 0x1000>;
-               };
-
-               serdes: serdes@ea000 {
-                       compatible = "fsl,p3060-serdes";
-                       reg        = <0xea000 0x1000>;
-               };
-
-               dma0: dma@100300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p3060-dma", "fsl,eloplus-dma";
-                       reg = <0x100300 0x4>;
-                       ranges = <0x0 0x100100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <28 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <29 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <30 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <31 2 0 0>;
-                       };
-               };
-
-               dma1: dma@101300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p3060-dma", "fsl,eloplus-dma";
-                       reg = <0x101300 0x4>;
-                       ranges = <0x0 0x101100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <32 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <33 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <34 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p3060-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <35 2 0 0>;
-                       };
-               };
-
-               spi@110000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,p3060-espi", "fsl,mpc8536-espi";
-                       reg = <0x110000 0x1000>;
-                       interrupts = <53 0x2 0 0>;
-                       fsl,espi-num-chipselects = <4>;
-               };
-
-               i2c@118000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118000 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@118100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118100 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <2>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119000 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <3>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119100 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               serial0: serial@11c500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial1: serial@11c600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial2: serial@11d500 {
-                       cell-index = <2>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               serial3: serial@11d600 {
-                       cell-index = <3>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               gpio0: gpio@130000 {
-                       compatible = "fsl,p3060-gpio", "fsl,qoriq-gpio";
-                       reg = <0x130000 0x1000>;
-                       interrupts = <55 2 0 0>;
-                       #gpio-cells = <2>;
-                       gpio-controller;
-               };
-
-               usb0: usb@210000 {
-                       compatible = "fsl,p3060-usb2-mph",
-                                       "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x210000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <44 0x2 0 0>;
-               };
-
-               usb1: usb@211000 {
-                       compatible = "fsl,p3060-usb2-dr",
-                                       "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
-                       reg = <0x211000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <45 0x2 0 0>;
-               };
-
-               crypto: crypto@300000 {
-                       compatible = "fsl,sec-v4.1", "fsl,sec-v4.0";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x300000 0x10000>;
-                       ranges = <0 0x300000 0x10000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <92 2 0 0>;
-
-                       sec_jr0: jr@1000 {
-                               compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring";
-                               reg = <0x1000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <88 2 0 0>;
-                       };
-
-                       sec_jr1: jr@2000 {
-                               compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring";
-                               reg = <0x2000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <89 2 0 0>;
-                       };
-
-                       sec_jr2: jr@3000 {
-                               compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring";
-                               reg = <0x3000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <90 2 0 0>;
-                       };
-
-                       sec_jr3: jr@4000 {
-                               compatible = "fsl,sec-v4.1-job-ring", "fsl,sec-v4.0-job-ring";
-                               reg = <0x4000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <91 2 0 0>;
-                       };
-
-                       rtic@6000 {
-                               compatible = "fsl,sec-v4.1-rtic", "fsl,sec-v4.0-rtic";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0x6000 0x100>;
-                               ranges = <0x0 0x6100 0xe00>;
-
-                               rtic_a: rtic-a@0 {
-                                       compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x00 0x20 0x100 0x80>;
-                               };
-
-                               rtic_b: rtic-b@20 {
-                                       compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x20 0x20 0x200 0x80>;
-                               };
-
-                               rtic_c: rtic-c@40 {
-                                       compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x40 0x20 0x300 0x80>;
-                               };
-
-                               rtic_d: rtic-d@60 {
-                                       compatible = "fsl,sec-v4.1-rtic-memory", "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x60 0x20 0x500 0x80>;
-                               };
-                       };
-               };
-
-               sec_mon: sec_mon@314000 {
-                       compatible = "fsl,sec-v4.1-mon", "fsl,sec-v4.0-mon";
-                       reg = <0x314000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <93 2 0 0>;
-               };
-       };
-
-       rapidio@ffe0c0000 {
-               compatible = "fsl,srio";
-               interrupts = <16 2 1 11>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               fsl,srio-rmu-handle = <&rmu>;
-               ranges;
-
-               port1 {
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       cell-index = <1>;
-               };
-
-               port2 {
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       cell-index = <2>;
-               };
-       };
-
-       localbus@ffe124000 {
-               compatible = "fsl,p3060-elbc", "fsl,elbc", "simple-bus";
-               interrupts = <25 2 0 0>;
-               #address-cells = <2>;
-               #size-cells = <1>;
-       };
-
-       pci0: pcie@ffe200000 {
-               compatible = "fsl,p3060-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <33333333>;
-               fsl,msi = <&msi0>;
-               interrupts = <16 2 1 15>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 15>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 40 1 0 0
-                               0000 0 0 2 &mpic 1 1 0 0
-                               0000 0 0 3 &mpic 2 1 0 0
-                               0000 0 0 4 &mpic 3 1 0 0
-                               >;
-               };
-       };
-
-       pci1: pcie@ffe201000 {
-               compatible = "fsl,p3060-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0 0xff>;
-               clock-frequency = <33333333>;
-               fsl,msi = <&msi1>;
-               interrupts = <16 2 1 14>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 14>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 41 1 0 0
-                               0000 0 0 2 &mpic 5 1 0 0
-                               0000 0 0 3 &mpic 6 1 0 0
-                               0000 0 0 4 &mpic 7 1 0 0
-                               >;
-               };
-       };
-};
index c7916dc2801449c6c2a862d271114f7dcb94115e..6d60e54e50a09a6fbbec45d686f85ba7b5c00fa3 100644 (file)
@@ -32,7 +32,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/include/ "p4080si.dtsi"
+/include/ "fsl/p4080si-pre.dtsi"
 
 / {
        model = "fsl,P4080DS";
@@ -50,6 +50,9 @@
        };
 
        soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
+
                spi@110000 {
                        flash@0 {
                                #address-cells = <1>;
                };
        };
 
-       rapidio0: rapidio@ffe0c0000 {
-               reg = <0xf 0xfe0c0000 0 0x20000>;
-               ranges = <0 0 0xc 0x20000000 0 0x01000000>;
+       rio: rapidio@ffe0c0000 {
+               reg = <0xf 0xfe0c0000 0 0x11000>;
+
+               port1 {
+                       ranges = <0 0 0xc 0x20000000 0 0x10000000>;
+               };
+               port2 {
+                       ranges = <0 0 0xc 0x30000000 0 0x10000000>;
+               };
        };
 
-       localbus@ffe124000 {
+       lbc: localbus@ffe124000 {
                reg = <0xf 0xfe124000 0 0x1000>;
                ranges = <0 0 0xf 0xe8000000 0x08000000
                          3 0 0xf 0xffdf0000 0x00008000>;
                reg = <0xf 0xfe200000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>;
+               fsl,msi = <&msi0>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe201000 0 0x1000>;
                ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
                          0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>;
+               fsl,msi = <&msi1>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe202000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
+               fsl,msi = <&msi2>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
        };
 
 };
+
+/include/ "fsl/p4080si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p4080si.dtsi b/arch/powerpc/boot/dts/p4080si.dtsi
deleted file mode 100644 (file)
index f20c01a..0000000
+++ /dev/null
@@ -1,755 +0,0 @@
-/*
- * P4080 Silicon Device Tree Source
- *
- * Copyright 2009-2011 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/dts-v1/;
-
-/ {
-       compatible = "fsl,P4080";
-       #address-cells = <2>;
-       #size-cells = <2>;
-       interrupt-parent = <&mpic>;
-
-       aliases {
-               ccsr = &soc;
-               dcsr = &dcsr;
-
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-               usb0 = &usb0;
-               usb1 = &usb1;
-               dma0 = &dma0;
-               dma1 = &dma1;
-               sdhc = &sdhc;
-               msi0 = &msi0;
-               msi1 = &msi1;
-               msi2 = &msi2;
-
-               crypto = &crypto;
-               sec_jr0 = &sec_jr0;
-               sec_jr1 = &sec_jr1;
-               sec_jr2 = &sec_jr2;
-               sec_jr3 = &sec_jr3;
-               rtic_a = &rtic_a;
-               rtic_b = &rtic_b;
-               rtic_c = &rtic_c;
-               rtic_d = &rtic_d;
-               sec_mon = &sec_mon;
-
-               rio0 = &rapidio0;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: PowerPC,e500mc@0 {
-                       device_type = "cpu";
-                       reg = <0>;
-                       next-level-cache = <&L2_0>;
-                       L2_0: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu1: PowerPC,e500mc@1 {
-                       device_type = "cpu";
-                       reg = <1>;
-                       next-level-cache = <&L2_1>;
-                       L2_1: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu2: PowerPC,e500mc@2 {
-                       device_type = "cpu";
-                       reg = <2>;
-                       next-level-cache = <&L2_2>;
-                       L2_2: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu3: PowerPC,e500mc@3 {
-                       device_type = "cpu";
-                       reg = <3>;
-                       next-level-cache = <&L2_3>;
-                       L2_3: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu4: PowerPC,e500mc@4 {
-                       device_type = "cpu";
-                       reg = <4>;
-                       next-level-cache = <&L2_4>;
-                       L2_4: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu5: PowerPC,e500mc@5 {
-                       device_type = "cpu";
-                       reg = <5>;
-                       next-level-cache = <&L2_5>;
-                       L2_5: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu6: PowerPC,e500mc@6 {
-                       device_type = "cpu";
-                       reg = <6>;
-                       next-level-cache = <&L2_6>;
-                       L2_6: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu7: PowerPC,e500mc@7 {
-                       device_type = "cpu";
-                       reg = <7>;
-                       next-level-cache = <&L2_7>;
-                       L2_7: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-       };
-
-       dcsr: dcsr@f00000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "fsl,dcsr", "simple-bus";
-
-               dcsr-epu@0 {
-                       compatible = "fsl,dcsr-epu";
-                       interrupts = <52 2 0 0
-                                     84 2 0 0
-                                     85 2 0 0>;
-                       interrupt-parent = <&mpic>;
-                       reg = <0x0 0x1000>;
-               };
-               dcsr-npc {
-                       compatible = "fsl,dcsr-npc";
-                       reg = <0x1000 0x1000 0x1000000 0x8000>;
-               };
-               dcsr-nxc@2000 {
-                       compatible = "fsl,dcsr-nxc";
-                       reg = <0x2000 0x1000>;
-               };
-               dcsr-corenet {
-                       compatible = "fsl,dcsr-corenet";
-                       reg = <0x8000 0x1000 0xB0000 0x1000>;
-               };
-               dcsr-dpaa@9000 {
-                       compatible = "fsl,p4080-dcsr-dpaa", "fsl,dcsr-dpaa";
-                       reg = <0x9000 0x1000>;
-               };
-               dcsr-ocn@11000 {
-                       compatible = "fsl,p4080-dcsr-ocn", "fsl,dcsr-ocn";
-                       reg = <0x11000 0x1000>;
-               };
-               dcsr-ddr@12000 {
-                       compatible = "fsl,dcsr-ddr";
-                       dev-handle = <&ddr1>;
-                       reg = <0x12000 0x1000>;
-               };
-               dcsr-ddr@13000 {
-                       compatible = "fsl,dcsr-ddr";
-                       dev-handle = <&ddr2>;
-                       reg = <0x13000 0x1000>;
-               };
-               dcsr-nal@18000 {
-                       compatible = "fsl,p4080-dcsr-nal", "fsl,dcsr-nal";
-                       reg = <0x18000 0x1000>;
-               };
-               dcsr-rcpm@22000 {
-                       compatible = "fsl,p4080-dcsr-rcpm", "fsl,dcsr-rcpm";
-                       reg = <0x22000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@40000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu0>;
-                       reg = <0x40000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@41000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu1>;
-                       reg = <0x41000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@42000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu2>;
-                       reg = <0x42000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@43000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu3>;
-                       reg = <0x43000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@44000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu4>;
-                       reg = <0x44000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@45000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu5>;
-                       reg = <0x45000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@46000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu6>;
-                       reg = <0x46000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@47000 {
-                       compatible = "fsl,dcsr-e500mc-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu7>;
-                       reg = <0x47000 0x1000>;
-               };
-       };
-
-       soc: soc@ffe000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
-               reg = <0xf 0xfe000000 0 0x00001000>;
-
-               soc-sram-error {
-                       compatible = "fsl,soc-sram-error";
-                       interrupts = <16 2 1 29>;
-               };
-
-               corenet-law@0 {
-                       compatible = "fsl,corenet-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <32>;
-               };
-
-               ddr1: memory-controller@8000 {
-                       compatible = "fsl,qoriq-memory-controller-v4.4", "fsl,qoriq-memory-controller";
-                       reg = <0x8000 0x1000>;
-                       interrupts = <16 2 1 23>;
-               };
-
-               ddr2: memory-controller@9000 {
-                       compatible = "fsl,qoriq-memory-controller-v4.4","fsl,qoriq-memory-controller";
-                       reg = <0x9000 0x1000>;
-                       interrupts = <16 2 1 22>;
-               };
-
-               cpc: l3-cache-controller@10000 {
-                       compatible = "fsl,p4080-l3-cache-controller", "cache";
-                       reg = <0x10000 0x1000
-                              0x11000 0x1000>;
-                       interrupts = <16 2 1 27
-                                     16 2 1 26>;
-               };
-
-               corenet-cf@18000 {
-                       compatible = "fsl,corenet-cf";
-                       reg = <0x18000 0x1000>;
-                       interrupts = <16 2 1 31>;
-                       fsl,ccf-num-csdids = <32>;
-                       fsl,ccf-num-snoopids = <32>;
-               };
-
-               iommu@20000 {
-                       compatible = "fsl,pamu-v1.0", "fsl,pamu";
-                       reg = <0x20000 0x5000>;
-                       interrupts = <
-                               24 2 0 0
-                               16 2 1 30>;
-               };
-
-               mpic: pic@40000 {
-                       clock-frequency = <0>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <4>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "fsl,mpic", "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi0: msi@41600 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41600 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0 0 0
-                               0xe1 0 0 0
-                               0xe2 0 0 0
-                               0xe3 0 0 0
-                               0xe4 0 0 0
-                               0xe5 0 0 0
-                               0xe6 0 0 0
-                               0xe7 0 0 0>;
-               };
-
-               msi1: msi@41800 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41800 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe8 0 0 0
-                               0xe9 0 0 0
-                               0xea 0 0 0
-                               0xeb 0 0 0
-                               0xec 0 0 0
-                               0xed 0 0 0
-                               0xee 0 0 0
-                               0xef 0 0 0>;
-               };
-
-               msi2: msi@41a00 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41a00 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xf0 0 0 0
-                               0xf1 0 0 0
-                               0xf2 0 0 0
-                               0xf3 0 0 0
-                               0xf4 0 0 0
-                               0xf5 0 0 0
-                               0xf6 0 0 0
-                               0xf7 0 0 0>;
-               };
-
-               guts: global-utilities@e0000 {
-                       compatible = "fsl,qoriq-device-config-1.0";
-                       reg = <0xe0000 0xe00>;
-                       fsl,has-rstcr;
-                       #sleep-cells = <1>;
-                       fsl,liodn-bits = <12>;
-               };
-
-               pins: global-utilities@e0e00 {
-                       compatible = "fsl,qoriq-pin-control-1.0";
-                       reg = <0xe0e00 0x200>;
-                       #sleep-cells = <2>;
-               };
-
-               clockgen: global-utilities@e1000 {
-                       compatible = "fsl,p4080-clockgen", "fsl,qoriq-clockgen-1.0";
-                       reg = <0xe1000 0x1000>;
-                       clock-frequency = <0>;
-               };
-
-               rcpm: global-utilities@e2000 {
-                       compatible = "fsl,qoriq-rcpm-1.0";
-                       reg = <0xe2000 0x1000>;
-                       #sleep-cells = <1>;
-               };
-
-               sfp: sfp@e8000 {
-                       compatible = "fsl,p4080-sfp", "fsl,qoriq-sfp-1.0";
-                       reg        = <0xe8000 0x1000>;
-               };
-
-               serdes: serdes@ea000 {
-                       compatible = "fsl,p4080-serdes";
-                       reg        = <0xea000 0x1000>;
-               };
-
-               dma0: dma@100300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p4080-dma", "fsl,eloplus-dma";
-                       reg = <0x100300 0x4>;
-                       ranges = <0x0 0x100100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <28 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <29 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <30 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <31 2 0 0>;
-                       };
-               };
-
-               dma1: dma@101300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p4080-dma", "fsl,eloplus-dma";
-                       reg = <0x101300 0x4>;
-                       ranges = <0x0 0x101100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <32 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <33 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <34 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p4080-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <35 2 0 0>;
-                       };
-               };
-
-               spi@110000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,p4080-espi", "fsl,mpc8536-espi";
-                       reg = <0x110000 0x1000>;
-                       interrupts = <53 0x2 0 0>;
-                       fsl,espi-num-chipselects = <4>;
-               };
-
-               sdhc: sdhc@114000 {
-                       compatible = "fsl,p4080-esdhc", "fsl,esdhc";
-                       reg = <0x114000 0x1000>;
-                       interrupts = <48 2 0 0>;
-                       voltage-ranges = <3300 3300>;
-                       sdhci,auto-cmd12;
-                       clock-frequency = <0>;
-               };
-
-               i2c@118000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118000 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@118100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118100 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <2>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119000 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <3>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119100 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               serial0: serial@11c500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial1: serial@11c600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial2: serial@11d500 {
-                       cell-index = <2>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               serial3: serial@11d600 {
-                       cell-index = <3>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               gpio0: gpio@130000 {
-                       compatible = "fsl,p4080-gpio", "fsl,qoriq-gpio";
-                       reg = <0x130000 0x1000>;
-                       interrupts = <55 2 0 0>;
-                       #gpio-cells = <2>;
-                       gpio-controller;
-               };
-
-               usb0: usb@210000 {
-                       compatible = "fsl,p4080-usb2-mph",
-                                       "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x210000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <44 0x2 0 0>;
-               };
-
-               usb1: usb@211000 {
-                       compatible = "fsl,p4080-usb2-dr",
-                                       "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
-                       reg = <0x211000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <45 0x2 0 0>;
-               };
-
-               crypto: crypto@300000 {
-                       compatible = "fsl,sec-v4.0";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x300000 0x10000>;
-                       ranges = <0 0x300000 0x10000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <92 2 0 0>;
-
-                       sec_jr0: jr@1000 {
-                               compatible = "fsl,sec-v4.0-job-ring";
-                               reg = <0x1000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <88 2 0 0>;
-                       };
-
-                       sec_jr1: jr@2000 {
-                               compatible = "fsl,sec-v4.0-job-ring";
-                               reg = <0x2000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <89 2 0 0>;
-                       };
-
-                       sec_jr2: jr@3000 {
-                               compatible = "fsl,sec-v4.0-job-ring";
-                               reg = <0x3000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <90 2 0 0>;
-                       };
-
-                       sec_jr3: jr@4000 {
-                               compatible = "fsl,sec-v4.0-job-ring";
-                               reg = <0x4000 0x1000>;
-                               interrupt-parent = <&mpic>;
-                               interrupts = <91 2 0 0>;
-                       };
-
-                       rtic@6000 {
-                               compatible = "fsl,sec-v4.0-rtic";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0x6000 0x100>;
-                               ranges = <0x0 0x6100 0xe00>;
-
-                               rtic_a: rtic-a@0 {
-                                       compatible = "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x00 0x20 0x100 0x80>;
-                               };
-
-                               rtic_b: rtic-b@20 {
-                                       compatible = "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x20 0x20 0x200 0x80>;
-                               };
-
-                               rtic_c: rtic-c@40 {
-                                       compatible = "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x40 0x20 0x300 0x80>;
-                               };
-
-                               rtic_d: rtic-d@60 {
-                                       compatible = "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x60 0x20 0x500 0x80>;
-                               };
-                       };
-               };
-
-               sec_mon: sec_mon@314000 {
-                       compatible = "fsl,sec-v4.0-mon";
-                       reg = <0x314000 0x1000>;
-                       interrupt-parent = <&mpic>;
-                       interrupts = <93 2 0 0>;
-               };
-       };
-
-       rapidio0: rapidio@ffe0c0000 {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               compatible = "fsl,rapidio-delta";
-               interrupts = <
-                       16 2 1 11 /* err_irq */
-                       56 2 0 0  /* bell_outb_irq */
-                       57 2 0 0  /* bell_inb_irq */
-                       60 2 0 0  /* msg1_tx_irq */
-                       61 2 0 0  /* msg1_rx_irq */
-                       62 2 0 0  /* msg2_tx_irq */
-                       63 2 0 0>; /* msg2_rx_irq */
-       };
-
-       localbus@ffe124000 {
-               compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus";
-               interrupts = <25 2 0 0>;
-               #address-cells = <2>;
-               #size-cells = <1>;
-       };
-
-       pci0: pcie@ffe200000 {
-               compatible = "fsl,p4080-pcie";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi0>;
-               interrupts = <16 2 1 15>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 15>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 40 1 0 0
-                               0000 0 0 2 &mpic 1 1 0 0
-                               0000 0 0 3 &mpic 2 1 0 0
-                               0000 0 0 4 &mpic 3 1 0 0
-                               >;
-               };
-       };
-
-       pci1: pcie@ffe201000 {
-               compatible = "fsl,p4080-pcie";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi1>;
-               interrupts = <16 2 1 14>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 14>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 41 1 0 0
-                               0000 0 0 2 &mpic 5 1 0 0
-                               0000 0 0 3 &mpic 6 1 0 0
-                               0000 0 0 4 &mpic 7 1 0 0
-                               >;
-               };
-       };
-
-       pci2: pcie@ffe202000 {
-               compatible = "fsl,p4080-pcie";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi2>;
-               interrupts = <16 2 1 13>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 13>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 42 1 0 0
-                               0000 0 0 2 &mpic 9 1 0 0
-                               0000 0 0 3 &mpic 10 1 0 0
-                               0000 0 0 4 &mpic 11 1 0 0
-                               >;
-               };
-       };
-};
index e6d40999ccd713efc2952040b220f54892cd3cf3..1c250684c9028cfa70e17c675292d72247a69da1 100644 (file)
@@ -32,7 +32,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-/include/ "p5020si.dtsi"
+/include/ "fsl/p5020si-pre.dtsi"
 
 / {
        model = "fsl,P5020DS";
@@ -50,6 +50,8 @@
        };
 
        soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
                spi@110000 {
                        flash@0 {
                                #address-cells = <1>;
                };
        };
 
-       localbus@ffe124000 {
+       rio: rapidio@ffe0c0000 {
+               reg = <0xf 0xfe0c0000 0 0x11000>;
+
+               port1 {
+                       ranges = <0 0 0xc 0x20000000 0 0x10000000>;
+               };
+               port2 {
+                       ranges = <0 0 0xc 0x30000000 0 0x10000000>;
+               };
+       };
+
+       lbc: localbus@ffe124000 {
                reg = <0xf 0xfe124000 0 0x1000>;
                ranges = <0 0 0xf 0xe8000000 0x08000000
                          2 0 0xf 0xffa00000 0x00040000
                reg = <0xf 0xfe200000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0x0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8000000 0x0 0x00010000>;
-
+               fsl,msi = <&msi0>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe201000 0 0x1000>;
                ranges = <0x02000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
                          0x01000000 0x0 0x00000000 0xf 0xf8010000 0x0 0x00010000>;
+               fsl,msi = <&msi1>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe202000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x40000000 0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
+               fsl,msi = <&msi2>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                reg = <0xf 0xfe203000 0 0x1000>;
                ranges = <0x02000000 0 0xe0000000 0xc 0x60000000 0 0x20000000
                          0x01000000 0 0x00000000 0xf 0xf8030000 0 0x00010000>;
+               fsl,msi = <&msi2>;
                pcie@0 {
                        ranges = <0x02000000 0 0xe0000000
                                  0x02000000 0 0xe0000000
                };
        };
 };
+
+/include/ "fsl/p5020si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/p5020si.dtsi b/arch/powerpc/boot/dts/p5020si.dtsi
deleted file mode 100644 (file)
index e7948ad..0000000
+++ /dev/null
@@ -1,716 +0,0 @@
-/*
- * P5020 Silicon Device Tree Source
- *
- * Copyright 2010-2011 Freescale Semiconductor Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of Freescale Semiconductor nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- *
- * ALTERNATIVELY, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") as published by the Free Software
- * Foundation, either version 2 of that License or (at your option) any
- * later version.
- *
- * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/dts-v1/;
-
-/ {
-       compatible = "fsl,P5020";
-       #address-cells = <2>;
-       #size-cells = <2>;
-       interrupt-parent = <&mpic>;
-
-       aliases {
-               ccsr = &soc;
-               dcsr = &dcsr;
-
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               serial3 = &serial3;
-               pci0 = &pci0;
-               pci1 = &pci1;
-               pci2 = &pci2;
-               pci3 = &pci3;
-               usb0 = &usb0;
-               usb1 = &usb1;
-               dma0 = &dma0;
-               dma1 = &dma1;
-               sdhc = &sdhc;
-               msi0 = &msi0;
-               msi1 = &msi1;
-               msi2 = &msi2;
-
-               crypto = &crypto;
-               sec_jr0 = &sec_jr0;
-               sec_jr1 = &sec_jr1;
-               sec_jr2 = &sec_jr2;
-               sec_jr3 = &sec_jr3;
-               rtic_a = &rtic_a;
-               rtic_b = &rtic_b;
-               rtic_c = &rtic_c;
-               rtic_d = &rtic_d;
-               sec_mon = &sec_mon;
-
-/*
-               rio0 = &rapidio0;
- */
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: PowerPC,e5500@0 {
-                       device_type = "cpu";
-                       reg = <0>;
-                       next-level-cache = <&L2_0>;
-                       L2_0: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-               cpu1: PowerPC,e5500@1 {
-                       device_type = "cpu";
-                       reg = <1>;
-                       next-level-cache = <&L2_1>;
-                       L2_1: l2-cache {
-                               next-level-cache = <&cpc>;
-                       };
-               };
-       };
-
-       dcsr: dcsr@f00000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "fsl,dcsr", "simple-bus";
-
-               dcsr-epu@0 {
-                       compatible = "fsl,dcsr-epu";
-                       interrupts = <52 2 0 0
-                                     84 2 0 0
-                                     85 2 0 0>;
-                       interrupt-parent = <&mpic>;
-                       reg = <0x0 0x1000>;
-               };
-               dcsr-npc {
-                       compatible = "fsl,dcsr-npc";
-                       reg = <0x1000 0x1000 0x1000000 0x8000>;
-               };
-               dcsr-nxc@2000 {
-                       compatible = "fsl,dcsr-nxc";
-                       reg = <0x2000 0x1000>;
-               };
-               dcsr-corenet {
-                       compatible = "fsl,dcsr-corenet";
-                       reg = <0x8000 0x1000 0xB0000 0x1000>;
-               };
-               dcsr-dpaa@9000 {
-                       compatible = "fsl,p5020-dcsr-dpaa", "fsl,dcsr-dpaa";
-                       reg = <0x9000 0x1000>;
-               };
-               dcsr-ocn@11000 {
-                       compatible = "fsl,p5020-dcsr-ocn", "fsl,dcsr-ocn";
-                       reg = <0x11000 0x1000>;
-               };
-               dcsr-ddr@12000 {
-                       compatible = "fsl,dcsr-ddr";
-                       dev-handle = <&ddr1>;
-                       reg = <0x12000 0x1000>;
-               };
-               dcsr-ddr@13000 {
-                       compatible = "fsl,dcsr-ddr";
-                       dev-handle = <&ddr2>;
-                       reg = <0x13000 0x1000>;
-               };
-               dcsr-nal@18000 {
-                       compatible = "fsl,p5020-dcsr-nal", "fsl,dcsr-nal";
-                       reg = <0x18000 0x1000>;
-               };
-               dcsr-rcpm@22000 {
-                       compatible = "fsl,p5020-dcsr-rcpm", "fsl,dcsr-rcpm";
-                       reg = <0x22000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@40000 {
-                       compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu0>;
-                       reg = <0x40000 0x1000>;
-               };
-               dcsr-cpu-sb-proxy@41000 {
-                       compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
-                       cpu-handle = <&cpu1>;
-                       reg = <0x41000 0x1000>;
-               };
-       };
-
-       soc: soc@ffe000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               device_type = "soc";
-               compatible = "simple-bus";
-               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
-               reg = <0xf 0xfe000000 0 0x00001000>;
-
-               soc-sram-error {
-                       compatible = "fsl,soc-sram-error";
-                       interrupts = <16 2 1 29>;
-               };
-
-               corenet-law@0 {
-                       compatible = "fsl,corenet-law";
-                       reg = <0x0 0x1000>;
-                       fsl,num-laws = <32>;
-               };
-
-               ddr1: memory-controller@8000 {
-                       compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
-                       reg = <0x8000 0x1000>;
-                       interrupts = <16 2 1 23>;
-               };
-
-               ddr2: memory-controller@9000 {
-                       compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
-                       reg = <0x9000 0x1000>;
-                       interrupts = <16 2 1 22>;
-               };
-
-               cpc: l3-cache-controller@10000 {
-                       compatible = "fsl,p5020-l3-cache-controller", "fsl,p4080-l3-cache-controller", "cache";
-                       reg = <0x10000 0x1000
-                              0x11000 0x1000>;
-                       interrupts = <16 2 1 27
-                                     16 2 1 26>;
-               };
-
-               corenet-cf@18000 {
-                       compatible = "fsl,corenet-cf";
-                       reg = <0x18000 0x1000>;
-                       interrupts = <16 2 1 31>;
-                       fsl,ccf-num-csdids = <32>;
-                       fsl,ccf-num-snoopids = <32>;
-               };
-
-               iommu@20000 {
-                       compatible = "fsl,pamu-v1.0", "fsl,pamu";
-                       reg = <0x20000 0x4000>;
-                       interrupts = <
-                               24 2 0 0
-                               16 2 1 30>;
-               };
-
-               mpic: pic@40000 {
-                       clock-frequency = <0>;
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <4>;
-                       reg = <0x40000 0x40000>;
-                       compatible = "fsl,mpic", "chrp,open-pic";
-                       device_type = "open-pic";
-               };
-
-               msi0: msi@41600 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41600 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe0 0 0 0
-                               0xe1 0 0 0
-                               0xe2 0 0 0
-                               0xe3 0 0 0
-                               0xe4 0 0 0
-                               0xe5 0 0 0
-                               0xe6 0 0 0
-                               0xe7 0 0 0>;
-               };
-
-               msi1: msi@41800 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41800 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xe8 0 0 0
-                               0xe9 0 0 0
-                               0xea 0 0 0
-                               0xeb 0 0 0
-                               0xec 0 0 0
-                               0xed 0 0 0
-                               0xee 0 0 0
-                               0xef 0 0 0>;
-               };
-
-               msi2: msi@41a00 {
-                       compatible = "fsl,mpic-msi";
-                       reg = <0x41a00 0x200>;
-                       msi-available-ranges = <0 0x100>;
-                       interrupts = <
-                               0xf0 0 0 0
-                               0xf1 0 0 0
-                               0xf2 0 0 0
-                               0xf3 0 0 0
-                               0xf4 0 0 0
-                               0xf5 0 0 0
-                               0xf6 0 0 0
-                               0xf7 0 0 0>;
-               };
-
-               guts: global-utilities@e0000 {
-                       compatible = "fsl,qoriq-device-config-1.0";
-                       reg = <0xe0000 0xe00>;
-                       fsl,has-rstcr;
-                       #sleep-cells = <1>;
-                       fsl,liodn-bits = <12>;
-               };
-
-               pins: global-utilities@e0e00 {
-                       compatible = "fsl,qoriq-pin-control-1.0";
-                       reg = <0xe0e00 0x200>;
-                       #sleep-cells = <2>;
-               };
-
-               clockgen: global-utilities@e1000 {
-                       compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0";
-                       reg = <0xe1000 0x1000>;
-                       clock-frequency = <0>;
-               };
-
-               rcpm: global-utilities@e2000 {
-                       compatible = "fsl,qoriq-rcpm-1.0";
-                       reg = <0xe2000 0x1000>;
-                       #sleep-cells = <1>;
-               };
-
-               sfp: sfp@e8000 {
-                       compatible = "fsl,p5020-sfp", "fsl,qoriq-sfp-1.0";
-                       reg        = <0xe8000 0x1000>;
-               };
-
-               serdes: serdes@ea000 {
-                       compatible = "fsl,p5020-serdes";
-                       reg        = <0xea000 0x1000>;
-               };
-
-               dma0: dma@100300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p5020-dma", "fsl,eloplus-dma";
-                       reg = <0x100300 0x4>;
-                       ranges = <0x0 0x100100 0x200>;
-                       cell-index = <0>;
-                       dma-channel@0 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <28 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <29 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <30 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <31 2 0 0>;
-                       };
-               };
-
-               dma1: dma@101300 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "fsl,p5020-dma", "fsl,eloplus-dma";
-                       reg = <0x101300 0x4>;
-                       ranges = <0x0 0x101100 0x200>;
-                       cell-index = <1>;
-                       dma-channel@0 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x0 0x80>;
-                               cell-index = <0>;
-                               interrupts = <32 2 0 0>;
-                       };
-                       dma-channel@80 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x80 0x80>;
-                               cell-index = <1>;
-                               interrupts = <33 2 0 0>;
-                       };
-                       dma-channel@100 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x100 0x80>;
-                               cell-index = <2>;
-                               interrupts = <34 2 0 0>;
-                       };
-                       dma-channel@180 {
-                               compatible = "fsl,p5020-dma-channel",
-                                               "fsl,eloplus-dma-channel";
-                               reg = <0x180 0x80>;
-                               cell-index = <3>;
-                               interrupts = <35 2 0 0>;
-                       };
-               };
-
-               spi@110000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "fsl,p5020-espi", "fsl,mpc8536-espi";
-                       reg = <0x110000 0x1000>;
-                       interrupts = <53 0x2 0 0>;
-                       fsl,espi-num-chipselects = <4>;
-               };
-
-               sdhc: sdhc@114000 {
-                       compatible = "fsl,p5020-esdhc", "fsl,esdhc";
-                       reg = <0x114000 0x1000>;
-                       interrupts = <48 2 0 0>;
-                       sdhci,auto-cmd12;
-                       clock-frequency = <0>;
-               };
-
-               i2c@118000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <0>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118000 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@118100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <1>;
-                       compatible = "fsl-i2c";
-                       reg = <0x118100 0x100>;
-                       interrupts = <38 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <2>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119000 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               i2c@119100 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       cell-index = <3>;
-                       compatible = "fsl-i2c";
-                       reg = <0x119100 0x100>;
-                       interrupts = <39 2 0 0>;
-                       dfsrr;
-               };
-
-               serial0: serial@11c500 {
-                       cell-index = <0>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial1: serial@11c600 {
-                       cell-index = <1>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11c600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <36 2 0 0>;
-               };
-
-               serial2: serial@11d500 {
-                       cell-index = <2>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d500 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               serial3: serial@11d600 {
-                       cell-index = <3>;
-                       device_type = "serial";
-                       compatible = "ns16550";
-                       reg = <0x11d600 0x100>;
-                       clock-frequency = <0>;
-                       interrupts = <37 2 0 0>;
-               };
-
-               gpio0: gpio@130000 {
-                       compatible = "fsl,p5020-gpio", "fsl,qoriq-gpio";
-                       reg = <0x130000 0x1000>;
-                       interrupts = <55 2 0 0>;
-                       #gpio-cells = <2>;
-                       gpio-controller;
-               };
-
-               usb0: usb@210000 {
-                       compatible = "fsl,p5020-usb2-mph",
-                                       "fsl,mpc85xx-usb2-mph", "fsl-usb2-mph";
-                       reg = <0x210000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <44 0x2 0 0>;
-                       phy_type = "utmi";
-                       port0;
-               };
-
-               usb1: usb@211000 {
-                       compatible = "fsl,p5020-usb2-dr",
-                                       "fsl,mpc85xx-usb2-dr", "fsl-usb2-dr";
-                       reg = <0x211000 0x1000>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <45 0x2 0 0>;
-                       dr_mode = "host";
-                       phy_type = "utmi";
-               };
-
-               sata@220000 {
-                       compatible = "fsl,p5020-sata", "fsl,pq-sata-v2";
-                       reg = <0x220000 0x1000>;
-                       interrupts = <68 0x2 0 0>;
-               };
-
-               sata@221000 {
-                       compatible = "fsl,p5020-sata", "fsl,pq-sata-v2";
-                       reg = <0x221000 0x1000>;
-                       interrupts = <69 0x2 0 0>;
-               };
-
-               crypto: crypto@300000 {
-                       compatible = "fsl,sec-v4.2", "fsl,sec-v4.0";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg              = <0x300000 0x10000>;
-                       ranges           = <0 0x300000 0x10000>;
-                       interrupts       = <92 2 0 0>;
-
-                       sec_jr0: jr@1000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x1000 0x1000>;
-                               interrupts = <88 2 0 0>;
-                       };
-
-                       sec_jr1: jr@2000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x2000 0x1000>;
-                               interrupts = <89 2 0 0>;
-                       };
-
-                       sec_jr2: jr@3000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x3000 0x1000>;
-                               interrupts = <90 2 0 0>;
-                       };
-
-                       sec_jr3: jr@4000 {
-                               compatible = "fsl,sec-v4.2-job-ring",
-                                            "fsl,sec-v4.0-job-ring";
-                               reg = <0x4000 0x1000>;
-                               interrupts = <91 2 0 0>;
-                       };
-
-                       rtic@6000 {
-                               compatible = "fsl,sec-v4.2-rtic",
-                                            "fsl,sec-v4.0-rtic";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-                               reg = <0x6000 0x100>;
-                               ranges = <0x0 0x6100 0xe00>;
-
-                               rtic_a: rtic-a@0 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x00 0x20 0x100 0x80>;
-                               };
-
-                               rtic_b: rtic-b@20 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x20 0x20 0x200 0x80>;
-                               };
-
-                               rtic_c: rtic-c@40 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x40 0x20 0x300 0x80>;
-                               };
-
-                               rtic_d: rtic-d@60 {
-                                       compatible = "fsl,sec-v4.2-rtic-memory",
-                                                    "fsl,sec-v4.0-rtic-memory";
-                                       reg = <0x60 0x20 0x500 0x80>;
-                               };
-                       };
-               };
-
-               sec_mon: sec_mon@314000 {
-                       compatible = "fsl,sec-v4.2-mon", "fsl,sec-v4.0-mon";
-                       reg = <0x314000 0x1000>;
-                       interrupts = <93 2 0 0>;
-               };
-       };
-
-/*
-       rapidio0: rapidio@ffe0c0000
-*/
-
-       localbus@ffe124000 {
-               compatible = "fsl,p5020-elbc", "fsl,elbc", "simple-bus";
-               interrupts = <25 2 0 0>;
-               #address-cells = <2>;
-               #size-cells = <1>;
-       };
-
-       pci0: pcie@ffe200000 {
-               compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi0>;
-               interrupts = <16 2 1 15>;
-
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 15>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 40 1 0 0
-                               0000 0 0 2 &mpic 1 1 0 0
-                               0000 0 0 3 &mpic 2 1 0 0
-                               0000 0 0 4 &mpic 3 1 0 0
-                               >;
-               };
-       };
-
-       pci1: pcie@ffe201000 {
-               compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi1>;
-               interrupts = <16 2 1 14>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 14>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 41 1 0 0
-                               0000 0 0 2 &mpic 5 1 0 0
-                               0000 0 0 3 &mpic 6 1 0 0
-                               0000 0 0 4 &mpic 7 1 0 0
-                               >;
-               };
-       };
-
-       pci2: pcie@ffe202000 {
-               compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi2>;
-               interrupts = <16 2 1 13>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 13>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 42 1 0 0
-                               0000 0 0 2 &mpic 9 1 0 0
-                               0000 0 0 3 &mpic 10 1 0 0
-                               0000 0 0 4 &mpic 11 1 0 0
-                               >;
-               };
-       };
-
-       pci3: pcie@ffe203000 {
-               compatible = "fsl,p5020-pcie", "fsl,qoriq-pcie-v2.2";
-               device_type = "pci";
-               #size-cells = <2>;
-               #address-cells = <3>;
-               bus-range = <0x0 0xff>;
-               clock-frequency = <0x1fca055>;
-               fsl,msi = <&msi2>;
-               interrupts = <16 2 1 12>;
-               pcie@0 {
-                       reg = <0 0 0 0 0>;
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       device_type = "pci";
-                       interrupts = <16 2 1 12>;
-                       interrupt-map-mask = <0xf800 0 0 7>;
-                       interrupt-map = <
-                               /* IDSEL 0x0 */
-                               0000 0 0 1 &mpic 43 1 0 0
-                               0000 0 0 2 &mpic 0 1 0 0
-                               0000 0 0 3 &mpic 4 1 0 0
-                               0000 0 0 4 &mpic 8 1 0 0
-                               >;
-               };
-       };
-};
index 8a0b5ece8f76f8e6152bfe0a7be812426c06ce95..420b45368fcff05b5534a3f9bbcb396279bc1cb5 100644 (file)
@@ -238,8 +238,6 @@ struct fsl_lbc_regs {
 #define FPAR_LP_CI_SHIFT      0
        __be32 fbcr;            /**< Flash Byte Count Register */
 #define FBCR_BC      0x00000FFF
-       u8 res11[0x8];
-       u8 res8[0xF00];
 };
 
 /*
@@ -294,6 +292,11 @@ struct fsl_lbc_ctrl {
 
        /* status read from LTESR by irq handler */
        unsigned int                    irq_status;
+
+#ifdef CONFIG_SUSPEND
+       /* save regs when system go to deep-sleep */
+       struct fsl_lbc_regs             *saved_regs;
+#endif
 };
 
 extern int fsl_upm_run_pattern(struct fsl_upm *upm, void __iomem *io_base,
index 8f428fff545f384822f415ec50a6d90591d37e99..9bffc028f45ac120831d313d93b8292448bbd0ce 100644 (file)
@@ -1759,10 +1759,13 @@ void __devinit pcibios_scan_phb(struct pci_controller *hose)
 static void fixup_hide_host_resource_fsl(struct pci_dev *dev)
 {
        int i, class = dev->class >> 8;
+       /* When configured as agent, programing interface = 1 */
+       int prog_if = dev->class & 0xf;
 
        if ((class == PCI_CLASS_PROCESSOR_POWERPC ||
             class == PCI_CLASS_BRIDGE_OTHER) &&
                (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) &&
+               (prog_if == 0) &&
                (dev->bus->parent == NULL)) {
                for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
                        dev->resource[i].start = 0;
index aa0d84d22585639bf5f42d22416305180450e844..464ea8e0292d809b7b5cae2466a92ed88d1890cb 100644 (file)
@@ -36,38 +36,7 @@ static void __init asp834x_setup_arch(void)
        mpc834x_usb_cfg();
 }
 
-static void __init asp834x_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       of_node_put(np);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-}
-
-static struct __initdata of_device_id asp8347_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init asp8347_declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, asp8347_ids, NULL);
-       return 0;
-}
-machine_device_initcall(asp834x, asp8347_declare_of_platform_devices);
+machine_device_initcall(asp834x, mpc83xx_declare_of_platform_devices);
 
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
@@ -82,7 +51,7 @@ define_machine(asp834x) {
        .name                   = "ASP8347E",
        .probe                  = asp834x_probe,
        .setup_arch             = asp834x_setup_arch,
-       .init_IRQ               = asp834x_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index c55129f5760a112b18d33ab12b5ad8575fb271b1..65eb792a0d001eabcdfefc04d0fc279ca7456051 100644 (file)
  */
 static void __init mpc83xx_km_setup_arch(void)
 {
+#ifdef CONFIG_QUICC_ENGINE
        struct device_node *np;
+#endif
 
        if (ppc_md.progress)
                ppc_md.progress("kmpbec83xx_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
 
 #ifdef CONFIG_QUICC_ENGINE
        qe_reset();
@@ -122,54 +121,7 @@ static void __init mpc83xx_km_setup_arch(void)
 #endif                         /* CONFIG_QUICC_ENGINE */
 }
 
-static struct of_device_id kmpbec83xx_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .type = "qe", },
-       { .compatible = "fsl,qe", },
-       {},
-};
-
-static int __init kmeter_declare_of_platform_devices(void)
-{
-       /* Publish the QE devices */
-       of_platform_bus_probe(NULL, kmpbec83xx_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(mpc83xx_km, kmeter_declare_of_platform_devices);
-
-static void __init mpc83xx_km_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_compatible_node(NULL, NULL, "fsl,pq2pro-pic");
-       if (!np) {
-               np = of_find_node_by_type(NULL, "ipic");
-               if (!np)
-                       return;
-       }
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-       of_node_put(np);
-
-#ifdef CONFIG_QUICC_ENGINE
-       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
-       if (!np) {
-               np = of_find_node_by_type(NULL, "qeic");
-               if (!np)
-                       return;
-       }
-       qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
-       of_node_put(np);
-#endif                         /* CONFIG_QUICC_ENGINE */
-}
+machine_device_initcall(mpc83xx_km, mpc83xx_declare_of_platform_devices);
 
 /* list of the supported boards */
 static char *board[] __initdata = {
@@ -198,7 +150,7 @@ define_machine(mpc83xx_km) {
        .name           = "mpc83xx-km-platform",
        .probe          = mpc83xx_km_probe,
        .setup_arch     = mpc83xx_km_setup_arch,
-       .init_IRQ       = mpc83xx_km_init_IRQ,
+       .init_IRQ       = mpc83xx_ipic_and_qe_init_IRQ,
        .get_irq        = ipic_get_irq,
        .restart        = mpc83xx_restart,
        .time_init      = mpc83xx_time_init,
index f01806c940e14b8e62b3d54d0cd77c300e1a4040..125336f750c6969273d70d09e0eeefc39cb5a0c5 100644 (file)
 
 #include <linux/stddef.h>
 #include <linux/kernel.h>
+#include <linux/of_platform.h>
+#include <linux/pci.h>
 
 #include <asm/io.h>
 #include <asm/hw_irq.h>
+#include <asm/ipic.h>
+#include <asm/qe_ic.h>
 #include <sysdev/fsl_soc.h>
+#include <sysdev/fsl_pci.h>
 
 #include "mpc83xx.h"
 
@@ -65,3 +70,75 @@ long __init mpc83xx_time_init(void)
 
        return 0;
 }
+
+void __init mpc83xx_ipic_init_IRQ(void)
+{
+       struct device_node *np;
+
+       /* looking for fsl,pq2pro-pic which is asl compatible with fsl,ipic */
+       np = of_find_compatible_node(NULL, NULL, "fsl,ipic");
+       if (!np)
+               np = of_find_node_by_type(NULL, "ipic");
+       if (!np)
+               return;
+
+       ipic_init(np, 0);
+
+       of_node_put(np);
+
+       /* Initialize the default interrupt mapping priorities,
+        * in case the boot rom changed something on us.
+        */
+       ipic_set_default_priority();
+}
+
+#ifdef CONFIG_QUICC_ENGINE
+void __init mpc83xx_qe_init_IRQ(void)
+{
+       struct device_node *np;
+
+       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
+       if (!np) {
+               np = of_find_node_by_type(NULL, "qeic");
+               if (!np)
+                       return;
+       }
+       qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
+       of_node_put(np);
+}
+
+void __init mpc83xx_ipic_and_qe_init_IRQ(void)
+{
+       mpc83xx_ipic_init_IRQ();
+       mpc83xx_qe_init_IRQ();
+}
+#endif /* CONFIG_QUICC_ENGINE */
+
+static struct of_device_id __initdata of_bus_ids[] = {
+       { .type = "soc", },
+       { .compatible = "soc", },
+       { .compatible = "simple-bus" },
+       { .compatible = "gianfar" },
+       { .compatible = "gpio-leds", },
+       { .type = "qe", },
+       { .compatible = "fsl,qe", },
+       {},
+};
+
+int __init mpc83xx_declare_of_platform_devices(void)
+{
+       of_platform_bus_probe(NULL, of_bus_ids, NULL);
+       return 0;
+}
+
+#ifdef CONFIG_PCI
+void __init mpc83xx_setup_pci(void)
+{
+       struct device_node *np;
+
+       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
+               mpc83xx_add_bridge(np);
+       for_each_compatible_node(np, "pci", "fsl,mpc8314-pcie")
+               mpc83xx_add_bridge(np);
+}
+#endif
index d0c4e15b77949a09ab29ef6d507ef86031bdcb2e..4f2d9fea77b7da03880a91581fe29a152f3ee245 100644 (file)
  */
 static void __init mpc830x_rdb_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("mpc830x_rdb_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8308-pcie")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
        mpc831x_usb_cfg();
 }
 
-static void __init mpc830x_rdb_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-}
-
 static const char *board[] __initdata = {
        "MPC8308RDB",
        "fsl,mpc8308rdb",
@@ -72,24 +49,13 @@ static int __init mpc830x_rdb_probe(void)
        return of_flat_dt_match(of_get_flat_dt_root(), board);
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .compatible = "simple-bus" },
-       { .compatible = "gianfar" },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-       return 0;
-}
-machine_device_initcall(mpc830x_rdb, declare_of_platform_devices);
+machine_device_initcall(mpc830x_rdb, mpc83xx_declare_of_platform_devices);
 
 define_machine(mpc830x_rdb) {
        .name                   = "MPC830x RDB",
        .probe                  = mpc830x_rdb_probe,
        .setup_arch             = mpc830x_rdb_setup_arch,
-       .init_IRQ               = mpc830x_rdb_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index f859ead49a8d26c89b2c2aa33a0dbeb57bc0fb1e..fa25977c52de464e4043af6e59e9e3ae6f3a78d0 100644 (file)
  */
 static void __init mpc831x_rdb_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("mpc831x_rdb_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-       for_each_compatible_node(np, "pci", "fsl,mpc8314-pcie")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
        mpc831x_usb_cfg();
 }
 
-static void __init mpc831x_rdb_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-}
-
 static const char *board[] __initdata = {
        "MPC8313ERDB",
        "fsl,mpc8315erdb",
@@ -74,25 +49,13 @@ static int __init mpc831x_rdb_probe(void)
        return of_flat_dt_match(of_get_flat_dt_root(), board);
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .compatible = "simple-bus" },
-       { .compatible = "gianfar" },
-       { .compatible = "gpio-leds", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-       return 0;
-}
-machine_device_initcall(mpc831x_rdb, declare_of_platform_devices);
+machine_device_initcall(mpc831x_rdb, mpc83xx_declare_of_platform_devices);
 
 define_machine(mpc831x_rdb) {
        .name                   = "MPC831x RDB",
        .probe                  = mpc831x_rdb_probe,
        .setup_arch             = mpc831x_rdb_setup_arch,
-       .init_IRQ               = mpc831x_rdb_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index 32a52896822fe2f78ed7a59321769ac95b64188f..e36bc611dd6e44a527c076959878c16d73228419 100644 (file)
@@ -72,10 +72,7 @@ static void __init mpc832x_sys_setup_arch(void)
                of_node_put(np);
        }
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
 
 #ifdef CONFIG_QUICC_ENGINE
        qe_reset();
@@ -101,51 +98,7 @@ static void __init mpc832x_sys_setup_arch(void)
 #endif                         /* CONFIG_QUICC_ENGINE */
 }
 
-static struct of_device_id mpc832x_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .type = "qe", },
-       { .compatible = "fsl,qe", },
-       {},
-};
-
-static int __init mpc832x_declare_of_platform_devices(void)
-{
-       /* Publish the QE devices */
-       of_platform_bus_probe(NULL, mpc832x_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(mpc832x_mds, mpc832x_declare_of_platform_devices);
-
-static void __init mpc832x_sys_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-       of_node_put(np);
-
-#ifdef CONFIG_QUICC_ENGINE
-       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
-       if (!np) {
-               np = of_find_node_by_type(NULL, "qeic");
-               if (!np)
-                       return;
-       }
-       qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
-       of_node_put(np);
-#endif                         /* CONFIG_QUICC_ENGINE */
-}
+machine_device_initcall(mpc832x_mds, mpc83xx_declare_of_platform_devices);
 
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
@@ -161,7 +114,7 @@ define_machine(mpc832x_mds) {
        .name           = "MPC832x MDS",
        .probe          = mpc832x_sys_probe,
        .setup_arch     = mpc832x_sys_setup_arch,
-       .init_IRQ       = mpc832x_sys_init_IRQ,
+       .init_IRQ       = mpc83xx_ipic_and_qe_init_IRQ,
        .get_irq        = ipic_get_irq,
        .restart        = mpc83xx_restart,
        .time_init      = mpc83xx_time_init,
index 17f99745f0e459fbb26d0307833686ca2f61b362..eff5baabc3fbf1600dec624782778fa68fbef448 100644 (file)
@@ -193,17 +193,14 @@ machine_device_initcall(mpc832x_rdb, mpc832x_spi_init);
  */
 static void __init mpc832x_rdb_setup_arch(void)
 {
-#if defined(CONFIG_PCI) || defined(CONFIG_QUICC_ENGINE)
+#if defined(CONFIG_QUICC_ENGINE)
        struct device_node *np;
 #endif
 
        if (ppc_md.progress)
                ppc_md.progress("mpc832x_rdb_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
 
 #ifdef CONFIG_QUICC_ENGINE
        qe_reset();
@@ -218,52 +215,7 @@ static void __init mpc832x_rdb_setup_arch(void)
 #endif                         /* CONFIG_QUICC_ENGINE */
 }
 
-static struct of_device_id mpc832x_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .type = "qe", },
-       { .compatible = "fsl,qe", },
-       {},
-};
-
-static int __init mpc832x_declare_of_platform_devices(void)
-{
-       /* Publish the QE devices */
-       of_platform_bus_probe(NULL, mpc832x_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(mpc832x_rdb, mpc832x_declare_of_platform_devices);
-
-static void __init mpc832x_rdb_init_IRQ(void)
-{
-
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-       of_node_put(np);
-
-#ifdef CONFIG_QUICC_ENGINE
-       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
-       if (!np) {
-               np = of_find_node_by_type(NULL, "qeic");
-               if (!np)
-                       return;
-       }
-       qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
-       of_node_put(np);
-#endif                         /* CONFIG_QUICC_ENGINE */
-}
+machine_device_initcall(mpc832x_rdb, mpc83xx_declare_of_platform_devices);
 
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
@@ -279,7 +231,7 @@ define_machine(mpc832x_rdb) {
        .name           = "MPC832x RDB",
        .probe          = mpc832x_rdb_probe,
        .setup_arch     = mpc832x_rdb_setup_arch,
-       .init_IRQ       = mpc832x_rdb_init_IRQ,
+       .init_IRQ       = mpc83xx_ipic_and_qe_init_IRQ,
        .get_irq        = ipic_get_irq,
        .restart        = mpc83xx_restart,
        .time_init      = mpc83xx_time_init,
index 6b45969567d4edf53bbd16315c40ab755cfbaf87..39849dd1b5bbb7d827639ed1d0486bc814874ed2 100644 (file)
 
 static struct of_device_id __initdata mpc834x_itx_ids[] = {
        { .compatible = "fsl,pq2pro-localbus", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
        {},
 };
 
 static int __init mpc834x_itx_declare_of_platform_devices(void)
 {
+       mpc83xx_declare_of_platform_devices();
        return of_platform_bus_probe(NULL, mpc834x_itx_ids, NULL);
 }
 machine_device_initcall(mpc834x_itx, mpc834x_itx_declare_of_platform_devices);
@@ -59,37 +58,14 @@ machine_device_initcall(mpc834x_itx, mpc834x_itx_declare_of_platform_devices);
  */
 static void __init mpc834x_itx_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("mpc834x_itx_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
 
        mpc834x_usb_cfg();
 }
 
-static void __init mpc834x_itx_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-}
-
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
  */
@@ -104,7 +80,7 @@ define_machine(mpc834x_itx) {
        .name                   = "MPC834x ITX",
        .probe                  = mpc834x_itx_probe,
        .setup_arch             = mpc834x_itx_setup_arch,
-       .init_IRQ               = mpc834x_itx_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index 041c5177e737be0a4a68fd3b30e4b8e3cca1febf..5828d8e97c37447a3a0ab4fbb9f8b01e8638b4fd 100644 (file)
@@ -77,51 +77,15 @@ static int mpc834xemds_usb_cfg(void)
  */
 static void __init mpc834x_mds_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("mpc834x_mds_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
 
        mpc834xemds_usb_cfg();
 }
 
-static void __init mpc834x_mds_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-}
-
-static struct of_device_id mpc834x_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init mpc834x_declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, mpc834x_ids, NULL);
-       return 0;
-}
-machine_device_initcall(mpc834x_mds, mpc834x_declare_of_platform_devices);
+machine_device_initcall(mpc834x_mds, mpc83xx_declare_of_platform_devices);
 
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
@@ -137,7 +101,7 @@ define_machine(mpc834x_mds) {
        .name                   = "MPC834x MDS",
        .probe                  = mpc834x_mds_probe,
        .setup_arch             = mpc834x_mds_setup_arch,
-       .init_IRQ               = mpc834x_mds_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index 934cc8c46bbc4cc33ed2e638e26d5d51f3771458..ad8e4bcd7d55b412b6ad4f65552490ae67ac7031 100644 (file)
@@ -80,10 +80,7 @@ static void __init mpc836x_mds_setup_arch(void)
                of_node_put(np);
        }
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
 
 #ifdef CONFIG_QUICC_ENGINE
        qe_reset();
@@ -144,23 +141,7 @@ static void __init mpc836x_mds_setup_arch(void)
 #endif                         /* CONFIG_QUICC_ENGINE */
 }
 
-static struct of_device_id mpc836x_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .type = "qe", },
-       { .compatible = "fsl,qe", },
-       {},
-};
-
-static int __init mpc836x_declare_of_platform_devices(void)
-{
-       /* Publish the QE devices */
-       of_platform_bus_probe(NULL, mpc836x_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(mpc836x_mds, mpc836x_declare_of_platform_devices);
+machine_device_initcall(mpc836x_mds, mpc83xx_declare_of_platform_devices);
 
 #ifdef CONFIG_QE_USB
 static int __init mpc836x_usb_cfg(void)
@@ -226,34 +207,6 @@ err:
 machine_arch_initcall(mpc836x_mds, mpc836x_usb_cfg);
 #endif /* CONFIG_QE_USB */
 
-static void __init mpc836x_mds_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-       of_node_put(np);
-
-#ifdef CONFIG_QUICC_ENGINE
-       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
-       if (!np) {
-               np = of_find_node_by_type(NULL, "qeic");
-               if (!np)
-                       return;
-       }
-       qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
-       of_node_put(np);
-#endif                         /* CONFIG_QUICC_ENGINE */
-}
-
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
  */
@@ -268,7 +221,7 @@ define_machine(mpc836x_mds) {
        .name           = "MPC836x MDS",
        .probe          = mpc836x_mds_probe,
        .setup_arch     = mpc836x_mds_setup_arch,
-       .init_IRQ       = mpc836x_mds_init_IRQ,
+       .init_IRQ       = mpc83xx_ipic_and_qe_init_IRQ,
        .get_irq        = ipic_get_irq,
        .restart        = mpc83xx_restart,
        .time_init      = mpc83xx_time_init,
index b0090aac9642283ba4c62a00789edd92baab8ce7..f8769d713d6116b94d90c09f5f28aa2d0c72d7e5 100644 (file)
 
 #include "mpc83xx.h"
 
-static struct of_device_id __initdata mpc836x_rdk_ids[] = {
-       { .compatible = "simple-bus", },
-       {},
-};
-
-static int __init mpc836x_rdk_declare_of_platform_devices(void)
-{
-       return of_platform_bus_probe(NULL, mpc836x_rdk_ids, NULL);
-}
-machine_device_initcall(mpc836x_rdk, mpc836x_rdk_declare_of_platform_devices);
+machine_device_initcall(mpc836x_rdk, mpc83xx_declare_of_platform_devices);
 
 static void __init mpc836x_rdk_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("mpc836x_rdk_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
 #ifdef CONFIG_QUICC_ENGINE
        qe_reset();
 #endif
 }
 
-static void __init mpc836x_rdk_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_compatible_node(NULL, NULL, "fsl,ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /*
-        * Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-       of_node_put(np);
-#ifdef CONFIG_QUICC_ENGINE
-       np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
-       if (!np)
-               return;
-
-       qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic);
-       of_node_put(np);
-#endif
-}
-
 /*
  * Called very early, MMU is off, device-tree isn't unflattened.
  */
@@ -96,7 +54,7 @@ define_machine(mpc836x_rdk) {
        .name           = "MPC836x RDK",
        .probe          = mpc836x_rdk_probe,
        .setup_arch     = mpc836x_rdk_setup_arch,
-       .init_IRQ       = mpc836x_rdk_init_IRQ,
+       .init_IRQ       = mpc83xx_ipic_and_qe_init_IRQ,
        .get_irq        = ipic_get_irq,
        .restart        = mpc83xx_restart,
        .time_init      = mpc83xx_time_init,
index 83068322abd154004325093e1db9a7b24b9da8d7..e53a60b6c86364493bce952bd391e4893eb3659c 100644 (file)
@@ -79,54 +79,14 @@ out:
  */
 static void __init mpc837x_mds_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("mpc837x_mds_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-       for_each_compatible_node(np, "pci", "fsl,mpc8314-pcie")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
        mpc837xmds_usb_cfg();
 }
 
-static struct of_device_id mpc837x_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init mpc837x_declare_of_platform_devices(void)
-{
-       /* Publish platform_device */
-       of_platform_bus_probe(NULL, mpc837x_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(mpc837x_mds, mpc837x_declare_of_platform_devices);
-
-static void __init mpc837x_mds_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_compatible_node(NULL, NULL, "fsl,ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-}
+machine_device_initcall(mpc837x_mds, mpc83xx_declare_of_platform_devices);
 
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
@@ -142,7 +102,7 @@ define_machine(mpc837x_mds) {
        .name                   = "MPC837x MDS",
        .probe                  = mpc837x_mds_probe,
        .setup_arch             = mpc837x_mds_setup_arch,
-       .init_IRQ               = mpc837x_mds_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index 7bafbf2ec0f92712aac0a1a259b22e1dd3de4b7f..16c9c9cbbb7fa48967219dcd3d4a0a7fe4a0c66d 100644 (file)
@@ -50,56 +50,15 @@ static void mpc837x_rdb_sd_cfg(void)
  */
 static void __init mpc837x_rdb_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("mpc837x_rdb_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-       for_each_compatible_node(np, "pci", "fsl,mpc8314-pcie")
-               mpc83xx_add_bridge(np);
-#endif
+       mpc83xx_setup_pci();
        mpc837x_usb_cfg();
        mpc837x_rdb_sd_cfg();
 }
 
-static struct of_device_id mpc837x_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       { .compatible = "gpio-leds", },
-       {},
-};
-
-static int __init mpc837x_declare_of_platform_devices(void)
-{
-       /* Publish platform_device */
-       of_platform_bus_probe(NULL, mpc837x_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(mpc837x_rdb, mpc837x_declare_of_platform_devices);
-
-static void __init mpc837x_rdb_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_compatible_node(NULL, NULL, "fsl,ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-}
+machine_device_initcall(mpc837x_rdb, mpc83xx_declare_of_platform_devices);
 
 static const char *board[] __initdata = {
        "fsl,mpc8377rdb",
@@ -121,7 +80,7 @@ define_machine(mpc837x_rdb) {
        .name                   = "MPC837x RDB/WLAN",
        .probe                  = mpc837x_rdb_probe,
        .setup_arch             = mpc837x_rdb_setup_arch,
-       .init_IRQ               = mpc837x_rdb_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index 82a434510d83d458bf242f95663df565a1cf925f..0cf74d7ea1c56cb26fea0096627949b20af4002e 100644 (file)
@@ -70,5 +70,21 @@ extern long mpc83xx_time_init(void);
 extern int mpc837x_usb_cfg(void);
 extern int mpc834x_usb_cfg(void);
 extern int mpc831x_usb_cfg(void);
+extern void mpc83xx_ipic_init_IRQ(void);
+#ifdef CONFIG_QUICC_ENGINE
+extern void mpc83xx_qe_init_IRQ(void);
+extern void mpc83xx_ipic_and_qe_init_IRQ(void);
+#else
+static inline void __init mpc83xx_qe_init_IRQ(void) {}
+#define mpc83xx_ipic_and_qe_init_IRQ mpc83xx_ipic_init_IRQ
+#endif /* CONFIG_QUICC_ENGINE */
+
+#ifdef CONFIG_PCI
+extern void mpc83xx_setup_pci(void);
+#else
+#define mpc83xx_setup_pci()    do {} while (0)
+#endif
+
+extern int mpc83xx_declare_of_platform_devices(void);
 
 #endif                         /* __MPC83XX_H__ */
index af41d8c810a87e15b384aa383371fe2505d7150a..1c3dfc8556f07ee66a04037b16f6b8f9b5f3fc21 100644 (file)
  */
 static void __init sbc834x_setup_arch(void)
 {
-#ifdef CONFIG_PCI
-       struct device_node *np;
-#endif
-
        if (ppc_md.progress)
                ppc_md.progress("sbc834x_setup_arch()", 0);
 
-#ifdef CONFIG_PCI
-       for_each_compatible_node(np, "pci", "fsl,mpc8349-pci")
-               mpc83xx_add_bridge(np);
-#endif
-
+       mpc83xx_setup_pci();
 }
 
-static void __init sbc834x_init_IRQ(void)
-{
-       struct device_node *np;
-
-       np = of_find_node_by_type(NULL, "ipic");
-       if (!np)
-               return;
-
-       ipic_init(np, 0);
-
-       /* Initialize the default interrupt mapping priorities,
-        * in case the boot rom changed something on us.
-        */
-       ipic_set_default_priority();
-
-       of_node_put(np);
-}
-
-static struct __initdata of_device_id sbc834x_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init sbc834x_declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, sbc834x_ids, NULL);
-       return 0;
-}
-machine_device_initcall(sbc834x, sbc834x_declare_of_platform_devices);
+machine_device_initcall(sbc834x, mpc83xx_declare_of_platform_devices);
 
 /*
  * Called very early, MMU is off, device-tree isn't unflattened
@@ -109,7 +70,7 @@ define_machine(sbc834x) {
        .name                   = "SBC834x",
        .probe                  = sbc834x_probe,
        .setup_arch             = sbc834x_setup_arch,
-       .init_IRQ               = sbc834x_init_IRQ,
+       .init_IRQ               = mpc83xx_ipic_init_IRQ,
        .get_irq                = ipic_get_irq,
        .restart                = mpc83xx_restart,
        .time_init              = mpc83xx_time_init,
index 45023e26aea369685d88c752aa52814ac07dd27a..d7946be298b6fc1f842eaff3e14b4ae502924f3c 100644 (file)
@@ -203,7 +203,7 @@ config P3060_QDS
        select PPC_E500MC
        select PHYS_64BIT
        select SWIOTLB
-       select MPC8xxx_GPIO
+       select GPIO_MPC8XXX
        select HAS_RAPIDIO
        select PPC_EPAPR_HV_PIC
        help
index bc5acb95917af5a35d6ceb561a277b4769f39483..9cb2d4320dccb34ff4113c33986383786a2c65cf 100644 (file)
@@ -3,6 +3,8 @@
 #
 obj-$(CONFIG_SMP) += smp.o
 
+obj-y += common.o
+
 obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
 obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
 obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
diff --git a/arch/powerpc/platforms/85xx/common.c b/arch/powerpc/platforms/85xx/common.c
new file mode 100644 (file)
index 0000000..9fef530
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Routines common to most mpc85xx-based boards.
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#include <linux/of_platform.h>
+
+#include <sysdev/cpm2_pic.h>
+
+#include "mpc85xx.h"
+
+static struct of_device_id __initdata mpc85xx_common_ids[] = {
+       { .type = "soc", },
+       { .compatible = "soc", },
+       { .compatible = "simple-bus", },
+       { .name = "cpm", },
+       { .name = "localbus", },
+       { .compatible = "gianfar", },
+       { .compatible = "fsl,qe", },
+       { .compatible = "fsl,cpm2", },
+       { .compatible = "fsl,srio", },
+       {},
+};
+
+int __init mpc85xx_common_publish_devices(void)
+{
+       return of_platform_bus_probe(NULL, mpc85xx_common_ids, NULL);
+}
+#ifdef CONFIG_CPM2
+static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
+{
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       int cascade_irq;
+
+       while ((cascade_irq = cpm2_get_irq()) >= 0)
+               generic_handle_irq(cascade_irq);
+
+       chip->irq_eoi(&desc->irq_data);
+}
+
+
+void __init mpc85xx_cpm2_pic_init(void)
+{
+       struct device_node *np;
+       int irq;
+
+       /* Setup CPM2 PIC */
+       np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
+       if (np == NULL) {
+               printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
+               return;
+       }
+       irq = irq_of_parse_and_map(np, 0);
+       if (irq == NO_IRQ) {
+               of_node_put(np);
+               printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n");
+               return;
+       }
+
+       cpm2_pic_init(np);
+       of_node_put(np);
+       irq_set_chained_handler(irq, cpm2_cascade);
+}
+#endif
index 802ad110b75719780ea29547f9ef85c6b0863a8d..c48b66187ddaf05acb3dad3c325e6faf71f256bd 100644 (file)
@@ -112,7 +112,7 @@ static const struct of_device_id of_device_ids[] __devinitconst = {
                .compatible     = "simple-bus"
        },
        {
-               .compatible     = "fsl,rapidio-delta",
+               .compatible     = "fsl,srio",
        },
        {
                .compatible     = "fsl,p4080-pcie",
index c46f9359be158678d8c28af191088220a50f7848..0f3e6883265744e7faec9230cb444e37344b3d71 100644 (file)
@@ -35,6 +35,7 @@
 #include <asm/cpm2.h>
 #include <sysdev/cpm2_pic.h>
 
+#include "mpc85xx.h"
 
 #define KSI8560_CPLD_HVR               0x04 /* Hardware Version Register */
 #define KSI8560_CPLD_PVR               0x08 /* PLD Version Register */
@@ -54,25 +55,11 @@ static void machine_restart(char *cmd)
        for (;;);
 }
 
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
-       struct irq_chip *chip = irq_desc_get_chip(desc);
-       int cascade_irq;
-
-       while ((cascade_irq = cpm2_get_irq()) >= 0)
-               generic_handle_irq(cascade_irq);
-
-       chip->irq_eoi(&desc->irq_data);
-}
-
 static void __init ksi8560_pic_init(void)
 {
        struct mpic *mpic;
        struct resource r;
        struct device_node *np;
-#ifdef CONFIG_CPM2
-       int irq;
-#endif
 
        np = of_find_node_by_type(NULL, "open-pic");
 
@@ -95,19 +82,7 @@ static void __init ksi8560_pic_init(void)
 
        mpic_init(mpic);
 
-#ifdef CONFIG_CPM2
-       /* Setup CPM2 PIC */
-       np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
-       if (np == NULL) {
-               printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
-               return;
-       }
-       irq = irq_of_parse_and_map(np, 0);
-
-       cpm2_pic_init(np);
-       of_node_put(np);
-       irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+       mpc85xx_cpm2_pic_init();
 }
 
 #ifdef CONFIG_CPM2
@@ -215,22 +190,7 @@ static void ksi8560_show_cpuinfo(struct seq_file *m)
        seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .type = "soc", },
-       { .type = "simple-bus", },
-       { .name = "cpm", },
-       { .name = "localbus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(ksi8560, declare_of_platform_devices);
+machine_device_initcall(ksi8560, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index f79f2f1021416c5a4e1f6a97ebe4cab9ff02d57b..9ee6455c2f1e64bf9c5090c12e72a23e8d676299 100644 (file)
@@ -32,6 +32,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 void __init mpc8536_ds_pic_init(void)
 {
        struct mpic *mpic;
@@ -104,19 +106,7 @@ static void __init mpc8536_ds_setup_arch(void)
        printk("MPC8536 DS board from Freescale Semiconductor\n");
 }
 
-static struct of_device_id __initdata mpc8536_ds_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init mpc8536_ds_publish_devices(void)
-{
-       return of_platform_bus_probe(NULL, mpc8536_ds_ids, NULL);
-}
-machine_device_initcall(mpc8536_ds, mpc8536_ds_publish_devices);
+machine_device_initcall(mpc8536_ds, mpc85xx_common_publish_devices);
 
 machine_arch_initcall(mpc8536_ds, swiotlb_setup_bus_notifier);
 
diff --git a/arch/powerpc/platforms/85xx/mpc85xx.h b/arch/powerpc/platforms/85xx/mpc85xx.h
new file mode 100644 (file)
index 0000000..2aa7c5d
--- /dev/null
@@ -0,0 +1,11 @@
+#ifndef MPC85xx_H
+#define MPC85xx_H
+extern int mpc85xx_common_publish_devices(void);
+
+#ifdef CONFIG_CPM2
+extern void mpc85xx_cpm2_pic_init(void);
+#else
+static inline void __init mpc85xx_cpm2_pic_init(void) {}
+#endif /* CONFIG_CPM2 */
+
+#endif
index 3b2c9bb661998918f3ac1033fc4a19311ca910b2..986554b74d3ff7341eddf69144e8688bbb3d6d33 100644 (file)
@@ -35,6 +35,8 @@
 #include <sysdev/cpm2_pic.h>
 #endif
 
+#include "mpc85xx.h"
+
 #ifdef CONFIG_PCI
 static int mpc85xx_exclude_device(struct pci_controller *hose,
                                   u_char bus, u_char devfn)
@@ -46,29 +48,11 @@ static int mpc85xx_exclude_device(struct pci_controller *hose,
 }
 #endif /* CONFIG_PCI */
 
-#ifdef CONFIG_CPM2
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
-       struct irq_chip *chip = irq_desc_get_chip(desc);
-       int cascade_irq;
-
-       while ((cascade_irq = cpm2_get_irq()) >= 0)
-               generic_handle_irq(cascade_irq);
-
-       chip->irq_eoi(&desc->irq_data);
-}
-
-#endif /* CONFIG_CPM2 */
-
 static void __init mpc85xx_ads_pic_init(void)
 {
        struct mpic *mpic;
        struct resource r;
        struct device_node *np = NULL;
-#ifdef CONFIG_CPM2
-       int irq;
-#endif
 
        np = of_find_node_by_type(np, "open-pic");
        if (!np) {
@@ -90,19 +74,7 @@ static void __init mpc85xx_ads_pic_init(void)
 
        mpic_init(mpic);
 
-#ifdef CONFIG_CPM2
-       /* Setup CPM2 PIC */
-       np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
-       if (np == NULL) {
-               printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
-               return;
-       }
-       irq = irq_of_parse_and_map(np, 0);
-
-       cpm2_pic_init(np);
-       of_node_put(np);
-       irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+       mpc85xx_cpm2_pic_init();
 }
 
 /*
@@ -221,23 +193,7 @@ static void mpc85xx_ads_show_cpuinfo(struct seq_file *m)
        seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .name = "soc", },
-       { .type = "soc", },
-       { .name = "cpm", },
-       { .name = "localbus", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(mpc85xx_ads, declare_of_platform_devices);
+machine_device_initcall(mpc85xx_ads, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index 7e2a4d231e74dce6b99d77fe5d5a8d19334fffaa..d993b66f1abf638de6eb3e8bfa802a766bbf8061 100644 (file)
@@ -46,6 +46,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 /* CADMUS info */
 /* xxx - galak, move into device tree */
 #define CADMUS_BASE (0xf8004000)
@@ -330,19 +332,7 @@ static int __init mpc85xx_cds_probe(void)
         return of_flat_dt_is_compatible(root, "MPC85xxCDS");
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       return of_platform_bus_probe(NULL, of_bus_ids, NULL);
-}
-machine_device_initcall(mpc85xx_cds, declare_of_platform_devices);
+machine_device_initcall(mpc85xx_cds, mpc85xx_common_publish_devices);
 
 define_machine(mpc85xx_cds) {
        .name           = "MPC85xx CDS",
index 1b9a8cf1873ab5df082029b3fa8358bb46efd8da..2113120c5a7db96ac3a631a291437359e0a10032 100644 (file)
@@ -36,6 +36,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 #undef DEBUG
 
 #ifdef DEBUG
@@ -219,21 +221,9 @@ static int __init mpc8544_ds_probe(void)
        return 0;
 }
 
-static struct of_device_id __initdata mpc85xxds_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init mpc85xxds_publish_devices(void)
-{
-       return of_platform_bus_probe(NULL, mpc85xxds_ids, NULL);
-}
-machine_device_initcall(mpc8544_ds, mpc85xxds_publish_devices);
-machine_device_initcall(mpc8572_ds, mpc85xxds_publish_devices);
-machine_device_initcall(p2020_ds, mpc85xxds_publish_devices);
+machine_device_initcall(mpc8544_ds, mpc85xx_common_publish_devices);
+machine_device_initcall(mpc8572_ds, mpc85xx_common_publish_devices);
+machine_device_initcall(p2020_ds, mpc85xx_common_publish_devices);
 
 machine_arch_initcall(mpc8544_ds, swiotlb_setup_bus_notifier);
 machine_arch_initcall(mpc8572_ds, swiotlb_setup_bus_notifier);
index a23a3ff634c55fdd3d949a8a2a77a8405b5b2de8..495cfd988c1afdf06f9d623684d16dd97cf77e9b 100644 (file)
@@ -52,6 +52,8 @@
 #include <asm/mpic.h>
 #include <asm/swiotlb.h>
 
+#include "mpc85xx.h"
+
 #undef DEBUG
 #ifdef DEBUG
 #define DBG(fmt...) udbg_printf(fmt)
@@ -158,25 +160,6 @@ extern void __init mpc85xx_smp_init(void);
 #endif
 
 #ifdef CONFIG_QUICC_ENGINE
-static struct of_device_id mpc85xx_qe_ids[] __initdata = {
-       { .type = "qe", },
-       { .compatible = "fsl,qe", },
-       { },
-};
-
-static void __init mpc85xx_publish_qe_devices(void)
-{
-       struct device_node *np;
-
-       np = of_find_compatible_node(NULL, NULL, "fsl,qe");
-       if (!of_device_is_available(np)) {
-               of_node_put(np);
-               return;
-       }
-
-       of_platform_bus_probe(NULL, mpc85xx_qe_ids, NULL);
-}
-
 static void __init mpc85xx_mds_reset_ucc_phys(void)
 {
        struct device_node *np;
@@ -347,7 +330,6 @@ static void __init mpc85xx_mds_qeic_init(void)
        of_node_put(np);
 }
 #else
-static void __init mpc85xx_publish_qe_devices(void) { }
 static void __init mpc85xx_mds_qe_init(void) { }
 static void __init mpc85xx_mds_qeic_init(void) { }
 #endif /* CONFIG_QUICC_ENGINE */
@@ -429,24 +411,11 @@ machine_arch_initcall(mpc8568_mds, board_fixups);
 machine_arch_initcall(mpc8569_mds, board_fixups);
 
 static struct of_device_id mpc85xx_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       { .compatible = "fsl,rapidio-delta", },
        { .compatible = "fsl,mpc8548-guts", },
        { .compatible = "gpio-leds", },
        {},
 };
 
-static struct of_device_id p1021_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
 static int __init mpc85xx_publish_devices(void)
 {
        if (machine_is(mpc8568_mds))
@@ -454,23 +423,15 @@ static int __init mpc85xx_publish_devices(void)
        if (machine_is(mpc8569_mds))
                simple_gpiochip_init("fsl,mpc8569mds-bcsr-gpio");
 
+       mpc85xx_common_publish_devices();
        of_platform_bus_probe(NULL, mpc85xx_ids, NULL);
-       mpc85xx_publish_qe_devices();
-
-       return 0;
-}
-
-static int __init p1021_publish_devices(void)
-{
-       of_platform_bus_probe(NULL, p1021_ids, NULL);
-       mpc85xx_publish_qe_devices();
 
        return 0;
 }
 
 machine_device_initcall(mpc8568_mds, mpc85xx_publish_devices);
 machine_device_initcall(mpc8569_mds, mpc85xx_publish_devices);
-machine_device_initcall(p1021_mds, p1021_publish_devices);
+machine_device_initcall(p1021_mds, mpc85xx_common_publish_devices);
 
 machine_arch_initcall(mpc8568_mds, swiotlb_setup_bus_notifier);
 machine_arch_initcall(mpc8569_mds, swiotlb_setup_bus_notifier);
index f5ff9110c97eab335f3be66570e1adc4b2b84260..9feccbbd4d96ce9998b4071543f7f528ecc1cfdb 100644 (file)
@@ -30,6 +30,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 #undef DEBUG
 
 #ifdef DEBUG
@@ -109,20 +111,8 @@ static void __init mpc85xx_rdb_setup_arch(void)
        printk(KERN_INFO "MPC85xx RDB board from Freescale Semiconductor\n");
 }
 
-static struct of_device_id __initdata mpc85xxrdb_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init mpc85xxrdb_publish_devices(void)
-{
-       return of_platform_bus_probe(NULL, mpc85xxrdb_ids, NULL);
-}
-machine_device_initcall(p2020_rdb, mpc85xxrdb_publish_devices);
-machine_device_initcall(p1020_rdb, mpc85xxrdb_publish_devices);
+machine_device_initcall(p2020_rdb, mpc85xx_common_publish_devices);
+machine_device_initcall(p1020_rdb, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index d7387fa7f5345bd33c6c7db37039f6d81af29729..2f479f88c1a00679db744b39b864f1cca3c39088 100644 (file)
@@ -28,6 +28,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 void __init p1010_rdb_pic_init(void)
 {
        struct mpic *mpic;
@@ -81,18 +83,7 @@ static void __init p1010_rdb_setup_arch(void)
        printk(KERN_INFO "P1010 RDB board from Freescale Semiconductor\n");
 }
 
-static struct of_device_id __initdata p1010rdb_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       {},
-};
-
-static int __init p1010rdb_publish_devices(void)
-{
-       return of_platform_bus_probe(NULL, p1010rdb_ids, NULL);
-}
-machine_device_initcall(p1010_rdb, p1010rdb_publish_devices);
+machine_device_initcall(p1010_rdb, mpc85xx_common_publish_devices);
 machine_arch_initcall(p1010_rdb, swiotlb_setup_bus_notifier);
 
 /*
index fda15716fada03eb80cbc0a4761b55a6dffbe47c..2bf4342ab656b457834657e65dbefda40d1cf2cd 100644 (file)
@@ -27,6 +27,8 @@
 #include <sysdev/fsl_pci.h>
 #include <asm/fsl_guts.h>
 
+#include "mpc85xx.h"
+
 #if defined(CONFIG_FB_FSL_DIU) || defined(CONFIG_FB_FSL_DIU_MODULE)
 
 /*
@@ -325,10 +327,6 @@ static void __init p1022_ds_setup_arch(void)
 }
 
 static struct of_device_id __initdata p1022_ds_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
        /* So that the DMA channel nodes can be probed individually: */
        { .compatible = "fsl,eloplus-dma", },
        {},
@@ -336,6 +334,7 @@ static struct of_device_id __initdata p1022_ds_ids[] = {
 
 static int __init p1022_ds_publish_devices(void)
 {
+       mpc85xx_common_publish_devices();
        return of_platform_bus_probe(NULL, p1022_ds_ids, NULL);
 }
 machine_device_initcall(p1022_ds, p1022_ds_publish_devices);
index 835e0b335bfaf76dd99b8005ce31e2e1e8882a1e..e76c4dceee23ad8bd89db9c88a1d167236b3aeb8 100644 (file)
@@ -34,6 +34,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 /* ************************************************************************
  *
  * Setup the architecture
@@ -92,22 +94,7 @@ static void __init mpc85xx_rds_setup_arch(void)
 #endif
 }
 
-static struct of_device_id p1023_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       {},
-};
-
-
-static int __init p1023_publish_devices(void)
-{
-       of_platform_bus_probe(NULL, p1023_ids, NULL);
-
-       return 0;
-}
-
-machine_device_initcall(p1023_rds, p1023_publish_devices);
+machine_device_initcall(p1023_rds, mpc85xx_common_publish_devices);
 
 static void __init mpc85xx_rds_pic_init(void)
 {
index 01dcf44871e9a4c79273d14efd1fcde0b60b6ba9..081cf4ac188161b4f4bb535d0d57209bc14fd03c 100644 (file)
@@ -70,7 +70,7 @@ define_machine(p3060_qds) {
        .power_save             = e500_idle,
 };
 
-machine_device_initcall(p3060_qds, declare_of_platform_devices);
+machine_device_initcall(p3060_qds, corenet_ds_publish_devices);
 
 #ifdef CONFIG_SWIOTLB
 machine_arch_initcall(p3060_qds, swiotlb_setup_bus_notifier);
index 14632a971225c7b497f51e13c61c9bf2ce49db20..845ed3b89462a7ec991717a0a8f886e3196aa489 100644 (file)
@@ -48,6 +48,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 static int sbc_rev;
 
 static void __init sbc8548_pic_init(void)
@@ -149,21 +151,7 @@ static void sbc8548_show_cpuinfo(struct seq_file *m)
        seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .name = "soc", },
-       { .type = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(sbc8548, declare_of_platform_devices);
+machine_device_initcall(sbc8548, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index cebd786dc3340be03adc63a11814574653b2688e..e9a7ed228d73a3543356f3ecc138647083d39681 100644 (file)
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 #ifdef CONFIG_CPM2
 #include <asm/cpm2.h>
 #include <sysdev/cpm2_pic.h>
 #endif
 
-#ifdef CONFIG_CPM2
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
-       struct irq_chip *chip = irq_desc_get_chip(desc);
-       int cascade_irq;
-
-       while ((cascade_irq = cpm2_get_irq()) >= 0)
-               generic_handle_irq(cascade_irq);
-
-       chip->irq_eoi(&desc->irq_data);
-}
-
-#endif /* CONFIG_CPM2 */
-
 static void __init sbc8560_pic_init(void)
 {
        struct mpic *mpic;
        struct resource r;
        struct device_node *np = NULL;
-#ifdef CONFIG_CPM2
-       int irq;
-#endif
 
        np = of_find_node_by_type(np, "open-pic");
        if (!np) {
@@ -81,19 +65,7 @@ static void __init sbc8560_pic_init(void)
 
        mpic_init(mpic);
 
-#ifdef CONFIG_CPM2
-       /* Setup CPM2 PIC */
-       np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
-       if (np == NULL) {
-               printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
-               return;
-       }
-       irq = irq_of_parse_and_map(np, 0);
-
-       cpm2_pic_init(np);
-       of_node_put(np);
-       irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+       mpc85xx_cpm2_pic_init();
 }
 
 /*
@@ -208,23 +180,7 @@ static void sbc8560_show_cpuinfo(struct seq_file *m)
        seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .name = "soc", },
-       { .type = "soc", },
-       { .name = "cpm", },
-       { .name = "localbus", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(sbc8560, declare_of_platform_devices);
+machine_device_initcall(sbc8560, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index 747d8fb3ab82af2c5e26ddfd3e91966bb799bbc3..fec496ad79c0f54016078c0f7cbccbfa15d83ca1 100644 (file)
@@ -41,6 +41,7 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
 #include "socrates_fpga_pic.h"
 
 static void __init socrates_pic_init(void)
@@ -96,17 +97,7 @@ static void __init socrates_setup_arch(void)
 #endif
 }
 
-static struct of_device_id __initdata socrates_of_bus_ids[] = {
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init socrates_publish_devices(void)
-{
-       return of_platform_bus_probe(NULL, socrates_of_bus_ids, NULL);
-}
-machine_device_initcall(socrates, socrates_publish_devices);
+machine_device_initcall(socrates, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index 5387e9f06bdba34b772f66cd174bcb17a6b963f7..b44c936c26537ff6888a84167deeaa7ec8c38905 100644 (file)
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 #ifdef CONFIG_CPM2
 #include <asm/cpm2.h>
-#include <sysdev/cpm2_pic.h>
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
-       struct irq_chip *chip = irq_desc_get_chip(desc);
-       int cascade_irq;
-
-       while ((cascade_irq = cpm2_get_irq()) >= 0)
-               generic_handle_irq(cascade_irq);
-
-       chip->irq_eoi(&desc->irq_data);
-}
 #endif /* CONFIG_CPM2 */
 
 static void __init stx_gp3_pic_init(void)
@@ -61,9 +51,6 @@ static void __init stx_gp3_pic_init(void)
        struct mpic *mpic;
        struct resource r;
        struct device_node *np;
-#ifdef CONFIG_CPM2
-       int irq;
-#endif
 
        np = of_find_node_by_type(NULL, "open-pic");
        if (!np) {
@@ -85,25 +72,7 @@ static void __init stx_gp3_pic_init(void)
 
        mpic_init(mpic);
 
-#ifdef CONFIG_CPM2
-       /* Setup CPM2 PIC */
-       np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
-       if (np == NULL) {
-               printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
-               return;
-       }
-       irq = irq_of_parse_and_map(np, 0);
-
-       if (irq == NO_IRQ) {
-               of_node_put(np);
-               printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n");
-               return;
-       }
-
-       cpm2_pic_init(np);
-       of_node_put(np);
-       irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+       mpc85xx_cpm2_pic_init();
 }
 
 /*
@@ -144,19 +113,7 @@ static void stx_gp3_show_cpuinfo(struct seq_file *m)
        seq_printf(m, "PLL setting\t: 0x%x\n", ((phid1 >> 24) & 0x3f));
 }
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(stx_gp3, declare_of_platform_devices);
+machine_device_initcall(stx_gp3, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index 325de772725a6076a747dfc08ce132f8a34e67c4..2418bf8d074bafdeab96ed012befab375d923a4d 100644 (file)
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 #ifdef CONFIG_CPM2
 #include <asm/cpm2.h>
-#include <sysdev/cpm2_pic.h>
-
-static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
-{
-       struct irq_chip *chip = irq_desc_get_chip(desc);
-       int cascade_irq;
-
-       while ((cascade_irq = cpm2_get_irq()) >= 0)
-               generic_handle_irq(cascade_irq);
-
-       chip->irq_eoi(&desc->irq_data);
-}
 #endif /* CONFIG_CPM2 */
 
 static void __init tqm85xx_pic_init(void)
@@ -59,9 +49,6 @@ static void __init tqm85xx_pic_init(void)
        struct mpic *mpic;
        struct resource r;
        struct device_node *np;
-#ifdef CONFIG_CPM2
-       int irq;
-#endif
 
        np = of_find_node_by_type(NULL, "open-pic");
        if (!np) {
@@ -83,25 +70,7 @@ static void __init tqm85xx_pic_init(void)
 
        mpic_init(mpic);
 
-#ifdef CONFIG_CPM2
-       /* Setup CPM2 PIC */
-       np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
-       if (np == NULL) {
-               printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
-               return;
-       }
-       irq = irq_of_parse_and_map(np, 0);
-
-       if (irq == NO_IRQ) {
-               of_node_put(np);
-               printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n");
-               return;
-       }
-
-       cpm2_pic_init(np);
-       of_node_put(np);
-       irq_set_chained_handler(irq, cpm2_cascade);
-#endif
+       mpc85xx_cpm2_pic_init();
 }
 
 /*
@@ -173,19 +142,7 @@ static void __init tqm85xx_ti1520_fixup(struct pci_dev *pdev)
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1520,
                tqm85xx_ti1520_fixup);
 
-static struct of_device_id __initdata of_bus_ids[] = {
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init declare_of_platform_devices(void)
-{
-       of_platform_bus_probe(NULL, of_bus_ids, NULL);
-
-       return 0;
-}
-machine_device_initcall(tqm85xx, declare_of_platform_devices);
+machine_device_initcall(tqm85xx, mpc85xx_common_publish_devices);
 
 static const char *board[] __initdata = {
        "tqc,tqm8540",
index a9dc5e795123b00d7ff27fcc086559e7702066d7..4632c1b27da78869c0136cc757089e7071f7d324 100644 (file)
@@ -33,6 +33,8 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_pci.h>
 
+#include "mpc85xx.h"
+
 /* A few bit definitions needed for fixups on some boards */
 #define MPC85xx_L2CTL_L2E              0x80000000 /* L2 enable */
 #define MPC85xx_L2CTL_L2I              0x40000000 /* L2 flash invalidate */
@@ -177,21 +179,9 @@ static void __init xes_mpc85xx_setup_arch(void)
 #endif
 }
 
-static struct of_device_id __initdata xes_mpc85xx_ids[] = {
-       { .type = "soc", },
-       { .compatible = "soc", },
-       { .compatible = "simple-bus", },
-       { .compatible = "gianfar", },
-       {},
-};
-
-static int __init xes_mpc85xx_publish_devices(void)
-{
-       return of_platform_bus_probe(NULL, xes_mpc85xx_ids, NULL);
-}
-machine_device_initcall(xes_mpc8572, xes_mpc85xx_publish_devices);
-machine_device_initcall(xes_mpc8548, xes_mpc85xx_publish_devices);
-machine_device_initcall(xes_mpc8540, xes_mpc85xx_publish_devices);
+machine_device_initcall(xes_mpc8572, mpc85xx_common_publish_devices);
+machine_device_initcall(xes_mpc8548, mpc85xx_common_publish_devices);
+machine_device_initcall(xes_mpc8540, mpc85xx_common_publish_devices);
 
 /*
  * Called very early, device-tree isn't unflattened
index b11c3535f3509cac28e2baf7fd5e999001ab0709..569262ca499a3c4d6fe06794bd47c1865ddd4b2b 100644 (file)
@@ -161,7 +161,7 @@ mpc86xx_time_init(void)
 
 static __initdata struct of_device_id of_bus_ids[] = {
        { .compatible = "simple-bus", },
-       { .compatible = "fsl,rapidio-delta", },
+       { .compatible = "fsl,srio", },
        { .compatible = "gianfar", },
        {},
 };
index 84e13253aec5ca7f9ed6c021e1d1585ead0213de..8dea5935b21ff34056cea315e69a9c2b50f17095 100644 (file)
@@ -20,7 +20,7 @@ obj-$(CONFIG_FSL_LBC)         += fsl_lbc.o
 obj-$(CONFIG_FSL_GTM)          += fsl_gtm.o
 obj-$(CONFIG_FSL_85XX_CACHE_SRAM)      += fsl_85xx_l2ctlr.o fsl_85xx_cache_sram.o
 obj-$(CONFIG_SIMPLE_GPIO)      += simple_gpio.o
-obj-$(CONFIG_FSL_RIO)          += fsl_rio.o
+obj-$(CONFIG_FSL_RIO)          += fsl_rio.o fsl_rmu.o
 obj-$(CONFIG_TSI108_BRIDGE)    += tsi108_pci.o tsi108_dev.o
 obj-$(CONFIG_QUICC_ENGINE)     += qe_lib/
 obj-$(CONFIG_PPC_BESTCOMM)     += bestcomm/
index af1a5df46b3e54ff75bb392b97ff26e8f1e72b4f..b6731e4a6646e16e81c62de273d8a6cd579b1ca7 100644 (file)
@@ -280,6 +280,7 @@ void __init ehv_pic_init(void)
 
        if (!ehv_pic->irqhost) {
                of_node_put(np);
+               kfree(ehv_pic);
                return;
        }
 
index c4d96fa32ba557a68512b133400fef585e799eb4..483126d7b3c0f51dce66f6d73881f1888c7d8e40 100644 (file)
@@ -328,9 +328,42 @@ static int __devinit fsl_lbc_ctrl_probe(struct platform_device *dev)
 err:
        iounmap(fsl_lbc_ctrl_dev->regs);
        kfree(fsl_lbc_ctrl_dev);
+       fsl_lbc_ctrl_dev = NULL;
        return ret;
 }
 
+#ifdef CONFIG_SUSPEND
+
+/* save lbc registers */
+static int fsl_lbc_suspend(struct platform_device *pdev, pm_message_t state)
+{
+       struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
+       struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+
+       ctrl->saved_regs = kmalloc(sizeof(struct fsl_lbc_regs), GFP_KERNEL);
+       if (!ctrl->saved_regs)
+               return -ENOMEM;
+
+       _memcpy_fromio(ctrl->saved_regs, lbc, sizeof(struct fsl_lbc_regs));
+       return 0;
+}
+
+/* restore lbc registers */
+static int fsl_lbc_resume(struct platform_device *pdev)
+{
+       struct fsl_lbc_ctrl *ctrl = dev_get_drvdata(&pdev->dev);
+       struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
+
+       if (ctrl->saved_regs) {
+               _memcpy_toio(lbc, ctrl->saved_regs,
+                               sizeof(struct fsl_lbc_regs));
+               kfree(ctrl->saved_regs);
+               ctrl->saved_regs = NULL;
+       }
+       return 0;
+}
+#endif /* CONFIG_SUSPEND */
+
 static const struct of_device_id fsl_lbc_match[] = {
        { .compatible = "fsl,elbc", },
        { .compatible = "fsl,pq3-localbus", },
@@ -345,6 +378,10 @@ static struct platform_driver fsl_lbc_ctrl_driver = {
                .of_match_table = fsl_lbc_match,
        },
        .probe = fsl_lbc_ctrl_probe,
+#ifdef CONFIG_SUSPEND
+       .suspend     = fsl_lbc_suspend,
+       .resume      = fsl_lbc_resume,
+#endif
 };
 
 static int __init fsl_lbc_init(void)
index e5c344d336ea68639b733d8a4913c0c5f4a5ccd5..89548e07ddeb49dc520b3f08cce79c378eb75cce 100644 (file)
@@ -148,14 +148,47 @@ static void fsl_compose_msi_msg(struct pci_dev *pdev, int hwirq,
 
 static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
 {
+       struct pci_controller *hose = pci_bus_to_host(pdev->bus);
+       struct device_node *np;
+       phandle phandle = 0;
        int rc, hwirq = -ENOMEM;
        unsigned int virq;
        struct msi_desc *entry;
        struct msi_msg msg;
        struct fsl_msi *msi_data;
 
+       /*
+        * If the PCI node has an fsl,msi property, then we need to use it
+        * to find the specific MSI.
+        */
+       np = of_parse_phandle(hose->dn, "fsl,msi", 0);
+       if (np) {
+               if (of_device_is_compatible(np, "fsl,mpic-msi"))
+                       phandle = np->phandle;
+               else {
+                       dev_err(&pdev->dev, "node %s has an invalid fsl,msi"
+                               " phandle\n", hose->dn->full_name);
+                       return -EINVAL;
+               }
+       }
+
        list_for_each_entry(entry, &pdev->msi_list, list) {
+               /*
+                * Loop over all the MSI devices until we find one that has an
+                * available interrupt.
+                */
                list_for_each_entry(msi_data, &msi_head, list) {
+                       /*
+                        * If the PCI node has an fsl,msi property, then we
+                        * restrict our search to the corresponding MSI node.
+                        * The simplest way is to skip over MSI nodes with the
+                        * wrong phandle. Under the Freescale hypervisor, this
+                        * has the additional benefit of skipping over MSI
+                        * nodes that are not mapped in the PAMU.
+                        */
+                       if (phandle && (phandle != msi_data->phandle))
+                               continue;
+
                        hwirq = msi_bitmap_alloc_hwirqs(&msi_data->bitmap, 1);
                        if (hwirq >= 0)
                                break;
@@ -370,6 +403,12 @@ static int __devinit fsl_of_msi_probe(struct platform_device *dev)
 
        msi->msiir_offset = features->msiir_offset + (res.start & 0xfffff);
 
+       /*
+        * Remember the phandle, so that we can match with any PCI nodes
+        * that have an "fsl,msi" property.
+        */
+       msi->phandle = dev->dev.of_node->phandle;
+
        rc = fsl_msi_init_allocator(msi);
        if (rc) {
                dev_err(&dev->dev, "Error allocating MSI bitmap\n");
index 1313abbc52008eca1d13d7e20dadda0ea5192e74..b5d25ba513112da52d8257f5b8c2d0ca36e626c4 100644 (file)
@@ -13,6 +13,7 @@
 #ifndef _POWERPC_SYSDEV_FSL_MSI_H
 #define _POWERPC_SYSDEV_FSL_MSI_H
 
+#include <linux/of.h>
 #include <asm/msi_bitmap.h>
 
 #define NR_MSI_REG             8
@@ -36,6 +37,8 @@ struct fsl_msi {
        struct msi_bitmap bitmap;
 
        struct list_head list;          /* support multiple MSI banks */
+
+       phandle phandle;
 };
 
 #endif /* _POWERPC_SYSDEV_FSL_MSI_H */
index 22ffccd8bef53b69a41fcfcfdf8fb3ed46b3d760..a4c4f4a932d855e8cd00c46ee1c579b229b867c1 100644 (file)
@@ -10,7 +10,7 @@
  * - Added Port-Write message handling
  * - Added Machine Check exception handling
  *
- * Copyright (C) 2007, 2008, 2010 Freescale Semiconductor, Inc.
+ * Copyright (C) 2007, 2008, 2010, 2011 Freescale Semiconductor, Inc.
  * Zhang Wei <wei.zhang@freescale.com>
  *
  * Copyright 2005 MontaVista Software, Inc.
 #include <linux/dma-mapping.h>
 #include <linux/interrupt.h>
 #include <linux/device.h>
-#include <linux/rio.h>
-#include <linux/rio_drv.h>
 #include <linux/of_platform.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-#include <linux/kfifo.h>
 
-#include <asm/io.h>
+#include <linux/io.h>
+#include <linux/uaccess.h>
 #include <asm/machdep.h>
-#include <asm/uaccess.h>
 
-#undef DEBUG_PW        /* Port-Write debugging */
+#include "fsl_rio.h"
 
-/* RapidIO definition irq, which read from OF-tree */
-#define IRQ_RIO_BELL(m)                (((struct rio_priv *)(m->priv))->bellirq)
-#define IRQ_RIO_TX(m)          (((struct rio_priv *)(m->priv))->txirq)
-#define IRQ_RIO_RX(m)          (((struct rio_priv *)(m->priv))->rxirq)
-#define IRQ_RIO_PW(m)          (((struct rio_priv *)(m->priv))->pwirq)
-
-#define IPWSR_CLEAR            0x98
-#define OMSR_CLEAR             0x1cb3
-#define IMSR_CLEAR             0x491
-#define IDSR_CLEAR             0x91
-#define ODSR_CLEAR             0x1c00
-#define LTLEECSR_ENABLE_ALL    0xFFC000FC
-#define ESCSR_CLEAR            0x07120204
-#define IECSR_CLEAR            0x80000000
+#undef DEBUG_PW        /* Port-Write debugging */
 
 #define RIO_PORT1_EDCSR                0x0640
 #define RIO_PORT2_EDCSR                0x0680
 #define RIO_PORT1_IECSR                0x10130
 #define RIO_PORT2_IECSR                0x101B0
-#define RIO_IM0SR              0x13064
-#define RIO_IM1SR              0x13164
-#define RIO_OM0SR              0x13004
-#define RIO_OM1SR              0x13104
-
-#define RIO_ATMU_REGS_OFFSET   0x10c00
-#define RIO_P_MSG_REGS_OFFSET  0x11000
-#define RIO_S_MSG_REGS_OFFSET  0x13000
+
 #define RIO_GCCSR              0x13c
 #define RIO_ESCSR              0x158
+#define ESCSR_CLEAR            0x07120204
 #define RIO_PORT2_ESCSR                0x178
 #define RIO_CCSR               0x15c
-#define RIO_LTLEDCSR           0x0608
 #define RIO_LTLEDCSR_IER       0x80000000
 #define RIO_LTLEDCSR_PRT       0x01000000
-#define RIO_LTLEECSR           0x060c
-#define RIO_EPWISR             0x10010
+#define IECSR_CLEAR            0x80000000
 #define RIO_ISR_AACR           0x10120
 #define RIO_ISR_AACR_AA                0x1     /* Accept All ID */
-#define RIO_MAINT_WIN_SIZE     0x400000
-#define RIO_DBELL_WIN_SIZE     0x1000
-
-#define RIO_MSG_OMR_MUI                0x00000002
-#define RIO_MSG_OSR_TE         0x00000080
-#define RIO_MSG_OSR_QOI                0x00000020
-#define RIO_MSG_OSR_QFI                0x00000010
-#define RIO_MSG_OSR_MUB                0x00000004
-#define RIO_MSG_OSR_EOMI       0x00000002
-#define RIO_MSG_OSR_QEI                0x00000001
-
-#define RIO_MSG_IMR_MI         0x00000002
-#define RIO_MSG_ISR_TE         0x00000080
-#define RIO_MSG_ISR_QFI                0x00000010
-#define RIO_MSG_ISR_DIQI       0x00000001
-
-#define RIO_IPWMR_SEN          0x00100000
-#define RIO_IPWMR_QFIE         0x00000100
-#define RIO_IPWMR_EIE          0x00000020
-#define RIO_IPWMR_CQ           0x00000002
-#define RIO_IPWMR_PWE          0x00000001
-
-#define RIO_IPWSR_QF           0x00100000
-#define RIO_IPWSR_TE           0x00000080
-#define RIO_IPWSR_QFI          0x00000010
-#define RIO_IPWSR_PWD          0x00000008
-#define RIO_IPWSR_PWB          0x00000004
-
-/* EPWISR Error match value */
-#define RIO_EPWISR_PINT1       0x80000000
-#define RIO_EPWISR_PINT2       0x40000000
-#define RIO_EPWISR_MU          0x00000002
-#define RIO_EPWISR_PW          0x00000001
-
-#define RIO_MSG_DESC_SIZE      32
-#define RIO_MSG_BUFFER_SIZE    4096
-#define RIO_MIN_TX_RING_SIZE   2
-#define RIO_MAX_TX_RING_SIZE   2048
-#define RIO_MIN_RX_RING_SIZE   2
-#define RIO_MAX_RX_RING_SIZE   2048
-
-#define DOORBELL_DMR_DI                0x00000002
-#define DOORBELL_DSR_TE                0x00000080
-#define DOORBELL_DSR_QFI       0x00000010
-#define DOORBELL_DSR_DIQI      0x00000001
-#define DOORBELL_TID_OFFSET    0x02
-#define DOORBELL_SID_OFFSET    0x04
-#define DOORBELL_INFO_OFFSET   0x06
-
-#define DOORBELL_MESSAGE_SIZE  0x08
-#define DBELL_SID(x)           (*(u16 *)(x + DOORBELL_SID_OFFSET))
-#define DBELL_TID(x)           (*(u16 *)(x + DOORBELL_TID_OFFSET))
-#define DBELL_INF(x)           (*(u16 *)(x + DOORBELL_INFO_OFFSET))
-
-struct rio_atmu_regs {
-       u32 rowtar;
-       u32 rowtear;
-       u32 rowbar;
-       u32 pad2;
-       u32 rowar;
-       u32 pad3[3];
-};
-
-struct rio_msg_regs {
-       u32 omr;        /* 0xD_3000 - Outbound message 0 mode register */
-       u32 osr;        /* 0xD_3004 - Outbound message 0 status register */
-       u32 pad1;
-       u32 odqdpar;    /* 0xD_300C - Outbound message 0 descriptor queue
-                          dequeue pointer address register */
-       u32 pad2;
-       u32 osar;       /* 0xD_3014 - Outbound message 0 source address
-                          register */
-       u32 odpr;       /* 0xD_3018 - Outbound message 0 destination port
-                          register */
-       u32 odatr;      /* 0xD_301C - Outbound message 0 destination attributes
-                          Register*/
-       u32 odcr;       /* 0xD_3020 - Outbound message 0 double-word count
-                          register */
-       u32 pad3;
-       u32 odqepar;    /* 0xD_3028 - Outbound message 0 descriptor queue
-                          enqueue pointer address register */
-       u32 pad4[13];
-       u32 imr;        /* 0xD_3060 - Inbound message 0 mode register */
-       u32 isr;        /* 0xD_3064 - Inbound message 0 status register */
-       u32 pad5;
-       u32 ifqdpar;    /* 0xD_306C - Inbound message 0 frame queue dequeue
-                          pointer address register*/
-       u32 pad6;
-       u32 ifqepar;    /* 0xD_3074 - Inbound message 0 frame queue enqueue
-                          pointer address register */
-       u32 pad7[226];
-       u32 odmr;       /* 0xD_3400 - Outbound doorbell mode register */
-       u32 odsr;       /* 0xD_3404 - Outbound doorbell status register */
-       u32 res0[4];
-       u32 oddpr;      /* 0xD_3418 - Outbound doorbell destination port
-                          register */
-       u32 oddatr;     /* 0xD_341c - Outbound doorbell destination attributes
-                          register */
-       u32 res1[3];
-       u32 odretcr;    /* 0xD_342C - Outbound doorbell retry error threshold
-                          configuration register */
-       u32 res2[12];
-       u32 dmr;        /* 0xD_3460 - Inbound doorbell mode register */
-       u32 dsr;        /* 0xD_3464 - Inbound doorbell status register */
-       u32 pad8;
-       u32 dqdpar;     /* 0xD_346C - Inbound doorbell queue dequeue Pointer
-                          address register */
-       u32 pad9;
-       u32 dqepar;     /* 0xD_3474 - Inbound doorbell Queue enqueue pointer
-                          address register */
-       u32 pad10[26];
-       u32 pwmr;       /* 0xD_34E0 - Inbound port-write mode register */
-       u32 pwsr;       /* 0xD_34E4 - Inbound port-write status register */
-       u32 epwqbar;    /* 0xD_34E8 - Extended Port-Write Queue Base Address
-                          register */
-       u32 pwqbar;     /* 0xD_34EC - Inbound port-write queue base address
-                          register */
-};
-
-struct rio_tx_desc {
-       u32 res1;
-       u32 saddr;
-       u32 dport;
-       u32 dattr;
-       u32 res2;
-       u32 res3;
-       u32 dwcnt;
-       u32 res4;
-};
-
-struct rio_dbell_ring {
-       void *virt;
-       dma_addr_t phys;
-};
-
-struct rio_msg_tx_ring {
-       void *virt;
-       dma_addr_t phys;
-       void *virt_buffer[RIO_MAX_TX_RING_SIZE];
-       dma_addr_t phys_buffer[RIO_MAX_TX_RING_SIZE];
-       int tx_slot;
-       int size;
-       void *dev_id;
-};
-
-struct rio_msg_rx_ring {
-       void *virt;
-       dma_addr_t phys;
-       void *virt_buffer[RIO_MAX_RX_RING_SIZE];
-       int rx_slot;
-       int size;
-       void *dev_id;
-};
-
-struct rio_port_write_msg {
-       void *virt;
-       dma_addr_t phys;
-       u32 msg_count;
-       u32 err_count;
-       u32 discard_count;
-};
-
-struct rio_priv {
-       struct device *dev;
-       void __iomem *regs_win;
-       struct rio_atmu_regs __iomem *atmu_regs;
-       struct rio_atmu_regs __iomem *maint_atmu_regs;
-       struct rio_atmu_regs __iomem *dbell_atmu_regs;
-       void __iomem *dbell_win;
-       void __iomem *maint_win;
-       struct rio_msg_regs __iomem *msg_regs;
-       struct rio_dbell_ring dbell_ring;
-       struct rio_msg_tx_ring msg_tx_ring;
-       struct rio_msg_rx_ring msg_rx_ring;
-       struct rio_port_write_msg port_write_msg;
-       int bellirq;
-       int txirq;
-       int rxirq;
-       int pwirq;
-       struct work_struct pw_work;
-       struct kfifo pw_fifo;
-       spinlock_t pw_fifo_lock;
-};
 
 #define __fsl_read_rio_config(x, addr, err, op)                \
        __asm__ __volatile__(                           \
@@ -279,7 +72,12 @@ struct rio_priv {
                : "=r" (err), "=r" (x)                  \
                : "b" (addr), "i" (-EFAULT), "0" (err))
 
-static void __iomem *rio_regs_win;
+void __iomem *rio_regs_win;
+void __iomem *rmu_regs_win;
+resource_size_t rio_law_start;
+
+struct fsl_rio_dbell *dbell;
+struct fsl_rio_pw *pw;
 
 #ifdef CONFIG_E500
 int fsl_rio_mcheck_exception(struct pt_regs *regs)
@@ -310,42 +108,6 @@ int fsl_rio_mcheck_exception(struct pt_regs *regs)
 EXPORT_SYMBOL_GPL(fsl_rio_mcheck_exception);
 #endif
 
-/**
- * fsl_rio_doorbell_send - Send a MPC85xx doorbell message
- * @mport: RapidIO master port info
- * @index: ID of RapidIO interface
- * @destid: Destination ID of target device
- * @data: 16-bit info field of RapidIO doorbell message
- *
- * Sends a MPC85xx doorbell message. Returns %0 on success or
- * %-EINVAL on failure.
- */
-static int fsl_rio_doorbell_send(struct rio_mport *mport,
-                               int index, u16 destid, u16 data)
-{
-       struct rio_priv *priv = mport->priv;
-       pr_debug("fsl_doorbell_send: index %d destid %4.4x data %4.4x\n",
-                index, destid, data);
-       switch (mport->phy_type) {
-       case RIO_PHY_PARALLEL:
-               out_be32(&priv->dbell_atmu_regs->rowtar, destid << 22);
-               out_be16(priv->dbell_win, data);
-               break;
-       case RIO_PHY_SERIAL:
-               /* In the serial version silicons, such as MPC8548, MPC8641,
-                * below operations is must be.
-                */
-               out_be32(&priv->msg_regs->odmr, 0x00000000);
-               out_be32(&priv->msg_regs->odretcr, 0x00000004);
-               out_be32(&priv->msg_regs->oddpr, destid << 16);
-               out_be32(&priv->msg_regs->oddatr, data);
-               out_be32(&priv->msg_regs->odmr, 0x00000001);
-               break;
-       }
-
-       return 0;
-}
-
 /**
  * fsl_local_config_read - Generate a MPC85xx local config space read
  * @mport: RapidIO master port info
@@ -384,8 +146,8 @@ static int fsl_local_config_write(struct rio_mport *mport,
 {
        struct rio_priv *priv = mport->priv;
        pr_debug
-           ("fsl_local_config_write: index %d offset %8.8x data %8.8x\n",
-            index, offset, data);
+               ("fsl_local_config_write: index %d offset %8.8x data %8.8x\n",
+               index, offset, data);
        out_be32(priv->regs_win + offset, data);
 
        return 0;
@@ -413,8 +175,9 @@ fsl_rio_config_read(struct rio_mport *mport, int index, u16 destid,
        u32 rval, err = 0;
 
        pr_debug
-           ("fsl_rio_config_read: index %d destid %d hopcount %d offset %8.8x len %d\n",
-            index, destid, hopcount, offset, len);
+               ("fsl_rio_config_read:"
+               " index %d destid %d hopcount %d offset %8.8x len %d\n",
+               index, destid, hopcount, offset, len);
 
        /* 16MB maintenance window possible */
        /* allow only aligned access to maintenance registers */
@@ -423,7 +186,7 @@ fsl_rio_config_read(struct rio_mport *mport, int index, u16 destid,
 
        out_be32(&priv->maint_atmu_regs->rowtar,
                 (destid << 22) | (hopcount << 12) | (offset >> 12));
-       out_be32(&priv->maint_atmu_regs->rowtear,  (destid >> 10));
+       out_be32(&priv->maint_atmu_regs->rowtear, (destid >> 10));
 
        data = (u8 *) priv->maint_win + (offset & (RIO_MAINT_WIN_SIZE - 1));
        switch (len) {
@@ -470,8 +233,9 @@ fsl_rio_config_write(struct rio_mport *mport, int index, u16 destid,
        struct rio_priv *priv = mport->priv;
        u8 *data;
        pr_debug
-           ("fsl_rio_config_write: index %d destid %d hopcount %d offset %8.8x len %d val %8.8x\n",
-            index, destid, hopcount, offset, len, val);
+               ("fsl_rio_config_write:"
+               " index %d destid %d hopcount %d offset %8.8x len %d val %8.8x\n",
+               index, destid, hopcount, offset, len, val);
 
        /* 16MB maintenance windows possible */
        /* allow only aligned access to maintenance registers */
@@ -480,7 +244,7 @@ fsl_rio_config_write(struct rio_mport *mport, int index, u16 destid,
 
        out_be32(&priv->maint_atmu_regs->rowtar,
                 (destid << 22) | (hopcount << 12) | (offset >> 12));
-       out_be32(&priv->maint_atmu_regs->rowtear,  (destid >> 10));
+       out_be32(&priv->maint_atmu_regs->rowtear, (destid >> 10));
 
        data = (u8 *) priv->maint_win + (offset & (RIO_MAINT_WIN_SIZE - 1));
        switch (len) {
@@ -500,590 +264,7 @@ fsl_rio_config_write(struct rio_mport *mport, int index, u16 destid,
        return 0;
 }
 
-/**
- * fsl_add_outb_message - Add message to the MPC85xx outbound message queue
- * @mport: Master port with outbound message queue
- * @rdev: Target of outbound message
- * @mbox: Outbound mailbox
- * @buffer: Message to add to outbound queue
- * @len: Length of message
- *
- * Adds the @buffer message to the MPC85xx outbound message queue. Returns
- * %0 on success or %-EINVAL on failure.
- */
-static int
-fsl_add_outb_message(struct rio_mport *mport, struct rio_dev *rdev, int mbox,
-                       void *buffer, size_t len)
-{
-       struct rio_priv *priv = mport->priv;
-       u32 omr;
-       struct rio_tx_desc *desc = (struct rio_tx_desc *)priv->msg_tx_ring.virt
-                                       + priv->msg_tx_ring.tx_slot;
-       int ret = 0;
-
-       pr_debug("RIO: fsl_add_outb_message(): destid %4.4x mbox %d buffer " \
-                "%8.8x len %8.8x\n", rdev->destid, mbox, (int)buffer, len);
-
-       if ((len < 8) || (len > RIO_MAX_MSG_SIZE)) {
-               ret = -EINVAL;
-               goto out;
-       }
-
-       /* Copy and clear rest of buffer */
-       memcpy(priv->msg_tx_ring.virt_buffer[priv->msg_tx_ring.tx_slot], buffer,
-                       len);
-       if (len < (RIO_MAX_MSG_SIZE - 4))
-               memset(priv->msg_tx_ring.virt_buffer[priv->msg_tx_ring.tx_slot]
-                               + len, 0, RIO_MAX_MSG_SIZE - len);
-
-       switch (mport->phy_type) {
-       case RIO_PHY_PARALLEL:
-               /* Set mbox field for message */
-               desc->dport = mbox & 0x3;
-
-               /* Enable EOMI interrupt, set priority, and set destid */
-               desc->dattr = 0x28000000 | (rdev->destid << 2);
-               break;
-       case RIO_PHY_SERIAL:
-               /* Set mbox field for message, and set destid */
-               desc->dport = (rdev->destid << 16) | (mbox & 0x3);
-
-               /* Enable EOMI interrupt and priority */
-               desc->dattr = 0x28000000;
-               break;
-       }
-
-       /* Set transfer size aligned to next power of 2 (in double words) */
-       desc->dwcnt = is_power_of_2(len) ? len : 1 << get_bitmask_order(len);
-
-       /* Set snooping and source buffer address */
-       desc->saddr = 0x00000004
-               | priv->msg_tx_ring.phys_buffer[priv->msg_tx_ring.tx_slot];
-
-       /* Increment enqueue pointer */
-       omr = in_be32(&priv->msg_regs->omr);
-       out_be32(&priv->msg_regs->omr, omr | RIO_MSG_OMR_MUI);
-
-       /* Go to next descriptor */
-       if (++priv->msg_tx_ring.tx_slot == priv->msg_tx_ring.size)
-               priv->msg_tx_ring.tx_slot = 0;
-
-      out:
-       return ret;
-}
-
-/**
- * fsl_rio_tx_handler - MPC85xx outbound message interrupt handler
- * @irq: Linux interrupt number
- * @dev_instance: Pointer to interrupt-specific data
- *
- * Handles outbound message interrupts. Executes a register outbound
- * mailbox event handler and acks the interrupt occurrence.
- */
-static irqreturn_t
-fsl_rio_tx_handler(int irq, void *dev_instance)
-{
-       int osr;
-       struct rio_mport *port = (struct rio_mport *)dev_instance;
-       struct rio_priv *priv = port->priv;
-
-       osr = in_be32(&priv->msg_regs->osr);
-
-       if (osr & RIO_MSG_OSR_TE) {
-               pr_info("RIO: outbound message transmission error\n");
-               out_be32(&priv->msg_regs->osr, RIO_MSG_OSR_TE);
-               goto out;
-       }
-
-       if (osr & RIO_MSG_OSR_QOI) {
-               pr_info("RIO: outbound message queue overflow\n");
-               out_be32(&priv->msg_regs->osr, RIO_MSG_OSR_QOI);
-               goto out;
-       }
-
-       if (osr & RIO_MSG_OSR_EOMI) {
-               u32 dqp = in_be32(&priv->msg_regs->odqdpar);
-               int slot = (dqp - priv->msg_tx_ring.phys) >> 5;
-               port->outb_msg[0].mcback(port, priv->msg_tx_ring.dev_id, -1,
-                               slot);
-
-               /* Ack the end-of-message interrupt */
-               out_be32(&priv->msg_regs->osr, RIO_MSG_OSR_EOMI);
-       }
-
-      out:
-       return IRQ_HANDLED;
-}
-
-/**
- * fsl_open_outb_mbox - Initialize MPC85xx outbound mailbox
- * @mport: Master port implementing the outbound message unit
- * @dev_id: Device specific pointer to pass on event
- * @mbox: Mailbox to open
- * @entries: Number of entries in the outbound mailbox ring
- *
- * Initializes buffer ring, request the outbound message interrupt,
- * and enables the outbound message unit. Returns %0 on success and
- * %-EINVAL or %-ENOMEM on failure.
- */
-static int
-fsl_open_outb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entries)
-{
-       int i, j, rc = 0;
-       struct rio_priv *priv = mport->priv;
-
-       if ((entries < RIO_MIN_TX_RING_SIZE) ||
-           (entries > RIO_MAX_TX_RING_SIZE) || (!is_power_of_2(entries))) {
-               rc = -EINVAL;
-               goto out;
-       }
-
-       /* Initialize shadow copy ring */
-       priv->msg_tx_ring.dev_id = dev_id;
-       priv->msg_tx_ring.size = entries;
-
-       for (i = 0; i < priv->msg_tx_ring.size; i++) {
-               priv->msg_tx_ring.virt_buffer[i] =
-                       dma_alloc_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
-                               &priv->msg_tx_ring.phys_buffer[i], GFP_KERNEL);
-               if (!priv->msg_tx_ring.virt_buffer[i]) {
-                       rc = -ENOMEM;
-                       for (j = 0; j < priv->msg_tx_ring.size; j++)
-                               if (priv->msg_tx_ring.virt_buffer[j])
-                                       dma_free_coherent(priv->dev,
-                                                       RIO_MSG_BUFFER_SIZE,
-                                                       priv->msg_tx_ring.
-                                                       virt_buffer[j],
-                                                       priv->msg_tx_ring.
-                                                       phys_buffer[j]);
-                       goto out;
-               }
-       }
-
-       /* Initialize outbound message descriptor ring */
-       priv->msg_tx_ring.virt = dma_alloc_coherent(priv->dev,
-                               priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
-                               &priv->msg_tx_ring.phys, GFP_KERNEL);
-       if (!priv->msg_tx_ring.virt) {
-               rc = -ENOMEM;
-               goto out_dma;
-       }
-       memset(priv->msg_tx_ring.virt, 0,
-                       priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE);
-       priv->msg_tx_ring.tx_slot = 0;
-
-       /* Point dequeue/enqueue pointers at first entry in ring */
-       out_be32(&priv->msg_regs->odqdpar, priv->msg_tx_ring.phys);
-       out_be32(&priv->msg_regs->odqepar, priv->msg_tx_ring.phys);
-
-       /* Configure for snooping */
-       out_be32(&priv->msg_regs->osar, 0x00000004);
-
-       /* Clear interrupt status */
-       out_be32(&priv->msg_regs->osr, 0x000000b3);
-
-       /* Hook up outbound message handler */
-       rc = request_irq(IRQ_RIO_TX(mport), fsl_rio_tx_handler, 0,
-                        "msg_tx", (void *)mport);
-       if (rc < 0)
-               goto out_irq;
-
-       /*
-        * Configure outbound message unit
-        *      Snooping
-        *      Interrupts (all enabled, except QEIE)
-        *      Chaining mode
-        *      Disable
-        */
-       out_be32(&priv->msg_regs->omr, 0x00100220);
-
-       /* Set number of entries */
-       out_be32(&priv->msg_regs->omr,
-                in_be32(&priv->msg_regs->omr) |
-                ((get_bitmask_order(entries) - 2) << 12));
-
-       /* Now enable the unit */
-       out_be32(&priv->msg_regs->omr, in_be32(&priv->msg_regs->omr) | 0x1);
-
-      out:
-       return rc;
-
-      out_irq:
-       dma_free_coherent(priv->dev,
-                         priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
-                         priv->msg_tx_ring.virt, priv->msg_tx_ring.phys);
-
-      out_dma:
-       for (i = 0; i < priv->msg_tx_ring.size; i++)
-               dma_free_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
-                                 priv->msg_tx_ring.virt_buffer[i],
-                                 priv->msg_tx_ring.phys_buffer[i]);
-
-       return rc;
-}
-
-/**
- * fsl_close_outb_mbox - Shut down MPC85xx outbound mailbox
- * @mport: Master port implementing the outbound message unit
- * @mbox: Mailbox to close
- *
- * Disables the outbound message unit, free all buffers, and
- * frees the outbound message interrupt.
- */
-static void fsl_close_outb_mbox(struct rio_mport *mport, int mbox)
-{
-       struct rio_priv *priv = mport->priv;
-       /* Disable inbound message unit */
-       out_be32(&priv->msg_regs->omr, 0);
-
-       /* Free ring */
-       dma_free_coherent(priv->dev,
-                         priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
-                         priv->msg_tx_ring.virt, priv->msg_tx_ring.phys);
-
-       /* Free interrupt */
-       free_irq(IRQ_RIO_TX(mport), (void *)mport);
-}
-
-/**
- * fsl_rio_rx_handler - MPC85xx inbound message interrupt handler
- * @irq: Linux interrupt number
- * @dev_instance: Pointer to interrupt-specific data
- *
- * Handles inbound message interrupts. Executes a registered inbound
- * mailbox event handler and acks the interrupt occurrence.
- */
-static irqreturn_t
-fsl_rio_rx_handler(int irq, void *dev_instance)
-{
-       int isr;
-       struct rio_mport *port = (struct rio_mport *)dev_instance;
-       struct rio_priv *priv = port->priv;
-
-       isr = in_be32(&priv->msg_regs->isr);
-
-       if (isr & RIO_MSG_ISR_TE) {
-               pr_info("RIO: inbound message reception error\n");
-               out_be32((void *)&priv->msg_regs->isr, RIO_MSG_ISR_TE);
-               goto out;
-       }
-
-       /* XXX Need to check/dispatch until queue empty */
-       if (isr & RIO_MSG_ISR_DIQI) {
-               /*
-                * We implement *only* mailbox 0, but can receive messages
-                * for any mailbox/letter to that mailbox destination. So,
-                * make the callback with an unknown/invalid mailbox number
-                * argument.
-                */
-               port->inb_msg[0].mcback(port, priv->msg_rx_ring.dev_id, -1, -1);
-
-               /* Ack the queueing interrupt */
-               out_be32(&priv->msg_regs->isr, RIO_MSG_ISR_DIQI);
-       }
-
-      out:
-       return IRQ_HANDLED;
-}
-
-/**
- * fsl_open_inb_mbox - Initialize MPC85xx inbound mailbox
- * @mport: Master port implementing the inbound message unit
- * @dev_id: Device specific pointer to pass on event
- * @mbox: Mailbox to open
- * @entries: Number of entries in the inbound mailbox ring
- *
- * Initializes buffer ring, request the inbound message interrupt,
- * and enables the inbound message unit. Returns %0 on success
- * and %-EINVAL or %-ENOMEM on failure.
- */
-static int
-fsl_open_inb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entries)
-{
-       int i, rc = 0;
-       struct rio_priv *priv = mport->priv;
-
-       if ((entries < RIO_MIN_RX_RING_SIZE) ||
-           (entries > RIO_MAX_RX_RING_SIZE) || (!is_power_of_2(entries))) {
-               rc = -EINVAL;
-               goto out;
-       }
-
-       /* Initialize client buffer ring */
-       priv->msg_rx_ring.dev_id = dev_id;
-       priv->msg_rx_ring.size = entries;
-       priv->msg_rx_ring.rx_slot = 0;
-       for (i = 0; i < priv->msg_rx_ring.size; i++)
-               priv->msg_rx_ring.virt_buffer[i] = NULL;
-
-       /* Initialize inbound message ring */
-       priv->msg_rx_ring.virt = dma_alloc_coherent(priv->dev,
-                               priv->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
-                               &priv->msg_rx_ring.phys, GFP_KERNEL);
-       if (!priv->msg_rx_ring.virt) {
-               rc = -ENOMEM;
-               goto out;
-       }
-
-       /* Point dequeue/enqueue pointers at first entry in ring */
-       out_be32(&priv->msg_regs->ifqdpar, (u32) priv->msg_rx_ring.phys);
-       out_be32(&priv->msg_regs->ifqepar, (u32) priv->msg_rx_ring.phys);
-
-       /* Clear interrupt status */
-       out_be32(&priv->msg_regs->isr, 0x00000091);
-
-       /* Hook up inbound message handler */
-       rc = request_irq(IRQ_RIO_RX(mport), fsl_rio_rx_handler, 0,
-                        "msg_rx", (void *)mport);
-       if (rc < 0) {
-               dma_free_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
-                                 priv->msg_tx_ring.virt_buffer[i],
-                                 priv->msg_tx_ring.phys_buffer[i]);
-               goto out;
-       }
-
-       /*
-        * Configure inbound message unit:
-        *      Snooping
-        *      4KB max message size
-        *      Unmask all interrupt sources
-        *      Disable
-        */
-       out_be32(&priv->msg_regs->imr, 0x001b0060);
-
-       /* Set number of queue entries */
-       setbits32(&priv->msg_regs->imr, (get_bitmask_order(entries) - 2) << 12);
-
-       /* Now enable the unit */
-       setbits32(&priv->msg_regs->imr, 0x1);
-
-      out:
-       return rc;
-}
-
-/**
- * fsl_close_inb_mbox - Shut down MPC85xx inbound mailbox
- * @mport: Master port implementing the inbound message unit
- * @mbox: Mailbox to close
- *
- * Disables the inbound message unit, free all buffers, and
- * frees the inbound message interrupt.
- */
-static void fsl_close_inb_mbox(struct rio_mport *mport, int mbox)
-{
-       struct rio_priv *priv = mport->priv;
-       /* Disable inbound message unit */
-       out_be32(&priv->msg_regs->imr, 0);
-
-       /* Free ring */
-       dma_free_coherent(priv->dev, priv->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
-                         priv->msg_rx_ring.virt, priv->msg_rx_ring.phys);
-
-       /* Free interrupt */
-       free_irq(IRQ_RIO_RX(mport), (void *)mport);
-}
-
-/**
- * fsl_add_inb_buffer - Add buffer to the MPC85xx inbound message queue
- * @mport: Master port implementing the inbound message unit
- * @mbox: Inbound mailbox number
- * @buf: Buffer to add to inbound queue
- *
- * Adds the @buf buffer to the MPC85xx inbound message queue. Returns
- * %0 on success or %-EINVAL on failure.
- */
-static int fsl_add_inb_buffer(struct rio_mport *mport, int mbox, void *buf)
-{
-       int rc = 0;
-       struct rio_priv *priv = mport->priv;
-
-       pr_debug("RIO: fsl_add_inb_buffer(), msg_rx_ring.rx_slot %d\n",
-                priv->msg_rx_ring.rx_slot);
-
-       if (priv->msg_rx_ring.virt_buffer[priv->msg_rx_ring.rx_slot]) {
-               printk(KERN_ERR
-                      "RIO: error adding inbound buffer %d, buffer exists\n",
-                      priv->msg_rx_ring.rx_slot);
-               rc = -EINVAL;
-               goto out;
-       }
-
-       priv->msg_rx_ring.virt_buffer[priv->msg_rx_ring.rx_slot] = buf;
-       if (++priv->msg_rx_ring.rx_slot == priv->msg_rx_ring.size)
-               priv->msg_rx_ring.rx_slot = 0;
-
-      out:
-       return rc;
-}
-
-/**
- * fsl_get_inb_message - Fetch inbound message from the MPC85xx message unit
- * @mport: Master port implementing the inbound message unit
- * @mbox: Inbound mailbox number
- *
- * Gets the next available inbound message from the inbound message queue.
- * A pointer to the message is returned on success or NULL on failure.
- */
-static void *fsl_get_inb_message(struct rio_mport *mport, int mbox)
-{
-       struct rio_priv *priv = mport->priv;
-       u32 phys_buf, virt_buf;
-       void *buf = NULL;
-       int buf_idx;
-
-       phys_buf = in_be32(&priv->msg_regs->ifqdpar);
-
-       /* If no more messages, then bail out */
-       if (phys_buf == in_be32(&priv->msg_regs->ifqepar))
-               goto out2;
-
-       virt_buf = (u32) priv->msg_rx_ring.virt + (phys_buf
-                                               - priv->msg_rx_ring.phys);
-       buf_idx = (phys_buf - priv->msg_rx_ring.phys) / RIO_MAX_MSG_SIZE;
-       buf = priv->msg_rx_ring.virt_buffer[buf_idx];
-
-       if (!buf) {
-               printk(KERN_ERR
-                      "RIO: inbound message copy failed, no buffers\n");
-               goto out1;
-       }
-
-       /* Copy max message size, caller is expected to allocate that big */
-       memcpy(buf, (void *)virt_buf, RIO_MAX_MSG_SIZE);
-
-       /* Clear the available buffer */
-       priv->msg_rx_ring.virt_buffer[buf_idx] = NULL;
-
-      out1:
-       setbits32(&priv->msg_regs->imr, RIO_MSG_IMR_MI);
-
-      out2:
-       return buf;
-}
-
-/**
- * fsl_rio_dbell_handler - MPC85xx doorbell interrupt handler
- * @irq: Linux interrupt number
- * @dev_instance: Pointer to interrupt-specific data
- *
- * Handles doorbell interrupts. Parses a list of registered
- * doorbell event handlers and executes a matching event handler.
- */
-static irqreturn_t
-fsl_rio_dbell_handler(int irq, void *dev_instance)
-{
-       int dsr;
-       struct rio_mport *port = (struct rio_mport *)dev_instance;
-       struct rio_priv *priv = port->priv;
-
-       dsr = in_be32(&priv->msg_regs->dsr);
-
-       if (dsr & DOORBELL_DSR_TE) {
-               pr_info("RIO: doorbell reception error\n");
-               out_be32(&priv->msg_regs->dsr, DOORBELL_DSR_TE);
-               goto out;
-       }
-
-       if (dsr & DOORBELL_DSR_QFI) {
-               pr_info("RIO: doorbell queue full\n");
-               out_be32(&priv->msg_regs->dsr, DOORBELL_DSR_QFI);
-       }
-
-       /* XXX Need to check/dispatch until queue empty */
-       if (dsr & DOORBELL_DSR_DIQI) {
-               u32 dmsg =
-                   (u32) priv->dbell_ring.virt +
-                   (in_be32(&priv->msg_regs->dqdpar) & 0xfff);
-               struct rio_dbell *dbell;
-               int found = 0;
-
-               pr_debug
-                   ("RIO: processing doorbell, sid %2.2x tid %2.2x info %4.4x\n",
-                    DBELL_SID(dmsg), DBELL_TID(dmsg), DBELL_INF(dmsg));
-
-               list_for_each_entry(dbell, &port->dbells, node) {
-                       if ((dbell->res->start <= DBELL_INF(dmsg)) &&
-                           (dbell->res->end >= DBELL_INF(dmsg))) {
-                               found = 1;
-                               break;
-                       }
-               }
-               if (found) {
-                       dbell->dinb(port, dbell->dev_id, DBELL_SID(dmsg), DBELL_TID(dmsg),
-                                   DBELL_INF(dmsg));
-               } else {
-                       pr_debug
-                           ("RIO: spurious doorbell, sid %2.2x tid %2.2x info %4.4x\n",
-                            DBELL_SID(dmsg), DBELL_TID(dmsg), DBELL_INF(dmsg));
-               }
-               setbits32(&priv->msg_regs->dmr, DOORBELL_DMR_DI);
-               out_be32(&priv->msg_regs->dsr, DOORBELL_DSR_DIQI);
-       }
-
-      out:
-       return IRQ_HANDLED;
-}
-
-/**
- * fsl_rio_doorbell_init - MPC85xx doorbell interface init
- * @mport: Master port implementing the inbound doorbell unit
- *
- * Initializes doorbell unit hardware and inbound DMA buffer
- * ring. Called from fsl_rio_setup(). Returns %0 on success
- * or %-ENOMEM on failure.
- */
-static int fsl_rio_doorbell_init(struct rio_mport *mport)
-{
-       struct rio_priv *priv = mport->priv;
-       int rc = 0;
-
-       /* Map outbound doorbell window immediately after maintenance window */
-       priv->dbell_win = ioremap(mport->iores.start + RIO_MAINT_WIN_SIZE,
-                           RIO_DBELL_WIN_SIZE);
-       if (!priv->dbell_win) {
-               printk(KERN_ERR
-                      "RIO: unable to map outbound doorbell window\n");
-               rc = -ENOMEM;
-               goto out;
-       }
-
-       /* Initialize inbound doorbells */
-       priv->dbell_ring.virt = dma_alloc_coherent(priv->dev, 512 *
-                   DOORBELL_MESSAGE_SIZE, &priv->dbell_ring.phys, GFP_KERNEL);
-       if (!priv->dbell_ring.virt) {
-               printk(KERN_ERR "RIO: unable allocate inbound doorbell ring\n");
-               rc = -ENOMEM;
-               iounmap(priv->dbell_win);
-               goto out;
-       }
-
-       /* Point dequeue/enqueue pointers at first entry in ring */
-       out_be32(&priv->msg_regs->dqdpar, (u32) priv->dbell_ring.phys);
-       out_be32(&priv->msg_regs->dqepar, (u32) priv->dbell_ring.phys);
-
-       /* Clear interrupt status */
-       out_be32(&priv->msg_regs->dsr, 0x00000091);
-
-       /* Hook up doorbell handler */
-       rc = request_irq(IRQ_RIO_BELL(mport), fsl_rio_dbell_handler, 0,
-                        "dbell_rx", (void *)mport);
-       if (rc < 0) {
-               iounmap(priv->dbell_win);
-               dma_free_coherent(priv->dev, 512 * DOORBELL_MESSAGE_SIZE,
-                                 priv->dbell_ring.virt, priv->dbell_ring.phys);
-               printk(KERN_ERR
-                      "MPC85xx RIO: unable to request inbound doorbell irq");
-               goto out;
-       }
-
-       /* Configure doorbells for snooping, 512 entries, and enable */
-       out_be32(&priv->msg_regs->dmr, 0x00108161);
-
-      out:
-       return rc;
-}
-
-static void port_error_handler(struct rio_mport *port, int offset)
+void fsl_rio_port_error_handler(int offset)
 {
        /*XXX: Error recovery is not implemented, we just clear errors */
        out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR), 0);
@@ -1098,263 +279,6 @@ static void port_error_handler(struct rio_mport *port, int offset)
                out_be32((u32 *)(rio_regs_win + RIO_PORT2_ESCSR), ESCSR_CLEAR);
        }
 }
-
-static void msg_unit_error_handler(struct rio_mport *port)
-{
-       struct rio_priv *priv = port->priv;
-
-       /*XXX: Error recovery is not implemented, we just clear errors */
-       out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR), 0);
-
-       out_be32((u32 *)(rio_regs_win + RIO_IM0SR), IMSR_CLEAR);
-       out_be32((u32 *)(rio_regs_win + RIO_IM1SR), IMSR_CLEAR);
-       out_be32((u32 *)(rio_regs_win + RIO_OM0SR), OMSR_CLEAR);
-       out_be32((u32 *)(rio_regs_win + RIO_OM1SR), OMSR_CLEAR);
-
-       out_be32(&priv->msg_regs->odsr, ODSR_CLEAR);
-       out_be32(&priv->msg_regs->dsr, IDSR_CLEAR);
-
-       out_be32(&priv->msg_regs->pwsr, IPWSR_CLEAR);
-}
-
-/**
- * fsl_rio_port_write_handler - MPC85xx port write interrupt handler
- * @irq: Linux interrupt number
- * @dev_instance: Pointer to interrupt-specific data
- *
- * Handles port write interrupts. Parses a list of registered
- * port write event handlers and executes a matching event handler.
- */
-static irqreturn_t
-fsl_rio_port_write_handler(int irq, void *dev_instance)
-{
-       u32 ipwmr, ipwsr;
-       struct rio_mport *port = (struct rio_mport *)dev_instance;
-       struct rio_priv *priv = port->priv;
-       u32 epwisr, tmp;
-
-       epwisr = in_be32(priv->regs_win + RIO_EPWISR);
-       if (!(epwisr & RIO_EPWISR_PW))
-               goto pw_done;
-
-       ipwmr = in_be32(&priv->msg_regs->pwmr);
-       ipwsr = in_be32(&priv->msg_regs->pwsr);
-
-#ifdef DEBUG_PW
-       pr_debug("PW Int->IPWMR: 0x%08x IPWSR: 0x%08x (", ipwmr, ipwsr);
-       if (ipwsr & RIO_IPWSR_QF)
-               pr_debug(" QF");
-       if (ipwsr & RIO_IPWSR_TE)
-               pr_debug(" TE");
-       if (ipwsr & RIO_IPWSR_QFI)
-               pr_debug(" QFI");
-       if (ipwsr & RIO_IPWSR_PWD)
-               pr_debug(" PWD");
-       if (ipwsr & RIO_IPWSR_PWB)
-               pr_debug(" PWB");
-       pr_debug(" )\n");
-#endif
-       /* Schedule deferred processing if PW was received */
-       if (ipwsr & RIO_IPWSR_QFI) {
-               /* Save PW message (if there is room in FIFO),
-                * otherwise discard it.
-                */
-               if (kfifo_avail(&priv->pw_fifo) >= RIO_PW_MSG_SIZE) {
-                       priv->port_write_msg.msg_count++;
-                       kfifo_in(&priv->pw_fifo, priv->port_write_msg.virt,
-                                RIO_PW_MSG_SIZE);
-               } else {
-                       priv->port_write_msg.discard_count++;
-                       pr_debug("RIO: ISR Discarded Port-Write Msg(s) (%d)\n",
-                                priv->port_write_msg.discard_count);
-               }
-               /* Clear interrupt and issue Clear Queue command. This allows
-                * another port-write to be received.
-                */
-               out_be32(&priv->msg_regs->pwsr, RIO_IPWSR_QFI);
-               out_be32(&priv->msg_regs->pwmr, ipwmr | RIO_IPWMR_CQ);
-
-               schedule_work(&priv->pw_work);
-       }
-
-       if ((ipwmr & RIO_IPWMR_EIE) && (ipwsr & RIO_IPWSR_TE)) {
-               priv->port_write_msg.err_count++;
-               pr_debug("RIO: Port-Write Transaction Err (%d)\n",
-                        priv->port_write_msg.err_count);
-               /* Clear Transaction Error: port-write controller should be
-                * disabled when clearing this error
-                */
-               out_be32(&priv->msg_regs->pwmr, ipwmr & ~RIO_IPWMR_PWE);
-               out_be32(&priv->msg_regs->pwsr, RIO_IPWSR_TE);
-               out_be32(&priv->msg_regs->pwmr, ipwmr);
-       }
-
-       if (ipwsr & RIO_IPWSR_PWD) {
-               priv->port_write_msg.discard_count++;
-               pr_debug("RIO: Port Discarded Port-Write Msg(s) (%d)\n",
-                        priv->port_write_msg.discard_count);
-               out_be32(&priv->msg_regs->pwsr, RIO_IPWSR_PWD);
-       }
-
-pw_done:
-       if (epwisr & RIO_EPWISR_PINT1) {
-               tmp = in_be32(priv->regs_win + RIO_LTLEDCSR);
-               pr_debug("RIO_LTLEDCSR = 0x%x\n", tmp);
-               port_error_handler(port, 0);
-       }
-
-       if (epwisr & RIO_EPWISR_PINT2) {
-               tmp = in_be32(priv->regs_win + RIO_LTLEDCSR);
-               pr_debug("RIO_LTLEDCSR = 0x%x\n", tmp);
-               port_error_handler(port, 1);
-       }
-
-       if (epwisr & RIO_EPWISR_MU) {
-               tmp = in_be32(priv->regs_win + RIO_LTLEDCSR);
-               pr_debug("RIO_LTLEDCSR = 0x%x\n", tmp);
-               msg_unit_error_handler(port);
-       }
-
-       return IRQ_HANDLED;
-}
-
-static void fsl_pw_dpc(struct work_struct *work)
-{
-       struct rio_priv *priv = container_of(work, struct rio_priv, pw_work);
-       unsigned long flags;
-       u32 msg_buffer[RIO_PW_MSG_SIZE/sizeof(u32)];
-
-       /*
-        * Process port-write messages
-        */
-       spin_lock_irqsave(&priv->pw_fifo_lock, flags);
-       while (kfifo_out(&priv->pw_fifo, (unsigned char *)msg_buffer,
-                        RIO_PW_MSG_SIZE)) {
-               /* Process one message */
-               spin_unlock_irqrestore(&priv->pw_fifo_lock, flags);
-#ifdef DEBUG_PW
-               {
-               u32 i;
-               pr_debug("%s : Port-Write Message:", __func__);
-               for (i = 0; i < RIO_PW_MSG_SIZE/sizeof(u32); i++) {
-                       if ((i%4) == 0)
-                               pr_debug("\n0x%02x: 0x%08x", i*4,
-                                        msg_buffer[i]);
-                       else
-                               pr_debug(" 0x%08x", msg_buffer[i]);
-               }
-               pr_debug("\n");
-               }
-#endif
-               /* Pass the port-write message to RIO core for processing */
-               rio_inb_pwrite_handler((union rio_pw_msg *)msg_buffer);
-               spin_lock_irqsave(&priv->pw_fifo_lock, flags);
-       }
-       spin_unlock_irqrestore(&priv->pw_fifo_lock, flags);
-}
-
-/**
- * fsl_rio_pw_enable - enable/disable port-write interface init
- * @mport: Master port implementing the port write unit
- * @enable:    1=enable; 0=disable port-write message handling
- */
-static int fsl_rio_pw_enable(struct rio_mport *mport, int enable)
-{
-       struct rio_priv *priv = mport->priv;
-       u32 rval;
-
-       rval = in_be32(&priv->msg_regs->pwmr);
-
-       if (enable)
-               rval |= RIO_IPWMR_PWE;
-       else
-               rval &= ~RIO_IPWMR_PWE;
-
-       out_be32(&priv->msg_regs->pwmr, rval);
-
-       return 0;
-}
-
-/**
- * fsl_rio_port_write_init - MPC85xx port write interface init
- * @mport: Master port implementing the port write unit
- *
- * Initializes port write unit hardware and DMA buffer
- * ring. Called from fsl_rio_setup(). Returns %0 on success
- * or %-ENOMEM on failure.
- */
-static int fsl_rio_port_write_init(struct rio_mport *mport)
-{
-       struct rio_priv *priv = mport->priv;
-       int rc = 0;
-
-       /* Following configurations require a disabled port write controller */
-       out_be32(&priv->msg_regs->pwmr,
-                in_be32(&priv->msg_regs->pwmr) & ~RIO_IPWMR_PWE);
-
-       /* Initialize port write */
-       priv->port_write_msg.virt = dma_alloc_coherent(priv->dev,
-                                       RIO_PW_MSG_SIZE,
-                                       &priv->port_write_msg.phys, GFP_KERNEL);
-       if (!priv->port_write_msg.virt) {
-               pr_err("RIO: unable allocate port write queue\n");
-               return -ENOMEM;
-       }
-
-       priv->port_write_msg.err_count = 0;
-       priv->port_write_msg.discard_count = 0;
-
-       /* Point dequeue/enqueue pointers at first entry */
-       out_be32(&priv->msg_regs->epwqbar, 0);
-       out_be32(&priv->msg_regs->pwqbar, (u32) priv->port_write_msg.phys);
-
-       pr_debug("EIPWQBAR: 0x%08x IPWQBAR: 0x%08x\n",
-                in_be32(&priv->msg_regs->epwqbar),
-                in_be32(&priv->msg_regs->pwqbar));
-
-       /* Clear interrupt status IPWSR */
-       out_be32(&priv->msg_regs->pwsr,
-                (RIO_IPWSR_TE | RIO_IPWSR_QFI | RIO_IPWSR_PWD));
-
-       /* Configure port write contoller for snooping enable all reporting,
-          clear queue full */
-       out_be32(&priv->msg_regs->pwmr,
-                RIO_IPWMR_SEN | RIO_IPWMR_QFIE | RIO_IPWMR_EIE | RIO_IPWMR_CQ);
-
-
-       /* Hook up port-write handler */
-       rc = request_irq(IRQ_RIO_PW(mport), fsl_rio_port_write_handler,
-                       IRQF_SHARED, "port-write", (void *)mport);
-       if (rc < 0) {
-               pr_err("MPC85xx RIO: unable to request inbound doorbell irq");
-               goto err_out;
-       }
-       /* Enable Error Interrupt */
-       out_be32((u32 *)(rio_regs_win + RIO_LTLEECSR), LTLEECSR_ENABLE_ALL);
-
-       INIT_WORK(&priv->pw_work, fsl_pw_dpc);
-       spin_lock_init(&priv->pw_fifo_lock);
-       if (kfifo_alloc(&priv->pw_fifo, RIO_PW_MSG_SIZE * 32, GFP_KERNEL)) {
-               pr_err("FIFO allocation failed\n");
-               rc = -ENOMEM;
-               goto err_out_irq;
-       }
-
-       pr_debug("IPWMR: 0x%08x IPWSR: 0x%08x\n",
-                in_be32(&priv->msg_regs->pwmr),
-                in_be32(&priv->msg_regs->pwsr));
-
-       return rc;
-
-err_out_irq:
-       free_irq(IRQ_RIO_PW(mport), (void *)mport);
-err_out:
-       dma_free_coherent(priv->dev, RIO_PW_MSG_SIZE,
-                         priv->port_write_msg.virt,
-                         priv->port_write_msg.phys);
-       return rc;
-}
-
 static inline void fsl_rio_info(struct device *dev, u32 ccsr)
 {
        const char *str;
@@ -1411,16 +335,21 @@ int fsl_rio_setup(struct platform_device *dev)
        struct rio_mport *port;
        struct rio_priv *priv;
        int rc = 0;
-       const u32 *dt_range, *cell;
-       struct resource regs;
+       const u32 *dt_range, *cell, *port_index;
+       u32 active_ports = 0;
+       struct resource regs, rmu_regs;
+       struct device_node *np, *rmu_node;
        int rlen;
        u32 ccsr;
-       u64 law_start, law_size;
+       u64 range_start, range_size;
        int paw, aw, sw;
+       u32 i;
+       static int tmp;
+       struct device_node *rmu_np[MAX_MSG_UNIT_NUM] = {NULL};
 
        if (!dev->dev.of_node) {
                dev_err(&dev->dev, "Device OF-Node is NULL");
-               return -EFAULT;
+               return -ENODEV;
        }
 
        rc = of_address_to_resource(dev->dev.of_node, 0, &regs);
@@ -1429,37 +358,17 @@ int fsl_rio_setup(struct platform_device *dev)
                                dev->dev.of_node->full_name);
                return -EFAULT;
        }
-       dev_info(&dev->dev, "Of-device full name %s\n", dev->dev.of_node->full_name);
+       dev_info(&dev->dev, "Of-device full name %s\n",
+                       dev->dev.of_node->full_name);
        dev_info(&dev->dev, "Regs: %pR\n", &regs);
 
-       dt_range = of_get_property(dev->dev.of_node, "ranges", &rlen);
-       if (!dt_range) {
-               dev_err(&dev->dev, "Can't get %s property 'ranges'\n",
-                               dev->dev.of_node->full_name);
-               return -EFAULT;
+       rio_regs_win = ioremap(regs.start, resource_size(&regs));
+       if (!rio_regs_win) {
+               dev_err(&dev->dev, "Unable to map rio register window\n");
+               rc = -ENOMEM;
+               goto err_rio_regs;
        }
 
-       /* Get node address wide */
-       cell = of_get_property(dev->dev.of_node, "#address-cells", NULL);
-       if (cell)
-               aw = *cell;
-       else
-               aw = of_n_addr_cells(dev->dev.of_node);
-       /* Get node size wide */
-       cell = of_get_property(dev->dev.of_node, "#size-cells", NULL);
-       if (cell)
-               sw = *cell;
-       else
-               sw = of_n_size_cells(dev->dev.of_node);
-       /* Get parent address wide wide */
-       paw = of_n_addr_cells(dev->dev.of_node);
-
-       law_start = of_read_number(dt_range + aw, paw);
-       law_size = of_read_number(dt_range + aw + paw, sw);
-
-       dev_info(&dev->dev, "LAW start 0x%016llx, size 0x%016llx.\n",
-                       law_start, law_size);
-
        ops = kzalloc(sizeof(struct rio_ops), GFP_KERNEL);
        if (!ops) {
                rc = -ENOMEM;
@@ -1479,143 +388,257 @@ int fsl_rio_setup(struct platform_device *dev)
        ops->add_inb_buffer = fsl_add_inb_buffer;
        ops->get_inb_message = fsl_get_inb_message;
 
-       port = kzalloc(sizeof(struct rio_mport), GFP_KERNEL);
-       if (!port) {
+       rmu_node = of_parse_phandle(dev->dev.of_node, "fsl,srio-rmu-handle", 0);
+       if (!rmu_node)
+               goto err_rmu;
+       rc = of_address_to_resource(rmu_node, 0, &rmu_regs);
+       if (rc) {
+               dev_err(&dev->dev, "Can't get %s property 'reg'\n",
+                               rmu_node->full_name);
+               goto err_rmu;
+       }
+       rmu_regs_win = ioremap(rmu_regs.start, resource_size(&rmu_regs));
+       if (!rmu_regs_win) {
+               dev_err(&dev->dev, "Unable to map rmu register window\n");
                rc = -ENOMEM;
-               goto err_port;
+               goto err_rmu;
+       }
+       for_each_compatible_node(np, NULL, "fsl,srio-msg-unit") {
+               rmu_np[tmp] = np;
+               tmp++;
        }
-       port->index = 0;
 
-       priv = kzalloc(sizeof(struct rio_priv), GFP_KERNEL);
-       if (!priv) {
-               printk(KERN_ERR "Can't alloc memory for 'priv'\n");
+       /*set up doobell node*/
+       np = of_find_compatible_node(NULL, NULL, "fsl,srio-dbell-unit");
+       if (!np) {
+               rc = -ENODEV;
+               goto err_dbell;
+       }
+       dbell = kzalloc(sizeof(struct fsl_rio_dbell), GFP_KERNEL);
+       if (!(dbell)) {
+               dev_err(&dev->dev, "Can't alloc memory for 'fsl_rio_dbell'\n");
                rc = -ENOMEM;
-               goto err_priv;
+               goto err_dbell;
        }
+       dbell->dev = &dev->dev;
+       dbell->bellirq = irq_of_parse_and_map(np, 1);
+       dev_info(&dev->dev, "bellirq: %d\n", dbell->bellirq);
 
-       INIT_LIST_HEAD(&port->dbells);
-       port->iores.start = law_start;
-       port->iores.end = law_start + law_size - 1;
-       port->iores.flags = IORESOURCE_MEM;
-       port->iores.name = "rio_io_win";
-
-       if (request_resource(&iomem_resource, &port->iores) < 0) {
-               dev_err(&dev->dev, "RIO: Error requesting master port region"
-                       " 0x%016llx-0x%016llx\n",
-                       (u64)port->iores.start, (u64)port->iores.end);
-                       rc = -ENOMEM;
-                       goto err_res;
+       aw = of_n_addr_cells(np);
+       dt_range = of_get_property(np, "reg", &rlen);
+       if (!dt_range) {
+               pr_err("%s: unable to find 'reg' property\n",
+                       np->full_name);
+               rc = -ENOMEM;
+               goto err_pw;
        }
+       range_start = of_read_number(dt_range, aw);
+       dbell->dbell_regs = (struct rio_dbell_regs *)(rmu_regs_win +
+                               (u32)range_start);
 
-       priv->pwirq   = irq_of_parse_and_map(dev->dev.of_node, 0);
-       priv->bellirq = irq_of_parse_and_map(dev->dev.of_node, 2);
-       priv->txirq = irq_of_parse_and_map(dev->dev.of_node, 3);
-       priv->rxirq = irq_of_parse_and_map(dev->dev.of_node, 4);
-       dev_info(&dev->dev, "pwirq: %d, bellirq: %d, txirq: %d, rxirq %d\n",
-                priv->pwirq, priv->bellirq, priv->txirq, priv->rxirq);
-
-       rio_init_dbell_res(&port->riores[RIO_DOORBELL_RESOURCE], 0, 0xffff);
-       rio_init_mbox_res(&port->riores[RIO_INB_MBOX_RESOURCE], 0, 0);
-       rio_init_mbox_res(&port->riores[RIO_OUTB_MBOX_RESOURCE], 0, 0);
-       strcpy(port->name, "RIO0 mport");
-
-       priv->dev = &dev->dev;
-
-       port->ops = ops;
-       port->priv = priv;
-       port->phys_efptr = 0x100;
-
-       priv->regs_win = ioremap(regs.start, resource_size(&regs));
-       rio_regs_win = priv->regs_win;
-
-       /* Probe the master port phy type */
-       ccsr = in_be32(priv->regs_win + RIO_CCSR);
-       port->phy_type = (ccsr & 1) ? RIO_PHY_SERIAL : RIO_PHY_PARALLEL;
-       dev_info(&dev->dev, "RapidIO PHY type: %s\n",
-                       (port->phy_type == RIO_PHY_PARALLEL) ? "parallel" :
-                       ((port->phy_type == RIO_PHY_SERIAL) ? "serial" :
-                        "unknown"));
-       /* Checking the port training status */
-       if (in_be32((priv->regs_win + RIO_ESCSR)) & 1) {
-               dev_err(&dev->dev, "Port is not ready. "
-                                  "Try to restart connection...\n");
-               switch (port->phy_type) {
-               case RIO_PHY_SERIAL:
+       /*set up port write node*/
+       np = of_find_compatible_node(NULL, NULL, "fsl,srio-port-write-unit");
+       if (!np) {
+               rc = -ENODEV;
+               goto err_pw;
+       }
+       pw = kzalloc(sizeof(struct fsl_rio_pw), GFP_KERNEL);
+       if (!(pw)) {
+               dev_err(&dev->dev, "Can't alloc memory for 'fsl_rio_pw'\n");
+               rc = -ENOMEM;
+               goto err_pw;
+       }
+       pw->dev = &dev->dev;
+       pw->pwirq = irq_of_parse_and_map(np, 0);
+       dev_info(&dev->dev, "pwirq: %d\n", pw->pwirq);
+       aw = of_n_addr_cells(np);
+       dt_range = of_get_property(np, "reg", &rlen);
+       if (!dt_range) {
+               pr_err("%s: unable to find 'reg' property\n",
+                       np->full_name);
+               rc = -ENOMEM;
+               goto err;
+       }
+       range_start = of_read_number(dt_range, aw);
+       pw->pw_regs = (struct rio_pw_regs *)(rmu_regs_win + (u32)range_start);
+
+       /*set up ports node*/
+       for_each_child_of_node(dev->dev.of_node, np) {
+               port_index = of_get_property(np, "cell-index", NULL);
+               if (!port_index) {
+                       dev_err(&dev->dev, "Can't get %s property 'cell-index'\n",
+                                       np->full_name);
+                       continue;
+               }
+
+               dt_range = of_get_property(np, "ranges", &rlen);
+               if (!dt_range) {
+                       dev_err(&dev->dev, "Can't get %s property 'ranges'\n",
+                                       np->full_name);
+                       continue;
+               }
+
+               /* Get node address wide */
+               cell = of_get_property(np, "#address-cells", NULL);
+               if (cell)
+                       aw = *cell;
+               else
+                       aw = of_n_addr_cells(np);
+               /* Get node size wide */
+               cell = of_get_property(np, "#size-cells", NULL);
+               if (cell)
+                       sw = *cell;
+               else
+                       sw = of_n_size_cells(np);
+               /* Get parent address wide wide */
+               paw = of_n_addr_cells(np);
+               range_start = of_read_number(dt_range + aw, paw);
+               range_size = of_read_number(dt_range + aw + paw, sw);
+
+               dev_info(&dev->dev, "%s: LAW start 0x%016llx, size 0x%016llx.\n",
+                               np->full_name, range_start, range_size);
+
+               port = kzalloc(sizeof(struct rio_mport), GFP_KERNEL);
+               if (!port)
+                       continue;
+
+               i = *port_index - 1;
+               port->index = (unsigned char)i;
+
+               priv = kzalloc(sizeof(struct rio_priv), GFP_KERNEL);
+               if (!priv) {
+                       dev_err(&dev->dev, "Can't alloc memory for 'priv'\n");
+                       kfree(port);
+                       continue;
+               }
+
+               INIT_LIST_HEAD(&port->dbells);
+               port->iores.start = range_start;
+               port->iores.end = port->iores.start + range_size - 1;
+               port->iores.flags = IORESOURCE_MEM;
+               port->iores.name = "rio_io_win";
+
+               if (request_resource(&iomem_resource, &port->iores) < 0) {
+                       dev_err(&dev->dev, "RIO: Error requesting master port region"
+                               " 0x%016llx-0x%016llx\n",
+                               (u64)port->iores.start, (u64)port->iores.end);
+                               kfree(priv);
+                               kfree(port);
+                               continue;
+               }
+               sprintf(port->name, "RIO mport %d", i);
+
+               priv->dev = &dev->dev;
+               port->ops = ops;
+               port->priv = priv;
+               port->phys_efptr = 0x100;
+               priv->regs_win = rio_regs_win;
+
+               /* Probe the master port phy type */
+               ccsr = in_be32(priv->regs_win + RIO_CCSR + i*0x20);
+               port->phy_type = (ccsr & 1) ? RIO_PHY_SERIAL : RIO_PHY_PARALLEL;
+               if (port->phy_type == RIO_PHY_PARALLEL) {
+                       dev_err(&dev->dev, "RIO: Parallel PHY type, unsupported port type!\n");
+                       release_resource(&port->iores);
+                       kfree(priv);
+                       kfree(port);
+                       continue;
+               }
+               dev_info(&dev->dev, "RapidIO PHY type: Serial\n");
+               /* Checking the port training status */
+               if (in_be32((priv->regs_win + RIO_ESCSR + i*0x20)) & 1) {
+                       dev_err(&dev->dev, "Port %d is not ready. "
+                       "Try to restart connection...\n", i);
                        /* Disable ports */
-                       out_be32(priv->regs_win + RIO_CCSR, 0);
+                       out_be32(priv->regs_win
+                               + RIO_CCSR + i*0x20, 0);
                        /* Set 1x lane */
-                       setbits32(priv->regs_win + RIO_CCSR, 0x02000000);
+                       setbits32(priv->regs_win
+                               + RIO_CCSR + i*0x20, 0x02000000);
                        /* Enable ports */
-                       setbits32(priv->regs_win + RIO_CCSR, 0x00600000);
-                       break;
-               case RIO_PHY_PARALLEL:
-                       /* Disable ports */
-                       out_be32(priv->regs_win + RIO_CCSR, 0x22000000);
-                       /* Enable ports */
-                       out_be32(priv->regs_win + RIO_CCSR, 0x44000000);
-                       break;
-               }
-               msleep(100);
-               if (in_be32((priv->regs_win + RIO_ESCSR)) & 1) {
-                       dev_err(&dev->dev, "Port restart failed.\n");
-                       rc = -ENOLINK;
-                       goto err;
+                       setbits32(priv->regs_win
+                               + RIO_CCSR + i*0x20, 0x00600000);
+                       msleep(100);
+                       if (in_be32((priv->regs_win
+                                       + RIO_ESCSR + i*0x20)) & 1) {
+                               dev_err(&dev->dev,
+                                       "Port %d restart failed.\n", i);
+                               release_resource(&port->iores);
+                               kfree(priv);
+                               kfree(port);
+                               continue;
+                       }
+                       dev_info(&dev->dev, "Port %d restart success!\n", i);
                }
-               dev_info(&dev->dev, "Port restart success!\n");
-       }
-       fsl_rio_info(&dev->dev, ccsr);
+               fsl_rio_info(&dev->dev, ccsr);
 
-       port->sys_size = (in_be32((priv->regs_win + RIO_PEF_CAR))
+               port->sys_size = (in_be32((priv->regs_win + RIO_PEF_CAR))
                                        & RIO_PEF_CTLS) >> 4;
-       dev_info(&dev->dev, "RapidIO Common Transport System size: %d\n",
-                       port->sys_size ? 65536 : 256);
+               dev_info(&dev->dev, "RapidIO Common Transport System size: %d\n",
+                               port->sys_size ? 65536 : 256);
+
+               if (rio_register_mport(port)) {
+                       release_resource(&port->iores);
+                       kfree(priv);
+                       kfree(port);
+                       continue;
+               }
+               if (port->host_deviceid >= 0)
+                       out_be32(priv->regs_win + RIO_GCCSR, RIO_PORT_GEN_HOST |
+                               RIO_PORT_GEN_MASTER | RIO_PORT_GEN_DISCOVERED);
+               else
+                       out_be32(priv->regs_win + RIO_GCCSR,
+                               RIO_PORT_GEN_MASTER);
+
+               priv->atmu_regs = (struct rio_atmu_regs *)(priv->regs_win
+                       + ((i == 0) ? RIO_ATMU_REGS_PORT1_OFFSET :
+                       RIO_ATMU_REGS_PORT2_OFFSET));
 
-       if (rio_register_mport(port))
+               priv->maint_atmu_regs = priv->atmu_regs + 1;
+
+               /* Set to receive any dist ID for serial RapidIO controller. */
+               if (port->phy_type == RIO_PHY_SERIAL)
+                       out_be32((priv->regs_win
+                               + RIO_ISR_AACR + i*0x80), RIO_ISR_AACR_AA);
+
+               /* Configure maintenance transaction window */
+               out_be32(&priv->maint_atmu_regs->rowbar,
+                       port->iores.start >> 12);
+               out_be32(&priv->maint_atmu_regs->rowar,
+                        0x80077000 | (ilog2(RIO_MAINT_WIN_SIZE) - 1));
+
+               priv->maint_win = ioremap(port->iores.start,
+                               RIO_MAINT_WIN_SIZE);
+
+               rio_law_start = range_start;
+
+               fsl_rio_setup_rmu(port, rmu_np[i]);
+
+               dbell->mport[i] = port;
+
+               active_ports++;
+       }
+
+       if (!active_ports) {
+               rc = -ENOLINK;
                goto err;
+       }
 
-       if (port->host_deviceid >= 0)
-               out_be32(priv->regs_win + RIO_GCCSR, RIO_PORT_GEN_HOST |
-                       RIO_PORT_GEN_MASTER | RIO_PORT_GEN_DISCOVERED);
-       else
-               out_be32(priv->regs_win + RIO_GCCSR, 0x00000000);
-
-       priv->atmu_regs = (struct rio_atmu_regs *)(priv->regs_win
-                                       + RIO_ATMU_REGS_OFFSET);
-       priv->maint_atmu_regs = priv->atmu_regs + 1;
-       priv->dbell_atmu_regs = priv->atmu_regs + 2;
-       priv->msg_regs = (struct rio_msg_regs *)(priv->regs_win +
-                               ((port->phy_type == RIO_PHY_SERIAL) ?
-                               RIO_S_MSG_REGS_OFFSET : RIO_P_MSG_REGS_OFFSET));
-
-       /* Set to receive any dist ID for serial RapidIO controller. */
-       if (port->phy_type == RIO_PHY_SERIAL)
-               out_be32((priv->regs_win + RIO_ISR_AACR), RIO_ISR_AACR_AA);
-
-       /* Configure maintenance transaction window */
-       out_be32(&priv->maint_atmu_regs->rowbar, law_start >> 12);
-       out_be32(&priv->maint_atmu_regs->rowar,
-                0x80077000 | (ilog2(RIO_MAINT_WIN_SIZE) - 1));
-
-       priv->maint_win = ioremap(law_start, RIO_MAINT_WIN_SIZE);
-
-       /* Configure outbound doorbell window */
-       out_be32(&priv->dbell_atmu_regs->rowbar,
-                       (law_start + RIO_MAINT_WIN_SIZE) >> 12);
-       out_be32(&priv->dbell_atmu_regs->rowar, 0x8004200b);    /* 4k */
-       fsl_rio_doorbell_init(port);
-       fsl_rio_port_write_init(port);
+       fsl_rio_doorbell_init(dbell);
+       fsl_rio_port_write_init(pw);
 
        return 0;
 err:
-       iounmap(priv->regs_win);
-       release_resource(&port->iores);
-err_res:
-       kfree(priv);
-err_priv:
-       kfree(port);
-err_port:
+       kfree(pw);
+err_pw:
+       kfree(dbell);
+err_dbell:
+       iounmap(rmu_regs_win);
+err_rmu:
        kfree(ops);
 err_ops:
+       iounmap(rio_regs_win);
+err_rio_regs:
        return rc;
 }
 
@@ -1631,7 +654,7 @@ static int __devinit fsl_of_rio_rpn_probe(struct platform_device *dev)
 
 static const struct of_device_id fsl_of_rio_rpn_ids[] = {
        {
-               .compatible = "fsl,rapidio-delta",
+               .compatible = "fsl,srio",
        },
        {},
 };
diff --git a/arch/powerpc/sysdev/fsl_rio.h b/arch/powerpc/sysdev/fsl_rio.h
new file mode 100644 (file)
index 0000000..ae8e274
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+ * Freescale MPC85xx/MPC86xx RapidIO support
+ *
+ * Copyright 2009 Sysgo AG
+ * Thomas Moll <thomas.moll@sysgo.com>
+ * - fixed maintenance access routines, check for aligned access
+ *
+ * Copyright 2009 Integrated Device Technology, Inc.
+ * Alex Bounine <alexandre.bounine@idt.com>
+ * - Added Port-Write message handling
+ * - Added Machine Check exception handling
+ *
+ * Copyright (C) 2007, 2008, 2010, 2011 Freescale Semiconductor, Inc.
+ * Zhang Wei <wei.zhang@freescale.com>
+ * Lian Minghuan-B31939 <Minghuan.Lian@freescale.com>
+ * Liu Gang <Gang.Liu@freescale.com>
+ *
+ * Copyright 2005 MontaVista Software, Inc.
+ * Matt Porter <mporter@kernel.crashing.org>
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#ifndef __FSL_RIO_H
+#define __FSL_RIO_H
+
+#include <linux/rio.h>
+#include <linux/rio_drv.h>
+#include <linux/kfifo.h>
+
+#define RIO_REGS_WIN(mport)    (((struct rio_priv *)(mport->priv))->regs_win)
+
+#define RIO_MAINT_WIN_SIZE     0x400000
+#define RIO_LTLEDCSR           0x0608
+
+#define DOORBELL_ROWAR_EN      0x80000000
+#define DOORBELL_ROWAR_TFLOWLV 0x08000000 /* highest priority level */
+#define DOORBELL_ROWAR_PCI     0x02000000 /* PCI window */
+#define DOORBELL_ROWAR_NREAD   0x00040000 /* NREAD */
+#define DOORBELL_ROWAR_MAINTRD 0x00070000  /* maintenance read */
+#define DOORBELL_ROWAR_RES     0x00002000 /* wrtpy: reserverd */
+#define DOORBELL_ROWAR_MAINTWD 0x00007000
+#define DOORBELL_ROWAR_SIZE    0x0000000b /* window size is 4k */
+
+#define RIO_ATMU_REGS_PORT1_OFFSET     0x10c00
+#define RIO_ATMU_REGS_PORT2_OFFSET     0x10e00
+#define RIO_S_DBELL_REGS_OFFSET        0x13400
+#define RIO_S_PW_REGS_OFFSET   0x134e0
+#define RIO_ATMU_REGS_DBELL_OFFSET     0x10C40
+
+#define MAX_MSG_UNIT_NUM       2
+#define MAX_PORT_NUM           4
+
+struct rio_atmu_regs {
+        u32 rowtar;
+        u32 rowtear;
+        u32 rowbar;
+        u32 pad1;
+        u32 rowar;
+        u32 pad2[3];
+};
+
+struct rio_dbell_ring {
+       void *virt;
+       dma_addr_t phys;
+};
+
+struct rio_port_write_msg {
+        void *virt;
+        dma_addr_t phys;
+        u32 msg_count;
+        u32 err_count;
+        u32 discard_count;
+};
+
+struct fsl_rio_dbell {
+       struct rio_mport *mport[MAX_PORT_NUM];
+       struct device *dev;
+       struct rio_dbell_regs __iomem *dbell_regs;
+       struct rio_dbell_ring dbell_ring;
+       int bellirq;
+};
+
+struct fsl_rio_pw {
+       struct device *dev;
+       struct rio_pw_regs __iomem *pw_regs;
+       struct rio_port_write_msg port_write_msg;
+       int pwirq;
+       struct work_struct pw_work;
+       struct kfifo pw_fifo;
+       spinlock_t pw_fifo_lock;
+};
+
+struct rio_priv {
+       struct device *dev;
+       void __iomem *regs_win;
+       struct rio_atmu_regs __iomem *atmu_regs;
+       struct rio_atmu_regs __iomem *maint_atmu_regs;
+       void __iomem *maint_win;
+       void *rmm_handle; /* RapidIO message manager(unit) Handle */
+};
+
+extern void __iomem *rio_regs_win;
+extern void __iomem *rmu_regs_win;
+
+extern resource_size_t rio_law_start;
+
+extern struct fsl_rio_dbell *dbell;
+extern struct fsl_rio_pw *pw;
+
+extern int fsl_rio_setup_rmu(struct rio_mport *mport,
+       struct device_node *node);
+extern int fsl_rio_port_write_init(struct fsl_rio_pw *pw);
+extern int fsl_rio_pw_enable(struct rio_mport *mport, int enable);
+extern void fsl_rio_port_error_handler(int offset);
+extern int fsl_rio_doorbell_init(struct fsl_rio_dbell *dbell);
+
+extern int fsl_rio_doorbell_send(struct rio_mport *mport,
+                               int index, u16 destid, u16 data);
+extern int fsl_add_outb_message(struct rio_mport *mport,
+       struct rio_dev *rdev,
+       int mbox, void *buffer, size_t len);
+extern int fsl_open_outb_mbox(struct rio_mport *mport,
+       void *dev_id, int mbox, int entries);
+extern void fsl_close_outb_mbox(struct rio_mport *mport, int mbox);
+extern int fsl_open_inb_mbox(struct rio_mport *mport,
+       void *dev_id, int mbox, int entries);
+extern void fsl_close_inb_mbox(struct rio_mport *mport, int mbox);
+extern int fsl_add_inb_buffer(struct rio_mport *mport, int mbox, void *buf);
+extern void *fsl_get_inb_message(struct rio_mport *mport, int mbox);
+
+#endif
diff --git a/arch/powerpc/sysdev/fsl_rmu.c b/arch/powerpc/sysdev/fsl_rmu.c
new file mode 100644 (file)
index 0000000..02445a5
--- /dev/null
@@ -0,0 +1,1103 @@
+/*
+ * Freescale MPC85xx/MPC86xx RapidIO RMU support
+ *
+ * Copyright 2009 Sysgo AG
+ * Thomas Moll <thomas.moll@sysgo.com>
+ * - fixed maintenance access routines, check for aligned access
+ *
+ * Copyright 2009 Integrated Device Technology, Inc.
+ * Alex Bounine <alexandre.bounine@idt.com>
+ * - Added Port-Write message handling
+ * - Added Machine Check exception handling
+ *
+ * Copyright (C) 2007, 2008, 2010, 2011 Freescale Semiconductor, Inc.
+ * Zhang Wei <wei.zhang@freescale.com>
+ * Lian Minghuan-B31939 <Minghuan.Lian@freescale.com>
+ * Liu Gang <Gang.Liu@freescale.com>
+ *
+ * Copyright 2005 MontaVista Software, Inc.
+ * Matt Porter <mporter@kernel.crashing.org>
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ */
+
+#include <linux/types.h>
+#include <linux/dma-mapping.h>
+#include <linux/interrupt.h>
+#include <linux/of_platform.h>
+#include <linux/slab.h>
+
+#include "fsl_rio.h"
+
+#define GET_RMM_HANDLE(mport) \
+               (((struct rio_priv *)(mport->priv))->rmm_handle)
+
+/* RapidIO definition irq, which read from OF-tree */
+#define IRQ_RIO_PW(m)          (((struct fsl_rio_pw *)(m))->pwirq)
+#define IRQ_RIO_BELL(m) (((struct fsl_rio_dbell *)(m))->bellirq)
+#define IRQ_RIO_TX(m) (((struct fsl_rmu *)(GET_RMM_HANDLE(m)))->txirq)
+#define IRQ_RIO_RX(m) (((struct fsl_rmu *)(GET_RMM_HANDLE(m)))->rxirq)
+
+#define RIO_MIN_TX_RING_SIZE   2
+#define RIO_MAX_TX_RING_SIZE   2048
+#define RIO_MIN_RX_RING_SIZE   2
+#define RIO_MAX_RX_RING_SIZE   2048
+
+#define RIO_IPWMR_SEN          0x00100000
+#define RIO_IPWMR_QFIE         0x00000100
+#define RIO_IPWMR_EIE          0x00000020
+#define RIO_IPWMR_CQ           0x00000002
+#define RIO_IPWMR_PWE          0x00000001
+
+#define RIO_IPWSR_QF           0x00100000
+#define RIO_IPWSR_TE           0x00000080
+#define RIO_IPWSR_QFI          0x00000010
+#define RIO_IPWSR_PWD          0x00000008
+#define RIO_IPWSR_PWB          0x00000004
+
+#define RIO_EPWISR             0x10010
+/* EPWISR Error match value */
+#define RIO_EPWISR_PINT1       0x80000000
+#define RIO_EPWISR_PINT2       0x40000000
+#define RIO_EPWISR_MU          0x00000002
+#define RIO_EPWISR_PW          0x00000001
+
+#define IPWSR_CLEAR            0x98
+#define OMSR_CLEAR             0x1cb3
+#define IMSR_CLEAR             0x491
+#define IDSR_CLEAR             0x91
+#define ODSR_CLEAR             0x1c00
+#define LTLEECSR_ENABLE_ALL    0xFFC000FC
+#define RIO_LTLEECSR           0x060c
+
+#define RIO_IM0SR              0x64
+#define RIO_IM1SR              0x164
+#define RIO_OM0SR              0x4
+#define RIO_OM1SR              0x104
+
+#define RIO_DBELL_WIN_SIZE     0x1000
+
+#define RIO_MSG_OMR_MUI                0x00000002
+#define RIO_MSG_OSR_TE         0x00000080
+#define RIO_MSG_OSR_QOI                0x00000020
+#define RIO_MSG_OSR_QFI                0x00000010
+#define RIO_MSG_OSR_MUB                0x00000004
+#define RIO_MSG_OSR_EOMI       0x00000002
+#define RIO_MSG_OSR_QEI                0x00000001
+
+#define RIO_MSG_IMR_MI         0x00000002
+#define RIO_MSG_ISR_TE         0x00000080
+#define RIO_MSG_ISR_QFI                0x00000010
+#define RIO_MSG_ISR_DIQI       0x00000001
+
+#define RIO_MSG_DESC_SIZE      32
+#define RIO_MSG_BUFFER_SIZE    4096
+
+#define DOORBELL_DMR_DI                0x00000002
+#define DOORBELL_DSR_TE                0x00000080
+#define DOORBELL_DSR_QFI       0x00000010
+#define DOORBELL_DSR_DIQI      0x00000001
+#define DOORBELL_TID_OFFSET    0x02
+#define DOORBELL_SID_OFFSET    0x04
+#define DOORBELL_INFO_OFFSET   0x06
+
+#define DOORBELL_MESSAGE_SIZE  0x08
+#define DBELL_SID(x)           (*(u16 *)(x + DOORBELL_SID_OFFSET))
+#define DBELL_TID(x)           (*(u16 *)(x + DOORBELL_TID_OFFSET))
+#define DBELL_INF(x)           (*(u16 *)(x + DOORBELL_INFO_OFFSET))
+
+struct rio_msg_regs {
+       u32 omr;
+       u32 osr;
+       u32 pad1;
+       u32 odqdpar;
+       u32 pad2;
+       u32 osar;
+       u32 odpr;
+       u32 odatr;
+       u32 odcr;
+       u32 pad3;
+       u32 odqepar;
+       u32 pad4[13];
+       u32 imr;
+       u32 isr;
+       u32 pad5;
+       u32 ifqdpar;
+       u32 pad6;
+       u32 ifqepar;
+};
+
+struct rio_dbell_regs {
+       u32 odmr;
+       u32 odsr;
+       u32 pad1[4];
+       u32 oddpr;
+       u32 oddatr;
+       u32 pad2[3];
+       u32 odretcr;
+       u32 pad3[12];
+       u32 dmr;
+       u32 dsr;
+       u32 pad4;
+       u32 dqdpar;
+       u32 pad5;
+       u32 dqepar;
+};
+
+struct rio_pw_regs {
+       u32 pwmr;
+       u32 pwsr;
+       u32 epwqbar;
+       u32 pwqbar;
+};
+
+
+struct rio_tx_desc {
+       u32 pad1;
+       u32 saddr;
+       u32 dport;
+       u32 dattr;
+       u32 pad2;
+       u32 pad3;
+       u32 dwcnt;
+       u32 pad4;
+};
+
+struct rio_msg_tx_ring {
+       void *virt;
+       dma_addr_t phys;
+       void *virt_buffer[RIO_MAX_TX_RING_SIZE];
+       dma_addr_t phys_buffer[RIO_MAX_TX_RING_SIZE];
+       int tx_slot;
+       int size;
+       void *dev_id;
+};
+
+struct rio_msg_rx_ring {
+       void *virt;
+       dma_addr_t phys;
+       void *virt_buffer[RIO_MAX_RX_RING_SIZE];
+       int rx_slot;
+       int size;
+       void *dev_id;
+};
+
+struct fsl_rmu {
+       struct rio_msg_regs __iomem *msg_regs;
+       struct rio_msg_tx_ring msg_tx_ring;
+       struct rio_msg_rx_ring msg_rx_ring;
+       int txirq;
+       int rxirq;
+};
+
+/**
+ * fsl_rio_tx_handler - MPC85xx outbound message interrupt handler
+ * @irq: Linux interrupt number
+ * @dev_instance: Pointer to interrupt-specific data
+ *
+ * Handles outbound message interrupts. Executes a register outbound
+ * mailbox event handler and acks the interrupt occurrence.
+ */
+static irqreturn_t
+fsl_rio_tx_handler(int irq, void *dev_instance)
+{
+       int osr;
+       struct rio_mport *port = (struct rio_mport *)dev_instance;
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(port);
+
+       osr = in_be32(&rmu->msg_regs->osr);
+
+       if (osr & RIO_MSG_OSR_TE) {
+               pr_info("RIO: outbound message transmission error\n");
+               out_be32(&rmu->msg_regs->osr, RIO_MSG_OSR_TE);
+               goto out;
+       }
+
+       if (osr & RIO_MSG_OSR_QOI) {
+               pr_info("RIO: outbound message queue overflow\n");
+               out_be32(&rmu->msg_regs->osr, RIO_MSG_OSR_QOI);
+               goto out;
+       }
+
+       if (osr & RIO_MSG_OSR_EOMI) {
+               u32 dqp = in_be32(&rmu->msg_regs->odqdpar);
+               int slot = (dqp - rmu->msg_tx_ring.phys) >> 5;
+               if (port->outb_msg[0].mcback != NULL) {
+                       port->outb_msg[0].mcback(port, rmu->msg_tx_ring.dev_id,
+                                       -1,
+                                       slot);
+               }
+               /* Ack the end-of-message interrupt */
+               out_be32(&rmu->msg_regs->osr, RIO_MSG_OSR_EOMI);
+       }
+
+out:
+       return IRQ_HANDLED;
+}
+
+/**
+ * fsl_rio_rx_handler - MPC85xx inbound message interrupt handler
+ * @irq: Linux interrupt number
+ * @dev_instance: Pointer to interrupt-specific data
+ *
+ * Handles inbound message interrupts. Executes a registered inbound
+ * mailbox event handler and acks the interrupt occurrence.
+ */
+static irqreturn_t
+fsl_rio_rx_handler(int irq, void *dev_instance)
+{
+       int isr;
+       struct rio_mport *port = (struct rio_mport *)dev_instance;
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(port);
+
+       isr = in_be32(&rmu->msg_regs->isr);
+
+       if (isr & RIO_MSG_ISR_TE) {
+               pr_info("RIO: inbound message reception error\n");
+               out_be32((void *)&rmu->msg_regs->isr, RIO_MSG_ISR_TE);
+               goto out;
+       }
+
+       /* XXX Need to check/dispatch until queue empty */
+       if (isr & RIO_MSG_ISR_DIQI) {
+               /*
+               * Can receive messages for any mailbox/letter to that
+               * mailbox destination. So, make the callback with an
+               * unknown/invalid mailbox number argument.
+               */
+               if (port->inb_msg[0].mcback != NULL)
+                       port->inb_msg[0].mcback(port, rmu->msg_rx_ring.dev_id,
+                               -1,
+                               -1);
+
+               /* Ack the queueing interrupt */
+               out_be32(&rmu->msg_regs->isr, RIO_MSG_ISR_DIQI);
+       }
+
+out:
+       return IRQ_HANDLED;
+}
+
+/**
+ * fsl_rio_dbell_handler - MPC85xx doorbell interrupt handler
+ * @irq: Linux interrupt number
+ * @dev_instance: Pointer to interrupt-specific data
+ *
+ * Handles doorbell interrupts. Parses a list of registered
+ * doorbell event handlers and executes a matching event handler.
+ */
+static irqreturn_t
+fsl_rio_dbell_handler(int irq, void *dev_instance)
+{
+       int dsr;
+       struct fsl_rio_dbell *fsl_dbell = (struct fsl_rio_dbell *)dev_instance;
+       int i;
+
+       dsr = in_be32(&fsl_dbell->dbell_regs->dsr);
+
+       if (dsr & DOORBELL_DSR_TE) {
+               pr_info("RIO: doorbell reception error\n");
+               out_be32(&fsl_dbell->dbell_regs->dsr, DOORBELL_DSR_TE);
+               goto out;
+       }
+
+       if (dsr & DOORBELL_DSR_QFI) {
+               pr_info("RIO: doorbell queue full\n");
+               out_be32(&fsl_dbell->dbell_regs->dsr, DOORBELL_DSR_QFI);
+       }
+
+       /* XXX Need to check/dispatch until queue empty */
+       if (dsr & DOORBELL_DSR_DIQI) {
+               u32 dmsg =
+                       (u32) fsl_dbell->dbell_ring.virt +
+                       (in_be32(&fsl_dbell->dbell_regs->dqdpar) & 0xfff);
+               struct rio_dbell *dbell;
+               int found = 0;
+
+               pr_debug
+                       ("RIO: processing doorbell,"
+                       " sid %2.2x tid %2.2x info %4.4x\n",
+                       DBELL_SID(dmsg), DBELL_TID(dmsg), DBELL_INF(dmsg));
+
+               for (i = 0; i < MAX_PORT_NUM; i++) {
+                       if (fsl_dbell->mport[i]) {
+                               list_for_each_entry(dbell,
+                                       &fsl_dbell->mport[i]->dbells, node) {
+                                       if ((dbell->res->start
+                                               <= DBELL_INF(dmsg))
+                                               && (dbell->res->end
+                                               >= DBELL_INF(dmsg))) {
+                                               found = 1;
+                                               break;
+                                       }
+                               }
+                               if (found && dbell->dinb) {
+                                       dbell->dinb(fsl_dbell->mport[i],
+                                               dbell->dev_id, DBELL_SID(dmsg),
+                                               DBELL_TID(dmsg),
+                                               DBELL_INF(dmsg));
+                                       break;
+                               }
+                       }
+               }
+
+               if (!found) {
+                       pr_debug
+                               ("RIO: spurious doorbell,"
+                               " sid %2.2x tid %2.2x info %4.4x\n",
+                               DBELL_SID(dmsg), DBELL_TID(dmsg),
+                               DBELL_INF(dmsg));
+               }
+               setbits32(&fsl_dbell->dbell_regs->dmr, DOORBELL_DMR_DI);
+               out_be32(&fsl_dbell->dbell_regs->dsr, DOORBELL_DSR_DIQI);
+       }
+
+out:
+       return IRQ_HANDLED;
+}
+
+void msg_unit_error_handler(void)
+{
+
+       /*XXX: Error recovery is not implemented, we just clear errors */
+       out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR), 0);
+
+       out_be32((u32 *)(rmu_regs_win + RIO_IM0SR), IMSR_CLEAR);
+       out_be32((u32 *)(rmu_regs_win + RIO_IM1SR), IMSR_CLEAR);
+       out_be32((u32 *)(rmu_regs_win + RIO_OM0SR), OMSR_CLEAR);
+       out_be32((u32 *)(rmu_regs_win + RIO_OM1SR), OMSR_CLEAR);
+
+       out_be32(&dbell->dbell_regs->odsr, ODSR_CLEAR);
+       out_be32(&dbell->dbell_regs->dsr, IDSR_CLEAR);
+
+       out_be32(&pw->pw_regs->pwsr, IPWSR_CLEAR);
+}
+
+/**
+ * fsl_rio_port_write_handler - MPC85xx port write interrupt handler
+ * @irq: Linux interrupt number
+ * @dev_instance: Pointer to interrupt-specific data
+ *
+ * Handles port write interrupts. Parses a list of registered
+ * port write event handlers and executes a matching event handler.
+ */
+static irqreturn_t
+fsl_rio_port_write_handler(int irq, void *dev_instance)
+{
+       u32 ipwmr, ipwsr;
+       struct fsl_rio_pw *pw = (struct fsl_rio_pw *)dev_instance;
+       u32 epwisr, tmp;
+
+       epwisr = in_be32(rio_regs_win + RIO_EPWISR);
+       if (!(epwisr & RIO_EPWISR_PW))
+               goto pw_done;
+
+       ipwmr = in_be32(&pw->pw_regs->pwmr);
+       ipwsr = in_be32(&pw->pw_regs->pwsr);
+
+#ifdef DEBUG_PW
+       pr_debug("PW Int->IPWMR: 0x%08x IPWSR: 0x%08x (", ipwmr, ipwsr);
+       if (ipwsr & RIO_IPWSR_QF)
+               pr_debug(" QF");
+       if (ipwsr & RIO_IPWSR_TE)
+               pr_debug(" TE");
+       if (ipwsr & RIO_IPWSR_QFI)
+               pr_debug(" QFI");
+       if (ipwsr & RIO_IPWSR_PWD)
+               pr_debug(" PWD");
+       if (ipwsr & RIO_IPWSR_PWB)
+               pr_debug(" PWB");
+       pr_debug(" )\n");
+#endif
+       /* Schedule deferred processing if PW was received */
+       if (ipwsr & RIO_IPWSR_QFI) {
+               /* Save PW message (if there is room in FIFO),
+                * otherwise discard it.
+                */
+               if (kfifo_avail(&pw->pw_fifo) >= RIO_PW_MSG_SIZE) {
+                       pw->port_write_msg.msg_count++;
+                       kfifo_in(&pw->pw_fifo, pw->port_write_msg.virt,
+                                RIO_PW_MSG_SIZE);
+               } else {
+                       pw->port_write_msg.discard_count++;
+                       pr_debug("RIO: ISR Discarded Port-Write Msg(s) (%d)\n",
+                                pw->port_write_msg.discard_count);
+               }
+               /* Clear interrupt and issue Clear Queue command. This allows
+                * another port-write to be received.
+                */
+               out_be32(&pw->pw_regs->pwsr,    RIO_IPWSR_QFI);
+               out_be32(&pw->pw_regs->pwmr, ipwmr | RIO_IPWMR_CQ);
+
+               schedule_work(&pw->pw_work);
+       }
+
+       if ((ipwmr & RIO_IPWMR_EIE) && (ipwsr & RIO_IPWSR_TE)) {
+               pw->port_write_msg.err_count++;
+               pr_debug("RIO: Port-Write Transaction Err (%d)\n",
+                        pw->port_write_msg.err_count);
+               /* Clear Transaction Error: port-write controller should be
+                * disabled when clearing this error
+                */
+               out_be32(&pw->pw_regs->pwmr, ipwmr & ~RIO_IPWMR_PWE);
+               out_be32(&pw->pw_regs->pwsr,    RIO_IPWSR_TE);
+               out_be32(&pw->pw_regs->pwmr, ipwmr);
+       }
+
+       if (ipwsr & RIO_IPWSR_PWD) {
+               pw->port_write_msg.discard_count++;
+               pr_debug("RIO: Port Discarded Port-Write Msg(s) (%d)\n",
+                        pw->port_write_msg.discard_count);
+               out_be32(&pw->pw_regs->pwsr, RIO_IPWSR_PWD);
+       }
+
+pw_done:
+       if (epwisr & RIO_EPWISR_PINT1) {
+               tmp = in_be32(rio_regs_win + RIO_LTLEDCSR);
+               pr_debug("RIO_LTLEDCSR = 0x%x\n", tmp);
+               fsl_rio_port_error_handler(0);
+       }
+
+       if (epwisr & RIO_EPWISR_PINT2) {
+               tmp = in_be32(rio_regs_win + RIO_LTLEDCSR);
+               pr_debug("RIO_LTLEDCSR = 0x%x\n", tmp);
+               fsl_rio_port_error_handler(1);
+       }
+
+       if (epwisr & RIO_EPWISR_MU) {
+               tmp = in_be32(rio_regs_win + RIO_LTLEDCSR);
+               pr_debug("RIO_LTLEDCSR = 0x%x\n", tmp);
+               msg_unit_error_handler();
+       }
+
+       return IRQ_HANDLED;
+}
+
+static void fsl_pw_dpc(struct work_struct *work)
+{
+       struct fsl_rio_pw *pw = container_of(work, struct fsl_rio_pw, pw_work);
+       u32 msg_buffer[RIO_PW_MSG_SIZE/sizeof(u32)];
+
+       /*
+        * Process port-write messages
+        */
+       while (kfifo_out_spinlocked(&pw->pw_fifo, (unsigned char *)msg_buffer,
+                        RIO_PW_MSG_SIZE, &pw->pw_fifo_lock)) {
+               /* Process one message */
+#ifdef DEBUG_PW
+               {
+               u32 i;
+               pr_debug("%s : Port-Write Message:", __func__);
+               for (i = 0; i < RIO_PW_MSG_SIZE/sizeof(u32); i++) {
+                       if ((i%4) == 0)
+                               pr_debug("\n0x%02x: 0x%08x", i*4,
+                                        msg_buffer[i]);
+                       else
+                               pr_debug(" 0x%08x", msg_buffer[i]);
+               }
+               pr_debug("\n");
+               }
+#endif
+               /* Pass the port-write message to RIO core for processing */
+               rio_inb_pwrite_handler((union rio_pw_msg *)msg_buffer);
+       }
+}
+
+/**
+ * fsl_rio_pw_enable - enable/disable port-write interface init
+ * @mport: Master port implementing the port write unit
+ * @enable:    1=enable; 0=disable port-write message handling
+ */
+int fsl_rio_pw_enable(struct rio_mport *mport, int enable)
+{
+       u32 rval;
+
+       rval = in_be32(&pw->pw_regs->pwmr);
+
+       if (enable)
+               rval |= RIO_IPWMR_PWE;
+       else
+               rval &= ~RIO_IPWMR_PWE;
+
+       out_be32(&pw->pw_regs->pwmr, rval);
+
+       return 0;
+}
+
+/**
+ * fsl_rio_port_write_init - MPC85xx port write interface init
+ * @mport: Master port implementing the port write unit
+ *
+ * Initializes port write unit hardware and DMA buffer
+ * ring. Called from fsl_rio_setup(). Returns %0 on success
+ * or %-ENOMEM on failure.
+ */
+
+int fsl_rio_port_write_init(struct fsl_rio_pw *pw)
+{
+       int rc = 0;
+
+       /* Following configurations require a disabled port write controller */
+       out_be32(&pw->pw_regs->pwmr,
+                in_be32(&pw->pw_regs->pwmr) & ~RIO_IPWMR_PWE);
+
+       /* Initialize port write */
+       pw->port_write_msg.virt = dma_alloc_coherent(pw->dev,
+                                       RIO_PW_MSG_SIZE,
+                                       &pw->port_write_msg.phys, GFP_KERNEL);
+       if (!pw->port_write_msg.virt) {
+               pr_err("RIO: unable allocate port write queue\n");
+               return -ENOMEM;
+       }
+
+       pw->port_write_msg.err_count = 0;
+       pw->port_write_msg.discard_count = 0;
+
+       /* Point dequeue/enqueue pointers at first entry */
+       out_be32(&pw->pw_regs->epwqbar, 0);
+       out_be32(&pw->pw_regs->pwqbar, (u32) pw->port_write_msg.phys);
+
+       pr_debug("EIPWQBAR: 0x%08x IPWQBAR: 0x%08x\n",
+                in_be32(&pw->pw_regs->epwqbar),
+                in_be32(&pw->pw_regs->pwqbar));
+
+       /* Clear interrupt status IPWSR */
+       out_be32(&pw->pw_regs->pwsr,
+                (RIO_IPWSR_TE | RIO_IPWSR_QFI | RIO_IPWSR_PWD));
+
+       /* Configure port write contoller for snooping enable all reporting,
+          clear queue full */
+       out_be32(&pw->pw_regs->pwmr,
+                RIO_IPWMR_SEN | RIO_IPWMR_QFIE | RIO_IPWMR_EIE | RIO_IPWMR_CQ);
+
+
+       /* Hook up port-write handler */
+       rc = request_irq(IRQ_RIO_PW(pw), fsl_rio_port_write_handler,
+                       IRQF_SHARED, "port-write", (void *)pw);
+       if (rc < 0) {
+               pr_err("MPC85xx RIO: unable to request inbound doorbell irq");
+               goto err_out;
+       }
+       /* Enable Error Interrupt */
+       out_be32((u32 *)(rio_regs_win + RIO_LTLEECSR), LTLEECSR_ENABLE_ALL);
+
+       INIT_WORK(&pw->pw_work, fsl_pw_dpc);
+       spin_lock_init(&pw->pw_fifo_lock);
+       if (kfifo_alloc(&pw->pw_fifo, RIO_PW_MSG_SIZE * 32, GFP_KERNEL)) {
+               pr_err("FIFO allocation failed\n");
+               rc = -ENOMEM;
+               goto err_out_irq;
+       }
+
+       pr_debug("IPWMR: 0x%08x IPWSR: 0x%08x\n",
+                in_be32(&pw->pw_regs->pwmr),
+                in_be32(&pw->pw_regs->pwsr));
+
+       return rc;
+
+err_out_irq:
+       free_irq(IRQ_RIO_PW(pw), (void *)pw);
+err_out:
+       dma_free_coherent(pw->dev, RIO_PW_MSG_SIZE,
+               pw->port_write_msg.virt,
+               pw->port_write_msg.phys);
+       return rc;
+}
+
+/**
+ * fsl_rio_doorbell_send - Send a MPC85xx doorbell message
+ * @mport: RapidIO master port info
+ * @index: ID of RapidIO interface
+ * @destid: Destination ID of target device
+ * @data: 16-bit info field of RapidIO doorbell message
+ *
+ * Sends a MPC85xx doorbell message. Returns %0 on success or
+ * %-EINVAL on failure.
+ */
+int fsl_rio_doorbell_send(struct rio_mport *mport,
+                               int index, u16 destid, u16 data)
+{
+       pr_debug("fsl_doorbell_send: index %d destid %4.4x data %4.4x\n",
+                index, destid, data);
+
+       /* In the serial version silicons, such as MPC8548, MPC8641,
+        * below operations is must be.
+        */
+       out_be32(&dbell->dbell_regs->odmr, 0x00000000);
+       out_be32(&dbell->dbell_regs->odretcr, 0x00000004);
+       out_be32(&dbell->dbell_regs->oddpr, destid << 16);
+       out_be32(&dbell->dbell_regs->oddatr, (index << 20) | data);
+       out_be32(&dbell->dbell_regs->odmr, 0x00000001);
+
+       return 0;
+}
+
+/**
+ * fsl_add_outb_message - Add message to the MPC85xx outbound message queue
+ * @mport: Master port with outbound message queue
+ * @rdev: Target of outbound message
+ * @mbox: Outbound mailbox
+ * @buffer: Message to add to outbound queue
+ * @len: Length of message
+ *
+ * Adds the @buffer message to the MPC85xx outbound message queue. Returns
+ * %0 on success or %-EINVAL on failure.
+ */
+int
+fsl_add_outb_message(struct rio_mport *mport, struct rio_dev *rdev, int mbox,
+                       void *buffer, size_t len)
+{
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
+       u32 omr;
+       struct rio_tx_desc *desc = (struct rio_tx_desc *)rmu->msg_tx_ring.virt
+                                       + rmu->msg_tx_ring.tx_slot;
+       int ret = 0;
+
+       pr_debug("RIO: fsl_add_outb_message(): destid %4.4x mbox %d buffer " \
+                "%8.8x len %8.8x\n", rdev->destid, mbox, (int)buffer, len);
+       if ((len < 8) || (len > RIO_MAX_MSG_SIZE)) {
+               ret = -EINVAL;
+               goto out;
+       }
+
+       /* Copy and clear rest of buffer */
+       memcpy(rmu->msg_tx_ring.virt_buffer[rmu->msg_tx_ring.tx_slot], buffer,
+                       len);
+       if (len < (RIO_MAX_MSG_SIZE - 4))
+               memset(rmu->msg_tx_ring.virt_buffer[rmu->msg_tx_ring.tx_slot]
+                               + len, 0, RIO_MAX_MSG_SIZE - len);
+
+       /* Set mbox field for message, and set destid */
+       desc->dport = (rdev->destid << 16) | (mbox & 0x3);
+
+       /* Enable EOMI interrupt and priority */
+       desc->dattr = 0x28000000 | ((mport->index) << 20);
+
+       /* Set transfer size aligned to next power of 2 (in double words) */
+       desc->dwcnt = is_power_of_2(len) ? len : 1 << get_bitmask_order(len);
+
+       /* Set snooping and source buffer address */
+       desc->saddr = 0x00000004
+               | rmu->msg_tx_ring.phys_buffer[rmu->msg_tx_ring.tx_slot];
+
+       /* Increment enqueue pointer */
+       omr = in_be32(&rmu->msg_regs->omr);
+       out_be32(&rmu->msg_regs->omr, omr | RIO_MSG_OMR_MUI);
+
+       /* Go to next descriptor */
+       if (++rmu->msg_tx_ring.tx_slot == rmu->msg_tx_ring.size)
+               rmu->msg_tx_ring.tx_slot = 0;
+
+out:
+       return ret;
+}
+
+/**
+ * fsl_open_outb_mbox - Initialize MPC85xx outbound mailbox
+ * @mport: Master port implementing the outbound message unit
+ * @dev_id: Device specific pointer to pass on event
+ * @mbox: Mailbox to open
+ * @entries: Number of entries in the outbound mailbox ring
+ *
+ * Initializes buffer ring, request the outbound message interrupt,
+ * and enables the outbound message unit. Returns %0 on success and
+ * %-EINVAL or %-ENOMEM on failure.
+ */
+int
+fsl_open_outb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entries)
+{
+       int i, j, rc = 0;
+       struct rio_priv *priv = mport->priv;
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
+
+       if ((entries < RIO_MIN_TX_RING_SIZE) ||
+               (entries > RIO_MAX_TX_RING_SIZE) || (!is_power_of_2(entries))) {
+               rc = -EINVAL;
+               goto out;
+       }
+
+       /* Initialize shadow copy ring */
+       rmu->msg_tx_ring.dev_id = dev_id;
+       rmu->msg_tx_ring.size = entries;
+
+       for (i = 0; i < rmu->msg_tx_ring.size; i++) {
+               rmu->msg_tx_ring.virt_buffer[i] =
+                       dma_alloc_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
+                               &rmu->msg_tx_ring.phys_buffer[i], GFP_KERNEL);
+               if (!rmu->msg_tx_ring.virt_buffer[i]) {
+                       rc = -ENOMEM;
+                       for (j = 0; j < rmu->msg_tx_ring.size; j++)
+                               if (rmu->msg_tx_ring.virt_buffer[j])
+                                       dma_free_coherent(priv->dev,
+                                                       RIO_MSG_BUFFER_SIZE,
+                                                       rmu->msg_tx_ring.
+                                                       virt_buffer[j],
+                                                       rmu->msg_tx_ring.
+                                                       phys_buffer[j]);
+                       goto out;
+               }
+       }
+
+       /* Initialize outbound message descriptor ring */
+       rmu->msg_tx_ring.virt = dma_alloc_coherent(priv->dev,
+                               rmu->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
+                               &rmu->msg_tx_ring.phys, GFP_KERNEL);
+       if (!rmu->msg_tx_ring.virt) {
+               rc = -ENOMEM;
+               goto out_dma;
+       }
+       memset(rmu->msg_tx_ring.virt, 0,
+                       rmu->msg_tx_ring.size * RIO_MSG_DESC_SIZE);
+       rmu->msg_tx_ring.tx_slot = 0;
+
+       /* Point dequeue/enqueue pointers at first entry in ring */
+       out_be32(&rmu->msg_regs->odqdpar, rmu->msg_tx_ring.phys);
+       out_be32(&rmu->msg_regs->odqepar, rmu->msg_tx_ring.phys);
+
+       /* Configure for snooping */
+       out_be32(&rmu->msg_regs->osar, 0x00000004);
+
+       /* Clear interrupt status */
+       out_be32(&rmu->msg_regs->osr, 0x000000b3);
+
+       /* Hook up outbound message handler */
+       rc = request_irq(IRQ_RIO_TX(mport), fsl_rio_tx_handler, 0,
+                        "msg_tx", (void *)mport);
+       if (rc < 0)
+               goto out_irq;
+
+       /*
+        * Configure outbound message unit
+        *      Snooping
+        *      Interrupts (all enabled, except QEIE)
+        *      Chaining mode
+        *      Disable
+        */
+       out_be32(&rmu->msg_regs->omr, 0x00100220);
+
+       /* Set number of entries */
+       out_be32(&rmu->msg_regs->omr,
+                in_be32(&rmu->msg_regs->omr) |
+                ((get_bitmask_order(entries) - 2) << 12));
+
+       /* Now enable the unit */
+       out_be32(&rmu->msg_regs->omr, in_be32(&rmu->msg_regs->omr) | 0x1);
+
+out:
+       return rc;
+
+out_irq:
+       dma_free_coherent(priv->dev,
+               rmu->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
+               rmu->msg_tx_ring.virt, rmu->msg_tx_ring.phys);
+
+out_dma:
+       for (i = 0; i < rmu->msg_tx_ring.size; i++)
+               dma_free_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
+               rmu->msg_tx_ring.virt_buffer[i],
+               rmu->msg_tx_ring.phys_buffer[i]);
+
+       return rc;
+}
+
+/**
+ * fsl_close_outb_mbox - Shut down MPC85xx outbound mailbox
+ * @mport: Master port implementing the outbound message unit
+ * @mbox: Mailbox to close
+ *
+ * Disables the outbound message unit, free all buffers, and
+ * frees the outbound message interrupt.
+ */
+void fsl_close_outb_mbox(struct rio_mport *mport, int mbox)
+{
+       struct rio_priv *priv = mport->priv;
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
+
+       /* Disable inbound message unit */
+       out_be32(&rmu->msg_regs->omr, 0);
+
+       /* Free ring */
+       dma_free_coherent(priv->dev,
+       rmu->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
+       rmu->msg_tx_ring.virt, rmu->msg_tx_ring.phys);
+
+       /* Free interrupt */
+       free_irq(IRQ_RIO_TX(mport), (void *)mport);
+}
+
+/**
+ * fsl_open_inb_mbox - Initialize MPC85xx inbound mailbox
+ * @mport: Master port implementing the inbound message unit
+ * @dev_id: Device specific pointer to pass on event
+ * @mbox: Mailbox to open
+ * @entries: Number of entries in the inbound mailbox ring
+ *
+ * Initializes buffer ring, request the inbound message interrupt,
+ * and enables the inbound message unit. Returns %0 on success
+ * and %-EINVAL or %-ENOMEM on failure.
+ */
+int
+fsl_open_inb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entries)
+{
+       int i, rc = 0;
+       struct rio_priv *priv = mport->priv;
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
+
+       if ((entries < RIO_MIN_RX_RING_SIZE) ||
+               (entries > RIO_MAX_RX_RING_SIZE) || (!is_power_of_2(entries))) {
+               rc = -EINVAL;
+               goto out;
+       }
+
+       /* Initialize client buffer ring */
+       rmu->msg_rx_ring.dev_id = dev_id;
+       rmu->msg_rx_ring.size = entries;
+       rmu->msg_rx_ring.rx_slot = 0;
+       for (i = 0; i < rmu->msg_rx_ring.size; i++)
+               rmu->msg_rx_ring.virt_buffer[i] = NULL;
+
+       /* Initialize inbound message ring */
+       rmu->msg_rx_ring.virt = dma_alloc_coherent(priv->dev,
+                               rmu->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
+                               &rmu->msg_rx_ring.phys, GFP_KERNEL);
+       if (!rmu->msg_rx_ring.virt) {
+               rc = -ENOMEM;
+               goto out;
+       }
+
+       /* Point dequeue/enqueue pointers at first entry in ring */
+       out_be32(&rmu->msg_regs->ifqdpar, (u32) rmu->msg_rx_ring.phys);
+       out_be32(&rmu->msg_regs->ifqepar, (u32) rmu->msg_rx_ring.phys);
+
+       /* Clear interrupt status */
+       out_be32(&rmu->msg_regs->isr, 0x00000091);
+
+       /* Hook up inbound message handler */
+       rc = request_irq(IRQ_RIO_RX(mport), fsl_rio_rx_handler, 0,
+                        "msg_rx", (void *)mport);
+       if (rc < 0) {
+               dma_free_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
+                       rmu->msg_tx_ring.virt_buffer[i],
+                       rmu->msg_tx_ring.phys_buffer[i]);
+               goto out;
+       }
+
+       /*
+        * Configure inbound message unit:
+        *      Snooping
+        *      4KB max message size
+        *      Unmask all interrupt sources
+        *      Disable
+        */
+       out_be32(&rmu->msg_regs->imr, 0x001b0060);
+
+       /* Set number of queue entries */
+       setbits32(&rmu->msg_regs->imr, (get_bitmask_order(entries) - 2) << 12);
+
+       /* Now enable the unit */
+       setbits32(&rmu->msg_regs->imr, 0x1);
+
+out:
+       return rc;
+}
+
+/**
+ * fsl_close_inb_mbox - Shut down MPC85xx inbound mailbox
+ * @mport: Master port implementing the inbound message unit
+ * @mbox: Mailbox to close
+ *
+ * Disables the inbound message unit, free all buffers, and
+ * frees the inbound message interrupt.
+ */
+void fsl_close_inb_mbox(struct rio_mport *mport, int mbox)
+{
+       struct rio_priv *priv = mport->priv;
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
+
+       /* Disable inbound message unit */
+       out_be32(&rmu->msg_regs->imr, 0);
+
+       /* Free ring */
+       dma_free_coherent(priv->dev, rmu->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
+       rmu->msg_rx_ring.virt, rmu->msg_rx_ring.phys);
+
+       /* Free interrupt */
+       free_irq(IRQ_RIO_RX(mport), (void *)mport);
+}
+
+/**
+ * fsl_add_inb_buffer - Add buffer to the MPC85xx inbound message queue
+ * @mport: Master port implementing the inbound message unit
+ * @mbox: Inbound mailbox number
+ * @buf: Buffer to add to inbound queue
+ *
+ * Adds the @buf buffer to the MPC85xx inbound message queue. Returns
+ * %0 on success or %-EINVAL on failure.
+ */
+int fsl_add_inb_buffer(struct rio_mport *mport, int mbox, void *buf)
+{
+       int rc = 0;
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
+
+       pr_debug("RIO: fsl_add_inb_buffer(), msg_rx_ring.rx_slot %d\n",
+                rmu->msg_rx_ring.rx_slot);
+
+       if (rmu->msg_rx_ring.virt_buffer[rmu->msg_rx_ring.rx_slot]) {
+               printk(KERN_ERR
+                       "RIO: error adding inbound buffer %d, buffer exists\n",
+                       rmu->msg_rx_ring.rx_slot);
+               rc = -EINVAL;
+               goto out;
+       }
+
+       rmu->msg_rx_ring.virt_buffer[rmu->msg_rx_ring.rx_slot] = buf;
+       if (++rmu->msg_rx_ring.rx_slot == rmu->msg_rx_ring.size)
+               rmu->msg_rx_ring.rx_slot = 0;
+
+out:
+       return rc;
+}
+
+/**
+ * fsl_get_inb_message - Fetch inbound message from the MPC85xx message unit
+ * @mport: Master port implementing the inbound message unit
+ * @mbox: Inbound mailbox number
+ *
+ * Gets the next available inbound message from the inbound message queue.
+ * A pointer to the message is returned on success or NULL on failure.
+ */
+void *fsl_get_inb_message(struct rio_mport *mport, int mbox)
+{
+       struct fsl_rmu *rmu = GET_RMM_HANDLE(mport);
+       u32 phys_buf, virt_buf;
+       void *buf = NULL;
+       int buf_idx;
+
+       phys_buf = in_be32(&rmu->msg_regs->ifqdpar);
+
+       /* If no more messages, then bail out */
+       if (phys_buf == in_be32(&rmu->msg_regs->ifqepar))
+               goto out2;
+
+       virt_buf = (u32) rmu->msg_rx_ring.virt + (phys_buf
+                                               - rmu->msg_rx_ring.phys);
+       buf_idx = (phys_buf - rmu->msg_rx_ring.phys) / RIO_MAX_MSG_SIZE;
+       buf = rmu->msg_rx_ring.virt_buffer[buf_idx];
+
+       if (!buf) {
+               printk(KERN_ERR
+                       "RIO: inbound message copy failed, no buffers\n");
+               goto out1;
+       }
+
+       /* Copy max message size, caller is expected to allocate that big */
+       memcpy(buf, (void *)virt_buf, RIO_MAX_MSG_SIZE);
+
+       /* Clear the available buffer */
+       rmu->msg_rx_ring.virt_buffer[buf_idx] = NULL;
+
+out1:
+       setbits32(&rmu->msg_regs->imr, RIO_MSG_IMR_MI);
+
+out2:
+       return buf;
+}
+
+/**
+ * fsl_rio_doorbell_init - MPC85xx doorbell interface init
+ * @mport: Master port implementing the inbound doorbell unit
+ *
+ * Initializes doorbell unit hardware and inbound DMA buffer
+ * ring. Called from fsl_rio_setup(). Returns %0 on success
+ * or %-ENOMEM on failure.
+ */
+int fsl_rio_doorbell_init(struct fsl_rio_dbell *dbell)
+{
+       int rc = 0;
+
+       /* Initialize inbound doorbells */
+       dbell->dbell_ring.virt = dma_alloc_coherent(dbell->dev, 512 *
+               DOORBELL_MESSAGE_SIZE, &dbell->dbell_ring.phys, GFP_KERNEL);
+       if (!dbell->dbell_ring.virt) {
+               printk(KERN_ERR "RIO: unable allocate inbound doorbell ring\n");
+               rc = -ENOMEM;
+               goto out;
+       }
+
+       /* Point dequeue/enqueue pointers at first entry in ring */
+       out_be32(&dbell->dbell_regs->dqdpar, (u32) dbell->dbell_ring.phys);
+       out_be32(&dbell->dbell_regs->dqepar, (u32) dbell->dbell_ring.phys);
+
+       /* Clear interrupt status */
+       out_be32(&dbell->dbell_regs->dsr, 0x00000091);
+
+       /* Hook up doorbell handler */
+       rc = request_irq(IRQ_RIO_BELL(dbell), fsl_rio_dbell_handler, 0,
+                        "dbell_rx", (void *)dbell);
+       if (rc < 0) {
+               dma_free_coherent(dbell->dev, 512 * DOORBELL_MESSAGE_SIZE,
+                        dbell->dbell_ring.virt, dbell->dbell_ring.phys);
+               printk(KERN_ERR
+                       "MPC85xx RIO: unable to request inbound doorbell irq");
+               goto out;
+       }
+
+       /* Configure doorbells for snooping, 512 entries, and enable */
+       out_be32(&dbell->dbell_regs->dmr, 0x00108161);
+
+out:
+       return rc;
+}
+
+int fsl_rio_setup_rmu(struct rio_mport *mport, struct device_node *node)
+{
+       struct rio_priv *priv;
+       struct fsl_rmu *rmu;
+       u64 msg_start;
+       const u32 *msg_addr;
+       int mlen;
+       int aw;
+
+       if (!mport || !mport->priv)
+               return -EINVAL;
+
+       priv = mport->priv;
+
+       if (!node) {
+               dev_warn(priv->dev, "Can't get %s property 'fsl,rmu'\n",
+                       priv->dev->of_node->full_name);
+               return -EINVAL;
+       }
+
+       rmu = kzalloc(sizeof(struct fsl_rmu), GFP_KERNEL);
+       if (!rmu)
+               return -ENOMEM;
+
+       aw = of_n_addr_cells(node);
+       msg_addr = of_get_property(node, "reg", &mlen);
+       if (!msg_addr) {
+               pr_err("%s: unable to find 'reg' property of message-unit\n",
+                       node->full_name);
+               return -ENOMEM;
+       }
+       msg_start = of_read_number(msg_addr, aw);
+
+       rmu->msg_regs = (struct rio_msg_regs *)
+                       (rmu_regs_win + (u32)msg_start);
+
+       rmu->txirq = irq_of_parse_and_map(node, 0);
+       rmu->rxirq = irq_of_parse_and_map(node, 1);
+       printk(KERN_INFO "%s: txirq: %d, rxirq %d\n",
+               node->full_name, rmu->txirq, rmu->rxirq);
+
+       priv->rmm_handle = rmu;
+
+       rio_init_dbell_res(&mport->riores[RIO_DOORBELL_RESOURCE], 0, 0xffff);
+       rio_init_mbox_res(&mport->riores[RIO_INB_MBOX_RESOURCE], 0, 0);
+       rio_init_mbox_res(&mport->riores[RIO_OUTB_MBOX_RESOURCE], 0, 0);
+
+       return 0;
+}
index 3363fbc964f86c1d42676116f813a2ac71b9e0e2..ceb09cbd2329e782fe00a5c3e1326d217ab3e92b 100644 (file)
@@ -216,7 +216,7 @@ int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier)
        /* Errata QE_General4, which affects some MPC832x and MPC836x SOCs, says
           that the BRG divisor must be even if you're not using divide-by-16
           mode. */
-       if (!div16 && (divisor & 1))
+       if (!div16 && (divisor & 1) && (divisor > 3))
                divisor++;
 
        tempval = ((divisor - 1) << QE_BRGC_DIVISOR_SHIFT) |
index 8af8e864a9cffbc13c91c625a837e11bb8de24fe..73464a62adf74ae1483a16ad71847c03fc03169f 100644 (file)
@@ -1128,7 +1128,7 @@ static struct of_device_id mpc85xx_mc_err_of_match[] = {
        { .compatible = "fsl,p1020-memory-controller", },
        { .compatible = "fsl,p1021-memory-controller", },
        { .compatible = "fsl,p2020-memory-controller", },
-       { .compatible = "fsl,p4080-memory-controller", },
+       { .compatible = "fsl,qoriq-memory-controller", },
        {},
 };
 MODULE_DEVICE_TABLE(of, mpc85xx_mc_err_of_match);
index cea8918b8233d21efe3a01ec1890081478b429ca..2ebe606a2db123fb1740baa8064a94b8cb4ca5dc 100644 (file)
@@ -963,6 +963,9 @@ static void qe_uart_set_termios(struct uart_port *port,
        /* Do we really need a spinlock here? */
        spin_lock_irqsave(&port->lock, flags);
 
+       /* Update the per-port timeout. */
+       uart_update_timeout(port, termios->c_cflag, baud);
+
        out_be16(&uccp->upsmr, upsmr);
        if (soft_uart) {
                out_be16(&uccup->supsmr, supsmr);