xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/ste-u300.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Device Tree for the ST-Ericsson U300 Machine and SoC
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun/dts-v1/;
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/ {
9*4882a593Smuzhiyun	model = "ST-Ericsson U300";
10*4882a593Smuzhiyun	compatible = "stericsson,u300";
11*4882a593Smuzhiyun	#address-cells = <1>;
12*4882a593Smuzhiyun	#size-cells = <1>;
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun	chosen {
15*4882a593Smuzhiyun		bootargs = "root=/dev/ram0 console=ttyAMA0,115200n8 earlyprintk";
16*4882a593Smuzhiyun	};
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	aliases {
19*4882a593Smuzhiyun		serial0 = &uart0;
20*4882a593Smuzhiyun		serial1 = &uart1;
21*4882a593Smuzhiyun        };
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	memory {
24*4882a593Smuzhiyun		device_type = "memory";
25*4882a593Smuzhiyun		reg = <0x48000000 0x03c00000>;
26*4882a593Smuzhiyun	};
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	s365 {
29*4882a593Smuzhiyun		compatible = "stericsson,s365";
30*4882a593Smuzhiyun		vana15-supply = <&ab3100_ldo_d_reg>;
31*4882a593Smuzhiyun		syscon = <&syscon>;
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	syscon: syscon@c0011000 {
35*4882a593Smuzhiyun		compatible = "stericsson,u300-syscon", "syscon";
36*4882a593Smuzhiyun		reg = <0xc0011000 0x1000>;
37*4882a593Smuzhiyun		clk32: app_32_clk@32k {
38*4882a593Smuzhiyun			#clock-cells = <0>;
39*4882a593Smuzhiyun			compatible = "fixed-clock";
40*4882a593Smuzhiyun			clock-frequency = <32768>;
41*4882a593Smuzhiyun		};
42*4882a593Smuzhiyun		pll13: pll13@13M {
43*4882a593Smuzhiyun			#clock-cells = <0>;
44*4882a593Smuzhiyun			compatible = "fixed-clock";
45*4882a593Smuzhiyun			clock-frequency = <13000000>;
46*4882a593Smuzhiyun		};
47*4882a593Smuzhiyun		/* Slow bridge clocks under PLL13 */
48*4882a593Smuzhiyun		slow_clk: slow_clk@13M {
49*4882a593Smuzhiyun			#clock-cells = <0>;
50*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
51*4882a593Smuzhiyun			clock-type = <0>; /* Slow */
52*4882a593Smuzhiyun			clock-id = <0>;
53*4882a593Smuzhiyun			clocks = <&pll13>;
54*4882a593Smuzhiyun		};
55*4882a593Smuzhiyun		uart0_clk: uart0_clk@13M {
56*4882a593Smuzhiyun			#clock-cells = <0>;
57*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
58*4882a593Smuzhiyun			clock-type = <0>; /* Slow */
59*4882a593Smuzhiyun			clock-id = <1>;
60*4882a593Smuzhiyun			clocks = <&slow_clk>;
61*4882a593Smuzhiyun		};
62*4882a593Smuzhiyun		gpio_clk: gpio_clk@13M {
63*4882a593Smuzhiyun			#clock-cells = <0>;
64*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
65*4882a593Smuzhiyun			clock-type = <0>; /* Slow */
66*4882a593Smuzhiyun			clock-id = <4>;
67*4882a593Smuzhiyun			clocks = <&slow_clk>;
68*4882a593Smuzhiyun		};
69*4882a593Smuzhiyun		rtc_clk: rtc_clk@13M {
70*4882a593Smuzhiyun			#clock-cells = <0>;
71*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
72*4882a593Smuzhiyun			clock-type = <0>; /* Slow */
73*4882a593Smuzhiyun			clock-id = <6>;
74*4882a593Smuzhiyun			clocks = <&slow_clk>;
75*4882a593Smuzhiyun		};
76*4882a593Smuzhiyun		apptimer_clk: app_tmr_clk@13M {
77*4882a593Smuzhiyun			#clock-cells = <0>;
78*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
79*4882a593Smuzhiyun			clock-type = <0>; /* Slow */
80*4882a593Smuzhiyun			clock-id = <7>;
81*4882a593Smuzhiyun			clocks = <&slow_clk>;
82*4882a593Smuzhiyun		};
83*4882a593Smuzhiyun		acc_tmr_clk@13M {
84*4882a593Smuzhiyun			#clock-cells = <0>;
85*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
86*4882a593Smuzhiyun			clock-type = <0>; /* Slow */
87*4882a593Smuzhiyun			clock-id = <8>;
88*4882a593Smuzhiyun			clocks = <&slow_clk>;
89*4882a593Smuzhiyun		};
90*4882a593Smuzhiyun		pll208: pll208@208M {
91*4882a593Smuzhiyun			#clock-cells = <0>;
92*4882a593Smuzhiyun			compatible = "fixed-clock";
93*4882a593Smuzhiyun			clock-frequency = <208000000>;
94*4882a593Smuzhiyun		};
95*4882a593Smuzhiyun		app208: app_208_clk@208M {
96*4882a593Smuzhiyun			#clock-cells = <0>;
97*4882a593Smuzhiyun			compatible = "fixed-factor-clock";
98*4882a593Smuzhiyun			clock-div = <1>;
99*4882a593Smuzhiyun			clock-mult = <1>;
100*4882a593Smuzhiyun			clocks = <&pll208>;
101*4882a593Smuzhiyun		};
102*4882a593Smuzhiyun		cpu_clk@208M {
103*4882a593Smuzhiyun			#clock-cells = <0>;
104*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
105*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
106*4882a593Smuzhiyun			clock-id = <3>;
107*4882a593Smuzhiyun			clocks = <&app208>;
108*4882a593Smuzhiyun		};
109*4882a593Smuzhiyun		app104: app_104_clk@104M {
110*4882a593Smuzhiyun			#clock-cells = <0>;
111*4882a593Smuzhiyun			compatible = "fixed-factor-clock";
112*4882a593Smuzhiyun			clock-div = <2>;
113*4882a593Smuzhiyun			clock-mult = <1>;
114*4882a593Smuzhiyun			clocks = <&pll208>;
115*4882a593Smuzhiyun		};
116*4882a593Smuzhiyun		semi_clk@104M {
117*4882a593Smuzhiyun			#clock-cells = <0>;
118*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
119*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
120*4882a593Smuzhiyun			clock-id = <9>;
121*4882a593Smuzhiyun			clocks = <&app104>;
122*4882a593Smuzhiyun		};
123*4882a593Smuzhiyun		app52: app_52_clk@52M {
124*4882a593Smuzhiyun			#clock-cells = <0>;
125*4882a593Smuzhiyun			compatible = "fixed-factor-clock";
126*4882a593Smuzhiyun			clock-div = <4>;
127*4882a593Smuzhiyun			clock-mult = <1>;
128*4882a593Smuzhiyun			clocks = <&pll208>;
129*4882a593Smuzhiyun		};
130*4882a593Smuzhiyun		/* AHB subsystem clocks */
131*4882a593Smuzhiyun		ahb_clk: ahb_subsys_clk@52M {
132*4882a593Smuzhiyun			#clock-cells = <0>;
133*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
134*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
135*4882a593Smuzhiyun			clock-id = <10>;
136*4882a593Smuzhiyun			clocks = <&app52>;
137*4882a593Smuzhiyun		};
138*4882a593Smuzhiyun		intcon_clk@52M {
139*4882a593Smuzhiyun			#clock-cells = <0>;
140*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
141*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
142*4882a593Smuzhiyun			clock-id = <12>;
143*4882a593Smuzhiyun			clocks = <&ahb_clk>;
144*4882a593Smuzhiyun		};
145*4882a593Smuzhiyun		emif_clk@52M {
146*4882a593Smuzhiyun			#clock-cells = <0>;
147*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
148*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
149*4882a593Smuzhiyun			clock-id = <5>;
150*4882a593Smuzhiyun			clocks = <&ahb_clk>;
151*4882a593Smuzhiyun		};
152*4882a593Smuzhiyun		dmac_clk: dmac_clk@52M {
153*4882a593Smuzhiyun			#clock-cells = <0>;
154*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
155*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
156*4882a593Smuzhiyun			clock-id = <4>;
157*4882a593Smuzhiyun			clocks = <&app52>;
158*4882a593Smuzhiyun		};
159*4882a593Smuzhiyun		fsmc_clk: fsmc_clk@52M {
160*4882a593Smuzhiyun			#clock-cells = <0>;
161*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
162*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
163*4882a593Smuzhiyun			clock-id = <6>;
164*4882a593Smuzhiyun			clocks = <&app52>;
165*4882a593Smuzhiyun		};
166*4882a593Smuzhiyun		xgam_clk: xgam_clk@52M {
167*4882a593Smuzhiyun			#clock-cells = <0>;
168*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
169*4882a593Smuzhiyun			clock-type = <2>; /* Rest */
170*4882a593Smuzhiyun			clock-id = <8>;
171*4882a593Smuzhiyun			clocks = <&app52>;
172*4882a593Smuzhiyun		};
173*4882a593Smuzhiyun		app26: app_26_clk@26M {
174*4882a593Smuzhiyun			#clock-cells = <0>;
175*4882a593Smuzhiyun			compatible = "fixed-factor-clock";
176*4882a593Smuzhiyun			clock-div = <2>;
177*4882a593Smuzhiyun			clock-mult = <1>;
178*4882a593Smuzhiyun			clocks = <&app52>;
179*4882a593Smuzhiyun		};
180*4882a593Smuzhiyun		/* Fast bridge  clocks */
181*4882a593Smuzhiyun		fast_clk: fast_clk@26M {
182*4882a593Smuzhiyun			#clock-cells = <0>;
183*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
184*4882a593Smuzhiyun			clock-type = <1>; /* Fast */
185*4882a593Smuzhiyun			clock-id = <0>;
186*4882a593Smuzhiyun			clocks = <&app26>;
187*4882a593Smuzhiyun		};
188*4882a593Smuzhiyun		i2c0_clk: i2c0_clk@26M {
189*4882a593Smuzhiyun			#clock-cells = <0>;
190*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
191*4882a593Smuzhiyun			clock-type = <1>; /* Fast */
192*4882a593Smuzhiyun			clock-id = <1>;
193*4882a593Smuzhiyun			clocks = <&fast_clk>;
194*4882a593Smuzhiyun		};
195*4882a593Smuzhiyun		i2c1_clk: i2c1_clk@26M {
196*4882a593Smuzhiyun			#clock-cells = <0>;
197*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
198*4882a593Smuzhiyun			clock-type = <1>; /* Fast */
199*4882a593Smuzhiyun			clock-id = <2>;
200*4882a593Smuzhiyun			clocks = <&fast_clk>;
201*4882a593Smuzhiyun		};
202*4882a593Smuzhiyun		mmc_pclk: mmc_p_clk@26M {
203*4882a593Smuzhiyun			#clock-cells = <0>;
204*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
205*4882a593Smuzhiyun			clock-type = <1>; /* Fast */
206*4882a593Smuzhiyun			clock-id = <5>;
207*4882a593Smuzhiyun			clocks = <&fast_clk>;
208*4882a593Smuzhiyun		};
209*4882a593Smuzhiyun		mmc_mclk: mmc_mclk {
210*4882a593Smuzhiyun			#clock-cells = <0>;
211*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-mclk";
212*4882a593Smuzhiyun			clocks = <&mmc_pclk>;
213*4882a593Smuzhiyun		};
214*4882a593Smuzhiyun		spi_clk: spi_p_clk@26M {
215*4882a593Smuzhiyun			#clock-cells = <0>;
216*4882a593Smuzhiyun			compatible = "stericsson,u300-syscon-clk";
217*4882a593Smuzhiyun			clock-type = <1>; /* Fast */
218*4882a593Smuzhiyun			clock-id = <6>;
219*4882a593Smuzhiyun			clocks = <&fast_clk>;
220*4882a593Smuzhiyun		};
221*4882a593Smuzhiyun	};
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun	timer: timer@c0014000 {
224*4882a593Smuzhiyun		compatible = "stericsson,u300-apptimer";
225*4882a593Smuzhiyun		reg = <0xc0014000 0x1000>;
226*4882a593Smuzhiyun		interrupt-parent = <&vica>;
227*4882a593Smuzhiyun		interrupts = <24 25 26 27>;
228*4882a593Smuzhiyun		clocks = <&apptimer_clk>;
229*4882a593Smuzhiyun	};
230*4882a593Smuzhiyun
231*4882a593Smuzhiyun	gpio: gpio@c0016000 {
232*4882a593Smuzhiyun		compatible = "stericsson,gpio-coh901";
233*4882a593Smuzhiyun		reg = <0xc0016000 0x1000>;
234*4882a593Smuzhiyun		interrupt-parent = <&vicb>;
235*4882a593Smuzhiyun		interrupts = <0 1 2 18 21 22 23>;
236*4882a593Smuzhiyun		clocks = <&gpio_clk>;
237*4882a593Smuzhiyun		interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3",
238*4882a593Smuzhiyun				"gpio4", "gpio5", "gpio6";
239*4882a593Smuzhiyun		interrupt-controller;
240*4882a593Smuzhiyun		#interrupt-cells = <2>;
241*4882a593Smuzhiyun		gpio-controller;
242*4882a593Smuzhiyun		#gpio-cells = <2>;
243*4882a593Smuzhiyun	};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun	pinctrl: pinctrl@c0011000 {
246*4882a593Smuzhiyun		compatible = "stericsson,pinctrl-u300";
247*4882a593Smuzhiyun		reg = <0xc0011000 0x1000>;
248*4882a593Smuzhiyun	};
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun	watchdog: watchdog@c0012000 {
251*4882a593Smuzhiyun		compatible = "stericsson,coh901327";
252*4882a593Smuzhiyun		reg = <0xc0012000 0x1000>;
253*4882a593Smuzhiyun		interrupt-parent = <&vicb>;
254*4882a593Smuzhiyun		interrupts = <3>;
255*4882a593Smuzhiyun		clocks = <&clk32>;
256*4882a593Smuzhiyun	};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun	rtc: rtc@c0017000 {
259*4882a593Smuzhiyun		compatible = "stericsson,coh901331";
260*4882a593Smuzhiyun		reg = <0xc0017000 0x1000>;
261*4882a593Smuzhiyun		interrupt-parent = <&vicb>;
262*4882a593Smuzhiyun		interrupts = <10>;
263*4882a593Smuzhiyun		clocks = <&rtc_clk>;
264*4882a593Smuzhiyun	};
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun	dmac: dma-controller@c00020000 {
267*4882a593Smuzhiyun		compatible = "stericsson,coh901318";
268*4882a593Smuzhiyun		reg = <0xc0020000 0x1000>;
269*4882a593Smuzhiyun		interrupt-parent = <&vica>;
270*4882a593Smuzhiyun		interrupts = <2>;
271*4882a593Smuzhiyun		#dma-cells = <1>;
272*4882a593Smuzhiyun		dma-channels = <40>;
273*4882a593Smuzhiyun		clocks = <&dmac_clk>;
274*4882a593Smuzhiyun	};
275*4882a593Smuzhiyun
276*4882a593Smuzhiyun	/* A NAND flash of 128 MiB */
277*4882a593Smuzhiyun	fsmc: flash@40000000 {
278*4882a593Smuzhiyun		compatible = "stericsson,fsmc-nand";
279*4882a593Smuzhiyun		#address-cells = <1>;
280*4882a593Smuzhiyun		#size-cells = <1>;
281*4882a593Smuzhiyun		reg = <0x9f800000 0x1000>,	/* FSMC Register*/
282*4882a593Smuzhiyun			<0x80000000 0x4000>,	/* NAND Base DATA */
283*4882a593Smuzhiyun			<0x80020000 0x4000>,	/* NAND Base ADDR */
284*4882a593Smuzhiyun			<0x80010000 0x4000>;	/* NAND Base CMD */
285*4882a593Smuzhiyun		reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
286*4882a593Smuzhiyun		nand-skip-bbtscan;
287*4882a593Smuzhiyun		clocks = <&fsmc_clk>;
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun		partition@0 {
290*4882a593Smuzhiyun		label = "boot records";
291*4882a593Smuzhiyun			reg = <0x0 0x20000>;
292*4882a593Smuzhiyun		};
293*4882a593Smuzhiyun		partition@20000 {
294*4882a593Smuzhiyun			label = "free";
295*4882a593Smuzhiyun			reg = <0x20000 0x7e0000>;
296*4882a593Smuzhiyun		};
297*4882a593Smuzhiyun		partition@800000 {
298*4882a593Smuzhiyun			label = "platform";
299*4882a593Smuzhiyun			reg = <0x800000 0xf800000>;
300*4882a593Smuzhiyun		};
301*4882a593Smuzhiyun	};
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun	i2c0: i2c@c0004000 {
304*4882a593Smuzhiyun		compatible = "st,ddci2c";
305*4882a593Smuzhiyun		reg = <0xc0004000 0x1000>;
306*4882a593Smuzhiyun		interrupt-parent = <&vicb>;
307*4882a593Smuzhiyun		interrupts = <8>;
308*4882a593Smuzhiyun		clocks = <&i2c0_clk>;
309*4882a593Smuzhiyun		#address-cells = <1>;
310*4882a593Smuzhiyun		#size-cells = <0>;
311*4882a593Smuzhiyun		ab3100: ab3100@48 {
312*4882a593Smuzhiyun			compatible = "stericsson,ab3100";
313*4882a593Smuzhiyun			reg = <0x48>;
314*4882a593Smuzhiyun			interrupt-parent = <&vica>;
315*4882a593Smuzhiyun			interrupts = <0>; /* EXT0 IRQ */
316*4882a593Smuzhiyun			ab3100-regulators {
317*4882a593Smuzhiyun				compatible = "stericsson,ab3100-regulators";
318*4882a593Smuzhiyun				ab3100_ldo_a_reg: ab3100_ldo_a {
319*4882a593Smuzhiyun					startup-delay-us = <200>;
320*4882a593Smuzhiyun					regulator-always-on;
321*4882a593Smuzhiyun					regulator-boot-on;
322*4882a593Smuzhiyun				};
323*4882a593Smuzhiyun				ab3100_ldo_c_reg: ab3100_ldo_c {
324*4882a593Smuzhiyun					startup-delay-us = <200>;
325*4882a593Smuzhiyun				};
326*4882a593Smuzhiyun				ab3100_ldo_d_reg: ab3100_ldo_d {
327*4882a593Smuzhiyun					startup-delay-us = <200>;
328*4882a593Smuzhiyun				};
329*4882a593Smuzhiyun				ab3100_ldo_e_reg: ab3100_ldo_e {
330*4882a593Smuzhiyun					regulator-min-microvolt = <1800000>;
331*4882a593Smuzhiyun					regulator-max-microvolt = <1800000>;
332*4882a593Smuzhiyun					startup-delay-us = <200>;
333*4882a593Smuzhiyun					regulator-always-on;
334*4882a593Smuzhiyun					regulator-boot-on;
335*4882a593Smuzhiyun				};
336*4882a593Smuzhiyun				ab3100_ldo_f_reg: ab3100_ldo_f {
337*4882a593Smuzhiyun					regulator-min-microvolt = <2500000>;
338*4882a593Smuzhiyun					regulator-max-microvolt = <2500000>;
339*4882a593Smuzhiyun					startup-delay-us = <600>;
340*4882a593Smuzhiyun					regulator-always-on;
341*4882a593Smuzhiyun					regulator-boot-on;
342*4882a593Smuzhiyun				};
343*4882a593Smuzhiyun				ab3100_ldo_g_reg: ab3100_ldo_g {
344*4882a593Smuzhiyun					regulator-min-microvolt = <1500000>;
345*4882a593Smuzhiyun					regulator-max-microvolt = <2850000>;
346*4882a593Smuzhiyun					startup-delay-us = <400>;
347*4882a593Smuzhiyun				};
348*4882a593Smuzhiyun				ab3100_ldo_h_reg: ab3100_ldo_h {
349*4882a593Smuzhiyun					regulator-min-microvolt = <1200000>;
350*4882a593Smuzhiyun					regulator-max-microvolt = <2750000>;
351*4882a593Smuzhiyun					startup-delay-us = <200>;
352*4882a593Smuzhiyun				};
353*4882a593Smuzhiyun				ab3100_ldo_k_reg: ab3100_ldo_k {
354*4882a593Smuzhiyun					regulator-min-microvolt = <1800000>;
355*4882a593Smuzhiyun					regulator-max-microvolt = <2750000>;
356*4882a593Smuzhiyun					startup-delay-us = <200>;
357*4882a593Smuzhiyun				};
358*4882a593Smuzhiyun				ab3100_ext_reg: ab3100_ext {
359*4882a593Smuzhiyun				};
360*4882a593Smuzhiyun				ab3100_buck_reg: ab3100_buck {
361*4882a593Smuzhiyun					regulator-min-microvolt = <1200000>;
362*4882a593Smuzhiyun					regulator-max-microvolt = <1800000>;
363*4882a593Smuzhiyun					startup-delay-us = <1000>;
364*4882a593Smuzhiyun					regulator-always-on;
365*4882a593Smuzhiyun					regulator-boot-on;
366*4882a593Smuzhiyun				};
367*4882a593Smuzhiyun			};
368*4882a593Smuzhiyun		};
369*4882a593Smuzhiyun	};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun	i2c1: i2c@c0005000 {
372*4882a593Smuzhiyun		compatible = "st,ddci2c";
373*4882a593Smuzhiyun		reg = <0xc0005000 0x1000>;
374*4882a593Smuzhiyun		interrupt-parent = <&vicb>;
375*4882a593Smuzhiyun		interrupts = <9>;
376*4882a593Smuzhiyun		clocks = <&i2c1_clk>;
377*4882a593Smuzhiyun		#address-cells = <1>;
378*4882a593Smuzhiyun		#size-cells = <0>;
379*4882a593Smuzhiyun		fwcam0: fwcam@10 {
380*4882a593Smuzhiyun			reg = <0x10>;
381*4882a593Smuzhiyun		};
382*4882a593Smuzhiyun		fwcam1: fwcam@5d {
383*4882a593Smuzhiyun			reg = <0x5d>;
384*4882a593Smuzhiyun		};
385*4882a593Smuzhiyun	};
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun	amba {
388*4882a593Smuzhiyun		compatible = "simple-bus";
389*4882a593Smuzhiyun		#address-cells = <1>;
390*4882a593Smuzhiyun		#size-cells = <1>;
391*4882a593Smuzhiyun		ranges;
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun		vica: interrupt-controller@a0001000 {
394*4882a593Smuzhiyun			compatible = "arm,versatile-vic";
395*4882a593Smuzhiyun			interrupt-controller;
396*4882a593Smuzhiyun			#interrupt-cells = <1>;
397*4882a593Smuzhiyun			reg = <0xa0001000 0x20>;
398*4882a593Smuzhiyun		};
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun		vicb: interrupt-controller@a0002000 {
401*4882a593Smuzhiyun			compatible = "arm,versatile-vic";
402*4882a593Smuzhiyun			interrupt-controller;
403*4882a593Smuzhiyun			#interrupt-cells = <1>;
404*4882a593Smuzhiyun			reg = <0xa0002000 0x20>;
405*4882a593Smuzhiyun		};
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun		uart0: serial@c0013000 {
408*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
409*4882a593Smuzhiyun			reg = <0xc0013000 0x1000>;
410*4882a593Smuzhiyun			interrupt-parent = <&vica>;
411*4882a593Smuzhiyun			interrupts = <22>;
412*4882a593Smuzhiyun			clocks = <&uart0_clk>, <&uart0_clk>;
413*4882a593Smuzhiyun			clock-names = "apb_pclk", "uart0_clk";
414*4882a593Smuzhiyun			dmas = <&dmac 17 &dmac 18>;
415*4882a593Smuzhiyun			dma-names = "tx", "rx";
416*4882a593Smuzhiyun		};
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun		uart1: serial@c0007000 {
419*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
420*4882a593Smuzhiyun			reg = <0xc0007000 0x1000>;
421*4882a593Smuzhiyun			interrupt-parent = <&vicb>;
422*4882a593Smuzhiyun			interrupts = <20>;
423*4882a593Smuzhiyun			dmas = <&dmac 38 &dmac 39>;
424*4882a593Smuzhiyun			dma-names = "tx", "rx";
425*4882a593Smuzhiyun		};
426*4882a593Smuzhiyun
427*4882a593Smuzhiyun		mmcsd: mmcsd@c0001000 {
428*4882a593Smuzhiyun			compatible = "arm,pl18x", "arm,primecell";
429*4882a593Smuzhiyun			reg = <0xc0001000 0x1000>;
430*4882a593Smuzhiyun			interrupt-parent = <&vicb>;
431*4882a593Smuzhiyun			interrupts = <6 7>;
432*4882a593Smuzhiyun			clocks = <&mmc_pclk>, <&mmc_mclk>;
433*4882a593Smuzhiyun			clock-names = "apb_pclk", "mclk";
434*4882a593Smuzhiyun			max-frequency = <24000000>;
435*4882a593Smuzhiyun			bus-width = <4>; // SD-card slot
436*4882a593Smuzhiyun			cap-mmc-highspeed;
437*4882a593Smuzhiyun			cap-sd-highspeed;
438*4882a593Smuzhiyun			cd-gpios = <&gpio 12 0x4>;
439*4882a593Smuzhiyun			cd-inverted;
440*4882a593Smuzhiyun			vmmc-supply = <&ab3100_ldo_g_reg>;
441*4882a593Smuzhiyun			dmas = <&dmac 14>;
442*4882a593Smuzhiyun			dma-names = "rx";
443*4882a593Smuzhiyun		};
444*4882a593Smuzhiyun
445*4882a593Smuzhiyun		spi: spi@c0006000 {
446*4882a593Smuzhiyun			compatible = "arm,pl022", "arm,primecell";
447*4882a593Smuzhiyun			reg = <0xc0006000 0x1000>;
448*4882a593Smuzhiyun			interrupt-parent = <&vica>;
449*4882a593Smuzhiyun			interrupts = <23>;
450*4882a593Smuzhiyun			clocks = <&spi_clk>, <&spi_clk>;
451*4882a593Smuzhiyun			clock-names = "SSPCLK", "apb_pclk";
452*4882a593Smuzhiyun			dmas = <&dmac 27 &dmac 28>;
453*4882a593Smuzhiyun			dma-names = "tx", "rx";
454*4882a593Smuzhiyun			num-cs = <3>;
455*4882a593Smuzhiyun			#address-cells = <1>;
456*4882a593Smuzhiyun			#size-cells = <0>;
457*4882a593Smuzhiyun			spi-dummy@1 {
458*4882a593Smuzhiyun				compatible = "arm,pl022-dummy";
459*4882a593Smuzhiyun				reg = <1>;
460*4882a593Smuzhiyun				spi-max-frequency = <20000000>;
461*4882a593Smuzhiyun			};
462*4882a593Smuzhiyun		};
463*4882a593Smuzhiyun	};
464*4882a593Smuzhiyun};
465