From: Christian Lamparter Date: Mon, 15 Oct 2018 18:00:08 +0000 (+0200) Subject: apm821xx: apm82181.dtsi overhaul X-Git-Tag: v19.07.0-rc1~2290 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=1d5d77612f0eb3aa435dc574aecd23b629b55b6d;p=openwrt%2Fstaging%2Fhauke.git apm821xx: apm82181.dtsi overhaul - 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 --- diff --git a/target/linux/apm821xx/dts/apm82181.dtsi b/target/linux/apm821xx/dts/apm82181.dtsi index 79596da672..951f3d5f08 100644 --- a/target/linux/apm821xx/dts/apm82181.dtsi +++ b/target/linux/apm821xx/dts/apm82181.dtsi @@ -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>; @@ -71,28 +71,28 @@ }; 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>; }; @@ -104,8 +104,8 @@ #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>; }; @@ -156,7 +156,7 @@ 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 { @@ -172,16 +172,15 @@ }; - 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>; @@ -189,13 +188,12 @@ 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 { @@ -207,59 +205,19 @@ #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 { @@ -309,9 +267,9 @@ /* * 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"; @@ -334,14 +292,6 @@ 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>; @@ -360,15 +310,12 @@ 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 { @@ -379,8 +326,10 @@ #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>; @@ -401,27 +350,108 @@ 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>; @@ -438,37 +468,11 @@ * 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"; }; };