1/*
2 * DTS file for SPEAr1340 Evaluation Baord
3 *
4 * Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
5 *
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
9 *
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
12 */
13
14/dts-v1/;
15/include/ "spear1340.dtsi"
16
17/ {
18	model = "ST SPEAr1340 Evaluation Board";
19	compatible = "st,spear1340-evb", "st,spear1340";
20	#address-cells = <1>;
21	#size-cells = <1>;
22
23	memory {
24		reg = <0 0x40000000>;
25	};
26
27	ahb {
28		pinmux@e0700000 {
29			pinctrl-names = "default";
30			pinctrl-0 = <&state_default>;
31
32			state_default: pinmux {
33				pads_as_gpio {
34					st,pins = "pads_as_gpio_grp";
35					st,function = "pads_as_gpio";
36				};
37				fsmc {
38					st,pins = "fsmc_8bit_grp";
39					st,function = "fsmc";
40				};
41				uart0 {
42					st,pins = "uart0_grp";
43					st,function = "uart0";
44				};
45				i2c0 {
46					st,pins = "i2c0_grp";
47					st,function = "i2c0";
48				};
49				i2c1 {
50					st,pins = "i2c1_grp";
51					st,function = "i2c1";
52				};
53				spdif-in {
54					st,pins = "spdif_in_grp";
55					st,function = "spdif_in";
56				};
57				spdif-out {
58					st,pins = "spdif_out_grp";
59					st,function = "spdif_out";
60				};
61				ssp0 {
62					st,pins = "ssp0_grp", "ssp0_cs1_grp", "ssp0_cs2_grp", "ssp0_cs3_grp";
63					st,function = "ssp0";
64				};
65				smi-pmx {
66					st,pins = "smi_grp";
67					st,function = "smi";
68				};
69				i2s {
70					st,pins = "i2s_in_grp", "i2s_out_grp";
71					st,function = "i2s";
72				};
73				gmac {
74					st,pins = "gmii_grp", "rgmii_grp";
75					st,function = "gmac";
76				};
77				cam0 {
78					st,pins = "cam0_grp";
79					st,function = "cam0";
80				};
81				cam1 {
82					st,pins = "cam1_grp";
83					st,function = "cam1";
84				};
85				cam2 {
86					st,pins = "cam2_grp";
87					st,function = "cam2";
88				};
89				cam3 {
90					st,pins = "cam3_grp";
91					st,function = "cam3";
92				};
93				cec0 {
94					st,pins = "cec0_grp";
95					st,function = "cec0";
96				};
97				cec1 {
98					st,pins = "cec1_grp";
99					st,function = "cec1";
100				};
101				sdhci {
102					st,pins = "sdhci_grp";
103					st,function = "sdhci";
104				};
105				clcd {
106					st,pins = "clcd_grp";
107					st,function = "clcd";
108				};
109				sata {
110					st,pins = "sata_grp";
111					st,function = "sata";
112				};
113				pcie {
114					st,pins = "pcie_grp";
115					st,function = "pcie";
116				};
117
118			};
119		};
120
121		ahci@b1000000 {
122			status = "okay";
123		};
124
125		miphy@eb800000 {
126			status = "okay";
127		};
128
129		dma@ea800000 {
130			status = "okay";
131		};
132
133		dma@eb000000 {
134			status = "okay";
135		};
136
137		fsmc: flash@b0000000 {
138			status = "okay";
139
140			partition@0 {
141				label = "xloader";
142				reg = <0x0 0x200000>;
143			};
144			partition@200000 {
145				label = "u-boot";
146				reg = <0x200000 0x200000>;
147			};
148			partition@400000 {
149				label = "environment";
150				reg = <0x400000 0x100000>;
151			};
152			partition@500000 {
153				label = "dtb";
154				reg = <0x500000 0x100000>;
155			};
156			partition@600000 {
157				label = "linux";
158				reg = <0x600000 0xC00000>;
159			};
160			partition@1200000 {
161				label = "rootfs";
162				reg = <0x1200000 0x0>;
163			};
164		};
165
166		gmac0: eth@e2000000 {
167			phy-mode = "rgmii";
168			status = "okay";
169		};
170
171		sdhci@b3000000 {
172			status = "okay";
173		};
174
175		smi: flash@ea000000 {
176			status = "okay";
177			clock-rate=<50000000>;
178
179			flash@e6000000 {
180				#address-cells = <1>;
181				#size-cells = <1>;
182				reg = <0xe6000000 0x800000>;
183				st,smi-fast-mode;
184
185				partition@0 {
186					label = "xloader";
187					reg = <0x0 0x10000>;
188				};
189				partition@10000 {
190					label = "u-boot";
191					reg = <0x10000 0x50000>;
192				};
193				partition@60000 {
194					label = "environment";
195					reg = <0x60000 0x10000>;
196				};
197				partition@70000 {
198					label = "dtb";
199					reg = <0x70000 0x10000>;
200				};
201				partition@80000 {
202					label = "linux";
203					reg = <0x80000 0x310000>;
204				};
205				partition@390000 {
206					label = "rootfs";
207					reg = <0x390000 0x0>;
208				};
209			};
210		};
211
212		ehci@e4800000 {
213			status = "okay";
214		};
215
216		gpio_keys {
217			compatible = "gpio-keys";
218			#address-cells = <1>;
219			#size-cells = <0>;
220
221			button@1 {
222				label = "wakeup";
223				linux,code = <0x100>;
224				gpios = <&gpio1 1 0x4>;
225				debounce-interval = <20>;
226				gpio-key,wakeup = <1>;
227			};
228		};
229
230		ehci@e5800000 {
231			status = "okay";
232		};
233
234		i2s0: i2s-play@b2400000 {
235			status = "okay";
236		};
237
238		i2s1: i2s-rec@b2000000 {
239			status = "okay";
240		};
241
242		incodec: dir-hifi {
243			compatible = "dummy,dir-hifi";
244			status = "okay";
245		};
246
247		ohci@e4000000 {
248			status = "okay";
249		};
250
251		ohci@e5000000 {
252			status = "okay";
253		};
254
255		outcodec: dit-hifi {
256			compatible = "dummy,dit-hifi";
257			status = "okay";
258		};
259
260		sound {
261			compatible = "spear,spear-evb";
262			audio-controllers = <&spdif0 &spdif1 &i2s0 &i2s1>;
263			audio-codecs = <&incodec &outcodec &sta529 &sta529>;
264			codec_dai_name = "dir-hifi", "dit-hifi", "sta529-audio", "sta529-audio";
265			stream_name = "spdif-cap", "spdif-play", "i2s-play", "i2s-cap";
266			dai_name = "spdifin-pcm", "spdifout-pcm", "i2s0-pcm", "i2s1-pcm";
267			nr_controllers = <4>;
268		        status = "okay";
269		};
270
271		spdif0: spdif-in@d0100000 {
272			status = "okay";
273		};
274
275		spdif1: spdif-out@d0000000 {
276			status = "okay";
277		};
278
279		apb {
280			adc@e0080000 {
281				status = "okay";
282			};
283
284			i2s-play@b2400000 {
285				status = "okay";
286			};
287
288			i2s-rec@b2000000 {
289				status = "okay";
290			};
291
292			gpio0: gpio@e0600000 {
293			       status = "okay";
294			};
295
296			gpio1: gpio@e0680000 {
297			       status = "okay";
298			};
299
300			gpio@e2800000 {
301			       status = "okay";
302			};
303
304			i2c0: i2c@e0280000 {
305			       status = "okay";
306
307				sta529: sta529@1a {
308					compatible = "st,sta529";
309					reg = <0x1a>;
310				};
311			};
312
313			i2c1: i2c@b4000000 {
314			       status = "okay";
315
316				eeprom0@56 {
317					compatible = "st,eeprom";
318					reg = <0x56>;
319				};
320
321				stmpe801@41 {
322					compatible = "st,stmpe801";
323					#address-cells = <1>;
324					#size-cells = <0>;
325					reg = <0x41>;
326					interrupts = <4 0x4>;
327					interrupt-parent = <&gpio0>;
328					irq-trigger = <0x2>;
329
330					stmpegpio: stmpe_gpio {
331						compatible = "st,stmpe-gpio";
332						gpio-controller;
333						#gpio-cells = <2>;
334					};
335				};
336			};
337
338			kbd@e0300000 {
339				linux,keymap = < 0x00000001
340						 0x00010002
341						 0x00020003
342						 0x00030004
343						 0x00040005
344						 0x00050006
345						 0x00060007
346						 0x00070008
347						 0x00080009
348						 0x0100000a
349						 0x0101000c
350						 0x0102000d
351						 0x0103000e
352						 0x0104000f
353						 0x01050010
354						 0x01060011
355						 0x01070012
356						 0x01080013
357						 0x02000014
358						 0x02010015
359						 0x02020016
360						 0x02030017
361						 0x02040018
362						 0x02050019
363						 0x0206001a
364						 0x0207001b
365						 0x0208001c
366						 0x0300001d
367						 0x0301001e
368						 0x0302001f
369						 0x03030020
370						 0x03040021
371						 0x03050022
372						 0x03060023
373						 0x03070024
374						 0x03080025
375						 0x04000026
376						 0x04010027
377						 0x04020028
378						 0x04030029
379						 0x0404002a
380						 0x0405002b
381						 0x0406002c
382						 0x0407002d
383						 0x0408002e
384						 0x0500002f
385						 0x05010030
386						 0x05020031
387						 0x05030032
388						 0x05040033
389						 0x05050034
390						 0x05060035
391						 0x05070036
392						 0x05080037
393						 0x06000038
394						 0x06010039
395						 0x0602003a
396						 0x0603003b
397						 0x0604003c
398						 0x0605003d
399						 0x0606003e
400						 0x0607003f
401						 0x06080040
402						 0x07000041
403						 0x07010042
404						 0x07020043
405						 0x07030044
406						 0x07040045
407						 0x07050046
408						 0x07060047
409						 0x07070048
410						 0x07080049
411						 0x0800004a
412						 0x0801004b
413						 0x0802004c
414						 0x0803004d
415						 0x0804004e
416						 0x0805004f
417						 0x08060050
418						 0x08070051
419						 0x08080052 >;
420			       autorepeat;
421			       st,mode = <0>;
422			       suspended_rate = <2000000>;
423			       status = "okay";
424			};
425
426			rtc@e0580000 {
427			       status = "okay";
428			};
429
430			serial@e0000000 {
431			       status = "okay";
432				pinctrl-names = "default";
433				pinctrl-0 = <>;
434			};
435
436			serial@b4100000 {
437			       status = "okay";
438				pinctrl-names = "default";
439				pinctrl-0 = <>;
440			};
441
442			spi0: spi@e0100000 {
443				status = "okay";
444				num-cs = <3>;
445				cs-gpios = <&gpiopinctrl 80 0>, <&gpiopinctrl 24 0>,
446					   <&gpiopinctrl 85 0>;
447
448				m25p80@0 {
449					compatible = "m25p80";
450					reg = <0>;
451					spi-max-frequency = <12000000>;
452					spi-cpol;
453					spi-cpha;
454					pl022,hierarchy = <0>;
455					pl022,interface = <0>;
456					pl022,slave-tx-disable;
457					pl022,com-mode = <0x2>;
458					pl022,rx-level-trig = <0>;
459					pl022,tx-level-trig = <0>;
460					pl022,ctrl-len = <0x11>;
461					pl022,wait-state = <0>;
462					pl022,duplex = <0>;
463				};
464
465				stmpe610@1 {
466					compatible = "st,stmpe610";
467					spi-max-frequency = <1000000>;
468					spi-cpha;
469					reg = <1>;
470					pl022,hierarchy = <0>;
471					pl022,interface = <0>;
472					pl022,slave-tx-disable;
473					pl022,com-mode = <0>;
474					pl022,rx-level-trig = <0>;
475					pl022,tx-level-trig = <0>;
476					pl022,ctrl-len = <0x7>;
477					pl022,wait-state = <0>;
478					pl022,duplex = <0>;
479					interrupts = <100 0>;
480					interrupt-parent = <&gpiopinctrl>;
481					irq-trigger = <0x2>;
482					#address-cells = <1>;
483					#size-cells = <0>;
484
485					stmpe_touchscreen {
486						compatible = "st,stmpe-ts";
487						ts,sample-time = <4>;
488						ts,mod-12b = <1>;
489						ts,ref-sel = <0>;
490						ts,adc-freq = <1>;
491						ts,ave-ctrl = <1>;
492						ts,touch-det-delay = <2>;
493						ts,settling = <2>;
494						ts,fraction-z = <7>;
495						ts,i-drive = <1>;
496					};
497				};
498
499				spidev@2 {
500					compatible = "spidev";
501					reg = <2>;
502					spi-max-frequency = <25000000>;
503					spi-cpha;
504					pl022,hierarchy = <0>;
505					pl022,interface = <0>;
506					pl022,slave-tx-disable;
507					pl022,com-mode = <0x2>;
508					pl022,rx-level-trig = <0>;
509					pl022,tx-level-trig = <0>;
510					pl022,ctrl-len = <0x11>;
511					pl022,wait-state = <0>;
512					pl022,duplex = <0>;
513				};
514			};
515
516			timer@ec800600 {
517				status = "okay";
518			};
519
520			wdt@ec800620 {
521			       status = "okay";
522			};
523		};
524	};
525};
526