1292816a6SGregory CLEMENT// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2adbc3695SGregory CLEMENT/*
3adbc3695SGregory CLEMENT * Device Tree Include file for Marvell Armada 37xx family of SoCs.
4adbc3695SGregory CLEMENT *
5adbc3695SGregory CLEMENT * Copyright (C) 2016 Marvell
6adbc3695SGregory CLEMENT *
7adbc3695SGregory CLEMENT * Gregory CLEMENT <gregory.clement@free-electrons.com>
8adbc3695SGregory CLEMENT *
9adbc3695SGregory CLEMENT */
10adbc3695SGregory CLEMENT
11adbc3695SGregory CLEMENT#include <dt-bindings/interrupt-controller/arm-gic.h>
12adbc3695SGregory CLEMENT
13adbc3695SGregory CLEMENT/ {
14adbc3695SGregory CLEMENT	model = "Marvell Armada 37xx SoC";
15adbc3695SGregory CLEMENT	compatible = "marvell,armada3700";
16adbc3695SGregory CLEMENT	interrupt-parent = <&gic>;
17adbc3695SGregory CLEMENT	#address-cells = <2>;
18adbc3695SGregory CLEMENT	#size-cells = <2>;
19adbc3695SGregory CLEMENT
20adbc3695SGregory CLEMENT	aliases {
21adbc3695SGregory CLEMENT		serial0 = &uart0;
227c48dc20SMiquel Raynal		serial1 = &uart1;
23adbc3695SGregory CLEMENT	};
24adbc3695SGregory CLEMENT
254436a371SVictor Gu	reserved-memory {
264436a371SVictor Gu		#address-cells = <2>;
274436a371SVictor Gu		#size-cells = <2>;
284436a371SVictor Gu		ranges;
294436a371SVictor Gu
304436a371SVictor Gu		/*
314436a371SVictor Gu		 * The PSCI firmware region depicted below is the default one
324436a371SVictor Gu		 * and should be updated by the bootloader.
334436a371SVictor Gu		 */
344436a371SVictor Gu		psci-area@4000000 {
354436a371SVictor Gu			reg = <0 0x4000000 0 0x200000>;
364436a371SVictor Gu			no-map;
374436a371SVictor Gu		};
3899d2900fSKonstantin Porotchkin
3999d2900fSKonstantin Porotchkin		tee@4400000 {
4099d2900fSKonstantin Porotchkin			reg = <0 0x4400000 0 0x1000000>;
4199d2900fSKonstantin Porotchkin			no-map;
4299d2900fSKonstantin Porotchkin		};
434436a371SVictor Gu	};
444436a371SVictor Gu
45adbc3695SGregory CLEMENT	cpus {
46adbc3695SGregory CLEMENT		#address-cells = <1>;
47adbc3695SGregory CLEMENT		#size-cells = <0>;
4892e5d4e9SGregory CLEMENT		cpu0: cpu@0 {
49adbc3695SGregory CLEMENT			device_type = "cpu";
5031af04cdSRob Herring			compatible = "arm,cortex-a53";
51adbc3695SGregory CLEMENT			reg = <0>;
52e8d66e79SGregory CLEMENT			clocks = <&nb_periph_clk 16>;
53adbc3695SGregory CLEMENT			enable-method = "psci";
54adbc3695SGregory CLEMENT		};
55adbc3695SGregory CLEMENT	};
56adbc3695SGregory CLEMENT
57adbc3695SGregory CLEMENT	psci {
58adbc3695SGregory CLEMENT		compatible = "arm,psci-0.2";
59adbc3695SGregory CLEMENT		method = "smc";
60adbc3695SGregory CLEMENT	};
61adbc3695SGregory CLEMENT
62adbc3695SGregory CLEMENT	timer {
63adbc3695SGregory CLEMENT		compatible = "arm,armv8-timer";
6488cda007SMarc Zyngier		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
6588cda007SMarc Zyngier			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
6688cda007SMarc Zyngier			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
6788cda007SMarc Zyngier			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
68adbc3695SGregory CLEMENT	};
69adbc3695SGregory CLEMENT
70395e66baSMarc Zyngier	pmu {
71395e66baSMarc Zyngier		compatible = "arm,armv8-pmuv3";
72395e66baSMarc Zyngier		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
73395e66baSMarc Zyngier	};
74395e66baSMarc Zyngier
75adbc3695SGregory CLEMENT	soc {
76adbc3695SGregory CLEMENT		compatible = "simple-bus";
77adbc3695SGregory CLEMENT		#address-cells = <2>;
78adbc3695SGregory CLEMENT		#size-cells = <2>;
79adbc3695SGregory CLEMENT		ranges;
80adbc3695SGregory CLEMENT
81ee5d5619SGregory CLEMENT		internal-regs@d0000000 {
82adbc3695SGregory CLEMENT			#address-cells = <1>;
83adbc3695SGregory CLEMENT			#size-cells = <1>;
84adbc3695SGregory CLEMENT			compatible = "simple-bus";
85adbc3695SGregory CLEMENT			/* 32M internal register @ 0xd000_0000 */
86adbc3695SGregory CLEMENT			ranges = <0x0 0x0 0xd0000000 0x2000000>;
87adbc3695SGregory CLEMENT
88620cfb31SMarek Behún			wdt: watchdog@8300 {
89620cfb31SMarek Behún				compatible = "marvell,armada-3700-wdt";
90620cfb31SMarek Behún				reg = <0x8300 0x40>;
91620cfb31SMarek Behún				marvell,system-controller = <&cpu_misc>;
92620cfb31SMarek Behún				clocks = <&xtalclk>;
93620cfb31SMarek Behún			};
94620cfb31SMarek Behún
95620cfb31SMarek Behún			cpu_misc: system-controller@d000 {
96620cfb31SMarek Behún				compatible = "marvell,armada-3700-cpu-misc",
97620cfb31SMarek Behún					     "syscon";
98620cfb31SMarek Behún				reg = <0xd000 0x1000>;
99620cfb31SMarek Behún			};
100620cfb31SMarek Behún
101e09dfa8fSRomain Perier			spi0: spi@10600 {
102e09dfa8fSRomain Perier				compatible = "marvell,armada-3700-spi";
103e09dfa8fSRomain Perier				#address-cells = <1>;
104e09dfa8fSRomain Perier				#size-cells = <0>;
105e09dfa8fSRomain Perier				reg = <0x10600 0xA00>;
106e09dfa8fSRomain Perier				clocks = <&nb_periph_clk 7>;
107e09dfa8fSRomain Perier				interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
108e09dfa8fSRomain Perier				num-cs = <4>;
109e09dfa8fSRomain Perier				status = "disabled";
110e09dfa8fSRomain Perier			};
111e09dfa8fSRomain Perier
112c7d7ea67SRomain Perier			i2c0: i2c@11000 {
113c7d7ea67SRomain Perier				compatible = "marvell,armada-3700-i2c";
114c7d7ea67SRomain Perier				reg = <0x11000 0x24>;
1150ddd48deSGregory CLEMENT				#address-cells = <1>;
1160ddd48deSGregory CLEMENT				#size-cells = <0>;
117c7d7ea67SRomain Perier				clocks = <&nb_periph_clk 10>;
118c7d7ea67SRomain Perier				interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
119c7d7ea67SRomain Perier				mrvl,i2c-fast-mode;
120c7d7ea67SRomain Perier				status = "disabled";
121c7d7ea67SRomain Perier			};
122c7d7ea67SRomain Perier
123c7d7ea67SRomain Perier			i2c1: i2c@11080 {
124c7d7ea67SRomain Perier				compatible = "marvell,armada-3700-i2c";
125c7d7ea67SRomain Perier				reg = <0x11080 0x24>;
1260ddd48deSGregory CLEMENT				#address-cells = <1>;
1270ddd48deSGregory CLEMENT				#size-cells = <0>;
128c7d7ea67SRomain Perier				clocks = <&nb_periph_clk 9>;
129c7d7ea67SRomain Perier				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
130c7d7ea67SRomain Perier				mrvl,i2c-fast-mode;
131c7d7ea67SRomain Perier				status = "disabled";
132c7d7ea67SRomain Perier			};
133c7d7ea67SRomain Perier
134d970737fSGregory CLEMENT			avs: avs@11500 {
135d970737fSGregory CLEMENT				compatible = "marvell,armada-3700-avs",
136d970737fSGregory CLEMENT					     "syscon";
137d970737fSGregory CLEMENT				reg = <0x11500 0x40>;
138d970737fSGregory CLEMENT			};
139d970737fSGregory CLEMENT
140c77a6ac8SPali Rohár			uartclk: clock-controller@12010 {
141c77a6ac8SPali Rohár				compatible = "marvell,armada-3700-uart-clock";
142c77a6ac8SPali Rohár				reg = <0x12010 0x4>, <0x12210 0x4>;
143c77a6ac8SPali Rohár				clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
144c77a6ac8SPali Rohár					 <&tbg 3>, <&xtalclk>;
145c77a6ac8SPali Rohár				clock-names = "TBG-A-P", "TBG-B-P", "TBG-A-S",
146c77a6ac8SPali Rohár					      "TBG-B-S", "xtal";
147c77a6ac8SPali Rohár				#clock-cells = <1>;
148c77a6ac8SPali Rohár			};
149c77a6ac8SPali Rohár
150adbc3695SGregory CLEMENT			uart0: serial@12000 {
151adbc3695SGregory CLEMENT				compatible = "marvell,armada-3700-uart";
1522cbfdedeSPali Rohár				reg = <0x12000 0x18>;
153c77a6ac8SPali Rohár				clocks = <&uartclk 0>;
1547c48dc20SMiquel Raynal				interrupts =
1557c48dc20SMiquel Raynal				<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
1567c48dc20SMiquel Raynal				<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1577c48dc20SMiquel Raynal				<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1587c48dc20SMiquel Raynal				interrupt-names = "uart-sum", "uart-tx", "uart-rx";
1597c48dc20SMiquel Raynal				status = "disabled";
1607c48dc20SMiquel Raynal			};
1617c48dc20SMiquel Raynal
1627c48dc20SMiquel Raynal			uart1: serial@12200 {
1637c48dc20SMiquel Raynal				compatible = "marvell,armada-3700-uart-ext";
1647c48dc20SMiquel Raynal				reg = <0x12200 0x30>;
165c77a6ac8SPali Rohár				clocks = <&uartclk 1>;
1667c48dc20SMiquel Raynal				interrupts =
1677c48dc20SMiquel Raynal				<GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
1687c48dc20SMiquel Raynal				<GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
1697c48dc20SMiquel Raynal				interrupt-names = "uart-tx", "uart-rx";
170adbc3695SGregory CLEMENT				status = "disabled";
171adbc3695SGregory CLEMENT			};
172adbc3695SGregory CLEMENT
17329f0c9edSGregory CLEMENT			nb_periph_clk: nb-periph-clk@13000 {
1741d88358aSMarek Behún				compatible = "marvell,armada-3700-periph-clock-nb",
1751d88358aSMarek Behún					     "syscon";
1765f4beef6SGregory CLEMENT				reg = <0x13000 0x100>;
1775f4beef6SGregory CLEMENT				clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
1785f4beef6SGregory CLEMENT				<&tbg 3>, <&xtalclk>;
1795f4beef6SGregory CLEMENT				#clock-cells = <1>;
1805f4beef6SGregory CLEMENT			};
1815f4beef6SGregory CLEMENT
18229f0c9edSGregory CLEMENT			sb_periph_clk: sb-periph-clk@18000 {
1835f4beef6SGregory CLEMENT				compatible = "marvell,armada-3700-periph-clock-sb";
1845f4beef6SGregory CLEMENT				reg = <0x18000 0x100>;
1855f4beef6SGregory CLEMENT				clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
1865f4beef6SGregory CLEMENT				<&tbg 3>, <&xtalclk>;
1875f4beef6SGregory CLEMENT				#clock-cells = <1>;
1885f4beef6SGregory CLEMENT			};
1895f4beef6SGregory CLEMENT
190e3e1a55eSGregory CLEMENT			tbg: tbg@13200 {
191e3e1a55eSGregory CLEMENT				compatible = "marvell,armada-3700-tbg-clock";
192e3e1a55eSGregory CLEMENT				reg = <0x13200 0x100>;
193e3e1a55eSGregory CLEMENT				clocks = <&xtalclk>;
194e3e1a55eSGregory CLEMENT				#clock-cells = <1>;
195e3e1a55eSGregory CLEMENT			};
196e3e1a55eSGregory CLEMENT
197afda007fSGregory CLEMENT			pinctrl_nb: pinctrl@13800 {
198afda007fSGregory CLEMENT				compatible = "marvell,armada3710-nb-pinctrl",
199ddeba40bSGregory CLEMENT					     "syscon", "simple-mfd";
200afda007fSGregory CLEMENT				reg = <0x13800 0x100>, <0x13C00 0x20>;
201bd473ecdSUwe Kleine-König				/* MPP1[19:0] */
202afda007fSGregory CLEMENT				gpionb: gpio {
203afda007fSGregory CLEMENT					#gpio-cells = <2>;
204afda007fSGregory CLEMENT					gpio-ranges = <&pinctrl_nb 0 0 36>;
205afda007fSGregory CLEMENT					gpio-controller;
206bd473ecdSUwe Kleine-König					interrupt-controller;
207bd473ecdSUwe Kleine-König					#interrupt-cells = <2>;
208afda007fSGregory CLEMENT					interrupts =
209afda007fSGregory CLEMENT					<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
210afda007fSGregory CLEMENT					<GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
211afda007fSGregory CLEMENT					<GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
212afda007fSGregory CLEMENT					<GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
213afda007fSGregory CLEMENT					<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
214afda007fSGregory CLEMENT					<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
215afda007fSGregory CLEMENT					<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
216afda007fSGregory CLEMENT					<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
217afda007fSGregory CLEMENT					<GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
218afda007fSGregory CLEMENT					<GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
219afda007fSGregory CLEMENT					<GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
220afda007fSGregory CLEMENT					<GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
221afda007fSGregory CLEMENT				};
222ddeba40bSGregory CLEMENT
223ddeba40bSGregory CLEMENT				xtalclk: xtal-clk {
224ddeba40bSGregory CLEMENT					compatible = "marvell,armada-3700-xtal-clock";
225ddeba40bSGregory CLEMENT					clock-output-names = "xtal";
226ddeba40bSGregory CLEMENT					#clock-cells = <0>;
227ddeba40bSGregory CLEMENT				};
2286a680783SGregory CLEMENT
2296a680783SGregory CLEMENT				spi_quad_pins: spi-quad-pins {
2306a680783SGregory CLEMENT					groups = "spi_quad";
2316a680783SGregory CLEMENT					function = "spi";
2326a680783SGregory CLEMENT				};
2336a680783SGregory CLEMENT
2348ef75105SMarek Behún				spi_cs1_pins: spi-cs1-pins {
2358ef75105SMarek Behún					groups = "spi_cs1";
2368ef75105SMarek Behún					function = "spi";
2378ef75105SMarek Behún				};
2388ef75105SMarek Behún
2396a680783SGregory CLEMENT				i2c1_pins: i2c1-pins {
2406a680783SGregory CLEMENT					groups = "i2c1";
2416a680783SGregory CLEMENT					function = "i2c";
2426a680783SGregory CLEMENT				};
2436a680783SGregory CLEMENT
2446a680783SGregory CLEMENT				i2c2_pins: i2c2-pins {
2456a680783SGregory CLEMENT					groups = "i2c2";
2466a680783SGregory CLEMENT					function = "i2c";
2476a680783SGregory CLEMENT				};
2486a680783SGregory CLEMENT
2496a680783SGregory CLEMENT				uart1_pins: uart1-pins {
2506a680783SGregory CLEMENT					groups = "uart1";
2516a680783SGregory CLEMENT					function = "uart";
2526a680783SGregory CLEMENT				};
2536a680783SGregory CLEMENT
2546a680783SGregory CLEMENT				uart2_pins: uart2-pins {
2556a680783SGregory CLEMENT					groups = "uart2";
2566a680783SGregory CLEMENT					function = "uart";
2576a680783SGregory CLEMENT				};
258eefe3284SDing Tao
259eefe3284SDing Tao				mmc_pins: mmc-pins {
260eefe3284SDing Tao					groups = "emmc_nb";
261eefe3284SDing Tao					function = "emmc";
262eefe3284SDing Tao				};
263ddeba40bSGregory CLEMENT			};
264ddeba40bSGregory CLEMENT
265e8d66e79SGregory CLEMENT			nb_pm: syscon@14000 {
266e8d66e79SGregory CLEMENT				compatible = "marvell,armada-3700-nb-pm",
267e8d66e79SGregory CLEMENT					     "syscon";
268e8d66e79SGregory CLEMENT				reg = <0x14000 0x60>;
269e8d66e79SGregory CLEMENT			};
270e8d66e79SGregory CLEMENT
2712ef303f0SMiquel Raynal			comphy: phy@18300 {
2722ef303f0SMiquel Raynal				compatible = "marvell,comphy-a3700";
2732ef303f0SMiquel Raynal				reg = <0x18300 0x300>,
2742ef303f0SMiquel Raynal				      <0x1F000 0x400>,
2752ef303f0SMiquel Raynal				      <0x5C000 0x400>,
2762ef303f0SMiquel Raynal				      <0xe0178 0x8>;
2772ef303f0SMiquel Raynal				reg-names = "comphy",
2782ef303f0SMiquel Raynal					    "lane1_pcie_gbe",
2792ef303f0SMiquel Raynal					    "lane0_usb3_gbe",
2802ef303f0SMiquel Raynal					    "lane2_sata_usb3";
2812ef303f0SMiquel Raynal				#address-cells = <1>;
2822ef303f0SMiquel Raynal				#size-cells = <0>;
28373a78b61SPali Rohár				clocks = <&xtalclk>;
28473a78b61SPali Rohár				clock-names = "xtal";
2852ef303f0SMiquel Raynal
2862ef303f0SMiquel Raynal				comphy0: phy@0 {
2872ef303f0SMiquel Raynal					reg = <0>;
2882ef303f0SMiquel Raynal					#phy-cells = <1>;
2892ef303f0SMiquel Raynal				};
2902ef303f0SMiquel Raynal
2912ef303f0SMiquel Raynal				comphy1: phy@1 {
2922ef303f0SMiquel Raynal					reg = <1>;
2932ef303f0SMiquel Raynal					#phy-cells = <1>;
2942ef303f0SMiquel Raynal				};
2952ef303f0SMiquel Raynal
2962ef303f0SMiquel Raynal				comphy2: phy@2 {
2972ef303f0SMiquel Raynal					reg = <2>;
2982ef303f0SMiquel Raynal					#phy-cells = <1>;
2992ef303f0SMiquel Raynal				};
3002ef303f0SMiquel Raynal			};
3012ef303f0SMiquel Raynal
302afda007fSGregory CLEMENT			pinctrl_sb: pinctrl@18800 {
303afda007fSGregory CLEMENT				compatible = "marvell,armada3710-sb-pinctrl",
304afda007fSGregory CLEMENT					     "syscon", "simple-mfd";
305afda007fSGregory CLEMENT				reg = <0x18800 0x100>, <0x18C00 0x20>;
306bd473ecdSUwe Kleine-König				/* MPP2[23:0] */
307afda007fSGregory CLEMENT				gpiosb: gpio {
308afda007fSGregory CLEMENT					#gpio-cells = <2>;
309d7a65c49SGregory CLEMENT					gpio-ranges = <&pinctrl_sb 0 0 30>;
310afda007fSGregory CLEMENT					gpio-controller;
311bd473ecdSUwe Kleine-König					interrupt-controller;
312bd473ecdSUwe Kleine-König					#interrupt-cells = <2>;
313afda007fSGregory CLEMENT					interrupts =
314afda007fSGregory CLEMENT					<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
315afda007fSGregory CLEMENT					<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
316afda007fSGregory CLEMENT					<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
317afda007fSGregory CLEMENT					<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
318afda007fSGregory CLEMENT					<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
319afda007fSGregory CLEMENT				};
3206a680783SGregory CLEMENT
3216a680783SGregory CLEMENT				rgmii_pins: mii-pins {
3226a680783SGregory CLEMENT					groups = "rgmii";
3236a680783SGregory CLEMENT					function = "mii";
3246a680783SGregory CLEMENT				};
3256a680783SGregory CLEMENT
3264f63b1c3SRemi Pommarel				smi_pins: smi-pins {
3274f63b1c3SRemi Pommarel					groups = "smi";
3284f63b1c3SRemi Pommarel					function = "smi";
3294f63b1c3SRemi Pommarel				};
3304f63b1c3SRemi Pommarel
331eefe3284SDing Tao				sdio_pins: sdio-pins {
332eefe3284SDing Tao					groups = "sdio_sb";
333eefe3284SDing Tao					function = "sdio";
334eefe3284SDing Tao				};
335eefe3284SDing Tao
336a5470af9SMiquel Raynal				pcie_reset_pins: pcie-reset-pins {
3370c0a41fbSPali Rohár					groups = "pcie1"; /* this actually controls "pcie1_reset" */
33871587801SMarek Behún					function = "gpio";
339a5470af9SMiquel Raynal				};
340a5470af9SMiquel Raynal
341a5470af9SMiquel Raynal				pcie_clkreq_pins: pcie-clkreq-pins {
342a5470af9SMiquel Raynal					groups = "pcie1_clkreq";
343a5470af9SMiquel Raynal					function = "pcie";
344a5470af9SMiquel Raynal				};
34519b67d5cSGregory CLEMENT			};
34619b67d5cSGregory CLEMENT
347ea7ae885SGregory CLEMENT			eth0: ethernet@30000 {
348ea7ae885SGregory CLEMENT				   compatible = "marvell,armada-3700-neta";
349ea7ae885SGregory CLEMENT				   reg = <0x30000 0x4000>;
350ea7ae885SGregory CLEMENT				   interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
351ea7ae885SGregory CLEMENT				   clocks = <&sb_periph_clk 8>;
352ea7ae885SGregory CLEMENT				   status = "disabled";
353ea7ae885SGregory CLEMENT			};
354ea7ae885SGregory CLEMENT
355ea7ae885SGregory CLEMENT			mdio: mdio@32004 {
356ea7ae885SGregory CLEMENT				#address-cells = <1>;
357ea7ae885SGregory CLEMENT				#size-cells = <0>;
358ea7ae885SGregory CLEMENT				compatible = "marvell,orion-mdio";
359ea7ae885SGregory CLEMENT				reg = <0x32004 0x4>;
360ea7ae885SGregory CLEMENT			};
361ea7ae885SGregory CLEMENT
362ea7ae885SGregory CLEMENT			eth1: ethernet@40000 {
363ea7ae885SGregory CLEMENT				compatible = "marvell,armada-3700-neta";
364ea7ae885SGregory CLEMENT				reg = <0x40000 0x4000>;
365ea7ae885SGregory CLEMENT				interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
366ea7ae885SGregory CLEMENT				clocks = <&sb_periph_clk 7>;
367ea7ae885SGregory CLEMENT				status = "disabled";
368ea7ae885SGregory CLEMENT			};
369ea7ae885SGregory CLEMENT
370cc2684c4SAndreas Färber			usb3: usb@58000 {
371150fa112SGregory CLEMENT				compatible = "marvell,armada3700-xhci",
372150fa112SGregory CLEMENT				"generic-xhci";
373adbc3695SGregory CLEMENT				reg = <0x58000 0x4000>;
37405d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb32_syscon>;
37586fcb2bcSGregory CLEMENT				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
376e4afb480SGregory CLEMENT				clocks = <&sb_periph_clk 12>;
377bd3d25b0SMiquel Raynal				phys = <&comphy0 0>, <&usb2_utmi_otg_phy>;
378bd3d25b0SMiquel Raynal				phy-names = "usb3-phy", "usb2-utmi-otg-phy";
379adbc3695SGregory CLEMENT				status = "disabled";
380adbc3695SGregory CLEMENT			};
381adbc3695SGregory CLEMENT
38205d168a5SMiquel Raynal			usb2_utmi_otg_phy: phy@5d000 {
38305d168a5SMiquel Raynal				compatible = "marvell,a3700-utmi-otg-phy";
38405d168a5SMiquel Raynal				reg = <0x5d000 0x800>;
38505d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb32_syscon>;
38605d168a5SMiquel Raynal				#phy-cells = <0>;
38705d168a5SMiquel Raynal			};
38805d168a5SMiquel Raynal
38905d168a5SMiquel Raynal			usb32_syscon: system-controller@5d800 {
39005d168a5SMiquel Raynal				compatible = "marvell,armada-3700-usb2-host-device-misc",
39105d168a5SMiquel Raynal				"syscon";
39205d168a5SMiquel Raynal				reg = <0x5d800 0x800>;
39305d168a5SMiquel Raynal			};
39405d168a5SMiquel Raynal
3954fc056edSGregory CLEMENT			usb2: usb@5e000 {
3964fc056edSGregory CLEMENT				compatible = "marvell,armada-3700-ehci";
397b3ad58bcSMiquel Raynal				reg = <0x5e000 0x1000>;
39805d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb2_syscon>;
3994fc056edSGregory CLEMENT				interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
400bd3d25b0SMiquel Raynal				phys = <&usb2_utmi_host_phy>;
401bd3d25b0SMiquel Raynal				phy-names = "usb2-utmi-host-phy";
4024fc056edSGregory CLEMENT				status = "disabled";
4034fc056edSGregory CLEMENT			};
4044fc056edSGregory CLEMENT
40505d168a5SMiquel Raynal			usb2_utmi_host_phy: phy@5f000 {
40605d168a5SMiquel Raynal				compatible = "marvell,a3700-utmi-host-phy";
40705d168a5SMiquel Raynal				reg = <0x5f000 0x800>;
40805d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb2_syscon>;
40905d168a5SMiquel Raynal				#phy-cells = <0>;
41005d168a5SMiquel Raynal			};
41105d168a5SMiquel Raynal
41205d168a5SMiquel Raynal			usb2_syscon: system-controller@5f800 {
41305d168a5SMiquel Raynal				compatible = "marvell,armada-3700-usb2-host-misc",
41405d168a5SMiquel Raynal				"syscon";
41505d168a5SMiquel Raynal				reg = <0x5f800 0x800>;
41605d168a5SMiquel Raynal			};
41705d168a5SMiquel Raynal
41819b67d5cSGregory CLEMENT			xor@60900 {
41919b67d5cSGregory CLEMENT				compatible = "marvell,armada-3700-xor";
420e9bfac54SGregory CLEMENT				reg = <0x60900 0x100>,
421e9bfac54SGregory CLEMENT				      <0x60b00 0x100>;
42219b67d5cSGregory CLEMENT
42319b67d5cSGregory CLEMENT				xor10 {
42419b67d5cSGregory CLEMENT					interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
42519b67d5cSGregory CLEMENT				};
42619b67d5cSGregory CLEMENT				xor11 {
42719b67d5cSGregory CLEMENT					interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
42819b67d5cSGregory CLEMENT				};
42919b67d5cSGregory CLEMENT			};
43019b67d5cSGregory CLEMENT
431e2707a28SAntoine Tenart			crypto: crypto@90000 {
432c462f6c7SAntoine Tenart				compatible = "inside-secure,safexcel-eip97ies";
433e2707a28SAntoine Tenart				reg = <0x90000 0x20000>;
434*d6433a9cSRafał Miłecki				interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
435e2707a28SAntoine Tenart					     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
436e2707a28SAntoine Tenart					     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
437e2707a28SAntoine Tenart					     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
438*d6433a9cSRafał Miłecki					     <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
439*d6433a9cSRafał Miłecki					     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
440*d6433a9cSRafał Miłecki				interrupt-names = "ring0", "ring1", "ring2",
441*d6433a9cSRafał Miłecki						  "ring3", "eip", "mem";
442e2707a28SAntoine Tenart				clocks = <&nb_periph_clk 15>;
443e2707a28SAntoine Tenart			};
444e2707a28SAntoine Tenart
445535462c2SMarek Behún			rwtm: mailbox@b0000 {
446535462c2SMarek Behún				compatible = "marvell,armada-3700-rwtm-mailbox";
447535462c2SMarek Behún				reg = <0xb0000 0x100>;
448535462c2SMarek Behún				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
449535462c2SMarek Behún				#mbox-cells = <1>;
450535462c2SMarek Behún			};
451535462c2SMarek Behún
452239466bdSChris Packham			sdhci1: mmc@d0000 {
4531208d2f0SKonstantin Porotchkin				compatible = "marvell,armada-3700-sdhci",
4541208d2f0SKonstantin Porotchkin					     "marvell,sdhci-xenon";
4551208d2f0SKonstantin Porotchkin				reg = <0xd0000 0x300>,
4561208d2f0SKonstantin Porotchkin				      <0x1e808 0x4>;
4571208d2f0SKonstantin Porotchkin				interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
4581208d2f0SKonstantin Porotchkin				clocks = <&nb_periph_clk 0>;
4591208d2f0SKonstantin Porotchkin				clock-names = "core";
4601208d2f0SKonstantin Porotchkin				status = "disabled";
4611208d2f0SKonstantin Porotchkin			};
4621208d2f0SKonstantin Porotchkin
463239466bdSChris Packham			sdhci0: mmc@d8000 {
46453e74778SGregory CLEMENT				compatible = "marvell,armada-3700-sdhci",
46553e74778SGregory CLEMENT					     "marvell,sdhci-xenon";
466e9bfac54SGregory CLEMENT				reg = <0xd8000 0x300>,
467e9bfac54SGregory CLEMENT				      <0x17808 0x4>;
46853e74778SGregory CLEMENT				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
46953e74778SGregory CLEMENT				clocks = <&nb_periph_clk 0>;
47053e74778SGregory CLEMENT				clock-names = "core";
47153e74778SGregory CLEMENT				status = "disabled";
47253e74778SGregory CLEMENT			};
47353e74778SGregory CLEMENT
4747b01cff5SAndreas Färber			sata: sata@e0000 {
475adbc3695SGregory CLEMENT				compatible = "marvell,armada-3700-ahci";
476d68def52SMiquel Raynal				reg = <0xe0000 0x178>;
477adbc3695SGregory CLEMENT				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
47802967b85SMiquel Raynal				clocks = <&nb_periph_clk 1>;
4796ece0f7dSPali Rohár				phys = <&comphy2 0>;
4806ece0f7dSPali Rohár				phy-names = "sata-phy";
481adbc3695SGregory CLEMENT				status = "disabled";
482adbc3695SGregory CLEMENT			};
483adbc3695SGregory CLEMENT
484adbc3695SGregory CLEMENT			gic: interrupt-controller@1d00000 {
485adbc3695SGregory CLEMENT				compatible = "arm,gic-v3";
486adbc3695SGregory CLEMENT				#interrupt-cells = <3>;
487adbc3695SGregory CLEMENT				interrupt-controller;
488adbc3695SGregory CLEMENT				reg = <0x1d00000 0x10000>, /* GICD */
4895f926e88SMarc Zyngier				      <0x1d40000 0x40000>, /* GICR */
4905f926e88SMarc Zyngier				      <0x1d80000 0x2000>,  /* GICC */
4915f926e88SMarc Zyngier				      <0x1d90000 0x2000>,  /* GICH */
4925f926e88SMarc Zyngier				      <0x1da0000 0x20000>; /* GICV */
49395696d29SMarc Zyngier				interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
494adbc3695SGregory CLEMENT			};
495adbc3695SGregory CLEMENT		};
49676f6386bSThomas Petazzoni
49776f6386bSThomas Petazzoni		pcie0: pcie@d0070000 {
49876f6386bSThomas Petazzoni			compatible = "marvell,armada-3700-pcie";
49976f6386bSThomas Petazzoni			device_type = "pci";
50076f6386bSThomas Petazzoni			status = "disabled";
50176f6386bSThomas Petazzoni			reg = <0 0xd0070000 0 0x20000>;
50276f6386bSThomas Petazzoni			#address-cells = <3>;
50376f6386bSThomas Petazzoni			#size-cells = <2>;
50476f6386bSThomas Petazzoni			bus-range = <0x00 0xff>;
50576f6386bSThomas Petazzoni			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
50676f6386bSThomas Petazzoni			#interrupt-cells = <1>;
5075344930cSMarek Behún			clocks = <&sb_periph_clk 13>;
50876f6386bSThomas Petazzoni			msi-parent = <&pcie0>;
50976f6386bSThomas Petazzoni			msi-controller;
510514ef1e6SPali Rohár			/*
511514ef1e6SPali Rohár			 * The 128 MiB address range [0xe8000000-0xf0000000] is
512514ef1e6SPali Rohár			 * dedicated for PCIe and can be assigned to 8 windows
513514ef1e6SPali Rohár			 * with size a power of two. Use one 64 KiB window for
514514ef1e6SPali Rohár			 * IO at the end and the remaining seven windows
515514ef1e6SPali Rohár			 * (totaling 127 MiB) for MEM.
516514ef1e6SPali Rohár			 */
517514ef1e6SPali Rohár			ranges = <0x82000000 0 0xe8000000   0 0xe8000000   0 0x07f00000   /* Port 0 MEM */
518a1cc1697SPali Rohár				  0x81000000 0 0x00000000   0 0xefff0000   0 0x00010000>; /* Port 0 IO */
51976f6386bSThomas Petazzoni			interrupt-map-mask = <0 0 0 7>;
52076f6386bSThomas Petazzoni			interrupt-map = <0 0 0 1 &pcie_intc 0>,
52176f6386bSThomas Petazzoni					<0 0 0 2 &pcie_intc 1>,
52276f6386bSThomas Petazzoni					<0 0 0 3 &pcie_intc 2>,
52376f6386bSThomas Petazzoni					<0 0 0 4 &pcie_intc 3>;
5241b5a2dd9SPali Rohár			max-link-speed = <2>;
525df749cdbSMarek Behún			phys = <&comphy1 0>;
52676f6386bSThomas Petazzoni			pcie_intc: interrupt-controller {
52776f6386bSThomas Petazzoni				interrupt-controller;
52876f6386bSThomas Petazzoni				#interrupt-cells = <1>;
52976f6386bSThomas Petazzoni			};
53076f6386bSThomas Petazzoni		};
531adbc3695SGregory CLEMENT	};
5323a52a489SPali Rohár
5333a52a489SPali Rohár	firmware {
5343a52a489SPali Rohár		armada-3700-rwtm {
5353a52a489SPali Rohár			compatible = "marvell,armada-3700-rwtm-firmware";
5363a52a489SPali Rohár			mboxes = <&rwtm 0>;
5373a52a489SPali Rohár			status = "okay";
5383a52a489SPali Rohár		};
5393a52a489SPali Rohár	};
540adbc3695SGregory CLEMENT};
541