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