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