xref: /freebsd/sys/contrib/device-tree/src/arm/synaptics/berlin2q.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * Copyright (C) 2014 Antoine Ténart <antoine.tenart@free-electrons.com>
4*f126890aSEmmanuel Vadot */
5*f126890aSEmmanuel Vadot
6*f126890aSEmmanuel Vadot#include <dt-bindings/clock/berlin2q.h>
7*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
8*f126890aSEmmanuel Vadot
9*f126890aSEmmanuel Vadot/ {
10*f126890aSEmmanuel Vadot	model = "Marvell Armada 1500 pro (BG2-Q) SoC";
11*f126890aSEmmanuel Vadot	compatible = "marvell,berlin2q", "marvell,berlin";
12*f126890aSEmmanuel Vadot	#address-cells = <1>;
13*f126890aSEmmanuel Vadot	#size-cells = <1>;
14*f126890aSEmmanuel Vadot
15*f126890aSEmmanuel Vadot	aliases {
16*f126890aSEmmanuel Vadot		serial0 = &uart0;
17*f126890aSEmmanuel Vadot		serial1 = &uart1;
18*f126890aSEmmanuel Vadot	};
19*f126890aSEmmanuel Vadot
20*f126890aSEmmanuel Vadot	cpus {
21*f126890aSEmmanuel Vadot		#address-cells = <1>;
22*f126890aSEmmanuel Vadot		#size-cells = <0>;
23*f126890aSEmmanuel Vadot		enable-method = "marvell,berlin-smp";
24*f126890aSEmmanuel Vadot
25*f126890aSEmmanuel Vadot		cpu0: cpu@0 {
26*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
27*f126890aSEmmanuel Vadot			device_type = "cpu";
28*f126890aSEmmanuel Vadot			next-level-cache = <&l2>;
29*f126890aSEmmanuel Vadot			reg = <0>;
30*f126890aSEmmanuel Vadot
31*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_CPU>;
32*f126890aSEmmanuel Vadot			clock-latency = <100000>;
33*f126890aSEmmanuel Vadot			/* Can be modified by the bootloader */
34*f126890aSEmmanuel Vadot			operating-points = <
35*f126890aSEmmanuel Vadot				/* kHz    uV */
36*f126890aSEmmanuel Vadot				1200000 1200000
37*f126890aSEmmanuel Vadot				1000000 1200000
38*f126890aSEmmanuel Vadot				800000  1200000
39*f126890aSEmmanuel Vadot				600000  1200000
40*f126890aSEmmanuel Vadot			>;
41*f126890aSEmmanuel Vadot		};
42*f126890aSEmmanuel Vadot
43*f126890aSEmmanuel Vadot		cpu1: cpu@1 {
44*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
45*f126890aSEmmanuel Vadot			device_type = "cpu";
46*f126890aSEmmanuel Vadot			next-level-cache = <&l2>;
47*f126890aSEmmanuel Vadot			reg = <1>;
48*f126890aSEmmanuel Vadot
49*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_CPU>;
50*f126890aSEmmanuel Vadot			clock-latency = <100000>;
51*f126890aSEmmanuel Vadot			/* Can be modified by the bootloader */
52*f126890aSEmmanuel Vadot			operating-points = <
53*f126890aSEmmanuel Vadot				/* kHz    uV */
54*f126890aSEmmanuel Vadot				1200000 1200000
55*f126890aSEmmanuel Vadot				1000000 1200000
56*f126890aSEmmanuel Vadot				800000  1200000
57*f126890aSEmmanuel Vadot				600000  1200000
58*f126890aSEmmanuel Vadot			>;
59*f126890aSEmmanuel Vadot		};
60*f126890aSEmmanuel Vadot
61*f126890aSEmmanuel Vadot		cpu2: cpu@2 {
62*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
63*f126890aSEmmanuel Vadot			device_type = "cpu";
64*f126890aSEmmanuel Vadot			next-level-cache = <&l2>;
65*f126890aSEmmanuel Vadot			reg = <2>;
66*f126890aSEmmanuel Vadot
67*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_CPU>;
68*f126890aSEmmanuel Vadot			clock-latency = <100000>;
69*f126890aSEmmanuel Vadot			/* Can be modified by the bootloader */
70*f126890aSEmmanuel Vadot			operating-points = <
71*f126890aSEmmanuel Vadot				/* kHz    uV */
72*f126890aSEmmanuel Vadot				1200000 1200000
73*f126890aSEmmanuel Vadot				1000000 1200000
74*f126890aSEmmanuel Vadot				800000  1200000
75*f126890aSEmmanuel Vadot				600000  1200000
76*f126890aSEmmanuel Vadot			>;
77*f126890aSEmmanuel Vadot		};
78*f126890aSEmmanuel Vadot
79*f126890aSEmmanuel Vadot		cpu3: cpu@3 {
80*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9";
81*f126890aSEmmanuel Vadot			device_type = "cpu";
82*f126890aSEmmanuel Vadot			next-level-cache = <&l2>;
83*f126890aSEmmanuel Vadot			reg = <3>;
84*f126890aSEmmanuel Vadot
85*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_CPU>;
86*f126890aSEmmanuel Vadot			clock-latency = <100000>;
87*f126890aSEmmanuel Vadot			/* Can be modified by the bootloader */
88*f126890aSEmmanuel Vadot			operating-points = <
89*f126890aSEmmanuel Vadot				/* kHz    uV */
90*f126890aSEmmanuel Vadot				1200000 1200000
91*f126890aSEmmanuel Vadot				1000000 1200000
92*f126890aSEmmanuel Vadot				800000  1200000
93*f126890aSEmmanuel Vadot				600000  1200000
94*f126890aSEmmanuel Vadot			>;
95*f126890aSEmmanuel Vadot		};
96*f126890aSEmmanuel Vadot	};
97*f126890aSEmmanuel Vadot
98*f126890aSEmmanuel Vadot	pmu {
99*f126890aSEmmanuel Vadot		compatible = "arm,cortex-a9-pmu";
100*f126890aSEmmanuel Vadot		interrupt-parent = <&gic>;
101*f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
102*f126890aSEmmanuel Vadot			     <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
103*f126890aSEmmanuel Vadot			     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
104*f126890aSEmmanuel Vadot			     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
105*f126890aSEmmanuel Vadot		interrupt-affinity = <&cpu0>,
106*f126890aSEmmanuel Vadot				     <&cpu1>,
107*f126890aSEmmanuel Vadot				     <&cpu2>,
108*f126890aSEmmanuel Vadot				     <&cpu3>;
109*f126890aSEmmanuel Vadot	};
110*f126890aSEmmanuel Vadot
111*f126890aSEmmanuel Vadot	refclk: oscillator {
112*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
113*f126890aSEmmanuel Vadot		#clock-cells = <0>;
114*f126890aSEmmanuel Vadot		clock-frequency = <25000000>;
115*f126890aSEmmanuel Vadot	};
116*f126890aSEmmanuel Vadot
117*f126890aSEmmanuel Vadot	soc@f7000000 {
118*f126890aSEmmanuel Vadot		compatible = "simple-bus";
119*f126890aSEmmanuel Vadot		#address-cells = <1>;
120*f126890aSEmmanuel Vadot		#size-cells = <1>;
121*f126890aSEmmanuel Vadot
122*f126890aSEmmanuel Vadot		ranges = <0 0xf7000000 0x1000000>;
123*f126890aSEmmanuel Vadot		interrupt-parent = <&gic>;
124*f126890aSEmmanuel Vadot
125*f126890aSEmmanuel Vadot		sdhci0: mmc@ab0000 {
126*f126890aSEmmanuel Vadot			compatible = "mrvl,pxav3-mmc";
127*f126890aSEmmanuel Vadot			reg = <0xab0000 0x200>;
128*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
129*f126890aSEmmanuel Vadot			clock-names = "io", "core";
130*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
131*f126890aSEmmanuel Vadot			status = "disabled";
132*f126890aSEmmanuel Vadot		};
133*f126890aSEmmanuel Vadot
134*f126890aSEmmanuel Vadot		sdhci1: mmc@ab0800 {
135*f126890aSEmmanuel Vadot			compatible = "mrvl,pxav3-mmc";
136*f126890aSEmmanuel Vadot			reg = <0xab0800 0x200>;
137*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
138*f126890aSEmmanuel Vadot			clock-names = "io", "core";
139*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
140*f126890aSEmmanuel Vadot			status = "disabled";
141*f126890aSEmmanuel Vadot		};
142*f126890aSEmmanuel Vadot
143*f126890aSEmmanuel Vadot		sdhci2: mmc@ab1000 {
144*f126890aSEmmanuel Vadot			compatible = "mrvl,pxav3-mmc";
145*f126890aSEmmanuel Vadot			reg = <0xab1000 0x200>;
146*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
147*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_SDIO>;
148*f126890aSEmmanuel Vadot			clock-names = "io", "core";
149*f126890aSEmmanuel Vadot			status = "disabled";
150*f126890aSEmmanuel Vadot		};
151*f126890aSEmmanuel Vadot
152*f126890aSEmmanuel Vadot		l2: cache-controller@ac0000 {
153*f126890aSEmmanuel Vadot			compatible = "arm,pl310-cache";
154*f126890aSEmmanuel Vadot			reg = <0xac0000 0x1000>;
155*f126890aSEmmanuel Vadot			cache-unified;
156*f126890aSEmmanuel Vadot			cache-level = <2>;
157*f126890aSEmmanuel Vadot			arm,data-latency = <2 2 2>;
158*f126890aSEmmanuel Vadot			arm,tag-latency = <2 2 2>;
159*f126890aSEmmanuel Vadot		};
160*f126890aSEmmanuel Vadot
161*f126890aSEmmanuel Vadot		scu: snoop-control-unit@ad0000 {
162*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9-scu";
163*f126890aSEmmanuel Vadot			reg = <0xad0000 0x58>;
164*f126890aSEmmanuel Vadot		};
165*f126890aSEmmanuel Vadot
166*f126890aSEmmanuel Vadot		local-timer@ad0600 {
167*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9-twd-timer";
168*f126890aSEmmanuel Vadot			reg = <0xad0600 0x20>;
169*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_TWD>;
170*f126890aSEmmanuel Vadot			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
171*f126890aSEmmanuel Vadot		};
172*f126890aSEmmanuel Vadot
173*f126890aSEmmanuel Vadot		gic: interrupt-controller@ad1000 {
174*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a9-gic";
175*f126890aSEmmanuel Vadot			reg = <0xad1000 0x1000>, <0xad0100 0x100>;
176*f126890aSEmmanuel Vadot			interrupt-controller;
177*f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
178*f126890aSEmmanuel Vadot		};
179*f126890aSEmmanuel Vadot
180*f126890aSEmmanuel Vadot		usb_phy2: phy@a2f400 {
181*f126890aSEmmanuel Vadot			compatible = "marvell,berlin2cd-usb-phy";
182*f126890aSEmmanuel Vadot			reg = <0xa2f400 0x128>;
183*f126890aSEmmanuel Vadot			#phy-cells = <0>;
184*f126890aSEmmanuel Vadot			resets = <&chip_rst 0x104 14>;
185*f126890aSEmmanuel Vadot			status = "disabled";
186*f126890aSEmmanuel Vadot		};
187*f126890aSEmmanuel Vadot
188*f126890aSEmmanuel Vadot		usb2: usb@a30000 {
189*f126890aSEmmanuel Vadot			compatible = "chipidea,usb2";
190*f126890aSEmmanuel Vadot			reg = <0xa30000 0x10000>;
191*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
192*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_USB2>;
193*f126890aSEmmanuel Vadot			phys = <&usb_phy2>;
194*f126890aSEmmanuel Vadot			phy-names = "usb-phy";
195*f126890aSEmmanuel Vadot			status = "disabled";
196*f126890aSEmmanuel Vadot		};
197*f126890aSEmmanuel Vadot
198*f126890aSEmmanuel Vadot		usb_phy0: phy@b74000 {
199*f126890aSEmmanuel Vadot			compatible = "marvell,berlin2cd-usb-phy";
200*f126890aSEmmanuel Vadot			reg = <0xb74000 0x128>;
201*f126890aSEmmanuel Vadot			#phy-cells = <0>;
202*f126890aSEmmanuel Vadot			resets = <&chip_rst 0x104 12>;
203*f126890aSEmmanuel Vadot			status = "disabled";
204*f126890aSEmmanuel Vadot		};
205*f126890aSEmmanuel Vadot
206*f126890aSEmmanuel Vadot		usb_phy1: phy@b78000 {
207*f126890aSEmmanuel Vadot			compatible = "marvell,berlin2cd-usb-phy";
208*f126890aSEmmanuel Vadot			reg = <0xb78000 0x128>;
209*f126890aSEmmanuel Vadot			#phy-cells = <0>;
210*f126890aSEmmanuel Vadot			resets = <&chip_rst 0x104 13>;
211*f126890aSEmmanuel Vadot			status = "disabled";
212*f126890aSEmmanuel Vadot		};
213*f126890aSEmmanuel Vadot
214*f126890aSEmmanuel Vadot		eth0: ethernet@b90000 {
215*f126890aSEmmanuel Vadot			compatible = "marvell,pxa168-eth";
216*f126890aSEmmanuel Vadot			reg = <0xb90000 0x10000>;
217*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_GETH0>;
218*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
219*f126890aSEmmanuel Vadot			/* set by bootloader */
220*f126890aSEmmanuel Vadot			local-mac-address = [00 00 00 00 00 00];
221*f126890aSEmmanuel Vadot			#address-cells = <1>;
222*f126890aSEmmanuel Vadot			#size-cells = <0>;
223*f126890aSEmmanuel Vadot			phy-connection-type = "mii";
224*f126890aSEmmanuel Vadot			phy-handle = <&ethphy0>;
225*f126890aSEmmanuel Vadot			status = "disabled";
226*f126890aSEmmanuel Vadot
227*f126890aSEmmanuel Vadot			ethphy0: ethernet-phy@0 {
228*f126890aSEmmanuel Vadot				reg = <0>;
229*f126890aSEmmanuel Vadot			};
230*f126890aSEmmanuel Vadot		};
231*f126890aSEmmanuel Vadot
232*f126890aSEmmanuel Vadot		cpu-ctrl@dd0000 {
233*f126890aSEmmanuel Vadot			compatible = "marvell,berlin-cpu-ctrl";
234*f126890aSEmmanuel Vadot			reg = <0xdd0000 0x10000>;
235*f126890aSEmmanuel Vadot		};
236*f126890aSEmmanuel Vadot
237*f126890aSEmmanuel Vadot		apb@e80000 {
238*f126890aSEmmanuel Vadot			compatible = "simple-bus";
239*f126890aSEmmanuel Vadot			#address-cells = <1>;
240*f126890aSEmmanuel Vadot			#size-cells = <1>;
241*f126890aSEmmanuel Vadot
242*f126890aSEmmanuel Vadot			ranges = <0 0xe80000 0x10000>;
243*f126890aSEmmanuel Vadot			interrupt-parent = <&aic>;
244*f126890aSEmmanuel Vadot
245*f126890aSEmmanuel Vadot			gpio0: gpio@400 {
246*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio";
247*f126890aSEmmanuel Vadot				reg = <0x0400 0x400>;
248*f126890aSEmmanuel Vadot				#address-cells = <1>;
249*f126890aSEmmanuel Vadot				#size-cells = <0>;
250*f126890aSEmmanuel Vadot
251*f126890aSEmmanuel Vadot				porta: gpio-port@0 {
252*f126890aSEmmanuel Vadot					compatible = "snps,dw-apb-gpio-port";
253*f126890aSEmmanuel Vadot					gpio-controller;
254*f126890aSEmmanuel Vadot					#gpio-cells = <2>;
255*f126890aSEmmanuel Vadot					ngpios = <32>;
256*f126890aSEmmanuel Vadot					reg = <0>;
257*f126890aSEmmanuel Vadot					interrupt-controller;
258*f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
259*f126890aSEmmanuel Vadot					interrupts = <0>;
260*f126890aSEmmanuel Vadot				};
261*f126890aSEmmanuel Vadot			};
262*f126890aSEmmanuel Vadot
263*f126890aSEmmanuel Vadot			gpio1: gpio@800 {
264*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio";
265*f126890aSEmmanuel Vadot				reg = <0x0800 0x400>;
266*f126890aSEmmanuel Vadot				#address-cells = <1>;
267*f126890aSEmmanuel Vadot				#size-cells = <0>;
268*f126890aSEmmanuel Vadot
269*f126890aSEmmanuel Vadot				portb: gpio-port@1 {
270*f126890aSEmmanuel Vadot					compatible = "snps,dw-apb-gpio-port";
271*f126890aSEmmanuel Vadot					gpio-controller;
272*f126890aSEmmanuel Vadot					#gpio-cells = <2>;
273*f126890aSEmmanuel Vadot					ngpios = <32>;
274*f126890aSEmmanuel Vadot					reg = <0>;
275*f126890aSEmmanuel Vadot					interrupt-controller;
276*f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
277*f126890aSEmmanuel Vadot					interrupts = <1>;
278*f126890aSEmmanuel Vadot				};
279*f126890aSEmmanuel Vadot			};
280*f126890aSEmmanuel Vadot
281*f126890aSEmmanuel Vadot			gpio2: gpio@c00 {
282*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio";
283*f126890aSEmmanuel Vadot				reg = <0x0c00 0x400>;
284*f126890aSEmmanuel Vadot				#address-cells = <1>;
285*f126890aSEmmanuel Vadot				#size-cells = <0>;
286*f126890aSEmmanuel Vadot
287*f126890aSEmmanuel Vadot				portc: gpio-port@2 {
288*f126890aSEmmanuel Vadot					compatible = "snps,dw-apb-gpio-port";
289*f126890aSEmmanuel Vadot					gpio-controller;
290*f126890aSEmmanuel Vadot					#gpio-cells = <2>;
291*f126890aSEmmanuel Vadot					ngpios = <32>;
292*f126890aSEmmanuel Vadot					reg = <0>;
293*f126890aSEmmanuel Vadot					interrupt-controller;
294*f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
295*f126890aSEmmanuel Vadot					interrupts = <2>;
296*f126890aSEmmanuel Vadot				};
297*f126890aSEmmanuel Vadot			};
298*f126890aSEmmanuel Vadot
299*f126890aSEmmanuel Vadot			gpio3: gpio@1000 {
300*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio";
301*f126890aSEmmanuel Vadot				reg = <0x1000 0x400>;
302*f126890aSEmmanuel Vadot				#address-cells = <1>;
303*f126890aSEmmanuel Vadot				#size-cells = <0>;
304*f126890aSEmmanuel Vadot
305*f126890aSEmmanuel Vadot				portd: gpio-port@3 {
306*f126890aSEmmanuel Vadot					compatible = "snps,dw-apb-gpio-port";
307*f126890aSEmmanuel Vadot					gpio-controller;
308*f126890aSEmmanuel Vadot					#gpio-cells = <2>;
309*f126890aSEmmanuel Vadot					ngpios = <32>;
310*f126890aSEmmanuel Vadot					reg = <0>;
311*f126890aSEmmanuel Vadot					interrupt-controller;
312*f126890aSEmmanuel Vadot					#interrupt-cells = <2>;
313*f126890aSEmmanuel Vadot					interrupts = <3>;
314*f126890aSEmmanuel Vadot				};
315*f126890aSEmmanuel Vadot			};
316*f126890aSEmmanuel Vadot
317*f126890aSEmmanuel Vadot			i2c0: i2c@1400 {
318*f126890aSEmmanuel Vadot				compatible = "snps,designware-i2c";
319*f126890aSEmmanuel Vadot				#address-cells = <1>;
320*f126890aSEmmanuel Vadot				#size-cells = <0>;
321*f126890aSEmmanuel Vadot				reg = <0x1400 0x100>;
322*f126890aSEmmanuel Vadot				interrupts = <4>;
323*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
324*f126890aSEmmanuel Vadot				pinctrl-0 = <&twsi0_pmux>;
325*f126890aSEmmanuel Vadot				pinctrl-names = "default";
326*f126890aSEmmanuel Vadot				status = "disabled";
327*f126890aSEmmanuel Vadot			};
328*f126890aSEmmanuel Vadot
329*f126890aSEmmanuel Vadot			i2c1: i2c@1800 {
330*f126890aSEmmanuel Vadot				compatible = "snps,designware-i2c";
331*f126890aSEmmanuel Vadot				#address-cells = <1>;
332*f126890aSEmmanuel Vadot				#size-cells = <0>;
333*f126890aSEmmanuel Vadot				reg = <0x1800 0x100>;
334*f126890aSEmmanuel Vadot				interrupts = <5>;
335*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
336*f126890aSEmmanuel Vadot				pinctrl-0 = <&twsi1_pmux>;
337*f126890aSEmmanuel Vadot				pinctrl-names = "default";
338*f126890aSEmmanuel Vadot				status = "disabled";
339*f126890aSEmmanuel Vadot			};
340*f126890aSEmmanuel Vadot
341*f126890aSEmmanuel Vadot			timer0: timer@2c00 {
342*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
343*f126890aSEmmanuel Vadot				reg = <0x2c00 0x14>;
344*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
345*f126890aSEmmanuel Vadot				clock-names = "timer";
346*f126890aSEmmanuel Vadot				interrupts = <8>;
347*f126890aSEmmanuel Vadot			};
348*f126890aSEmmanuel Vadot
349*f126890aSEmmanuel Vadot			timer1: timer@2c14 {
350*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
351*f126890aSEmmanuel Vadot				reg = <0x2c14 0x14>;
352*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
353*f126890aSEmmanuel Vadot				clock-names = "timer";
354*f126890aSEmmanuel Vadot			};
355*f126890aSEmmanuel Vadot
356*f126890aSEmmanuel Vadot			timer2: timer@2c28 {
357*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
358*f126890aSEmmanuel Vadot				reg = <0x2c28 0x14>;
359*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
360*f126890aSEmmanuel Vadot				clock-names = "timer";
361*f126890aSEmmanuel Vadot				status = "disabled";
362*f126890aSEmmanuel Vadot			};
363*f126890aSEmmanuel Vadot
364*f126890aSEmmanuel Vadot			timer3: timer@2c3c {
365*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
366*f126890aSEmmanuel Vadot				reg = <0x2c3c 0x14>;
367*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
368*f126890aSEmmanuel Vadot				clock-names = "timer";
369*f126890aSEmmanuel Vadot				status = "disabled";
370*f126890aSEmmanuel Vadot			};
371*f126890aSEmmanuel Vadot
372*f126890aSEmmanuel Vadot			timer4: timer@2c50 {
373*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
374*f126890aSEmmanuel Vadot				reg = <0x2c50 0x14>;
375*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
376*f126890aSEmmanuel Vadot				clock-names = "timer";
377*f126890aSEmmanuel Vadot				status = "disabled";
378*f126890aSEmmanuel Vadot			};
379*f126890aSEmmanuel Vadot
380*f126890aSEmmanuel Vadot			timer5: timer@2c64 {
381*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
382*f126890aSEmmanuel Vadot				reg = <0x2c64 0x14>;
383*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
384*f126890aSEmmanuel Vadot				clock-names = "timer";
385*f126890aSEmmanuel Vadot				status = "disabled";
386*f126890aSEmmanuel Vadot			};
387*f126890aSEmmanuel Vadot
388*f126890aSEmmanuel Vadot			timer6: timer@2c78 {
389*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
390*f126890aSEmmanuel Vadot				reg = <0x2c78 0x14>;
391*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
392*f126890aSEmmanuel Vadot				clock-names = "timer";
393*f126890aSEmmanuel Vadot				status = "disabled";
394*f126890aSEmmanuel Vadot			};
395*f126890aSEmmanuel Vadot
396*f126890aSEmmanuel Vadot			timer7: timer@2c8c {
397*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-timer";
398*f126890aSEmmanuel Vadot				reg = <0x2c8c 0x14>;
399*f126890aSEmmanuel Vadot				clocks = <&chip_clk CLKID_CFG>;
400*f126890aSEmmanuel Vadot				clock-names = "timer";
401*f126890aSEmmanuel Vadot				status = "disabled";
402*f126890aSEmmanuel Vadot			};
403*f126890aSEmmanuel Vadot
404*f126890aSEmmanuel Vadot			aic: interrupt-controller@3800 {
405*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-ictl";
406*f126890aSEmmanuel Vadot				reg = <0x3800 0x30>;
407*f126890aSEmmanuel Vadot				interrupt-controller;
408*f126890aSEmmanuel Vadot				#interrupt-cells = <1>;
409*f126890aSEmmanuel Vadot				interrupt-parent = <&gic>;
410*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
411*f126890aSEmmanuel Vadot			};
412*f126890aSEmmanuel Vadot		};
413*f126890aSEmmanuel Vadot
414*f126890aSEmmanuel Vadot		chip: chip-control@ea0000 {
415*f126890aSEmmanuel Vadot			compatible = "simple-mfd", "syscon";
416*f126890aSEmmanuel Vadot			reg = <0xea0000 0x400>, <0xdd0170 0x10>;
417*f126890aSEmmanuel Vadot
418*f126890aSEmmanuel Vadot			chip_clk: clock {
419*f126890aSEmmanuel Vadot				compatible = "marvell,berlin2q-clk";
420*f126890aSEmmanuel Vadot				#clock-cells = <1>;
421*f126890aSEmmanuel Vadot				clocks = <&refclk>;
422*f126890aSEmmanuel Vadot				clock-names = "refclk";
423*f126890aSEmmanuel Vadot			};
424*f126890aSEmmanuel Vadot
425*f126890aSEmmanuel Vadot			soc_pinctrl: pin-controller {
426*f126890aSEmmanuel Vadot				compatible = "marvell,berlin2q-soc-pinctrl";
427*f126890aSEmmanuel Vadot
428*f126890aSEmmanuel Vadot				sd1_pmux: sd1-pmux {
429*f126890aSEmmanuel Vadot					groups = "G31";
430*f126890aSEmmanuel Vadot					function = "sd1";
431*f126890aSEmmanuel Vadot				};
432*f126890aSEmmanuel Vadot
433*f126890aSEmmanuel Vadot				twsi0_pmux: twsi0-pmux {
434*f126890aSEmmanuel Vadot					groups = "G6";
435*f126890aSEmmanuel Vadot					function = "twsi0";
436*f126890aSEmmanuel Vadot				};
437*f126890aSEmmanuel Vadot
438*f126890aSEmmanuel Vadot				twsi1_pmux: twsi1-pmux {
439*f126890aSEmmanuel Vadot					groups = "G7";
440*f126890aSEmmanuel Vadot					function = "twsi1";
441*f126890aSEmmanuel Vadot				};
442*f126890aSEmmanuel Vadot			};
443*f126890aSEmmanuel Vadot
444*f126890aSEmmanuel Vadot			chip_rst: reset {
445*f126890aSEmmanuel Vadot				compatible = "marvell,berlin2-reset";
446*f126890aSEmmanuel Vadot				#reset-cells = <2>;
447*f126890aSEmmanuel Vadot			};
448*f126890aSEmmanuel Vadot		};
449*f126890aSEmmanuel Vadot
450*f126890aSEmmanuel Vadot		ahci: sata@e90000 {
451*f126890aSEmmanuel Vadot			compatible = "marvell,berlin2q-ahci", "generic-ahci";
452*f126890aSEmmanuel Vadot			reg = <0xe90000 0x1000>;
453*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
454*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_SATA>;
455*f126890aSEmmanuel Vadot			#address-cells = <1>;
456*f126890aSEmmanuel Vadot			#size-cells = <0>;
457*f126890aSEmmanuel Vadot
458*f126890aSEmmanuel Vadot			sata0: sata-port@0 {
459*f126890aSEmmanuel Vadot				reg = <0>;
460*f126890aSEmmanuel Vadot				phys = <&sata_phy 0>;
461*f126890aSEmmanuel Vadot				status = "disabled";
462*f126890aSEmmanuel Vadot			};
463*f126890aSEmmanuel Vadot
464*f126890aSEmmanuel Vadot			sata1: sata-port@1 {
465*f126890aSEmmanuel Vadot				reg = <1>;
466*f126890aSEmmanuel Vadot				phys = <&sata_phy 1>;
467*f126890aSEmmanuel Vadot				status = "disabled";
468*f126890aSEmmanuel Vadot			};
469*f126890aSEmmanuel Vadot		};
470*f126890aSEmmanuel Vadot
471*f126890aSEmmanuel Vadot		sata_phy: phy@e900a0 {
472*f126890aSEmmanuel Vadot			compatible = "marvell,berlin2q-sata-phy";
473*f126890aSEmmanuel Vadot			reg = <0xe900a0 0x200>;
474*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_SATA>;
475*f126890aSEmmanuel Vadot			#address-cells = <1>;
476*f126890aSEmmanuel Vadot			#size-cells = <0>;
477*f126890aSEmmanuel Vadot			#phy-cells = <1>;
478*f126890aSEmmanuel Vadot			status = "disabled";
479*f126890aSEmmanuel Vadot
480*f126890aSEmmanuel Vadot			sata-phy@0 {
481*f126890aSEmmanuel Vadot				reg = <0>;
482*f126890aSEmmanuel Vadot			};
483*f126890aSEmmanuel Vadot
484*f126890aSEmmanuel Vadot			sata-phy@1 {
485*f126890aSEmmanuel Vadot				reg = <1>;
486*f126890aSEmmanuel Vadot			};
487*f126890aSEmmanuel Vadot		};
488*f126890aSEmmanuel Vadot
489*f126890aSEmmanuel Vadot		usb0: usb@ed0000 {
490*f126890aSEmmanuel Vadot			compatible = "chipidea,usb2";
491*f126890aSEmmanuel Vadot			reg = <0xed0000 0x10000>;
492*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
493*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_USB0>;
494*f126890aSEmmanuel Vadot			phys = <&usb_phy0>;
495*f126890aSEmmanuel Vadot			phy-names = "usb-phy";
496*f126890aSEmmanuel Vadot			status = "disabled";
497*f126890aSEmmanuel Vadot		};
498*f126890aSEmmanuel Vadot
499*f126890aSEmmanuel Vadot		usb1: usb@ee0000 {
500*f126890aSEmmanuel Vadot			compatible = "chipidea,usb2";
501*f126890aSEmmanuel Vadot			reg = <0xee0000 0x10000>;
502*f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
503*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_USB1>;
504*f126890aSEmmanuel Vadot			phys = <&usb_phy1>;
505*f126890aSEmmanuel Vadot			phy-names = "usb-phy";
506*f126890aSEmmanuel Vadot			status = "disabled";
507*f126890aSEmmanuel Vadot		};
508*f126890aSEmmanuel Vadot
509*f126890aSEmmanuel Vadot		pwm: pwm@f20000 {
510*f126890aSEmmanuel Vadot			compatible = "marvell,berlin-pwm";
511*f126890aSEmmanuel Vadot			reg = <0xf20000 0x40>;
512*f126890aSEmmanuel Vadot			clocks = <&chip_clk CLKID_CFG>;
513*f126890aSEmmanuel Vadot			#pwm-cells = <3>;
514*f126890aSEmmanuel Vadot		};
515*f126890aSEmmanuel Vadot
516*f126890aSEmmanuel Vadot		apb@fc0000 {
517*f126890aSEmmanuel Vadot			compatible = "simple-bus";
518*f126890aSEmmanuel Vadot			#address-cells = <1>;
519*f126890aSEmmanuel Vadot			#size-cells = <1>;
520*f126890aSEmmanuel Vadot
521*f126890aSEmmanuel Vadot			ranges = <0 0xfc0000 0x10000>;
522*f126890aSEmmanuel Vadot			interrupt-parent = <&sic>;
523*f126890aSEmmanuel Vadot
524*f126890aSEmmanuel Vadot			wdt0: watchdog@1000 {
525*f126890aSEmmanuel Vadot				compatible = "snps,dw-wdt";
526*f126890aSEmmanuel Vadot				reg = <0x1000 0x100>;
527*f126890aSEmmanuel Vadot				clocks = <&refclk>;
528*f126890aSEmmanuel Vadot				interrupts = <0>;
529*f126890aSEmmanuel Vadot			};
530*f126890aSEmmanuel Vadot
531*f126890aSEmmanuel Vadot			wdt1: watchdog@2000 {
532*f126890aSEmmanuel Vadot				compatible = "snps,dw-wdt";
533*f126890aSEmmanuel Vadot				reg = <0x2000 0x100>;
534*f126890aSEmmanuel Vadot				clocks = <&refclk>;
535*f126890aSEmmanuel Vadot				interrupts = <1>;
536*f126890aSEmmanuel Vadot			};
537*f126890aSEmmanuel Vadot
538*f126890aSEmmanuel Vadot			wdt2: watchdog@3000 {
539*f126890aSEmmanuel Vadot				compatible = "snps,dw-wdt";
540*f126890aSEmmanuel Vadot				reg = <0x3000 0x100>;
541*f126890aSEmmanuel Vadot				clocks = <&refclk>;
542*f126890aSEmmanuel Vadot				interrupts = <2>;
543*f126890aSEmmanuel Vadot			};
544*f126890aSEmmanuel Vadot
545*f126890aSEmmanuel Vadot			sm_gpio1: gpio@5000 {
546*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio";
547*f126890aSEmmanuel Vadot				reg = <0x5000 0x400>;
548*f126890aSEmmanuel Vadot				#address-cells = <1>;
549*f126890aSEmmanuel Vadot				#size-cells = <0>;
550*f126890aSEmmanuel Vadot
551*f126890aSEmmanuel Vadot				portf: gpio-port@5 {
552*f126890aSEmmanuel Vadot					compatible = "snps,dw-apb-gpio-port";
553*f126890aSEmmanuel Vadot					gpio-controller;
554*f126890aSEmmanuel Vadot					#gpio-cells = <2>;
555*f126890aSEmmanuel Vadot					ngpios = <32>;
556*f126890aSEmmanuel Vadot					reg = <0>;
557*f126890aSEmmanuel Vadot				};
558*f126890aSEmmanuel Vadot			};
559*f126890aSEmmanuel Vadot
560*f126890aSEmmanuel Vadot			i2c2: i2c@7000 {
561*f126890aSEmmanuel Vadot				compatible = "snps,designware-i2c";
562*f126890aSEmmanuel Vadot				#address-cells = <1>;
563*f126890aSEmmanuel Vadot				#size-cells = <0>;
564*f126890aSEmmanuel Vadot				reg = <0x7000 0x100>;
565*f126890aSEmmanuel Vadot				interrupts = <6>;
566*f126890aSEmmanuel Vadot				clocks = <&refclk>;
567*f126890aSEmmanuel Vadot				pinctrl-0 = <&twsi2_pmux>;
568*f126890aSEmmanuel Vadot				pinctrl-names = "default";
569*f126890aSEmmanuel Vadot				status = "disabled";
570*f126890aSEmmanuel Vadot			};
571*f126890aSEmmanuel Vadot
572*f126890aSEmmanuel Vadot			i2c3: i2c@8000 {
573*f126890aSEmmanuel Vadot				compatible = "snps,designware-i2c";
574*f126890aSEmmanuel Vadot				#address-cells = <1>;
575*f126890aSEmmanuel Vadot				#size-cells = <0>;
576*f126890aSEmmanuel Vadot				reg = <0x8000 0x100>;
577*f126890aSEmmanuel Vadot				interrupts = <7>;
578*f126890aSEmmanuel Vadot				clocks = <&refclk>;
579*f126890aSEmmanuel Vadot				pinctrl-0 = <&twsi3_pmux>;
580*f126890aSEmmanuel Vadot				pinctrl-names = "default";
581*f126890aSEmmanuel Vadot				status = "disabled";
582*f126890aSEmmanuel Vadot			};
583*f126890aSEmmanuel Vadot
584*f126890aSEmmanuel Vadot			uart0: serial@9000 {
585*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-uart";
586*f126890aSEmmanuel Vadot				reg = <0x9000 0x100>;
587*f126890aSEmmanuel Vadot				interrupts = <8>;
588*f126890aSEmmanuel Vadot				clocks = <&refclk>;
589*f126890aSEmmanuel Vadot				reg-shift = <2>;
590*f126890aSEmmanuel Vadot				pinctrl-0 = <&uart0_pmux>;
591*f126890aSEmmanuel Vadot				pinctrl-names = "default";
592*f126890aSEmmanuel Vadot				status = "disabled";
593*f126890aSEmmanuel Vadot			};
594*f126890aSEmmanuel Vadot
595*f126890aSEmmanuel Vadot			uart1: serial@a000 {
596*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-uart";
597*f126890aSEmmanuel Vadot				reg = <0xa000 0x100>;
598*f126890aSEmmanuel Vadot				interrupts = <9>;
599*f126890aSEmmanuel Vadot				clocks = <&refclk>;
600*f126890aSEmmanuel Vadot				reg-shift = <2>;
601*f126890aSEmmanuel Vadot				pinctrl-0 = <&uart1_pmux>;
602*f126890aSEmmanuel Vadot				pinctrl-names = "default";
603*f126890aSEmmanuel Vadot				status = "disabled";
604*f126890aSEmmanuel Vadot			};
605*f126890aSEmmanuel Vadot
606*f126890aSEmmanuel Vadot			sm_gpio0: gpio@c000 {
607*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-gpio";
608*f126890aSEmmanuel Vadot				reg = <0xc000 0x400>;
609*f126890aSEmmanuel Vadot				#address-cells = <1>;
610*f126890aSEmmanuel Vadot				#size-cells = <0>;
611*f126890aSEmmanuel Vadot
612*f126890aSEmmanuel Vadot				porte: gpio-port@4 {
613*f126890aSEmmanuel Vadot					compatible = "snps,dw-apb-gpio-port";
614*f126890aSEmmanuel Vadot					gpio-controller;
615*f126890aSEmmanuel Vadot					#gpio-cells = <2>;
616*f126890aSEmmanuel Vadot					ngpios = <32>;
617*f126890aSEmmanuel Vadot					reg = <0>;
618*f126890aSEmmanuel Vadot				};
619*f126890aSEmmanuel Vadot			};
620*f126890aSEmmanuel Vadot
621*f126890aSEmmanuel Vadot			sysctrl: pin-controller@d000 {
622*f126890aSEmmanuel Vadot				compatible = "simple-mfd", "syscon";
623*f126890aSEmmanuel Vadot				reg = <0xd000 0x100>;
624*f126890aSEmmanuel Vadot
625*f126890aSEmmanuel Vadot				sys_pinctrl: pin-controller {
626*f126890aSEmmanuel Vadot					compatible = "marvell,berlin2q-system-pinctrl";
627*f126890aSEmmanuel Vadot
628*f126890aSEmmanuel Vadot					uart0_pmux: uart0-pmux {
629*f126890aSEmmanuel Vadot						groups = "GSM12";
630*f126890aSEmmanuel Vadot						function = "uart0";
631*f126890aSEmmanuel Vadot					};
632*f126890aSEmmanuel Vadot
633*f126890aSEmmanuel Vadot					uart1_pmux: uart1-pmux {
634*f126890aSEmmanuel Vadot						groups = "GSM14";
635*f126890aSEmmanuel Vadot						function = "uart1";
636*f126890aSEmmanuel Vadot					};
637*f126890aSEmmanuel Vadot
638*f126890aSEmmanuel Vadot					twsi2_pmux: twsi2-pmux {
639*f126890aSEmmanuel Vadot						groups = "GSM13";
640*f126890aSEmmanuel Vadot						function = "twsi2";
641*f126890aSEmmanuel Vadot					};
642*f126890aSEmmanuel Vadot
643*f126890aSEmmanuel Vadot					twsi3_pmux: twsi3-pmux {
644*f126890aSEmmanuel Vadot						groups = "GSM14";
645*f126890aSEmmanuel Vadot						function = "twsi3";
646*f126890aSEmmanuel Vadot					};
647*f126890aSEmmanuel Vadot				};
648*f126890aSEmmanuel Vadot
649*f126890aSEmmanuel Vadot				adc: adc {
650*f126890aSEmmanuel Vadot					compatible = "marvell,berlin2-adc";
651*f126890aSEmmanuel Vadot					interrupts = <12>, <14>;
652*f126890aSEmmanuel Vadot					interrupt-names = "adc", "tsen";
653*f126890aSEmmanuel Vadot				};
654*f126890aSEmmanuel Vadot			};
655*f126890aSEmmanuel Vadot
656*f126890aSEmmanuel Vadot			sic: interrupt-controller@e000 {
657*f126890aSEmmanuel Vadot				compatible = "snps,dw-apb-ictl";
658*f126890aSEmmanuel Vadot				reg = <0xe000 0x30>;
659*f126890aSEmmanuel Vadot				interrupt-controller;
660*f126890aSEmmanuel Vadot				#interrupt-cells = <1>;
661*f126890aSEmmanuel Vadot				interrupt-parent = <&gic>;
662*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
663*f126890aSEmmanuel Vadot			};
664*f126890aSEmmanuel Vadot		};
665*f126890aSEmmanuel Vadot	};
666*f126890aSEmmanuel Vadot};
667