1292816a6SGregory CLEMENT// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 272a3713fSThomas Petazzoni/* 372a3713fSThomas Petazzoni * Copyright (C) 2016 Marvell Technology Group Ltd. 4292816a6SGregory CLEMENT * 572a3713fSThomas Petazzoni * Device Tree file for Marvell Armada CP110. 672a3713fSThomas Petazzoni */ 772a3713fSThomas Petazzoni 872a3713fSThomas Petazzoni#include <dt-bindings/interrupt-controller/mvebu-icu.h> 972a3713fSThomas Petazzoni 1072a3713fSThomas Petazzoni#include "armada-common.dtsi" 1172a3713fSThomas Petazzoni 1272a3713fSThomas Petazzoni#define CP110_PCIEx_IO_BASE(iface) (CP110_PCIE_IO_BASE + (iface * 0x10000)) 1372a3713fSThomas Petazzoni#define CP110_PCIEx_MEM_BASE(iface) (CP110_PCIE_MEM_BASE + (iface * 0x1000000)) 1472a3713fSThomas Petazzoni#define CP110_PCIEx_CONF_BASE(iface) (CP110_PCIEx_MEM_BASE(iface) + 0xf00000) 1572a3713fSThomas Petazzoni 1672a3713fSThomas Petazzoni/ { 1772a3713fSThomas Petazzoni /* 1872a3713fSThomas Petazzoni * The contents of the node are defined below, in order to 1972a3713fSThomas Petazzoni * save one indentation level 2072a3713fSThomas Petazzoni */ 2172a3713fSThomas Petazzoni CP110_NAME: CP110_NAME { }; 2272a3713fSThomas Petazzoni}; 2372a3713fSThomas Petazzoni 2472a3713fSThomas Petazzoni&CP110_NAME { 2572a3713fSThomas Petazzoni #address-cells = <2>; 2672a3713fSThomas Petazzoni #size-cells = <2>; 2772a3713fSThomas Petazzoni compatible = "simple-bus"; 2872a3713fSThomas Petazzoni interrupt-parent = <&CP110_LABEL(icu)>; 2972a3713fSThomas Petazzoni ranges; 3072a3713fSThomas Petazzoni 3172a3713fSThomas Petazzoni config-space@CP110_BASE { 3272a3713fSThomas Petazzoni #address-cells = <1>; 3372a3713fSThomas Petazzoni #size-cells = <1>; 3472a3713fSThomas Petazzoni compatible = "simple-bus"; 3572a3713fSThomas Petazzoni ranges = <0x0 0x0 ADDRESSIFY(CP110_BASE) 0x2000000>; 3672a3713fSThomas Petazzoni 3772a3713fSThomas Petazzoni CP110_LABEL(ethernet): ethernet@0 { 3872a3713fSThomas Petazzoni compatible = "marvell,armada-7k-pp22"; 3972a3713fSThomas Petazzoni reg = <0x0 0x100000>, <0x129000 0xb000>; 4072a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 3>, <&CP110_LABEL(clk) 1 9>, 4172a3713fSThomas Petazzoni <&CP110_LABEL(clk) 1 5>, <&CP110_LABEL(clk) 1 18>; 4272a3713fSThomas Petazzoni clock-names = "pp_clk", "gop_clk", 4372a3713fSThomas Petazzoni "mg_clk", "axi_clk"; 4472a3713fSThomas Petazzoni marvell,system-controller = <&CP110_LABEL(syscon0)>; 4572a3713fSThomas Petazzoni status = "disabled"; 4672a3713fSThomas Petazzoni dma-coherent; 4772a3713fSThomas Petazzoni 4872a3713fSThomas Petazzoni CP110_LABEL(eth0): eth0 { 4972a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>, 5072a3713fSThomas Petazzoni <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>, 5172a3713fSThomas Petazzoni <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>, 5272a3713fSThomas Petazzoni <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>, 5372a3713fSThomas Petazzoni <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>, 5472a3713fSThomas Petazzoni <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>; 5572a3713fSThomas Petazzoni interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 5672a3713fSThomas Petazzoni "tx-cpu3", "rx-shared", "link"; 5772a3713fSThomas Petazzoni port-id = <0>; 5872a3713fSThomas Petazzoni gop-port-id = <0>; 5972a3713fSThomas Petazzoni status = "disabled"; 6072a3713fSThomas Petazzoni }; 6172a3713fSThomas Petazzoni 6272a3713fSThomas Petazzoni CP110_LABEL(eth1): eth1 { 6372a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>, 6472a3713fSThomas Petazzoni <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>, 6572a3713fSThomas Petazzoni <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>, 6672a3713fSThomas Petazzoni <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>, 6772a3713fSThomas Petazzoni <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>, 6872a3713fSThomas Petazzoni <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>; 6972a3713fSThomas Petazzoni interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 7072a3713fSThomas Petazzoni "tx-cpu3", "rx-shared", "link"; 7172a3713fSThomas Petazzoni port-id = <1>; 7272a3713fSThomas Petazzoni gop-port-id = <2>; 7372a3713fSThomas Petazzoni status = "disabled"; 7472a3713fSThomas Petazzoni }; 7572a3713fSThomas Petazzoni 7672a3713fSThomas Petazzoni CP110_LABEL(eth2): eth2 { 7772a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>, 7872a3713fSThomas Petazzoni <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>, 7972a3713fSThomas Petazzoni <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>, 8072a3713fSThomas Petazzoni <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>, 8172a3713fSThomas Petazzoni <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>, 8272a3713fSThomas Petazzoni <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>; 8372a3713fSThomas Petazzoni interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 8472a3713fSThomas Petazzoni "tx-cpu3", "rx-shared", "link"; 8572a3713fSThomas Petazzoni port-id = <2>; 8672a3713fSThomas Petazzoni gop-port-id = <3>; 8772a3713fSThomas Petazzoni status = "disabled"; 8872a3713fSThomas Petazzoni }; 8972a3713fSThomas Petazzoni }; 9072a3713fSThomas Petazzoni 9172a3713fSThomas Petazzoni CP110_LABEL(comphy): phy@120000 { 9272a3713fSThomas Petazzoni compatible = "marvell,comphy-cp110"; 9372a3713fSThomas Petazzoni reg = <0x120000 0x6000>; 9472a3713fSThomas Petazzoni marvell,system-controller = <&CP110_LABEL(syscon0)>; 9572a3713fSThomas Petazzoni #address-cells = <1>; 9672a3713fSThomas Petazzoni #size-cells = <0>; 9772a3713fSThomas Petazzoni 9872a3713fSThomas Petazzoni CP110_LABEL(comphy0): phy@0 { 9972a3713fSThomas Petazzoni reg = <0>; 10072a3713fSThomas Petazzoni #phy-cells = <1>; 10172a3713fSThomas Petazzoni }; 10272a3713fSThomas Petazzoni 10372a3713fSThomas Petazzoni CP110_LABEL(comphy1): phy@1 { 10472a3713fSThomas Petazzoni reg = <1>; 10572a3713fSThomas Petazzoni #phy-cells = <1>; 10672a3713fSThomas Petazzoni }; 10772a3713fSThomas Petazzoni 10872a3713fSThomas Petazzoni CP110_LABEL(comphy2): phy@2 { 10972a3713fSThomas Petazzoni reg = <2>; 11072a3713fSThomas Petazzoni #phy-cells = <1>; 11172a3713fSThomas Petazzoni }; 11272a3713fSThomas Petazzoni 11372a3713fSThomas Petazzoni CP110_LABEL(comphy3): phy@3 { 11472a3713fSThomas Petazzoni reg = <3>; 11572a3713fSThomas Petazzoni #phy-cells = <1>; 11672a3713fSThomas Petazzoni }; 11772a3713fSThomas Petazzoni 11872a3713fSThomas Petazzoni CP110_LABEL(comphy4): phy@4 { 11972a3713fSThomas Petazzoni reg = <4>; 12072a3713fSThomas Petazzoni #phy-cells = <1>; 12172a3713fSThomas Petazzoni }; 12272a3713fSThomas Petazzoni 12372a3713fSThomas Petazzoni CP110_LABEL(comphy5): phy@5 { 12472a3713fSThomas Petazzoni reg = <5>; 12572a3713fSThomas Petazzoni #phy-cells = <1>; 12672a3713fSThomas Petazzoni }; 12772a3713fSThomas Petazzoni }; 12872a3713fSThomas Petazzoni 12972a3713fSThomas Petazzoni CP110_LABEL(mdio): mdio@12a200 { 13072a3713fSThomas Petazzoni #address-cells = <1>; 13172a3713fSThomas Petazzoni #size-cells = <0>; 13272a3713fSThomas Petazzoni compatible = "marvell,orion-mdio"; 13372a3713fSThomas Petazzoni reg = <0x12a200 0x10>; 13472a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 9>, <&CP110_LABEL(clk) 1 5>, 13572a3713fSThomas Petazzoni <&CP110_LABEL(clk) 1 6>, <&CP110_LABEL(clk) 1 18>; 13672a3713fSThomas Petazzoni status = "disabled"; 13772a3713fSThomas Petazzoni }; 13872a3713fSThomas Petazzoni 13972a3713fSThomas Petazzoni CP110_LABEL(xmdio): mdio@12a600 { 14072a3713fSThomas Petazzoni #address-cells = <1>; 14172a3713fSThomas Petazzoni #size-cells = <0>; 14272a3713fSThomas Petazzoni compatible = "marvell,xmdio"; 14372a3713fSThomas Petazzoni reg = <0x12a600 0x10>; 14472a3713fSThomas Petazzoni status = "disabled"; 14572a3713fSThomas Petazzoni }; 14672a3713fSThomas Petazzoni 14772a3713fSThomas Petazzoni CP110_LABEL(icu): interrupt-controller@1e0000 { 14872a3713fSThomas Petazzoni compatible = "marvell,cp110-icu"; 14972a3713fSThomas Petazzoni reg = <0x1e0000 0x10>; 15072a3713fSThomas Petazzoni #interrupt-cells = <3>; 15172a3713fSThomas Petazzoni interrupt-controller; 15272a3713fSThomas Petazzoni msi-parent = <&gicp>; 15372a3713fSThomas Petazzoni }; 15472a3713fSThomas Petazzoni 15572a3713fSThomas Petazzoni CP110_LABEL(rtc): rtc@284000 { 15672a3713fSThomas Petazzoni compatible = "marvell,armada-8k-rtc"; 15772a3713fSThomas Petazzoni reg = <0x284000 0x20>, <0x284080 0x24>; 15872a3713fSThomas Petazzoni reg-names = "rtc", "rtc-soc"; 15972a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>; 16072a3713fSThomas Petazzoni }; 16172a3713fSThomas Petazzoni 16272a3713fSThomas Petazzoni CP110_LABEL(thermal): thermal@400078 { 16372a3713fSThomas Petazzoni compatible = "marvell,armada-cp110-thermal"; 16472a3713fSThomas Petazzoni reg = <0x400078 0x4>, 16572a3713fSThomas Petazzoni <0x400070 0x8>; 16672a3713fSThomas Petazzoni }; 16772a3713fSThomas Petazzoni 16872a3713fSThomas Petazzoni CP110_LABEL(syscon0): system-controller@440000 { 16972a3713fSThomas Petazzoni compatible = "syscon", "simple-mfd"; 17072a3713fSThomas Petazzoni reg = <0x440000 0x2000>; 17172a3713fSThomas Petazzoni 17272a3713fSThomas Petazzoni CP110_LABEL(clk): clock { 17372a3713fSThomas Petazzoni compatible = "marvell,cp110-clock"; 17472a3713fSThomas Petazzoni #clock-cells = <2>; 17572a3713fSThomas Petazzoni }; 17672a3713fSThomas Petazzoni 17772a3713fSThomas Petazzoni CP110_LABEL(gpio1): gpio@100 { 17872a3713fSThomas Petazzoni compatible = "marvell,armada-8k-gpio"; 17972a3713fSThomas Petazzoni offset = <0x100>; 18072a3713fSThomas Petazzoni ngpios = <32>; 18172a3713fSThomas Petazzoni gpio-controller; 18272a3713fSThomas Petazzoni #gpio-cells = <2>; 18372a3713fSThomas Petazzoni gpio-ranges = <&CP110_LABEL(pinctrl) 0 0 32>; 18472a3713fSThomas Petazzoni interrupt-controller; 18572a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 86 IRQ_TYPE_LEVEL_HIGH>, 18672a3713fSThomas Petazzoni <ICU_GRP_NSR 85 IRQ_TYPE_LEVEL_HIGH>, 18772a3713fSThomas Petazzoni <ICU_GRP_NSR 84 IRQ_TYPE_LEVEL_HIGH>, 18872a3713fSThomas Petazzoni <ICU_GRP_NSR 83 IRQ_TYPE_LEVEL_HIGH>; 18972a3713fSThomas Petazzoni status = "disabled"; 19072a3713fSThomas Petazzoni }; 19172a3713fSThomas Petazzoni 19272a3713fSThomas Petazzoni CP110_LABEL(gpio2): gpio@140 { 19372a3713fSThomas Petazzoni compatible = "marvell,armada-8k-gpio"; 19472a3713fSThomas Petazzoni offset = <0x140>; 19572a3713fSThomas Petazzoni ngpios = <31>; 19672a3713fSThomas Petazzoni gpio-controller; 19772a3713fSThomas Petazzoni #gpio-cells = <2>; 19872a3713fSThomas Petazzoni gpio-ranges = <&CP110_LABEL(pinctrl) 0 32 31>; 19972a3713fSThomas Petazzoni interrupt-controller; 20072a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 82 IRQ_TYPE_LEVEL_HIGH>, 20172a3713fSThomas Petazzoni <ICU_GRP_NSR 81 IRQ_TYPE_LEVEL_HIGH>, 20272a3713fSThomas Petazzoni <ICU_GRP_NSR 80 IRQ_TYPE_LEVEL_HIGH>, 20372a3713fSThomas Petazzoni <ICU_GRP_NSR 79 IRQ_TYPE_LEVEL_HIGH>; 20472a3713fSThomas Petazzoni status = "disabled"; 20572a3713fSThomas Petazzoni }; 20672a3713fSThomas Petazzoni }; 20772a3713fSThomas Petazzoni 20872a3713fSThomas Petazzoni CP110_LABEL(usb3_0): usb3@500000 { 20972a3713fSThomas Petazzoni compatible = "marvell,armada-8k-xhci", 21072a3713fSThomas Petazzoni "generic-xhci"; 21172a3713fSThomas Petazzoni reg = <0x500000 0x4000>; 21272a3713fSThomas Petazzoni dma-coherent; 21372a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 106 IRQ_TYPE_LEVEL_HIGH>; 21472a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 22>; 21572a3713fSThomas Petazzoni status = "disabled"; 21672a3713fSThomas Petazzoni }; 21772a3713fSThomas Petazzoni 21872a3713fSThomas Petazzoni CP110_LABEL(usb3_1): usb3@510000 { 21972a3713fSThomas Petazzoni compatible = "marvell,armada-8k-xhci", 22072a3713fSThomas Petazzoni "generic-xhci"; 22172a3713fSThomas Petazzoni reg = <0x510000 0x4000>; 22272a3713fSThomas Petazzoni dma-coherent; 22372a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 105 IRQ_TYPE_LEVEL_HIGH>; 22472a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 23>; 22572a3713fSThomas Petazzoni status = "disabled"; 22672a3713fSThomas Petazzoni }; 22772a3713fSThomas Petazzoni 22872a3713fSThomas Petazzoni CP110_LABEL(sata0): sata@540000 { 22972a3713fSThomas Petazzoni compatible = "marvell,armada-8k-ahci", 23072a3713fSThomas Petazzoni "generic-ahci"; 23172a3713fSThomas Petazzoni reg = <0x540000 0x30000>; 23272a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>; 23372a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 15>; 23472a3713fSThomas Petazzoni status = "disabled"; 23572a3713fSThomas Petazzoni }; 23672a3713fSThomas Petazzoni 23772a3713fSThomas Petazzoni CP110_LABEL(xor0): xor@6a0000 { 23872a3713fSThomas Petazzoni compatible = "marvell,armada-7k-xor", "marvell,xor-v2"; 23972a3713fSThomas Petazzoni reg = <0x6a0000 0x1000>, <0x6b0000 0x1000>; 24072a3713fSThomas Petazzoni dma-coherent; 24172a3713fSThomas Petazzoni msi-parent = <&gic_v2m0>; 24272a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 8>; 24372a3713fSThomas Petazzoni }; 24472a3713fSThomas Petazzoni 24572a3713fSThomas Petazzoni CP110_LABEL(xor1): xor@6c0000 { 24672a3713fSThomas Petazzoni compatible = "marvell,armada-7k-xor", "marvell,xor-v2"; 24772a3713fSThomas Petazzoni reg = <0x6c0000 0x1000>, <0x6d0000 0x1000>; 24872a3713fSThomas Petazzoni dma-coherent; 24972a3713fSThomas Petazzoni msi-parent = <&gic_v2m0>; 25072a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 7>; 25172a3713fSThomas Petazzoni }; 25272a3713fSThomas Petazzoni 25372a3713fSThomas Petazzoni CP110_LABEL(spi0): spi@700600 { 25472a3713fSThomas Petazzoni compatible = "marvell,armada-380-spi"; 25572a3713fSThomas Petazzoni reg = <0x700600 0x50>; 25672a3713fSThomas Petazzoni #address-cells = <0x1>; 25772a3713fSThomas Petazzoni #size-cells = <0x0>; 258a7cbf0b2SGregory CLEMENT clock-names = "core", "axi"; 259a7cbf0b2SGregory CLEMENT clocks = <&CP110_LABEL(clk) 1 21>, 260a7cbf0b2SGregory CLEMENT <&CP110_LABEL(clk) 1 17>; 26172a3713fSThomas Petazzoni status = "disabled"; 26272a3713fSThomas Petazzoni }; 26372a3713fSThomas Petazzoni 26472a3713fSThomas Petazzoni CP110_LABEL(spi1): spi@700680 { 26572a3713fSThomas Petazzoni compatible = "marvell,armada-380-spi"; 26672a3713fSThomas Petazzoni reg = <0x700680 0x50>; 26772a3713fSThomas Petazzoni #address-cells = <1>; 26872a3713fSThomas Petazzoni #size-cells = <0>; 269a7cbf0b2SGregory CLEMENT clock-names = "core", "axi"; 270a7cbf0b2SGregory CLEMENT clocks = <&CP110_LABEL(clk) 1 21>, 271a7cbf0b2SGregory CLEMENT <&CP110_LABEL(clk) 1 17>; 27272a3713fSThomas Petazzoni status = "disabled"; 27372a3713fSThomas Petazzoni }; 27472a3713fSThomas Petazzoni 27572a3713fSThomas Petazzoni CP110_LABEL(i2c0): i2c@701000 { 27672a3713fSThomas Petazzoni compatible = "marvell,mv78230-i2c"; 27772a3713fSThomas Petazzoni reg = <0x701000 0x20>; 27872a3713fSThomas Petazzoni #address-cells = <1>; 27972a3713fSThomas Petazzoni #size-cells = <0>; 28072a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 120 IRQ_TYPE_LEVEL_HIGH>; 281afe8e5a9SGregory CLEMENT clock-names = "core", "reg"; 282afe8e5a9SGregory CLEMENT clocks = <&CP110_LABEL(clk) 1 21>, 283afe8e5a9SGregory CLEMENT <&CP110_LABEL(clk) 1 17>; 28472a3713fSThomas Petazzoni status = "disabled"; 28572a3713fSThomas Petazzoni }; 28672a3713fSThomas Petazzoni 28772a3713fSThomas Petazzoni CP110_LABEL(i2c1): i2c@701100 { 28872a3713fSThomas Petazzoni compatible = "marvell,mv78230-i2c"; 28972a3713fSThomas Petazzoni reg = <0x701100 0x20>; 29072a3713fSThomas Petazzoni #address-cells = <1>; 29172a3713fSThomas Petazzoni #size-cells = <0>; 29272a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 121 IRQ_TYPE_LEVEL_HIGH>; 293afe8e5a9SGregory CLEMENT clock-names = "core", "reg"; 294afe8e5a9SGregory CLEMENT clocks = <&CP110_LABEL(clk) 1 21>, 295afe8e5a9SGregory CLEMENT <&CP110_LABEL(clk) 1 17>; 29672a3713fSThomas Petazzoni status = "disabled"; 29772a3713fSThomas Petazzoni }; 29872a3713fSThomas Petazzoni 299ff1c516eSBaruch Siach CP110_LABEL(uart0): serial@702000 { 300ff1c516eSBaruch Siach compatible = "snps,dw-apb-uart"; 301ff1c516eSBaruch Siach reg = <0x702000 0x100>; 302ff1c516eSBaruch Siach reg-shift = <2>; 303ff1c516eSBaruch Siach interrupts = <ICU_GRP_NSR 122 IRQ_TYPE_LEVEL_HIGH>; 304ff1c516eSBaruch Siach reg-io-width = <1>; 305ff1c516eSBaruch Siach clocks = <&CP110_LABEL(clk) 1 21>; 306ff1c516eSBaruch Siach status = "disabled"; 307ff1c516eSBaruch Siach }; 308ff1c516eSBaruch Siach 309ff1c516eSBaruch Siach CP110_LABEL(uart1): serial@702100 { 310ff1c516eSBaruch Siach compatible = "snps,dw-apb-uart"; 311ff1c516eSBaruch Siach reg = <0x702100 0x100>; 312ff1c516eSBaruch Siach reg-shift = <2>; 313ff1c516eSBaruch Siach interrupts = <ICU_GRP_NSR 123 IRQ_TYPE_LEVEL_HIGH>; 314ff1c516eSBaruch Siach reg-io-width = <1>; 315ff1c516eSBaruch Siach clocks = <&CP110_LABEL(clk) 1 21>; 316ff1c516eSBaruch Siach status = "disabled"; 317ff1c516eSBaruch Siach }; 318ff1c516eSBaruch Siach 319ff1c516eSBaruch Siach CP110_LABEL(uart2): serial@702200 { 320ff1c516eSBaruch Siach compatible = "snps,dw-apb-uart"; 321ff1c516eSBaruch Siach reg = <0x702200 0x100>; 322ff1c516eSBaruch Siach reg-shift = <2>; 323ff1c516eSBaruch Siach interrupts = <ICU_GRP_NSR 124 IRQ_TYPE_LEVEL_HIGH>; 324ff1c516eSBaruch Siach reg-io-width = <1>; 325ff1c516eSBaruch Siach clocks = <&CP110_LABEL(clk) 1 21>; 326ff1c516eSBaruch Siach status = "disabled"; 327ff1c516eSBaruch Siach }; 328ff1c516eSBaruch Siach 329ff1c516eSBaruch Siach CP110_LABEL(uart3): serial@702300 { 330ff1c516eSBaruch Siach compatible = "snps,dw-apb-uart"; 331ff1c516eSBaruch Siach reg = <0x702300 0x100>; 332ff1c516eSBaruch Siach reg-shift = <2>; 333ff1c516eSBaruch Siach interrupts = <ICU_GRP_NSR 125 IRQ_TYPE_LEVEL_HIGH>; 334ff1c516eSBaruch Siach reg-io-width = <1>; 335ff1c516eSBaruch Siach clocks = <&CP110_LABEL(clk) 1 21>; 336ff1c516eSBaruch Siach status = "disabled"; 337ff1c516eSBaruch Siach }; 338ff1c516eSBaruch Siach 33972a3713fSThomas Petazzoni CP110_LABEL(nand): nand@720000 { 34072a3713fSThomas Petazzoni /* 34172a3713fSThomas Petazzoni * Due to the limitation of the pins available 34272a3713fSThomas Petazzoni * this controller is only usable on the CPM 34372a3713fSThomas Petazzoni * for A7K and on the CPS for A8K. 34472a3713fSThomas Petazzoni */ 34572a3713fSThomas Petazzoni compatible = "marvell,armada-8k-nand", 34672a3713fSThomas Petazzoni "marvell,armada370-nand"; 34772a3713fSThomas Petazzoni reg = <0x720000 0x54>; 34872a3713fSThomas Petazzoni #address-cells = <1>; 34972a3713fSThomas Petazzoni #size-cells = <1>; 35072a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 115 IRQ_TYPE_LEVEL_HIGH>; 35172a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 2>; 35272a3713fSThomas Petazzoni marvell,system-controller = <&CP110_LABEL(syscon0)>; 35372a3713fSThomas Petazzoni status = "disabled"; 35472a3713fSThomas Petazzoni }; 35572a3713fSThomas Petazzoni 35672a3713fSThomas Petazzoni CP110_LABEL(trng): trng@760000 { 35772a3713fSThomas Petazzoni compatible = "marvell,armada-8k-rng", 35872a3713fSThomas Petazzoni "inside-secure,safexcel-eip76"; 35972a3713fSThomas Petazzoni reg = <0x760000 0x7d>; 36072a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 95 IRQ_TYPE_LEVEL_HIGH>; 36172a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 25>; 36272a3713fSThomas Petazzoni status = "okay"; 36372a3713fSThomas Petazzoni }; 36472a3713fSThomas Petazzoni 36572a3713fSThomas Petazzoni CP110_LABEL(sdhci0): sdhci@780000 { 36672a3713fSThomas Petazzoni compatible = "marvell,armada-cp110-sdhci"; 36772a3713fSThomas Petazzoni reg = <0x780000 0x300>; 36872a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 27 IRQ_TYPE_LEVEL_HIGH>; 36972a3713fSThomas Petazzoni clock-names = "core", "axi"; 37072a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 4>, <&CP110_LABEL(clk) 1 18>; 37172a3713fSThomas Petazzoni dma-coherent; 37272a3713fSThomas Petazzoni status = "disabled"; 37372a3713fSThomas Petazzoni }; 37472a3713fSThomas Petazzoni 37572a3713fSThomas Petazzoni CP110_LABEL(crypto): crypto@800000 { 37672a3713fSThomas Petazzoni compatible = "inside-secure,safexcel-eip197"; 37772a3713fSThomas Petazzoni reg = <0x800000 0x200000>; 37872a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 87 IRQ_TYPE_LEVEL_HIGH>, 37972a3713fSThomas Petazzoni <ICU_GRP_NSR 88 IRQ_TYPE_LEVEL_HIGH>, 38072a3713fSThomas Petazzoni <ICU_GRP_NSR 89 IRQ_TYPE_LEVEL_HIGH>, 38172a3713fSThomas Petazzoni <ICU_GRP_NSR 90 IRQ_TYPE_LEVEL_HIGH>, 38272a3713fSThomas Petazzoni <ICU_GRP_NSR 91 IRQ_TYPE_LEVEL_HIGH>, 38372a3713fSThomas Petazzoni <ICU_GRP_NSR 92 IRQ_TYPE_LEVEL_HIGH>; 38472a3713fSThomas Petazzoni interrupt-names = "mem", "ring0", "ring1", 38572a3713fSThomas Petazzoni "ring2", "ring3", "eip"; 38672a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 26>; 38772a3713fSThomas Petazzoni dma-coherent; 38872a3713fSThomas Petazzoni }; 38972a3713fSThomas Petazzoni }; 39072a3713fSThomas Petazzoni 39172a3713fSThomas Petazzoni CP110_LABEL(pcie0): pcie@CP110_PCIE0_BASE { 39272a3713fSThomas Petazzoni compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 39372a3713fSThomas Petazzoni reg = <0 ADDRESSIFY(CP110_PCIE0_BASE) 0 0x10000>, 39472a3713fSThomas Petazzoni <0 CP110_PCIEx_CONF_BASE(0) 0 0x80000>; 39572a3713fSThomas Petazzoni reg-names = "ctrl", "config"; 39672a3713fSThomas Petazzoni #address-cells = <3>; 39772a3713fSThomas Petazzoni #size-cells = <2>; 39872a3713fSThomas Petazzoni #interrupt-cells = <1>; 39972a3713fSThomas Petazzoni device_type = "pci"; 40072a3713fSThomas Petazzoni dma-coherent; 40172a3713fSThomas Petazzoni msi-parent = <&gic_v2m0>; 40272a3713fSThomas Petazzoni 40372a3713fSThomas Petazzoni bus-range = <0 0xff>; 40472a3713fSThomas Petazzoni ranges = 40572a3713fSThomas Petazzoni /* downstream I/O */ 40672a3713fSThomas Petazzoni <0x81000000 0 CP110_PCIEx_IO_BASE(0) 0 CP110_PCIEx_IO_BASE(0) 0 0x10000 40772a3713fSThomas Petazzoni /* non-prefetchable memory */ 40872a3713fSThomas Petazzoni 0x82000000 0 CP110_PCIEx_MEM_BASE(0) 0 CP110_PCIEx_MEM_BASE(0) 0 0xf00000>; 40972a3713fSThomas Petazzoni interrupt-map-mask = <0 0 0 0>; 41072a3713fSThomas Petazzoni interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 41172a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 41272a3713fSThomas Petazzoni num-lanes = <1>; 41372a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 13>; 41472a3713fSThomas Petazzoni status = "disabled"; 41572a3713fSThomas Petazzoni }; 41672a3713fSThomas Petazzoni 41772a3713fSThomas Petazzoni CP110_LABEL(pcie1): pcie@CP110_PCIE1_BASE { 41872a3713fSThomas Petazzoni compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 41972a3713fSThomas Petazzoni reg = <0 ADDRESSIFY(CP110_PCIE1_BASE) 0 0x10000>, 42072a3713fSThomas Petazzoni <0 CP110_PCIEx_CONF_BASE(1) 0 0x80000>; 42172a3713fSThomas Petazzoni reg-names = "ctrl", "config"; 42272a3713fSThomas Petazzoni #address-cells = <3>; 42372a3713fSThomas Petazzoni #size-cells = <2>; 42472a3713fSThomas Petazzoni #interrupt-cells = <1>; 42572a3713fSThomas Petazzoni device_type = "pci"; 42672a3713fSThomas Petazzoni dma-coherent; 42772a3713fSThomas Petazzoni msi-parent = <&gic_v2m0>; 42872a3713fSThomas Petazzoni 42972a3713fSThomas Petazzoni bus-range = <0 0xff>; 43072a3713fSThomas Petazzoni ranges = 43172a3713fSThomas Petazzoni /* downstream I/O */ 43272a3713fSThomas Petazzoni <0x81000000 0 CP110_PCIEx_IO_BASE(1) 0 CP110_PCIEx_IO_BASE(1) 0 0x10000 43372a3713fSThomas Petazzoni /* non-prefetchable memory */ 43472a3713fSThomas Petazzoni 0x82000000 0 CP110_PCIEx_MEM_BASE(1) 0 CP110_PCIEx_MEM_BASE(1) 0 0xf00000>; 43572a3713fSThomas Petazzoni interrupt-map-mask = <0 0 0 0>; 43672a3713fSThomas Petazzoni interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 43772a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 43872a3713fSThomas Petazzoni 43972a3713fSThomas Petazzoni num-lanes = <1>; 44072a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 11>; 44172a3713fSThomas Petazzoni status = "disabled"; 44272a3713fSThomas Petazzoni }; 44372a3713fSThomas Petazzoni 44472a3713fSThomas Petazzoni CP110_LABEL(pcie2): pcie@CP110_PCIE2_BASE { 44572a3713fSThomas Petazzoni compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 44672a3713fSThomas Petazzoni reg = <0 ADDRESSIFY(CP110_PCIE2_BASE) 0 0x10000>, 44772a3713fSThomas Petazzoni <0 CP110_PCIEx_CONF_BASE(2) 0 0x80000>; 44872a3713fSThomas Petazzoni reg-names = "ctrl", "config"; 44972a3713fSThomas Petazzoni #address-cells = <3>; 45072a3713fSThomas Petazzoni #size-cells = <2>; 45172a3713fSThomas Petazzoni #interrupt-cells = <1>; 45272a3713fSThomas Petazzoni device_type = "pci"; 45372a3713fSThomas Petazzoni dma-coherent; 45472a3713fSThomas Petazzoni msi-parent = <&gic_v2m0>; 45572a3713fSThomas Petazzoni 45672a3713fSThomas Petazzoni bus-range = <0 0xff>; 45772a3713fSThomas Petazzoni ranges = 45872a3713fSThomas Petazzoni /* downstream I/O */ 45972a3713fSThomas Petazzoni <0x81000000 0 CP110_PCIEx_IO_BASE(2) 0 CP110_PCIEx_IO_BASE(2) 0 0x10000 46072a3713fSThomas Petazzoni /* non-prefetchable memory */ 46172a3713fSThomas Petazzoni 0x82000000 0 CP110_PCIEx_MEM_BASE(2) 0 CP110_PCIEx_MEM_BASE(2) 0 0xf00000>; 46272a3713fSThomas Petazzoni interrupt-map-mask = <0 0 0 0>; 46372a3713fSThomas Petazzoni interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 46472a3713fSThomas Petazzoni interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 46572a3713fSThomas Petazzoni 46672a3713fSThomas Petazzoni num-lanes = <1>; 46772a3713fSThomas Petazzoni clocks = <&CP110_LABEL(clk) 1 12>; 46872a3713fSThomas Petazzoni status = "disabled"; 46972a3713fSThomas Petazzoni }; 47072a3713fSThomas Petazzoni}; 471