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