172a3713fSThomas Petazzoni// SPDX-License-Identifier: (GPL-2.0+ OR X11)
272a3713fSThomas Petazzoni/*
372a3713fSThomas Petazzoni * Copyright (C) 2016 Marvell Technology Group Ltd.
472a3713fSThomas Petazzoni */
572a3713fSThomas Petazzoni
672a3713fSThomas Petazzoni/*
772a3713fSThomas Petazzoni * Device Tree file for Marvell Armada CP110.
872a3713fSThomas Petazzoni */
972a3713fSThomas Petazzoni
1072a3713fSThomas Petazzoni#include <dt-bindings/interrupt-controller/mvebu-icu.h>
1172a3713fSThomas Petazzoni
1272a3713fSThomas Petazzoni#include "armada-common.dtsi"
1372a3713fSThomas Petazzoni
1472a3713fSThomas Petazzoni#define CP110_PCIEx_IO_BASE(iface)	(CP110_PCIE_IO_BASE + (iface *  0x10000))
1572a3713fSThomas Petazzoni#define CP110_PCIEx_MEM_BASE(iface)	(CP110_PCIE_MEM_BASE + (iface *  0x1000000))
1672a3713fSThomas Petazzoni#define CP110_PCIEx_CONF_BASE(iface)	(CP110_PCIEx_MEM_BASE(iface) + 0xf00000)
1772a3713fSThomas Petazzoni
1872a3713fSThomas Petazzoni/ {
1972a3713fSThomas Petazzoni	/*
2072a3713fSThomas Petazzoni	 * The contents of the node are defined below, in order to
2172a3713fSThomas Petazzoni	 * save one indentation level
2272a3713fSThomas Petazzoni	 */
2372a3713fSThomas Petazzoni	CP110_NAME: CP110_NAME { };
2472a3713fSThomas Petazzoni};
2572a3713fSThomas Petazzoni
2672a3713fSThomas Petazzoni&CP110_NAME {
2772a3713fSThomas Petazzoni	#address-cells = <2>;
2872a3713fSThomas Petazzoni	#size-cells = <2>;
2972a3713fSThomas Petazzoni	compatible = "simple-bus";
3072a3713fSThomas Petazzoni	interrupt-parent = <&CP110_LABEL(icu)>;
3172a3713fSThomas Petazzoni	ranges;
3272a3713fSThomas Petazzoni
3372a3713fSThomas Petazzoni	config-space@CP110_BASE {
3472a3713fSThomas Petazzoni		#address-cells = <1>;
3572a3713fSThomas Petazzoni		#size-cells = <1>;
3672a3713fSThomas Petazzoni		compatible = "simple-bus";
3772a3713fSThomas Petazzoni		ranges = <0x0 0x0 ADDRESSIFY(CP110_BASE) 0x2000000>;
3872a3713fSThomas Petazzoni
3972a3713fSThomas Petazzoni		CP110_LABEL(ethernet): ethernet@0 {
4072a3713fSThomas Petazzoni			compatible = "marvell,armada-7k-pp22";
4172a3713fSThomas Petazzoni			reg = <0x0 0x100000>, <0x129000 0xb000>;
4272a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 3>, <&CP110_LABEL(clk) 1 9>,
4372a3713fSThomas Petazzoni				 <&CP110_LABEL(clk) 1 5>, <&CP110_LABEL(clk) 1 18>;
4472a3713fSThomas Petazzoni			clock-names = "pp_clk", "gop_clk",
4572a3713fSThomas Petazzoni				      "mg_clk", "axi_clk";
4672a3713fSThomas Petazzoni			marvell,system-controller = <&CP110_LABEL(syscon0)>;
4772a3713fSThomas Petazzoni			status = "disabled";
4872a3713fSThomas Petazzoni			dma-coherent;
4972a3713fSThomas Petazzoni
5072a3713fSThomas Petazzoni			CP110_LABEL(eth0): eth0 {
5172a3713fSThomas Petazzoni				interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>,
5272a3713fSThomas Petazzoni					<ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
5372a3713fSThomas Petazzoni					<ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
5472a3713fSThomas Petazzoni					<ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
5572a3713fSThomas Petazzoni					<ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>,
5672a3713fSThomas Petazzoni					<ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>;
5772a3713fSThomas Petazzoni				interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
5872a3713fSThomas Petazzoni					"tx-cpu3", "rx-shared", "link";
5972a3713fSThomas Petazzoni				port-id = <0>;
6072a3713fSThomas Petazzoni				gop-port-id = <0>;
6172a3713fSThomas Petazzoni				status = "disabled";
6272a3713fSThomas Petazzoni			};
6372a3713fSThomas Petazzoni
6472a3713fSThomas Petazzoni			CP110_LABEL(eth1): eth1 {
6572a3713fSThomas Petazzoni				interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>,
6672a3713fSThomas Petazzoni					<ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
6772a3713fSThomas Petazzoni					<ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
6872a3713fSThomas Petazzoni					<ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
6972a3713fSThomas Petazzoni					<ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>,
7072a3713fSThomas Petazzoni					<ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>;
7172a3713fSThomas Petazzoni				interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
7272a3713fSThomas Petazzoni					"tx-cpu3", "rx-shared", "link";
7372a3713fSThomas Petazzoni				port-id = <1>;
7472a3713fSThomas Petazzoni				gop-port-id = <2>;
7572a3713fSThomas Petazzoni				status = "disabled";
7672a3713fSThomas Petazzoni			};
7772a3713fSThomas Petazzoni
7872a3713fSThomas Petazzoni			CP110_LABEL(eth2): eth2 {
7972a3713fSThomas Petazzoni				interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>,
8072a3713fSThomas Petazzoni					<ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
8172a3713fSThomas Petazzoni					<ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
8272a3713fSThomas Petazzoni					<ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
8372a3713fSThomas Petazzoni					<ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>,
8472a3713fSThomas Petazzoni					<ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>;
8572a3713fSThomas Petazzoni				interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
8672a3713fSThomas Petazzoni					"tx-cpu3", "rx-shared", "link";
8772a3713fSThomas Petazzoni				port-id = <2>;
8872a3713fSThomas Petazzoni				gop-port-id = <3>;
8972a3713fSThomas Petazzoni				status = "disabled";
9072a3713fSThomas Petazzoni			};
9172a3713fSThomas Petazzoni		};
9272a3713fSThomas Petazzoni
9372a3713fSThomas Petazzoni		CP110_LABEL(comphy): phy@120000 {
9472a3713fSThomas Petazzoni			compatible = "marvell,comphy-cp110";
9572a3713fSThomas Petazzoni			reg = <0x120000 0x6000>;
9672a3713fSThomas Petazzoni			marvell,system-controller = <&CP110_LABEL(syscon0)>;
9772a3713fSThomas Petazzoni			#address-cells = <1>;
9872a3713fSThomas Petazzoni			#size-cells = <0>;
9972a3713fSThomas Petazzoni
10072a3713fSThomas Petazzoni			CP110_LABEL(comphy0): phy@0 {
10172a3713fSThomas Petazzoni				reg = <0>;
10272a3713fSThomas Petazzoni				#phy-cells = <1>;
10372a3713fSThomas Petazzoni			};
10472a3713fSThomas Petazzoni
10572a3713fSThomas Petazzoni			CP110_LABEL(comphy1): phy@1 {
10672a3713fSThomas Petazzoni				reg = <1>;
10772a3713fSThomas Petazzoni				#phy-cells = <1>;
10872a3713fSThomas Petazzoni			};
10972a3713fSThomas Petazzoni
11072a3713fSThomas Petazzoni			CP110_LABEL(comphy2): phy@2 {
11172a3713fSThomas Petazzoni				reg = <2>;
11272a3713fSThomas Petazzoni				#phy-cells = <1>;
11372a3713fSThomas Petazzoni			};
11472a3713fSThomas Petazzoni
11572a3713fSThomas Petazzoni			CP110_LABEL(comphy3): phy@3 {
11672a3713fSThomas Petazzoni				reg = <3>;
11772a3713fSThomas Petazzoni				#phy-cells = <1>;
11872a3713fSThomas Petazzoni			};
11972a3713fSThomas Petazzoni
12072a3713fSThomas Petazzoni			CP110_LABEL(comphy4): phy@4 {
12172a3713fSThomas Petazzoni				reg = <4>;
12272a3713fSThomas Petazzoni				#phy-cells = <1>;
12372a3713fSThomas Petazzoni			};
12472a3713fSThomas Petazzoni
12572a3713fSThomas Petazzoni			CP110_LABEL(comphy5): phy@5 {
12672a3713fSThomas Petazzoni				reg = <5>;
12772a3713fSThomas Petazzoni				#phy-cells = <1>;
12872a3713fSThomas Petazzoni			};
12972a3713fSThomas Petazzoni		};
13072a3713fSThomas Petazzoni
13172a3713fSThomas Petazzoni		CP110_LABEL(mdio): mdio@12a200 {
13272a3713fSThomas Petazzoni			#address-cells = <1>;
13372a3713fSThomas Petazzoni			#size-cells = <0>;
13472a3713fSThomas Petazzoni			compatible = "marvell,orion-mdio";
13572a3713fSThomas Petazzoni			reg = <0x12a200 0x10>;
13672a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 9>, <&CP110_LABEL(clk) 1 5>,
13772a3713fSThomas Petazzoni				 <&CP110_LABEL(clk) 1 6>, <&CP110_LABEL(clk) 1 18>;
13872a3713fSThomas Petazzoni			status = "disabled";
13972a3713fSThomas Petazzoni		};
14072a3713fSThomas Petazzoni
14172a3713fSThomas Petazzoni		CP110_LABEL(xmdio): mdio@12a600 {
14272a3713fSThomas Petazzoni			#address-cells = <1>;
14372a3713fSThomas Petazzoni			#size-cells = <0>;
14472a3713fSThomas Petazzoni			compatible = "marvell,xmdio";
14572a3713fSThomas Petazzoni			reg = <0x12a600 0x10>;
14672a3713fSThomas Petazzoni			status = "disabled";
14772a3713fSThomas Petazzoni		};
14872a3713fSThomas Petazzoni
14972a3713fSThomas Petazzoni		CP110_LABEL(icu): interrupt-controller@1e0000 {
15072a3713fSThomas Petazzoni			compatible = "marvell,cp110-icu";
15172a3713fSThomas Petazzoni			reg = <0x1e0000 0x10>;
15272a3713fSThomas Petazzoni			#interrupt-cells = <3>;
15372a3713fSThomas Petazzoni			interrupt-controller;
15472a3713fSThomas Petazzoni			msi-parent = <&gicp>;
15572a3713fSThomas Petazzoni		};
15672a3713fSThomas Petazzoni
15772a3713fSThomas Petazzoni		CP110_LABEL(rtc): rtc@284000 {
15872a3713fSThomas Petazzoni			compatible = "marvell,armada-8k-rtc";
15972a3713fSThomas Petazzoni			reg = <0x284000 0x20>, <0x284080 0x24>;
16072a3713fSThomas Petazzoni			reg-names = "rtc", "rtc-soc";
16172a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>;
16272a3713fSThomas Petazzoni		};
16372a3713fSThomas Petazzoni
16472a3713fSThomas Petazzoni		CP110_LABEL(thermal): thermal@400078 {
16572a3713fSThomas Petazzoni			compatible = "marvell,armada-cp110-thermal";
16672a3713fSThomas Petazzoni			reg = <0x400078 0x4>,
16772a3713fSThomas Petazzoni			<0x400070 0x8>;
16872a3713fSThomas Petazzoni		};
16972a3713fSThomas Petazzoni
17072a3713fSThomas Petazzoni		CP110_LABEL(syscon0): system-controller@440000 {
17172a3713fSThomas Petazzoni			compatible = "syscon", "simple-mfd";
17272a3713fSThomas Petazzoni			reg = <0x440000 0x2000>;
17372a3713fSThomas Petazzoni
17472a3713fSThomas Petazzoni			CP110_LABEL(clk): clock {
17572a3713fSThomas Petazzoni				compatible = "marvell,cp110-clock";
17672a3713fSThomas Petazzoni				#clock-cells = <2>;
17772a3713fSThomas Petazzoni			};
17872a3713fSThomas Petazzoni
17972a3713fSThomas Petazzoni			CP110_LABEL(gpio1): gpio@100 {
18072a3713fSThomas Petazzoni				compatible = "marvell,armada-8k-gpio";
18172a3713fSThomas Petazzoni				offset = <0x100>;
18272a3713fSThomas Petazzoni				ngpios = <32>;
18372a3713fSThomas Petazzoni				gpio-controller;
18472a3713fSThomas Petazzoni				#gpio-cells = <2>;
18572a3713fSThomas Petazzoni				gpio-ranges = <&CP110_LABEL(pinctrl) 0 0 32>;
18672a3713fSThomas Petazzoni				interrupt-controller;
18772a3713fSThomas Petazzoni				interrupts = <ICU_GRP_NSR 86 IRQ_TYPE_LEVEL_HIGH>,
18872a3713fSThomas Petazzoni					<ICU_GRP_NSR 85 IRQ_TYPE_LEVEL_HIGH>,
18972a3713fSThomas Petazzoni					<ICU_GRP_NSR 84 IRQ_TYPE_LEVEL_HIGH>,
19072a3713fSThomas Petazzoni					<ICU_GRP_NSR 83 IRQ_TYPE_LEVEL_HIGH>;
19172a3713fSThomas Petazzoni				status = "disabled";
19272a3713fSThomas Petazzoni			};
19372a3713fSThomas Petazzoni
19472a3713fSThomas Petazzoni			CP110_LABEL(gpio2): gpio@140 {
19572a3713fSThomas Petazzoni				compatible = "marvell,armada-8k-gpio";
19672a3713fSThomas Petazzoni				offset = <0x140>;
19772a3713fSThomas Petazzoni				ngpios = <31>;
19872a3713fSThomas Petazzoni				gpio-controller;
19972a3713fSThomas Petazzoni				#gpio-cells = <2>;
20072a3713fSThomas Petazzoni				gpio-ranges = <&CP110_LABEL(pinctrl) 0 32 31>;
20172a3713fSThomas Petazzoni				interrupt-controller;
20272a3713fSThomas Petazzoni				interrupts = <ICU_GRP_NSR 82 IRQ_TYPE_LEVEL_HIGH>,
20372a3713fSThomas Petazzoni					<ICU_GRP_NSR 81 IRQ_TYPE_LEVEL_HIGH>,
20472a3713fSThomas Petazzoni					<ICU_GRP_NSR 80 IRQ_TYPE_LEVEL_HIGH>,
20572a3713fSThomas Petazzoni					<ICU_GRP_NSR 79 IRQ_TYPE_LEVEL_HIGH>;
20672a3713fSThomas Petazzoni				status = "disabled";
20772a3713fSThomas Petazzoni			};
20872a3713fSThomas Petazzoni		};
20972a3713fSThomas Petazzoni
21072a3713fSThomas Petazzoni		CP110_LABEL(usb3_0): usb3@500000 {
21172a3713fSThomas Petazzoni			compatible = "marvell,armada-8k-xhci",
21272a3713fSThomas Petazzoni			"generic-xhci";
21372a3713fSThomas Petazzoni			reg = <0x500000 0x4000>;
21472a3713fSThomas Petazzoni			dma-coherent;
21572a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 106 IRQ_TYPE_LEVEL_HIGH>;
21672a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 22>;
21772a3713fSThomas Petazzoni			status = "disabled";
21872a3713fSThomas Petazzoni		};
21972a3713fSThomas Petazzoni
22072a3713fSThomas Petazzoni		CP110_LABEL(usb3_1): usb3@510000 {
22172a3713fSThomas Petazzoni			compatible = "marvell,armada-8k-xhci",
22272a3713fSThomas Petazzoni			"generic-xhci";
22372a3713fSThomas Petazzoni			reg = <0x510000 0x4000>;
22472a3713fSThomas Petazzoni			dma-coherent;
22572a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 105 IRQ_TYPE_LEVEL_HIGH>;
22672a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 23>;
22772a3713fSThomas Petazzoni			status = "disabled";
22872a3713fSThomas Petazzoni		};
22972a3713fSThomas Petazzoni
23072a3713fSThomas Petazzoni		CP110_LABEL(sata0): sata@540000 {
23172a3713fSThomas Petazzoni			compatible = "marvell,armada-8k-ahci",
23272a3713fSThomas Petazzoni			"generic-ahci";
23372a3713fSThomas Petazzoni			reg = <0x540000 0x30000>;
23472a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>;
23572a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 15>;
23672a3713fSThomas Petazzoni			status = "disabled";
23772a3713fSThomas Petazzoni		};
23872a3713fSThomas Petazzoni
23972a3713fSThomas Petazzoni		CP110_LABEL(xor0): xor@6a0000 {
24072a3713fSThomas Petazzoni			compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
24172a3713fSThomas Petazzoni			reg = <0x6a0000 0x1000>, <0x6b0000 0x1000>;
24272a3713fSThomas Petazzoni			dma-coherent;
24372a3713fSThomas Petazzoni			msi-parent = <&gic_v2m0>;
24472a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 8>;
24572a3713fSThomas Petazzoni		};
24672a3713fSThomas Petazzoni
24772a3713fSThomas Petazzoni		CP110_LABEL(xor1): xor@6c0000 {
24872a3713fSThomas Petazzoni			compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
24972a3713fSThomas Petazzoni			reg = <0x6c0000 0x1000>, <0x6d0000 0x1000>;
25072a3713fSThomas Petazzoni			dma-coherent;
25172a3713fSThomas Petazzoni			msi-parent = <&gic_v2m0>;
25272a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 7>;
25372a3713fSThomas Petazzoni		};
25472a3713fSThomas Petazzoni
25572a3713fSThomas Petazzoni		CP110_LABEL(spi0): spi@700600 {
25672a3713fSThomas Petazzoni			compatible = "marvell,armada-380-spi";
25772a3713fSThomas Petazzoni			reg = <0x700600 0x50>;
25872a3713fSThomas Petazzoni			#address-cells = <0x1>;
25972a3713fSThomas Petazzoni			#size-cells = <0x0>;
26072a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 21>;
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>;
26972a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 21>;
27072a3713fSThomas Petazzoni			status = "disabled";
27172a3713fSThomas Petazzoni		};
27272a3713fSThomas Petazzoni
27372a3713fSThomas Petazzoni		CP110_LABEL(i2c0): i2c@701000 {
27472a3713fSThomas Petazzoni			compatible = "marvell,mv78230-i2c";
27572a3713fSThomas Petazzoni			reg = <0x701000 0x20>;
27672a3713fSThomas Petazzoni			#address-cells = <1>;
27772a3713fSThomas Petazzoni			#size-cells = <0>;
27872a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 120 IRQ_TYPE_LEVEL_HIGH>;
27972a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 21>;
28072a3713fSThomas Petazzoni			status = "disabled";
28172a3713fSThomas Petazzoni		};
28272a3713fSThomas Petazzoni
28372a3713fSThomas Petazzoni		CP110_LABEL(i2c1): i2c@701100 {
28472a3713fSThomas Petazzoni			compatible = "marvell,mv78230-i2c";
28572a3713fSThomas Petazzoni			reg = <0x701100 0x20>;
28672a3713fSThomas Petazzoni			#address-cells = <1>;
28772a3713fSThomas Petazzoni			#size-cells = <0>;
28872a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 121 IRQ_TYPE_LEVEL_HIGH>;
28972a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 21>;
29072a3713fSThomas Petazzoni			status = "disabled";
29172a3713fSThomas Petazzoni		};
29272a3713fSThomas Petazzoni
29372a3713fSThomas Petazzoni		CP110_LABEL(nand): nand@720000 {
29472a3713fSThomas Petazzoni			/*
29572a3713fSThomas Petazzoni			* Due to the limitation of the pins available
29672a3713fSThomas Petazzoni			* this controller is only usable on the CPM
29772a3713fSThomas Petazzoni			* for A7K and on the CPS for A8K.
29872a3713fSThomas Petazzoni			*/
29972a3713fSThomas Petazzoni			compatible = "marvell,armada-8k-nand",
30072a3713fSThomas Petazzoni			"marvell,armada370-nand";
30172a3713fSThomas Petazzoni			reg = <0x720000 0x54>;
30272a3713fSThomas Petazzoni			#address-cells = <1>;
30372a3713fSThomas Petazzoni			#size-cells = <1>;
30472a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 115 IRQ_TYPE_LEVEL_HIGH>;
30572a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 2>;
30672a3713fSThomas Petazzoni			marvell,system-controller = <&CP110_LABEL(syscon0)>;
30772a3713fSThomas Petazzoni			status = "disabled";
30872a3713fSThomas Petazzoni		};
30972a3713fSThomas Petazzoni
31072a3713fSThomas Petazzoni		CP110_LABEL(trng): trng@760000 {
31172a3713fSThomas Petazzoni			compatible = "marvell,armada-8k-rng",
31272a3713fSThomas Petazzoni			"inside-secure,safexcel-eip76";
31372a3713fSThomas Petazzoni			reg = <0x760000 0x7d>;
31472a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 95 IRQ_TYPE_LEVEL_HIGH>;
31572a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 25>;
31672a3713fSThomas Petazzoni			status = "okay";
31772a3713fSThomas Petazzoni		};
31872a3713fSThomas Petazzoni
31972a3713fSThomas Petazzoni		CP110_LABEL(sdhci0): sdhci@780000 {
32072a3713fSThomas Petazzoni			compatible = "marvell,armada-cp110-sdhci";
32172a3713fSThomas Petazzoni			reg = <0x780000 0x300>;
32272a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 27 IRQ_TYPE_LEVEL_HIGH>;
32372a3713fSThomas Petazzoni			clock-names = "core", "axi";
32472a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 4>, <&CP110_LABEL(clk) 1 18>;
32572a3713fSThomas Petazzoni			dma-coherent;
32672a3713fSThomas Petazzoni			status = "disabled";
32772a3713fSThomas Petazzoni		};
32872a3713fSThomas Petazzoni
32972a3713fSThomas Petazzoni		CP110_LABEL(crypto): crypto@800000 {
33072a3713fSThomas Petazzoni			compatible = "inside-secure,safexcel-eip197";
33172a3713fSThomas Petazzoni			reg = <0x800000 0x200000>;
33272a3713fSThomas Petazzoni			interrupts = <ICU_GRP_NSR 87 IRQ_TYPE_LEVEL_HIGH>,
33372a3713fSThomas Petazzoni				<ICU_GRP_NSR 88 IRQ_TYPE_LEVEL_HIGH>,
33472a3713fSThomas Petazzoni				<ICU_GRP_NSR 89 IRQ_TYPE_LEVEL_HIGH>,
33572a3713fSThomas Petazzoni				<ICU_GRP_NSR 90 IRQ_TYPE_LEVEL_HIGH>,
33672a3713fSThomas Petazzoni				<ICU_GRP_NSR 91 IRQ_TYPE_LEVEL_HIGH>,
33772a3713fSThomas Petazzoni				<ICU_GRP_NSR 92 IRQ_TYPE_LEVEL_HIGH>;
33872a3713fSThomas Petazzoni			interrupt-names = "mem", "ring0", "ring1",
33972a3713fSThomas Petazzoni				"ring2", "ring3", "eip";
34072a3713fSThomas Petazzoni			clocks = <&CP110_LABEL(clk) 1 26>;
34172a3713fSThomas Petazzoni			dma-coherent;
34272a3713fSThomas Petazzoni		};
34372a3713fSThomas Petazzoni	};
34472a3713fSThomas Petazzoni
34572a3713fSThomas Petazzoni	CP110_LABEL(pcie0): pcie@CP110_PCIE0_BASE {
34672a3713fSThomas Petazzoni		compatible = "marvell,armada8k-pcie", "snps,dw-pcie";
34772a3713fSThomas Petazzoni		reg = <0 ADDRESSIFY(CP110_PCIE0_BASE) 0 0x10000>,
34872a3713fSThomas Petazzoni		      <0 CP110_PCIEx_CONF_BASE(0) 0 0x80000>;
34972a3713fSThomas Petazzoni		reg-names = "ctrl", "config";
35072a3713fSThomas Petazzoni		#address-cells = <3>;
35172a3713fSThomas Petazzoni		#size-cells = <2>;
35272a3713fSThomas Petazzoni		#interrupt-cells = <1>;
35372a3713fSThomas Petazzoni		device_type = "pci";
35472a3713fSThomas Petazzoni		dma-coherent;
35572a3713fSThomas Petazzoni		msi-parent = <&gic_v2m0>;
35672a3713fSThomas Petazzoni
35772a3713fSThomas Petazzoni		bus-range = <0 0xff>;
35872a3713fSThomas Petazzoni		ranges =
35972a3713fSThomas Petazzoni		/* downstream I/O */
36072a3713fSThomas Petazzoni		<0x81000000 0 CP110_PCIEx_IO_BASE(0) 0  CP110_PCIEx_IO_BASE(0) 0 0x10000
36172a3713fSThomas Petazzoni		/* non-prefetchable memory */
36272a3713fSThomas Petazzoni		0x82000000 0 CP110_PCIEx_MEM_BASE(0) 0  CP110_PCIEx_MEM_BASE(0) 0 0xf00000>;
36372a3713fSThomas Petazzoni		interrupt-map-mask = <0 0 0 0>;
36472a3713fSThomas Petazzoni		interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>;
36572a3713fSThomas Petazzoni		interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>;
36672a3713fSThomas Petazzoni		num-lanes = <1>;
36772a3713fSThomas Petazzoni		clocks = <&CP110_LABEL(clk) 1 13>;
36872a3713fSThomas Petazzoni		status = "disabled";
36972a3713fSThomas Petazzoni	};
37072a3713fSThomas Petazzoni
37172a3713fSThomas Petazzoni	CP110_LABEL(pcie1): pcie@CP110_PCIE1_BASE {
37272a3713fSThomas Petazzoni		compatible = "marvell,armada8k-pcie", "snps,dw-pcie";
37372a3713fSThomas Petazzoni		reg = <0 ADDRESSIFY(CP110_PCIE1_BASE) 0 0x10000>,
37472a3713fSThomas Petazzoni		      <0 CP110_PCIEx_CONF_BASE(1) 0 0x80000>;
37572a3713fSThomas Petazzoni		reg-names = "ctrl", "config";
37672a3713fSThomas Petazzoni		#address-cells = <3>;
37772a3713fSThomas Petazzoni		#size-cells = <2>;
37872a3713fSThomas Petazzoni		#interrupt-cells = <1>;
37972a3713fSThomas Petazzoni		device_type = "pci";
38072a3713fSThomas Petazzoni		dma-coherent;
38172a3713fSThomas Petazzoni		msi-parent = <&gic_v2m0>;
38272a3713fSThomas Petazzoni
38372a3713fSThomas Petazzoni		bus-range = <0 0xff>;
38472a3713fSThomas Petazzoni		ranges =
38572a3713fSThomas Petazzoni		/* downstream I/O */
38672a3713fSThomas Petazzoni		<0x81000000 0 CP110_PCIEx_IO_BASE(1) 0  CP110_PCIEx_IO_BASE(1) 0 0x10000
38772a3713fSThomas Petazzoni		/* non-prefetchable memory */
38872a3713fSThomas Petazzoni		0x82000000 0 CP110_PCIEx_MEM_BASE(1) 0  CP110_PCIEx_MEM_BASE(1) 0 0xf00000>;
38972a3713fSThomas Petazzoni		interrupt-map-mask = <0 0 0 0>;
39072a3713fSThomas Petazzoni		interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>;
39172a3713fSThomas Petazzoni		interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>;
39272a3713fSThomas Petazzoni
39372a3713fSThomas Petazzoni		num-lanes = <1>;
39472a3713fSThomas Petazzoni		clocks = <&CP110_LABEL(clk) 1 11>;
39572a3713fSThomas Petazzoni		status = "disabled";
39672a3713fSThomas Petazzoni	};
39772a3713fSThomas Petazzoni
39872a3713fSThomas Petazzoni	CP110_LABEL(pcie2): pcie@CP110_PCIE2_BASE {
39972a3713fSThomas Petazzoni		compatible = "marvell,armada8k-pcie", "snps,dw-pcie";
40072a3713fSThomas Petazzoni		reg = <0 ADDRESSIFY(CP110_PCIE2_BASE) 0 0x10000>,
40172a3713fSThomas Petazzoni		      <0 CP110_PCIEx_CONF_BASE(2) 0 0x80000>;
40272a3713fSThomas Petazzoni		reg-names = "ctrl", "config";
40372a3713fSThomas Petazzoni		#address-cells = <3>;
40472a3713fSThomas Petazzoni		#size-cells = <2>;
40572a3713fSThomas Petazzoni		#interrupt-cells = <1>;
40672a3713fSThomas Petazzoni		device_type = "pci";
40772a3713fSThomas Petazzoni		dma-coherent;
40872a3713fSThomas Petazzoni		msi-parent = <&gic_v2m0>;
40972a3713fSThomas Petazzoni
41072a3713fSThomas Petazzoni		bus-range = <0 0xff>;
41172a3713fSThomas Petazzoni		ranges =
41272a3713fSThomas Petazzoni		/* downstream I/O */
41372a3713fSThomas Petazzoni		<0x81000000 0 CP110_PCIEx_IO_BASE(2) 0  CP110_PCIEx_IO_BASE(2) 0 0x10000
41472a3713fSThomas Petazzoni		/* non-prefetchable memory */
41572a3713fSThomas Petazzoni		0x82000000 0 CP110_PCIEx_MEM_BASE(2) 0  CP110_PCIEx_MEM_BASE(2) 0 0xf00000>;
41672a3713fSThomas Petazzoni		interrupt-map-mask = <0 0 0 0>;
41772a3713fSThomas Petazzoni		interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>;
41872a3713fSThomas Petazzoni		interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>;
41972a3713fSThomas Petazzoni
42072a3713fSThomas Petazzoni		num-lanes = <1>;
42172a3713fSThomas Petazzoni		clocks = <&CP110_LABEL(clk) 1 12>;
42272a3713fSThomas Petazzoni		status = "disabled";
42372a3713fSThomas Petazzoni	};
42472a3713fSThomas Petazzoni};
425