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		};
384436a371SVictor Gu	};
394436a371SVictor Gu
40adbc3695SGregory CLEMENT	cpus {
41adbc3695SGregory CLEMENT		#address-cells = <1>;
42adbc3695SGregory CLEMENT		#size-cells = <0>;
4392e5d4e9SGregory CLEMENT		cpu0: cpu@0 {
44adbc3695SGregory CLEMENT			device_type = "cpu";
4531af04cdSRob Herring			compatible = "arm,cortex-a53";
46adbc3695SGregory CLEMENT			reg = <0>;
47e8d66e79SGregory CLEMENT			clocks = <&nb_periph_clk 16>;
48adbc3695SGregory CLEMENT			enable-method = "psci";
49adbc3695SGregory CLEMENT		};
50adbc3695SGregory CLEMENT	};
51adbc3695SGregory CLEMENT
52adbc3695SGregory CLEMENT	psci {
53adbc3695SGregory CLEMENT		compatible = "arm,psci-0.2";
54adbc3695SGregory CLEMENT		method = "smc";
55adbc3695SGregory CLEMENT	};
56adbc3695SGregory CLEMENT
57adbc3695SGregory CLEMENT	timer {
58adbc3695SGregory CLEMENT		compatible = "arm,armv8-timer";
5988cda007SMarc Zyngier		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
6088cda007SMarc Zyngier			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
6188cda007SMarc Zyngier			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
6288cda007SMarc Zyngier			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
63adbc3695SGregory CLEMENT	};
64adbc3695SGregory CLEMENT
65395e66baSMarc Zyngier	pmu {
66395e66baSMarc Zyngier		compatible = "arm,armv8-pmuv3";
67395e66baSMarc Zyngier		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
68395e66baSMarc Zyngier	};
69395e66baSMarc Zyngier
70adbc3695SGregory CLEMENT	soc {
71adbc3695SGregory CLEMENT		compatible = "simple-bus";
72adbc3695SGregory CLEMENT		#address-cells = <2>;
73adbc3695SGregory CLEMENT		#size-cells = <2>;
74adbc3695SGregory CLEMENT		ranges;
75adbc3695SGregory CLEMENT
76ee5d5619SGregory CLEMENT		internal-regs@d0000000 {
77adbc3695SGregory CLEMENT			#address-cells = <1>;
78adbc3695SGregory CLEMENT			#size-cells = <1>;
79adbc3695SGregory CLEMENT			compatible = "simple-bus";
80adbc3695SGregory CLEMENT			/* 32M internal register @ 0xd000_0000 */
81adbc3695SGregory CLEMENT			ranges = <0x0 0x0 0xd0000000 0x2000000>;
82adbc3695SGregory CLEMENT
83620cfb31SMarek Behún			wdt: watchdog@8300 {
84620cfb31SMarek Behún				compatible = "marvell,armada-3700-wdt";
85620cfb31SMarek Behún				reg = <0x8300 0x40>;
86620cfb31SMarek Behún				marvell,system-controller = <&cpu_misc>;
87620cfb31SMarek Behún				clocks = <&xtalclk>;
88620cfb31SMarek Behún			};
89620cfb31SMarek Behún
90620cfb31SMarek Behún			cpu_misc: system-controller@d000 {
91620cfb31SMarek Behún				compatible = "marvell,armada-3700-cpu-misc",
92620cfb31SMarek Behún					     "syscon";
93620cfb31SMarek Behún				reg = <0xd000 0x1000>;
94620cfb31SMarek Behún			};
95620cfb31SMarek Behún
96e09dfa8fSRomain Perier			spi0: spi@10600 {
97e09dfa8fSRomain Perier				compatible = "marvell,armada-3700-spi";
98e09dfa8fSRomain Perier				#address-cells = <1>;
99e09dfa8fSRomain Perier				#size-cells = <0>;
100e09dfa8fSRomain Perier				reg = <0x10600 0xA00>;
101e09dfa8fSRomain Perier				clocks = <&nb_periph_clk 7>;
102e09dfa8fSRomain Perier				interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
103e09dfa8fSRomain Perier				num-cs = <4>;
104e09dfa8fSRomain Perier				status = "disabled";
105e09dfa8fSRomain Perier			};
106e09dfa8fSRomain Perier
107c7d7ea67SRomain Perier			i2c0: i2c@11000 {
108c7d7ea67SRomain Perier				compatible = "marvell,armada-3700-i2c";
109c7d7ea67SRomain Perier				reg = <0x11000 0x24>;
1100ddd48deSGregory CLEMENT				#address-cells = <1>;
1110ddd48deSGregory CLEMENT				#size-cells = <0>;
112c7d7ea67SRomain Perier				clocks = <&nb_periph_clk 10>;
113c7d7ea67SRomain Perier				interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
114c7d7ea67SRomain Perier				mrvl,i2c-fast-mode;
115c7d7ea67SRomain Perier				status = "disabled";
116c7d7ea67SRomain Perier			};
117c7d7ea67SRomain Perier
118c7d7ea67SRomain Perier			i2c1: i2c@11080 {
119c7d7ea67SRomain Perier				compatible = "marvell,armada-3700-i2c";
120c7d7ea67SRomain Perier				reg = <0x11080 0x24>;
1210ddd48deSGregory CLEMENT				#address-cells = <1>;
1220ddd48deSGregory CLEMENT				#size-cells = <0>;
123c7d7ea67SRomain Perier				clocks = <&nb_periph_clk 9>;
124c7d7ea67SRomain Perier				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
125c7d7ea67SRomain Perier				mrvl,i2c-fast-mode;
126c7d7ea67SRomain Perier				status = "disabled";
127c7d7ea67SRomain Perier			};
128c7d7ea67SRomain Perier
129d970737fSGregory CLEMENT			avs: avs@11500 {
130d970737fSGregory CLEMENT				compatible = "marvell,armada-3700-avs",
131d970737fSGregory CLEMENT					     "syscon";
132d970737fSGregory CLEMENT				reg = <0x11500 0x40>;
133d970737fSGregory CLEMENT			};
134d970737fSGregory CLEMENT
135adbc3695SGregory CLEMENT			uart0: serial@12000 {
136adbc3695SGregory CLEMENT				compatible = "marvell,armada-3700-uart";
1372cbfdedeSPali Rohár				reg = <0x12000 0x18>;
1382ff0d0b5SMiquel Raynal				clocks = <&xtalclk>;
1397c48dc20SMiquel Raynal				interrupts =
1407c48dc20SMiquel Raynal				<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
1417c48dc20SMiquel Raynal				<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
1427c48dc20SMiquel Raynal				<GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1437c48dc20SMiquel Raynal				interrupt-names = "uart-sum", "uart-tx", "uart-rx";
1447c48dc20SMiquel Raynal				status = "disabled";
1457c48dc20SMiquel Raynal			};
1467c48dc20SMiquel Raynal
1477c48dc20SMiquel Raynal			uart1: serial@12200 {
1487c48dc20SMiquel Raynal				compatible = "marvell,armada-3700-uart-ext";
1497c48dc20SMiquel Raynal				reg = <0x12200 0x30>;
1507c48dc20SMiquel Raynal				clocks = <&xtalclk>;
1517c48dc20SMiquel Raynal				interrupts =
1527c48dc20SMiquel Raynal				<GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
1537c48dc20SMiquel Raynal				<GIC_SPI 31 IRQ_TYPE_EDGE_RISING>;
1547c48dc20SMiquel Raynal				interrupt-names = "uart-tx", "uart-rx";
155adbc3695SGregory CLEMENT				status = "disabled";
156adbc3695SGregory CLEMENT			};
157adbc3695SGregory CLEMENT
15829f0c9edSGregory CLEMENT			nb_periph_clk: nb-periph-clk@13000 {
1591d88358aSMarek Behún				compatible = "marvell,armada-3700-periph-clock-nb",
1601d88358aSMarek Behún					     "syscon";
1615f4beef6SGregory CLEMENT				reg = <0x13000 0x100>;
1625f4beef6SGregory CLEMENT				clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
1635f4beef6SGregory CLEMENT				<&tbg 3>, <&xtalclk>;
1645f4beef6SGregory CLEMENT				#clock-cells = <1>;
1655f4beef6SGregory CLEMENT			};
1665f4beef6SGregory CLEMENT
16729f0c9edSGregory CLEMENT			sb_periph_clk: sb-periph-clk@18000 {
1685f4beef6SGregory CLEMENT				compatible = "marvell,armada-3700-periph-clock-sb";
1695f4beef6SGregory CLEMENT				reg = <0x18000 0x100>;
1705f4beef6SGregory CLEMENT				clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>,
1715f4beef6SGregory CLEMENT				<&tbg 3>, <&xtalclk>;
1725f4beef6SGregory CLEMENT				#clock-cells = <1>;
1735f4beef6SGregory CLEMENT			};
1745f4beef6SGregory CLEMENT
175e3e1a55eSGregory CLEMENT			tbg: tbg@13200 {
176e3e1a55eSGregory CLEMENT				compatible = "marvell,armada-3700-tbg-clock";
177e3e1a55eSGregory CLEMENT				reg = <0x13200 0x100>;
178e3e1a55eSGregory CLEMENT				clocks = <&xtalclk>;
179e3e1a55eSGregory CLEMENT				#clock-cells = <1>;
180e3e1a55eSGregory CLEMENT			};
181e3e1a55eSGregory CLEMENT
182afda007fSGregory CLEMENT			pinctrl_nb: pinctrl@13800 {
183afda007fSGregory CLEMENT				compatible = "marvell,armada3710-nb-pinctrl",
184ddeba40bSGregory CLEMENT					     "syscon", "simple-mfd";
185afda007fSGregory CLEMENT				reg = <0x13800 0x100>, <0x13C00 0x20>;
186bd473ecdSUwe Kleine-König				/* MPP1[19:0] */
187afda007fSGregory CLEMENT				gpionb: gpio {
188afda007fSGregory CLEMENT					#gpio-cells = <2>;
189afda007fSGregory CLEMENT					gpio-ranges = <&pinctrl_nb 0 0 36>;
190afda007fSGregory CLEMENT					gpio-controller;
191bd473ecdSUwe Kleine-König					interrupt-controller;
192bd473ecdSUwe Kleine-König					#interrupt-cells = <2>;
193afda007fSGregory CLEMENT					interrupts =
194afda007fSGregory CLEMENT					<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
195afda007fSGregory CLEMENT					<GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
196afda007fSGregory CLEMENT					<GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
197afda007fSGregory CLEMENT					<GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
198afda007fSGregory CLEMENT					<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
199afda007fSGregory CLEMENT					<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
200afda007fSGregory CLEMENT					<GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
201afda007fSGregory CLEMENT					<GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
202afda007fSGregory CLEMENT					<GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
203afda007fSGregory CLEMENT					<GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
204afda007fSGregory CLEMENT					<GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
205afda007fSGregory CLEMENT					<GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
206afda007fSGregory CLEMENT				};
207ddeba40bSGregory CLEMENT
208ddeba40bSGregory CLEMENT				xtalclk: xtal-clk {
209ddeba40bSGregory CLEMENT					compatible = "marvell,armada-3700-xtal-clock";
210ddeba40bSGregory CLEMENT					clock-output-names = "xtal";
211ddeba40bSGregory CLEMENT					#clock-cells = <0>;
212ddeba40bSGregory CLEMENT				};
2136a680783SGregory CLEMENT
2146a680783SGregory CLEMENT				spi_quad_pins: spi-quad-pins {
2156a680783SGregory CLEMENT					groups = "spi_quad";
2166a680783SGregory CLEMENT					function = "spi";
2176a680783SGregory CLEMENT				};
2186a680783SGregory CLEMENT
2198ef75105SMarek Behún				spi_cs1_pins: spi-cs1-pins {
2208ef75105SMarek Behún					groups = "spi_cs1";
2218ef75105SMarek Behún					function = "spi";
2228ef75105SMarek Behún				};
2238ef75105SMarek Behún
2246a680783SGregory CLEMENT				i2c1_pins: i2c1-pins {
2256a680783SGregory CLEMENT					groups = "i2c1";
2266a680783SGregory CLEMENT					function = "i2c";
2276a680783SGregory CLEMENT				};
2286a680783SGregory CLEMENT
2296a680783SGregory CLEMENT				i2c2_pins: i2c2-pins {
2306a680783SGregory CLEMENT					groups = "i2c2";
2316a680783SGregory CLEMENT					function = "i2c";
2326a680783SGregory CLEMENT				};
2336a680783SGregory CLEMENT
2346a680783SGregory CLEMENT				uart1_pins: uart1-pins {
2356a680783SGregory CLEMENT					groups = "uart1";
2366a680783SGregory CLEMENT					function = "uart";
2376a680783SGregory CLEMENT				};
2386a680783SGregory CLEMENT
2396a680783SGregory CLEMENT				uart2_pins: uart2-pins {
2406a680783SGregory CLEMENT					groups = "uart2";
2416a680783SGregory CLEMENT					function = "uart";
2426a680783SGregory CLEMENT				};
243eefe3284SDing Tao
244eefe3284SDing Tao				mmc_pins: mmc-pins {
245eefe3284SDing Tao					groups = "emmc_nb";
246eefe3284SDing Tao					function = "emmc";
247eefe3284SDing Tao				};
248ddeba40bSGregory CLEMENT			};
249ddeba40bSGregory CLEMENT
250e8d66e79SGregory CLEMENT			nb_pm: syscon@14000 {
251e8d66e79SGregory CLEMENT				compatible = "marvell,armada-3700-nb-pm",
252e8d66e79SGregory CLEMENT					     "syscon";
253e8d66e79SGregory CLEMENT				reg = <0x14000 0x60>;
254e8d66e79SGregory CLEMENT			};
255e8d66e79SGregory CLEMENT
2562ef303f0SMiquel Raynal			comphy: phy@18300 {
2572ef303f0SMiquel Raynal				compatible = "marvell,comphy-a3700";
2582ef303f0SMiquel Raynal				reg = <0x18300 0x300>,
2592ef303f0SMiquel Raynal				      <0x1F000 0x400>,
2602ef303f0SMiquel Raynal				      <0x5C000 0x400>,
2612ef303f0SMiquel Raynal				      <0xe0178 0x8>;
2622ef303f0SMiquel Raynal				reg-names = "comphy",
2632ef303f0SMiquel Raynal					    "lane1_pcie_gbe",
2642ef303f0SMiquel Raynal					    "lane0_usb3_gbe",
2652ef303f0SMiquel Raynal					    "lane2_sata_usb3";
2662ef303f0SMiquel Raynal				#address-cells = <1>;
2672ef303f0SMiquel Raynal				#size-cells = <0>;
26873a78b61SPali Rohár				clocks = <&xtalclk>;
26973a78b61SPali Rohár				clock-names = "xtal";
2702ef303f0SMiquel Raynal
2712ef303f0SMiquel Raynal				comphy0: phy@0 {
2722ef303f0SMiquel Raynal					reg = <0>;
2732ef303f0SMiquel Raynal					#phy-cells = <1>;
2742ef303f0SMiquel Raynal				};
2752ef303f0SMiquel Raynal
2762ef303f0SMiquel Raynal				comphy1: phy@1 {
2772ef303f0SMiquel Raynal					reg = <1>;
2782ef303f0SMiquel Raynal					#phy-cells = <1>;
2792ef303f0SMiquel Raynal				};
2802ef303f0SMiquel Raynal
2812ef303f0SMiquel Raynal				comphy2: phy@2 {
2822ef303f0SMiquel Raynal					reg = <2>;
2832ef303f0SMiquel Raynal					#phy-cells = <1>;
2842ef303f0SMiquel Raynal				};
2852ef303f0SMiquel Raynal			};
2862ef303f0SMiquel Raynal
287afda007fSGregory CLEMENT			pinctrl_sb: pinctrl@18800 {
288afda007fSGregory CLEMENT				compatible = "marvell,armada3710-sb-pinctrl",
289afda007fSGregory CLEMENT					     "syscon", "simple-mfd";
290afda007fSGregory CLEMENT				reg = <0x18800 0x100>, <0x18C00 0x20>;
291bd473ecdSUwe Kleine-König				/* MPP2[23:0] */
292afda007fSGregory CLEMENT				gpiosb: gpio {
293afda007fSGregory CLEMENT					#gpio-cells = <2>;
294d7a65c49SGregory CLEMENT					gpio-ranges = <&pinctrl_sb 0 0 30>;
295afda007fSGregory CLEMENT					gpio-controller;
296bd473ecdSUwe Kleine-König					interrupt-controller;
297bd473ecdSUwe Kleine-König					#interrupt-cells = <2>;
298afda007fSGregory CLEMENT					interrupts =
299afda007fSGregory CLEMENT					<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
300afda007fSGregory CLEMENT					<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
301afda007fSGregory CLEMENT					<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
302afda007fSGregory CLEMENT					<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
303afda007fSGregory CLEMENT					<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
304afda007fSGregory CLEMENT				};
3056a680783SGregory CLEMENT
3066a680783SGregory CLEMENT				rgmii_pins: mii-pins {
3076a680783SGregory CLEMENT					groups = "rgmii";
3086a680783SGregory CLEMENT					function = "mii";
3096a680783SGregory CLEMENT				};
3106a680783SGregory CLEMENT
3114f63b1c3SRemi Pommarel				smi_pins: smi-pins {
3124f63b1c3SRemi Pommarel					groups = "smi";
3134f63b1c3SRemi Pommarel					function = "smi";
3144f63b1c3SRemi Pommarel				};
3154f63b1c3SRemi Pommarel
316eefe3284SDing Tao				sdio_pins: sdio-pins {
317eefe3284SDing Tao					groups = "sdio_sb";
318eefe3284SDing Tao					function = "sdio";
319eefe3284SDing Tao				};
320eefe3284SDing Tao
321a5470af9SMiquel Raynal				pcie_reset_pins: pcie-reset-pins {
3220c0a41fbSPali Rohár					groups = "pcie1"; /* this actually controls "pcie1_reset" */
32371587801SMarek Behún					function = "gpio";
324a5470af9SMiquel Raynal				};
325a5470af9SMiquel Raynal
326a5470af9SMiquel Raynal				pcie_clkreq_pins: pcie-clkreq-pins {
327a5470af9SMiquel Raynal					groups = "pcie1_clkreq";
328a5470af9SMiquel Raynal					function = "pcie";
329a5470af9SMiquel Raynal				};
33019b67d5cSGregory CLEMENT			};
33119b67d5cSGregory CLEMENT
332ea7ae885SGregory CLEMENT			eth0: ethernet@30000 {
333ea7ae885SGregory CLEMENT				   compatible = "marvell,armada-3700-neta";
334ea7ae885SGregory CLEMENT				   reg = <0x30000 0x4000>;
335ea7ae885SGregory CLEMENT				   interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
336ea7ae885SGregory CLEMENT				   clocks = <&sb_periph_clk 8>;
337ea7ae885SGregory CLEMENT				   status = "disabled";
338ea7ae885SGregory CLEMENT			};
339ea7ae885SGregory CLEMENT
340ea7ae885SGregory CLEMENT			mdio: mdio@32004 {
341ea7ae885SGregory CLEMENT				#address-cells = <1>;
342ea7ae885SGregory CLEMENT				#size-cells = <0>;
343ea7ae885SGregory CLEMENT				compatible = "marvell,orion-mdio";
344ea7ae885SGregory CLEMENT				reg = <0x32004 0x4>;
345ea7ae885SGregory CLEMENT			};
346ea7ae885SGregory CLEMENT
347ea7ae885SGregory CLEMENT			eth1: ethernet@40000 {
348ea7ae885SGregory CLEMENT				compatible = "marvell,armada-3700-neta";
349ea7ae885SGregory CLEMENT				reg = <0x40000 0x4000>;
350ea7ae885SGregory CLEMENT				interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
351ea7ae885SGregory CLEMENT				clocks = <&sb_periph_clk 7>;
352ea7ae885SGregory CLEMENT				status = "disabled";
353ea7ae885SGregory CLEMENT			};
354ea7ae885SGregory CLEMENT
355cc2684c4SAndreas Färber			usb3: usb@58000 {
356150fa112SGregory CLEMENT				compatible = "marvell,armada3700-xhci",
357150fa112SGregory CLEMENT				"generic-xhci";
358adbc3695SGregory CLEMENT				reg = <0x58000 0x4000>;
35905d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb32_syscon>;
36086fcb2bcSGregory CLEMENT				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
361e4afb480SGregory CLEMENT				clocks = <&sb_periph_clk 12>;
362bd3d25b0SMiquel Raynal				phys = <&comphy0 0>, <&usb2_utmi_otg_phy>;
363bd3d25b0SMiquel Raynal				phy-names = "usb3-phy", "usb2-utmi-otg-phy";
364adbc3695SGregory CLEMENT				status = "disabled";
365adbc3695SGregory CLEMENT			};
366adbc3695SGregory CLEMENT
36705d168a5SMiquel Raynal			usb2_utmi_otg_phy: phy@5d000 {
36805d168a5SMiquel Raynal				compatible = "marvell,a3700-utmi-otg-phy";
36905d168a5SMiquel Raynal				reg = <0x5d000 0x800>;
37005d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb32_syscon>;
37105d168a5SMiquel Raynal				#phy-cells = <0>;
37205d168a5SMiquel Raynal			};
37305d168a5SMiquel Raynal
37405d168a5SMiquel Raynal			usb32_syscon: system-controller@5d800 {
37505d168a5SMiquel Raynal				compatible = "marvell,armada-3700-usb2-host-device-misc",
37605d168a5SMiquel Raynal				"syscon";
37705d168a5SMiquel Raynal				reg = <0x5d800 0x800>;
37805d168a5SMiquel Raynal			};
37905d168a5SMiquel Raynal
3804fc056edSGregory CLEMENT			usb2: usb@5e000 {
3814fc056edSGregory CLEMENT				compatible = "marvell,armada-3700-ehci";
382b3ad58bcSMiquel Raynal				reg = <0x5e000 0x1000>;
38305d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb2_syscon>;
3844fc056edSGregory CLEMENT				interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
385bd3d25b0SMiquel Raynal				phys = <&usb2_utmi_host_phy>;
386bd3d25b0SMiquel Raynal				phy-names = "usb2-utmi-host-phy";
3874fc056edSGregory CLEMENT				status = "disabled";
3884fc056edSGregory CLEMENT			};
3894fc056edSGregory CLEMENT
39005d168a5SMiquel Raynal			usb2_utmi_host_phy: phy@5f000 {
39105d168a5SMiquel Raynal				compatible = "marvell,a3700-utmi-host-phy";
39205d168a5SMiquel Raynal				reg = <0x5f000 0x800>;
39305d168a5SMiquel Raynal				marvell,usb-misc-reg = <&usb2_syscon>;
39405d168a5SMiquel Raynal				#phy-cells = <0>;
39505d168a5SMiquel Raynal			};
39605d168a5SMiquel Raynal
39705d168a5SMiquel Raynal			usb2_syscon: system-controller@5f800 {
39805d168a5SMiquel Raynal				compatible = "marvell,armada-3700-usb2-host-misc",
39905d168a5SMiquel Raynal				"syscon";
40005d168a5SMiquel Raynal				reg = <0x5f800 0x800>;
40105d168a5SMiquel Raynal			};
40205d168a5SMiquel Raynal
40319b67d5cSGregory CLEMENT			xor@60900 {
40419b67d5cSGregory CLEMENT				compatible = "marvell,armada-3700-xor";
405e9bfac54SGregory CLEMENT				reg = <0x60900 0x100>,
406e9bfac54SGregory CLEMENT				      <0x60b00 0x100>;
40719b67d5cSGregory CLEMENT
40819b67d5cSGregory CLEMENT				xor10 {
40919b67d5cSGregory CLEMENT					interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
41019b67d5cSGregory CLEMENT				};
41119b67d5cSGregory CLEMENT				xor11 {
41219b67d5cSGregory CLEMENT					interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
41319b67d5cSGregory CLEMENT				};
41419b67d5cSGregory CLEMENT			};
41519b67d5cSGregory CLEMENT
416e2707a28SAntoine Tenart			crypto: crypto@90000 {
417c462f6c7SAntoine Tenart				compatible = "inside-secure,safexcel-eip97ies";
418e2707a28SAntoine Tenart				reg = <0x90000 0x20000>;
419e2707a28SAntoine Tenart				interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
420e2707a28SAntoine Tenart					     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
421e2707a28SAntoine Tenart					     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
422e2707a28SAntoine Tenart					     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
423e2707a28SAntoine Tenart					     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
424e2707a28SAntoine Tenart					     <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
425e2707a28SAntoine Tenart				interrupt-names = "mem", "ring0", "ring1",
426e2707a28SAntoine Tenart						  "ring2", "ring3", "eip";
427e2707a28SAntoine Tenart				clocks = <&nb_periph_clk 15>;
428e2707a28SAntoine Tenart			};
429e2707a28SAntoine Tenart
430535462c2SMarek Behún			rwtm: mailbox@b0000 {
431535462c2SMarek Behún				compatible = "marvell,armada-3700-rwtm-mailbox";
432535462c2SMarek Behún				reg = <0xb0000 0x100>;
433535462c2SMarek Behún				interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
434535462c2SMarek Behún				#mbox-cells = <1>;
435535462c2SMarek Behún			};
436535462c2SMarek Behún
4371208d2f0SKonstantin Porotchkin			sdhci1: sdhci@d0000 {
4381208d2f0SKonstantin Porotchkin				compatible = "marvell,armada-3700-sdhci",
4391208d2f0SKonstantin Porotchkin					     "marvell,sdhci-xenon";
4401208d2f0SKonstantin Porotchkin				reg = <0xd0000 0x300>,
4411208d2f0SKonstantin Porotchkin				      <0x1e808 0x4>;
4421208d2f0SKonstantin Porotchkin				interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
4431208d2f0SKonstantin Porotchkin				clocks = <&nb_periph_clk 0>;
4441208d2f0SKonstantin Porotchkin				clock-names = "core";
4451208d2f0SKonstantin Porotchkin				status = "disabled";
4461208d2f0SKonstantin Porotchkin			};
4471208d2f0SKonstantin Porotchkin
44853e74778SGregory CLEMENT			sdhci0: sdhci@d8000 {
44953e74778SGregory CLEMENT				compatible = "marvell,armada-3700-sdhci",
45053e74778SGregory CLEMENT					     "marvell,sdhci-xenon";
451e9bfac54SGregory CLEMENT				reg = <0xd8000 0x300>,
452e9bfac54SGregory CLEMENT				      <0x17808 0x4>;
45353e74778SGregory CLEMENT				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
45453e74778SGregory CLEMENT				clocks = <&nb_periph_clk 0>;
45553e74778SGregory CLEMENT				clock-names = "core";
45653e74778SGregory CLEMENT				status = "disabled";
45753e74778SGregory CLEMENT			};
45853e74778SGregory CLEMENT
4597b01cff5SAndreas Färber			sata: sata@e0000 {
460adbc3695SGregory CLEMENT				compatible = "marvell,armada-3700-ahci";
461d68def52SMiquel Raynal				reg = <0xe0000 0x178>;
462adbc3695SGregory CLEMENT				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
46302967b85SMiquel Raynal				clocks = <&nb_periph_clk 1>;
4646ece0f7dSPali Rohár				phys = <&comphy2 0>;
4656ece0f7dSPali Rohár				phy-names = "sata-phy";
466adbc3695SGregory CLEMENT				status = "disabled";
467adbc3695SGregory CLEMENT			};
468adbc3695SGregory CLEMENT
469adbc3695SGregory CLEMENT			gic: interrupt-controller@1d00000 {
470adbc3695SGregory CLEMENT				compatible = "arm,gic-v3";
471adbc3695SGregory CLEMENT				#interrupt-cells = <3>;
472adbc3695SGregory CLEMENT				interrupt-controller;
473adbc3695SGregory CLEMENT				reg = <0x1d00000 0x10000>, /* GICD */
4745f926e88SMarc Zyngier				      <0x1d40000 0x40000>, /* GICR */
4755f926e88SMarc Zyngier				      <0x1d80000 0x2000>,  /* GICC */
4765f926e88SMarc Zyngier				      <0x1d90000 0x2000>,  /* GICH */
4775f926e88SMarc Zyngier				      <0x1da0000 0x20000>; /* GICV */
47895696d29SMarc Zyngier				interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
479adbc3695SGregory CLEMENT			};
480adbc3695SGregory CLEMENT		};
48176f6386bSThomas Petazzoni
48276f6386bSThomas Petazzoni		pcie0: pcie@d0070000 {
48376f6386bSThomas Petazzoni			compatible = "marvell,armada-3700-pcie";
48476f6386bSThomas Petazzoni			device_type = "pci";
48576f6386bSThomas Petazzoni			status = "disabled";
48676f6386bSThomas Petazzoni			reg = <0 0xd0070000 0 0x20000>;
48776f6386bSThomas Petazzoni			#address-cells = <3>;
48876f6386bSThomas Petazzoni			#size-cells = <2>;
48976f6386bSThomas Petazzoni			bus-range = <0x00 0xff>;
49076f6386bSThomas Petazzoni			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
49176f6386bSThomas Petazzoni			#interrupt-cells = <1>;
492*5344930cSMarek Behún			clocks = <&sb_periph_clk 13>;
49376f6386bSThomas Petazzoni			msi-parent = <&pcie0>;
49476f6386bSThomas Petazzoni			msi-controller;
495514ef1e6SPali Rohár			/*
496514ef1e6SPali Rohár			 * The 128 MiB address range [0xe8000000-0xf0000000] is
497514ef1e6SPali Rohár			 * dedicated for PCIe and can be assigned to 8 windows
498514ef1e6SPali Rohár			 * with size a power of two. Use one 64 KiB window for
499514ef1e6SPali Rohár			 * IO at the end and the remaining seven windows
500514ef1e6SPali Rohár			 * (totaling 127 MiB) for MEM.
501514ef1e6SPali Rohár			 */
502514ef1e6SPali Rohár			ranges = <0x82000000 0 0xe8000000   0 0xe8000000   0 0x07f00000   /* Port 0 MEM */
503514ef1e6SPali Rohár				  0x81000000 0 0xefff0000   0 0xefff0000   0 0x00010000>; /* Port 0 IO */
50476f6386bSThomas Petazzoni			interrupt-map-mask = <0 0 0 7>;
50576f6386bSThomas Petazzoni			interrupt-map = <0 0 0 1 &pcie_intc 0>,
50676f6386bSThomas Petazzoni					<0 0 0 2 &pcie_intc 1>,
50776f6386bSThomas Petazzoni					<0 0 0 3 &pcie_intc 2>,
50876f6386bSThomas Petazzoni					<0 0 0 4 &pcie_intc 3>;
5091b5a2dd9SPali Rohár			max-link-speed = <2>;
510df749cdbSMarek Behún			phys = <&comphy1 0>;
51176f6386bSThomas Petazzoni			pcie_intc: interrupt-controller {
51276f6386bSThomas Petazzoni				interrupt-controller;
51376f6386bSThomas Petazzoni				#interrupt-cells = <1>;
51476f6386bSThomas Petazzoni			};
51576f6386bSThomas Petazzoni		};
516adbc3695SGregory CLEMENT	};
5173a52a489SPali Rohár
5183a52a489SPali Rohár	firmware {
5193a52a489SPali Rohár		armada-3700-rwtm {
5203a52a489SPali Rohár			compatible = "marvell,armada-3700-rwtm-firmware";
5213a52a489SPali Rohár			mboxes = <&rwtm 0>;
5223a52a489SPali Rohár			status = "okay";
5233a52a489SPali Rohár		};
5243a52a489SPali Rohár	};
525adbc3695SGregory CLEMENT};
526