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