apm821xx: apm82181.dtsi overhaul
authorChristian Lamparter <chunkeey@gmail.com>
Mon, 15 Oct 2018 18:00:08 +0000 (20:00 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 20 Oct 2018 14:13:39 +0000 (16:13 +0200)
- order entries by mmio address where possible

 - switch to lower-case address values

 - comment on BSP u-boot behaviour in regards to
   what it edits and look for

 - annotate irq lines with the help of interrupt-names

 - remove deprecated "device_type" properties
   The pci and network device_type had to stay since
   they are required by the drivers and u-boot.
   the cpu and memory device_types will remain as well
   as they are still part of the DT Spec.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/apm821xx/dts/apm82181.dtsi

index 79596da672b7d4db1d8a8e21db7abd78f44a461a..951f3d5f08824c088a6189d7facc926275fd9436 100644 (file)
@@ -32,7 +32,7 @@
        compatible = "apm,bluestone";
 
        aliases {
-               ethernet0 = &EMAC0;
+               ethernet0 = &EMAC0; /* needed for BSP u-boot */
        };
 
        cpus {
@@ -61,7 +61,7 @@
        };
 
        UIC0: interrupt-controller0 {
-               compatible = "apm,uic-apm82181","ibm,uic";
+               compatible = "apm,uic-apm82181", "ibm,uic";
                interrupt-controller;
                cell-index = <0>;
                dcr-reg = <0x0c0 0x009>;
        };
 
        UIC1: interrupt-controller1 {
-               compatible = "apm,uic-apm82181","ibm,uic";
+               compatible = "apm,uic-apm82181", "ibm,uic";
                interrupt-controller;
                cell-index = <1>;
                dcr-reg = <0x0d0 0x009>;
                #address-cells = <0>;
                #size-cells = <0>;
                #interrupt-cells = <2>;
-               interrupts = <0x1e IRQ_TYPE_LEVEL_HIGH
-                             0x1f IRQ_TYPE_LEVEL_HIGH>; /* cascade */
+               interrupts = <0x1e IRQ_TYPE_LEVEL_HIGH>,
+                            <0x1f IRQ_TYPE_LEVEL_HIGH>; /* cascade */
                interrupt-parent = <&UIC0>;
        };
 
        UIC2: interrupt-controller2 {
-               compatible = "apm,uic-apm82181","ibm,uic";
+               compatible = "apm,uic-apm82181", "ibm,uic";
                interrupt-controller;
                cell-index = <2>;
                dcr-reg = <0x0e0 0x009>;
                #address-cells = <0>;
                #size-cells = <0>;
                #interrupt-cells = <2>;
-               interrupts = <0x0a IRQ_TYPE_LEVEL_HIGH
-                             0x0b IRQ_TYPE_LEVEL_HIGH>; /* cascade */
+               interrupts = <0x0a IRQ_TYPE_LEVEL_HIGH>,
+                            <0x0b IRQ_TYPE_LEVEL_HIGH>; /* cascade */
                interrupt-parent = <&UIC0>;
        };
 
                #address-cells = <0>;
                #size-cells = <0>;
                #interrupt-cells = <2>;
-               interrupts = <0x10 IRQ_TYPE_LEVEL_HIGH
-                             0x11 IRQ_TYPE_LEVEL_HIGH>; /* cascade */
+               interrupts = <0x10 IRQ_TYPE_LEVEL_HIGH>,
+                            <0x11 IRQ_TYPE_LEVEL_HIGH>; /* cascade */
                interrupt-parent = <&UIC0>;
        };
 
                compatible = "apm,plb-apm82181", "ibm,plb-460ex", "ibm,plb4";
                #address-cells = <2>;
                #size-cells = <1>;
-               ranges;
+               ranges; /* Filled in by U-Boot */
                clock-frequency = <0>; /* Filled in by U-Boot */
 
                SDRAM0: sdram {
 
                };
 
