1/*
2 * DTS file for SPEAr320 Evaluation Baord
3 *
4 * Copyright 2012 Shiraz Hashim <shiraz.linux.kernel@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/ "spear320.dtsi"
16
17/ {
18	model = "ST SPEAr320 HMI Board";
19	compatible = "st,spear320-hmi", "st,spear320";
20	#address-cells = <1>;
21	#size-cells = <1>;
22
23	memory {
24		reg = <0 0x40000000>;
25	};
26
27	ahb {
28		pinmux@b3000000 {
29			st,pinmux-mode = <4>;
30			pinctrl-names = "default";
31			pinctrl-0 = <&state_default>;
32
33			state_default: pinmux {
34				i2c0 {
35					st,pins = "i2c0_grp";
36					st,function = "i2c0";
37				};
38				ssp0 {
39					st,pins = "ssp0_grp";
40					st,function = "ssp0";
41				};
42				uart0 {
43					st,pins = "uart0_grp";
44					st,function = "uart0";
45				};
46				clcd {
47					st,pins = "clcd_grp";
48					st,function = "clcd";
49				};
50				fsmc {
51					st,pins = "fsmc_8bit_grp";
52					st,function = "fsmc";
53				};
54				sdhci {
55					st,pins = "sdhci_cd_12_grp";
56					st,function = "sdhci";
57				};
58				i2s {
59					st,pins = "i2s_grp";
60					st,function = "i2s";
61				};
62				uart1 {
63					st,pins = "uart1_grp";
64					st,function = "uart1";
65				};
66				uart2 {
67					st,pins = "uart2_grp";
68					st,function = "uart2";
69				};
70				can0 {
71					st,pins = "can0_grp";
72					st,function = "can0";
73				};
74				can1 {
75					st,pins = "can1_grp";
76					st,function = "can1";
77				};
78				mii0_1 {
79					st,pins = "rmii0_1_grp";
80					st,function = "mii0_1";
81				};
82				pwm0_1 {
83					st,pins = "pwm0_1_pin_37_38_grp";
84					st,function = "pwm0_1";
85				};
86				pwm2 {
87					st,pins = "pwm2_pin_34_grp";
88					st,function = "pwm2";
89				};
90			};
91		};
92
93		clcd@90000000 {
94			status = "okay";
95		};
96
97		dma@fc400000 {
98			status = "okay";
99		};
100
101		ehci@e1800000 {
102			status = "okay";
103		};
104
105		fsmc: flash@4c000000 {
106			status = "okay";
107
108			partition@0 {
109				label = "xloader";
110				reg = <0x0 0x80000>;
111			};
112			partition@80000 {
113				label = "u-boot";
114				reg = <0x80000 0x140000>;
115			};
116			partition@1C0000 {
117				label = "environment";
118				reg = <0x1C0000 0x40000>;
119			};
120			partition@200000 {
121				label = "dtb";
122				reg = <0x200000 0x40000>;
123			};
124			partition@240000 {
125				label = "linux";
126				reg = <0x240000 0xC00000>;
127			};
128			partition@E40000 {
129				label = "rootfs";
130				reg = <0xE40000 0x0>;
131			};
132		};
133
134		gpio_keys {
135			compatible = "gpio-keys";
136			#address-cells = <1>;
137			#size-cells = <0>;
138
139			button@1 {
140				label = "user button 1";
141				linux,code = <0x100>;
142				gpios = <&stmpegpio 3 0x4>;
143				debounce-interval = <20>;
144				gpio-key,wakeup = <1>;
145			};
146
147			button@2 {
148				label = "user button 2";
149				linux,code = <0x200>;
150				gpios = <&stmpegpio 2 0x4>;
151				debounce-interval = <20>;
152				gpio-key,wakeup = <1>;
153			};
154		};
155
156		ohci@e1900000 {
157			status = "okay";
158		};
159
160		ohci@e2100000 {
161			status = "okay";
162		};
163
164		pwm: pwm@a8000000 {
165			status = "okay";
166		};
167
168		sdhci@70000000 {
169			power-gpio = <&gpiopinctrl 50 1>;
170			power_always_enb;
171			status = "okay";
172		};
173
174		smi: flash@fc000000 {
175			status = "okay";
176			clock-rate=<50000000>;
177
178			flash@f8000000 {
179				#address-cells = <1>;
180				#size-cells = <1>;
181				reg = <0xf8000000 0x800000>;
182				st,smi-fast-mode;
183
184				partition@0 {
185					label = "xloader";
186					reg = <0x0 0x10000>;
187				};
188				partition@10000 {
189					label = "u-boot";
190					reg = <0x10000 0x50000>;
191				};
192				partition@60000 {
193					label = "environment";
194					reg = <0x60000 0x10000>;
195				};
196				partition@70000 {
197					label = "dtb";
198					reg = <0x70000 0x10000>;
199				};
200				partition@80000 {
201					label = "linux";
202					reg = <0x80000 0x310000>;
203				};
204				partition@390000 {
205					label = "rootfs";
206					reg = <0x390000 0x0>;
207				};
208			};
209		};
210
211		spi0: spi@d0100000 {
212			status = "okay";
213		};
214
215		spi1: spi@a5000000 {
216			status = "okay";
217		};
218
219		spi2: spi@a6000000 {
220			status = "okay";
221		};
222
223		usbd@e1100000 {
224			status = "okay";
225		};
226
227		apb {
228			gpio0: gpio@fc980000 {
229			       status = "okay";
230			};
231
232			gpio@b3000000 {
233				status = "okay";
234			};
235
236			i2c0: i2c@d0180000 {
237				status = "okay";
238
239				stmpe811@41 {
240					compatible = "st,stmpe811";
241					#address-cells = <1>;
242					#size-cells = <0>;
243					reg = <0x41>;
244					irq-over-gpio;
245					irq-gpios = <&gpiopinctrl 29 0x4>;
246					id = <0>;
247					blocks = <0x5>;
248					irq-trigger = <0x1>;
249
250					stmpegpio: stmpe-gpio {
251						compatible = "stmpe,gpio";
252						reg = <0>;
253						gpio-controller;
254						#gpio-cells = <2>;
255						gpio,norequest-mask = <0xF3>;
256					};
257
258					stmpe610-ts {
259						compatible = "stmpe,ts";
260						reg = <0>;
261						ts,sample-time = <4>;
262						ts,mod-12b = <1>;
263						ts,ref-sel = <0>;
264						ts,adc-freq = <1>;
265						ts,ave-ctrl = <1>;
266						ts,touch-det-delay = <3>;
267						ts,settling = <4>;
268						ts,fraction-z = <7>;
269						ts,i-drive = <1>;
270					};
271				};
272			};
273
274			i2c1: i2c@a7000000 {
275			       status = "okay";
276			};
277
278			rtc@fc900000 {
279			       status = "okay";
280			};
281
282			serial@d0000000 {
283			       status = "okay";
284				pinctrl-names = "default";
285				pinctrl-0 = <>;
286			};
287
288			serial@a3000000 {
289			       status = "okay";
290				pinctrl-names = "default";
291				pinctrl-0 = <>;
292			};
293
294			serial@a4000000 {
295			       status = "okay";
296				pinctrl-names = "default";
297				pinctrl-0 = <>;
298			};
299
300			wdt@fc880000 {
301			       status = "okay";
302			};
303		};
304	};
305};
306