-               CRYPTO: crypto@180000 {
-                       compatible = "amcc,ppc460ex-crypto", "amcc,ppc4xx-crypto";
-                       reg = <4 0x00180000 0x80400>;
-                       interrupt-parent = <&UIC0>;
-                       interrupts = <0x1d IRQ_TYPE_LEVEL_HIGH>;
+               TRNG: trng@110000 {
+                       compatible = "amcc,ppc460ex-rng", "ppc4xx-rng", "amcc, ppc4xx-trng";
+                       reg = <4 0x00110000 0x100>;
+                       interrupt-parent = <&UIC1>;
+                       interrupts = <0x03 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
                PKA: pka@114000 {
-                       device_type = "pka";
                        compatible = "ppc4xx-pka", "amcc,ppc4xx-pka", "amcc, ppc4xx-pka";
                        reg = <4 0x00114000 0x4000>;
                        interrupt-parent = <&UIC0>;
                        status = "disabled";
                };
 
-               TRNG: trng@110000 {
-                       device_type = "trng";
-                       compatible = "amcc,ppc460ex-rng", "ppc4xx-rng", "amcc, ppc4xx-trng";
-                       reg = <4 0x00110000 0x100>;
-                       interrupt-parent = <&UIC1>;
-                       interrupts = <0x03 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "disabled";
+               CRYPTO: crypto@180000 {
+                       compatible = "amcc,ppc460ex-crypto", "amcc,ppc4xx-crypto";
+                       reg = <4 0x00180000 0x80400>;
+                       interrupt-parent = <&UIC0>;
+                       interrupts = <0x1d IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled"; /* hardware option */
                };
 
                MAL0: mcmal {
                        #address-cells = <0>;
                        #size-cells = <0>;
                        interrupt-parent = <&UIC2>;
-                       interrupts = <  0x06 IRQ_TYPE_LEVEL_HIGH /*TXEOB*/
-                                       0x07 IRQ_TYPE_LEVEL_HIGH /*RXEOB*/
-                                       0x03 IRQ_TYPE_LEVEL_HIGH /*SERR*/
-                                       0x04 IRQ_TYPE_LEVEL_HIGH /*TXDE*/
-                                       0x05 IRQ_TYPE_LEVEL_HIGH /*RXDE*/
-                                       0x08 IRQ_TYPE_EDGE_FALLING /*TX0 COAL*/
-                                     /*0x09 IRQ_TYPE_EDGE_FALLING   TX1 COAL*/
-                                       0x0c IRQ_TYPE_EDGE_FALLING /*RX0 COAL*/
-                                     /*0x0d IRQ_TYPE_EDGE_FALLING   RX1 COAL*/>;
-               };
-
-               AHBDMA0: dma@bffd0800 {
-                       compatible = "snps,dma-spear1340";
-                       reg = <4 0xbffd0800 0x400>;
-                       interrupt-parent = <&UIC0>;
-                       interrupts = <0x19 IRQ_TYPE_LEVEL_HIGH>;
-                       #dma-cells = <3>;
-                       /* use autoconfiguration for the dma setup */
-               };
-
-               SATA0: sata@bffd1000 {
-                       compatible = "amcc,sata-460ex";
-                       reg = <4 0xbffd1000 0x800>;
-                       interrupt-parent = <&UIC0>;
-                       interrupts = <0x1a IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&AHBDMA0 0 0 1>;
-                       dma-names = "sata-dma";
-                       status = "disabled";
-               };
-
-               SATA1: sata@bffd1800 {
-                       compatible = "amcc,sata-460ex";
-                       reg = <4 0xbffd1800 0x800>;
-                       interrupt-parent = <&UIC0>;
-                       interrupts = <0x1b IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&AHBDMA0 1 0 2>;
-                       dma-names = "sata-dma";
-                       status = "disabled";
-               };
-
-               USBOTG0: usbotg@bff80000 {
-                       compatible = "amcc,dwc-otg";
-                       reg = <4 0xbff80000 0x10000>;
-                       interrupt-parent = <&USBOTG0>;
-                       interrupts = <0 1 2>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <0>;
-                       #size-cells = <0>;
-                       interrupt-map = <0 &UIC2 0x1c IRQ_TYPE_LEVEL_HIGH /* USB-OTG */
-                                        1 &UIC1 0x1a IRQ_TYPE_LEVEL_LOW /* HIGH-POWER */
-                                        2 &UIC0 0x0c IRQ_TYPE_LEVEL_HIGH /* DMA */>;
-                       dr_mode = "host";
-                       status = "disabled";
+                       interrupts = <0x06 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0x07 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0x03 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0x04 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0x05 IRQ_TYPE_LEVEL_HIGH>,
+                                    <0x08 IRQ_TYPE_EDGE_FALLING>,
+                                    <0x09 IRQ_TYPE_EDGE_FALLING>,
+                                    <0x0c IRQ_TYPE_EDGE_FALLING>,
+                                    <0x0d IRQ_TYPE_EDGE_FALLING>;
+                       interrupt-names = "txeob", "rxeob", "serr",
+                                         "txde", "rxde",
+                                         "tx0coal", "tx1coal",
+                                         "rx0coal", "rx1coal";
                };
 
                POB0: opb {
                                /*
                                 * AMCC's BSP u-boot scans for the "ns16550"
                                 * compatible, without it, u-boot wouldn't
-                                * set the "clock-frequency" which is required.
+                                * set the required "clock-frequency".
                                 *
-                                * However, the hardware documentation lists:
+                                * The hardware documentation states:
                                 * "Register compatibility with 16750 register set"
                                 */
                                compatible = "ns16750", "ns16550";
                                status = "disabled";
                        };
 
-                       GPIO0: gpio@ef600b00 {
-                               compatible = "ibm,ppc4xx-gpio";
-                               reg = <0xef600b00 0x00000048>;
-                               #gpio-cells = <2>;
-                               gpio-controller;
-                               status = "disabled";
-                       };
-
                        IIC0: i2c@ef600700 {
                                compatible = "ibm,iic-460ex", "ibm,iic";
                                reg = <0xef600700 0x00000014>;
                                status = "disabled";
                        };
 
-                       RGMII0: emac-rgmii@ef601500 {
-                               compatible = "ibm,rgmii-405ex", "ibm,rgmii";
-                               reg = <0xef601500 0x00000008>;
-                               has-mdio;
-                       };
-
-                       TAH0: emac-tah@ef601350 {
-                               compatible = "ibm,tah-460ex", "ibm,tah";
-                               reg = <0xef601350 0x00000030>;
+                       GPIO0: gpio@ef600b00 {
+                               compatible = "ibm,ppc4xx-gpio";
+                               reg = <0xef600b00 0x00000048>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                               status = "disabled";
                        };
 
                        EMAC0: ethernet@ef600c00 {
                                #interrupt-cells = <1>;
                                #address-cells = <0>;
                                #size-cells = <0>;
-                               interrupt-map = <0 &UIC2 0x10 IRQ_TYPE_LEVEL_HIGH /* Status */
-                                                1 &UIC2 0x14 IRQ_TYPE_LEVEL_HIGH /* Wake */>;
+                               interrupt-map = <0 &UIC2 0x10 IRQ_TYPE_LEVEL_HIGH>,
+                                               <1 &UIC2 0x14 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "status", "wake";
+
                                reg = <0xef600c00 0x000000c4>;
                                local-mac-address = [000000000000]; /* Filled in by U-Boot */
                                mal-device = <&MAL0>;
                                has-new-stacr-staopc;
                                status = "disabled";
                        };
+
+                       TAH0: emac-tah@ef601350 {
+                               compatible = "ibm,tah-460ex", "ibm,tah";
+                               reg = <0xef601350 0x00000030>;
+                       };
+
+                       RGMII0: emac-rgmii@ef601500 {
+                               compatible = "ibm,rgmii-405ex", "ibm,rgmii";
+                               reg = <0xef601500 0x00000008>;
+                               has-mdio;
+                       };
+               };
+
+               USBOTG0: usbotg@bff80000 {
+                       compatible = "amcc,dwc-otg";
+                       reg = <4 0xbff80000 0x10000>;
+                       interrupt-parent = <&USBOTG0>;
+                       interrupts = <0 1 2>;
+                       #interrupt-cells = <1>;
+                       #address-cells = <0>;
+                       #size-cells = <0>;
+                       interrupt-map = <0 &UIC2 0x1c IRQ_TYPE_LEVEL_HIGH>,
+                                       <1 &UIC1 0x1a IRQ_TYPE_LEVEL_LOW>,
+                                       <2 &UIC0 0x0c IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "usb-otg", "high-power", "dma";
+                       dr_mode = "host";
+                       status = "disabled";
+               };
+
+               AHBDMA0: dma@bffd0800 {
+                       compatible = "snps,dma-spear1340";
+                       reg = <4 0xbffd0800 0x400>;
+                       interrupt-parent = <&UIC0>;
+                       interrupts = <0x19 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <3>;
+                       /* use autoconfiguration for the dma setup */
+               };
+
+               SATA0: sata@bffd1000 {
+                       compatible = "amcc,sata-460ex";
+                       reg = <4 0xbffd1000 0x800>;
+                       interrupt-parent = <&UIC0>;
+                       interrupts = <0x1a IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&AHBDMA0 0 0 1>;
+                       dma-names = "sata-dma";
+                       status = "disabled";
+               };
+
+               SATA1: sata@bffd1800 {
+                       compatible = "amcc,sata-460ex";
+                       reg = <4 0xbffd1800 0x800>;
+                       interrupt-parent = <&UIC0>;
+                       interrupts = <0x1b IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&AHBDMA0 1 0 2>;
+                       dma-names = "sata-dma";
+                       status = "disabled";
+               };
+
+               MSI: ppc4xx-msi@c10000000 {
+                       compatible = "amcc,ppc4xx-msi", "ppc4xx-msi";
+                       reg = <0xc 0x10000000 0x100
+                              0xc 0x10000000 0x100>;
+                       sdr-base = <0x36C>;
+                       msi-data = <0x00004440>;
+                       msi-mask = <0x0000ffe0>;
+                       interrupts =<0 1 2 3 4 5 6 7>;
+                       interrupt-parent = <&MSI>;
+                       #interrupt-cells = <1>;
+                       #address-cells = <0>;
+                       #size-cells = <0>;
+                       msi-available-ranges = <0x0 0x100>;
+                       interrupt-map =
+                               <0 &UIC3 0x18 IRQ_TYPE_EDGE_RISING>,
+                               <1 &UIC3 0x19 IRQ_TYPE_EDGE_RISING>,
+                               <2 &UIC3 0x1a IRQ_TYPE_EDGE_RISING>,
+                               <3 &UIC3 0x1b IRQ_TYPE_EDGE_RISING>,
+                               <4 &UIC3 0x1c IRQ_TYPE_EDGE_RISING>,
+                               <5 &UIC3 0x1d IRQ_TYPE_EDGE_RISING>,
+                               <6 &UIC3 0x1e IRQ_TYPE_EDGE_RISING>,
+                               <7 &UIC3 0x1f IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
                };
 
                PCIE0: pciex@d00000000 {
-                       device_type = "pci";
+                       device_type = "pci"; /* see ppc4xx_pci_find_bridge */
                        #interrupt-cells = <1>;
                        #size-cells = <2>;
                        #address-cells = <3>;
                        compatible = "ibm,plb-pciex-apm821xx", "ibm,plb-pciex";
                        primary;
                        port = <0x0>; /* port number */
-                       reg = <0x0000000d 0x00000000 0x20000000 /* Config space access */
-                              0x0000000c 0x08010000 0x00001000>;       /* Registers */
+                       reg = <0x0000000d 0x00000000 0x20000000>, /* Config space access */
+                             <0x0000000c 0x08010000 0x00001000>; /* Registers */
                        dcr-reg = <0x100 0x020>;
                        sdr-base = <0x300>;
 
                        /* Outbound ranges, one memory and one IO,
                         * later cannot be changed
                         */
-                       ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
-                                 0x02000000 0x00000000 0x00000000 0x0000000f 0x00000000 0x00000000 0x00100000
-                                 0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
+                       ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000>,
+                                <0x02000000 0x00000000 0x00000000 0x0000000f 0x00000000 0x00000000 0x00100000>,
+                                <0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
 
                        /* Inbound 2GB range starting at 0 */
                        dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
                         * The real slot is on idsel 0, so the swizzling is 1:1
                         */
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
-                       interrupt-map = <
-                               0x0 0x0 0x0 0x1 &UIC3 0x0c IRQ_TYPE_LEVEL_HIGH /* swizzled int A */
-                               0x0 0x0 0x0 0x2 &UIC3 0x0d IRQ_TYPE_LEVEL_HIGH /* swizzled int B */
-                               0x0 0x0 0x0 0x3 &UIC3 0x0e IRQ_TYPE_LEVEL_HIGH /* swizzled int C */
-                               0x0 0x0 0x0 0x4 &UIC3 0x0f IRQ_TYPE_LEVEL_HIGH /* swizzled int D */>;
-                       status = "disabled";
-               };
-
-               MSI: ppc4xx-msi@C10000000 {
-                       compatible = "amcc,ppc4xx-msi", "ppc4xx-msi";
-                       reg = < 0xC 0x10000000 0x100
-                               0xC 0x10000000 0x100>;
-                       sdr-base = <0x36C>;
-                       msi-data = <0x00004440>;
-                       msi-mask = <0x0000ffe0>;
-                       interrupts =<0 1 2 3 4 5 6 7>;
-                       interrupt-parent = <&MSI>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <0>;
-                       #size-cells = <0>;
-                       msi-available-ranges = <0x0 0x100>;
-                       interrupt-map = <
-                               0 &UIC3 0x18 IRQ_TYPE_EDGE_RISING
-                               1 &UIC3 0x19 IRQ_TYPE_EDGE_RISING
-                               2 &UIC3 0x1a IRQ_TYPE_EDGE_RISING
-                               3 &UIC3 0x1b IRQ_TYPE_EDGE_RISING
-                               4 &UIC3 0x1c IRQ_TYPE_EDGE_RISING
-                               5 &UIC3 0x1d IRQ_TYPE_EDGE_RISING
-                               6 &UIC3 0x1e IRQ_TYPE_EDGE_RISING
-                               7 &UIC3 0x1f IRQ_TYPE_EDGE_RISING
-                       >;
+                       interrupt-map =
+                               <0x0 0x0 0x0 0x1 &UIC3 0x0c IRQ_TYPE_LEVEL_HIGH>, /* swizzled int A */
+                               <0x0 0x0 0x0 0x2 &UIC3 0x0d IRQ_TYPE_LEVEL_HIGH>, /* swizzled int B */
+                               <0x0 0x0 0x0 0x3 &UIC3 0x0e IRQ_TYPE_LEVEL_HIGH>, /* swizzled int C */
+                               <0x0 0x0 0x0 0x4 &UIC3 0x0f IRQ_TYPE_LEVEL_HIGH>; /* swizzled int D */
                        status = "disabled";
                };
        };