]> git.ipfire.org Git - thirdparty/u-boot.git/blob - src/arm/samsung/s5pv210-galaxys.dts
Squashed 'dts/upstream/' content from commit aaba2d45dc2a
[thirdparty/u-boot.git] / src / arm / samsung / s5pv210-galaxys.dts
1 // SPDX-License-Identifier: GPL-2.0
2
3 /dts-v1/;
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6 #include "s5pv210-aries.dtsi"
7
8 / {
9 model = "Samsung Galaxy S1 (GT-I9000) based on S5PV210";
10 compatible = "samsung,galaxys", "samsung,aries", "samsung,s5pv210";
11 chassis-type = "handset";
12
13 chosen {
14 stdout-path = &uart2;
15 };
16
17 nand_pwrseq: nand-pwrseq {
18 compatible = "mmc-pwrseq-simple";
19 reset-gpios = <&gpj2 7 GPIO_ACTIVE_LOW>;
20 pinctrl-names = "default";
21 pinctrl-0 = <&massmemory_en>;
22 };
23
24 gpio-keys {
25 compatible = "gpio-keys";
26
27 key-power {
28 label = "power";
29 gpios = <&gph2 6 GPIO_ACTIVE_LOW>;
30 linux,code = <KEY_POWER>;
31 wakeup-source;
32 };
33
34 key-vol-down {
35 label = "volume_down";
36 gpios = <&gph3 1 GPIO_ACTIVE_LOW>;
37 linux,code = <KEY_VOLUMEDOWN>;
38 };
39
40 key-vol-up {
41 label = "volume_up";
42 gpios = <&gph3 2 GPIO_ACTIVE_LOW>;
43 linux,code = <KEY_VOLUMEUP>;
44 };
45
46 key-home {
47 label = "home";
48 gpios = <&gph3 5 GPIO_ACTIVE_LOW>;
49 linux,code = <KEY_HOME>;
50 wakeup-source;
51 };
52 };
53
54 i2c_fmradio: i2c-gpio-8 {
55 compatible = "i2c-gpio";
56 sda-gpios = <&gpd1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
57 scl-gpios = <&gpd1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
58 i2c-gpio,delay-us = <2>;
59 #address-cells = <1>;
60 #size-cells = <0>;
61
62 pinctrl-names = "default";
63 pinctrl-0 = <&fm_i2c_pins>;
64
65 fmradio@10 {
66 compatible = "silabs,si470x";
67 reg = <0x10>;
68 interrupt-parent = <&gpj2>;
69 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
70 reset-gpios = <&gpj2 5 GPIO_ACTIVE_HIGH>;
71
72 pinctrl-names = "default";
73 pinctrl-0 = <&fm_irq &fm_rst>;
74 };
75 };
76
77 micbias_reg: regulator-fixed-3 {
78 compatible = "regulator-fixed";
79 regulator-name = "MICBIAS";
80 gpio = <&gpj4 2 GPIO_ACTIVE_HIGH>;
81 enable-active-high;
82
83 pinctrl-names = "default";
84 pinctrl-0 = <&micbias_reg_ena>;
85 };
86
87 sound {
88 compatible = "samsung,aries-wm8994";
89
90 model = "Aries";
91
92 extcon = <&fsa9480>;
93
94 main-micbias-supply = <&micbias_reg>;
95 headset-micbias-supply = <&micbias_reg>;
96
97 earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>;
98
99 io-channels = <&adc 3>;
100 io-channel-names = "headset-detect";
101 headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_LOW>;
102 headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>;
103
104 audio-routing = "HP", "HPOUT1L",
105 "HP", "HPOUT1R",
106
107 "SPK", "SPKOUTLN",
108 "SPK", "SPKOUTLP",
109
110 "RCV", "HPOUT2N",
111 "RCV", "HPOUT2P",
112
113 "LINE", "LINEOUT2N",
114 "LINE", "LINEOUT2P",
115
116 "IN1LP", "Main Mic",
117 "IN1LN", "Main Mic",
118
119 "IN1RP", "Headset Mic",
120 "IN1RN", "Headset Mic",
121
122 "IN2LN", "FM In",
123 "IN2RN", "FM In",
124
125 "Modem Out", "Modem TX",
126 "Modem RX", "Modem In",
127
128 "Bluetooth SPK", "TX",
129 "RX", "Bluetooth Mic";
130
131 pinctrl-names = "default";
132 pinctrl-0 = <&headset_det &earpath_sel>;
133
134 cpu {
135 sound-dai = <&i2s0>, <&bt_codec>;
136 };
137
138 codec {
139 sound-dai = <&wm8994>;
140 };
141 };
142 };
143
144 &aliases {
145 i2c8 = &i2c_fmradio;
146 };
147
148 &pinctrl0 {
149 pinctrl-names = "default";
150 pinctrl-0 = <&sleep_cfg>;
151
152 fm_i2c_pins: fm-i2c-pins {
153 samsung,pins = "gpd1-2", "gpd1-3";
154 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
155 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
156 };
157
158 headset_det: headset-det-pins {
159 samsung,pins = "gph0-6", "gph3-6";
160 samsung,pin-function = <S5PV210_PIN_FUNC_F>;
161 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
162 };
163
164 fm_irq: fm-irq-pins {
165 samsung,pins = "gpj2-4";
166 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
167 samsung,pin-pud = <S5PV210_PIN_PULL_UP>;
168 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
169 };
170
171 fm_rst: fm-rst-pins {
172 samsung,pins = "gpj2-5";
173 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
174 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
175 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
176 };
177
178 earpath_sel: earpath-sel-pins {
179 samsung,pins = "gpj2-6";
180 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
181 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
182 };
183
184 massmemory_en: massmemory-en-pins {
185 samsung,pins = "gpj2-7";
186 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
187 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
188 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
189 };
190
191 micbias_reg_ena: micbias-reg-ena-pins {
192 samsung,pins = "gpj4-2";
193 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
194 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
195 };
196
197 /* Based on CyanogenMod 3.0.101 kernel */
198 sleep_cfg: sleep-state {
199 PIN_SLP(gpa0-0, PREV, NONE);
200 PIN_SLP(gpa0-1, PREV, NONE);
201 PIN_SLP(gpa0-2, PREV, NONE);
202 PIN_SLP(gpa0-3, OUT1, NONE);
203 PIN_SLP(gpa0-4, INPUT, DOWN);
204 PIN_SLP(gpa0-5, OUT0, NONE);
205 PIN_SLP(gpa0-6, INPUT, DOWN);
206 PIN_SLP(gpa0-7, OUT1, NONE);
207
208 PIN_SLP(gpa1-0, INPUT, DOWN);
209 PIN_SLP(gpa1-1, OUT0, NONE);
210 PIN_SLP(gpa1-2, INPUT, NONE);
211 PIN_SLP(gpa1-3, OUT0, NONE);
212
213 PIN_SLP(gpb-0, OUT0, NONE);
214 PIN_SLP(gpb-1, OUT1, NONE);
215 PIN_SLP(gpb-2, OUT0, NONE);
216 PIN_SLP(gpb-3, PREV, NONE);
217 PIN_SLP(gpb-4, INPUT, NONE);
218 PIN_SLP(gpb-5, PREV, NONE);
219 PIN_SLP(gpb-6, INPUT, DOWN);
220 PIN_SLP(gpb-7, OUT0, NONE);
221
222 PIN_SLP(gpc0-0, OUT0, NONE);
223 PIN_SLP(gpc0-1, INPUT, DOWN);
224 PIN_SLP(gpc0-2, OUT0, NONE);
225 PIN_SLP(gpc0-3, INPUT, NONE);
226 PIN_SLP(gpc0-4, OUT0, NONE);
227
228 PIN_SLP(gpc1-0, INPUT, DOWN);
229 PIN_SLP(gpc1-1, INPUT, DOWN);
230 PIN_SLP(gpc1-2, INPUT, DOWN);
231 PIN_SLP(gpc1-3, INPUT, DOWN);
232 PIN_SLP(gpc1-4, INPUT, DOWN);
233
234 PIN_SLP(gpd0-0, INPUT, DOWN);
235 PIN_SLP(gpd0-1, OUT0, NONE);
236 PIN_SLP(gpd0-2, INPUT, DOWN);
237 PIN_SLP(gpd0-3, INPUT, DOWN);
238
239 PIN_SLP(gpd1-0, INPUT, NONE);
240 PIN_SLP(gpd1-1, INPUT, NONE);
241 PIN_SLP(gpd1-2, INPUT, NONE);
242 PIN_SLP(gpd1-3, INPUT, NONE);
243 PIN_SLP(gpd1-4, INPUT, DOWN);
244 PIN_SLP(gpd1-5, INPUT, DOWN);
245
246 PIN_SLP(gpe0-0, INPUT, DOWN);
247 PIN_SLP(gpe0-1, INPUT, DOWN);
248 PIN_SLP(gpe0-2, INPUT, DOWN);
249 PIN_SLP(gpe0-3, INPUT, DOWN);
250 PIN_SLP(gpe0-4, INPUT, DOWN);
251 PIN_SLP(gpe0-5, INPUT, DOWN);
252 PIN_SLP(gpe0-6, INPUT, DOWN);
253 PIN_SLP(gpe0-7, INPUT, DOWN);
254
255 PIN_SLP(gpe1-0, INPUT, DOWN);
256 PIN_SLP(gpe1-1, INPUT, DOWN);
257 PIN_SLP(gpe1-2, INPUT, DOWN);
258 PIN_SLP(gpe1-3, OUT0, NONE);
259 PIN_SLP(gpe1-4, INPUT, DOWN);
260
261 PIN_SLP(gpf0-0, OUT0, NONE);
262 PIN_SLP(gpf0-1, OUT0, NONE);
263 PIN_SLP(gpf0-2, OUT0, NONE);
264 PIN_SLP(gpf0-3, OUT0, NONE);
265 PIN_SLP(gpf0-4, OUT0, NONE);
266 PIN_SLP(gpf0-5, OUT0, NONE);
267 PIN_SLP(gpf0-6, OUT0, NONE);
268 PIN_SLP(gpf0-7, OUT0, NONE);
269
270 PIN_SLP(gpf1-0, OUT0, NONE);
271 PIN_SLP(gpf1-1, OUT0, NONE);
272 PIN_SLP(gpf1-2, OUT0, NONE);
273 PIN_SLP(gpf1-3, OUT0, NONE);
274 PIN_SLP(gpf1-4, OUT0, NONE);
275 PIN_SLP(gpf1-5, OUT0, NONE);
276 PIN_SLP(gpf1-6, OUT0, NONE);
277 PIN_SLP(gpf1-7, OUT0, NONE);
278
279 PIN_SLP(gpf2-0, OUT0, NONE);
280 PIN_SLP(gpf2-1, OUT0, NONE);
281 PIN_SLP(gpf2-2, OUT0, NONE);
282 PIN_SLP(gpf2-3, OUT0, NONE);
283 PIN_SLP(gpf2-4, OUT0, NONE);
284 PIN_SLP(gpf2-5, OUT0, NONE);
285 PIN_SLP(gpf2-6, OUT0, NONE);
286 PIN_SLP(gpf2-7, OUT0, NONE);
287
288 PIN_SLP(gpf3-0, OUT0, NONE);
289 PIN_SLP(gpf3-1, OUT0, NONE);
290 PIN_SLP(gpf3-2, OUT0, NONE);
291 PIN_SLP(gpf3-3, OUT0, NONE);
292 PIN_SLP(gpf3-4, PREV, NONE);
293 PIN_SLP(gpf3-5, INPUT, DOWN);
294
295 PIN_SLP(gpg0-0, OUT0, NONE);
296 PIN_SLP(gpg0-1, INPUT, NONE);
297 PIN_SLP(gpg0-2, INPUT, NONE);
298 PIN_SLP(gpg0-3, INPUT, NONE);
299 PIN_SLP(gpg0-4, INPUT, NONE);
300 PIN_SLP(gpg0-5, INPUT, NONE);
301 PIN_SLP(gpg0-6, INPUT, NONE);
302
303 PIN_SLP(gpg1-0, OUT0, NONE);
304 PIN_SLP(gpg1-1, OUT1, NONE);
305 PIN_SLP(gpg1-2, PREV, NONE);
306 PIN_SLP(gpg1-3, OUT1, NONE);
307 PIN_SLP(gpg1-4, OUT1, NONE);
308 PIN_SLP(gpg1-5, OUT1, NONE);
309 PIN_SLP(gpg1-6, OUT1, NONE);
310
311 PIN_SLP(gpg2-0, OUT0, NONE);
312 PIN_SLP(gpg2-1, OUT0, NONE);
313 PIN_SLP(gpg2-2, INPUT, NONE);
314 PIN_SLP(gpg2-3, OUT0, NONE);
315 PIN_SLP(gpg2-4, OUT0, NONE);
316 PIN_SLP(gpg2-5, OUT0, NONE);
317 PIN_SLP(gpg2-6, OUT0, NONE);
318
319 PIN_SLP(gpg3-0, OUT1, NONE);
320 PIN_SLP(gpg3-1, OUT0, NONE);
321 PIN_SLP(gpg3-2, INPUT, NONE);
322 PIN_SLP(gpg3-3, INPUT, DOWN);
323 PIN_SLP(gpg3-4, OUT0, NONE);
324 PIN_SLP(gpg3-5, OUT0, NONE);
325 PIN_SLP(gpg3-6, INPUT, DOWN);
326
327 PIN_SLP(gpi-0, PREV, NONE);
328 PIN_SLP(gpi-1, INPUT, DOWN);
329 PIN_SLP(gpi-2, PREV, NONE);
330 PIN_SLP(gpi-3, PREV, NONE);
331 PIN_SLP(gpi-4, PREV, NONE);
332 PIN_SLP(gpi-5, INPUT, DOWN);
333 PIN_SLP(gpi-6, INPUT, DOWN);
334
335 PIN_SLP(gpj0-0, INPUT, NONE);
336 PIN_SLP(gpj0-1, INPUT, NONE);
337 PIN_SLP(gpj0-2, INPUT, NONE);
338 PIN_SLP(gpj0-3, INPUT, NONE);
339 PIN_SLP(gpj0-4, INPUT, NONE);
340 PIN_SLP(gpj0-5, INPUT, DOWN);
341 PIN_SLP(gpj0-6, OUT0, NONE);
342 PIN_SLP(gpj0-7, INPUT, NONE);
343
344 PIN_SLP(gpj1-0, INPUT, DOWN);
345 PIN_SLP(gpj1-1, OUT0, NONE);
346 PIN_SLP(gpj1-2, INPUT, DOWN);
347 PIN_SLP(gpj1-3, PREV, NONE);
348 PIN_SLP(gpj1-4, PREV, NONE);
349 PIN_SLP(gpj1-5, OUT0, NONE);
350
351 PIN_SLP(gpj2-0, INPUT, DOWN);
352 PIN_SLP(gpj2-1, INPUT, DOWN);
353 PIN_SLP(gpj2-2, OUT0, NONE);
354 PIN_SLP(gpj2-3, INPUT, DOWN);
355 PIN_SLP(gpj2-4, INPUT, UP);
356 PIN_SLP(gpj2-5, PREV, NONE);
357 PIN_SLP(gpj2-6, PREV, NONE);
358 PIN_SLP(gpj2-7, OUT1, NONE);
359
360 PIN_SLP(gpj3-0, INPUT, NONE);
361 PIN_SLP(gpj3-1, INPUT, NONE);
362 PIN_SLP(gpj3-2, OUT0, NONE);
363 PIN_SLP(gpj3-3, INPUT, DOWN);
364 PIN_SLP(gpj3-4, INPUT, NONE);
365 PIN_SLP(gpj3-5, INPUT, NONE);
366 PIN_SLP(gpj3-6, INPUT, NONE);
367 PIN_SLP(gpj3-7, INPUT, NONE);
368
369 PIN_SLP(gpj4-0, INPUT, NONE);
370 PIN_SLP(gpj4-1, INPUT, DOWN);
371 PIN_SLP(gpj4-2, PREV, NONE);
372 PIN_SLP(gpj4-3, INPUT, NONE);
373 PIN_SLP(gpj4-4, INPUT, DOWN);
374
375 PIN_SLP(mp01-0, INPUT, DOWN);
376 PIN_SLP(mp01-1, OUT0, NONE);
377 PIN_SLP(mp01-2, INPUT, DOWN);
378 PIN_SLP(mp01-3, INPUT, DOWN);
379 PIN_SLP(mp01-4, OUT1, NONE);
380 PIN_SLP(mp01-5, INPUT, DOWN);
381 PIN_SLP(mp01-6, INPUT, DOWN);
382 PIN_SLP(mp01-7, INPUT, DOWN);
383
384 PIN_SLP(mp02-0, INPUT, DOWN);
385 PIN_SLP(mp02-1, INPUT, DOWN);
386 PIN_SLP(mp02-2, INPUT, NONE);
387 PIN_SLP(mp02-3, INPUT, DOWN);
388
389 PIN_SLP(mp03-0, INPUT, DOWN);
390 PIN_SLP(mp03-1, INPUT, DOWN);
391 PIN_SLP(mp03-2, OUT1, NONE);
392 PIN_SLP(mp03-3, OUT0, NONE);
393 PIN_SLP(mp03-4, INPUT, NONE);
394 PIN_SLP(mp03-5, OUT1, NONE);
395 PIN_SLP(mp03-6, INPUT, DOWN);
396 PIN_SLP(mp03-7, INPUT, DOWN);
397
398 PIN_SLP(mp04-0, INPUT, DOWN);
399 PIN_SLP(mp04-1, OUT0, NONE);
400 PIN_SLP(mp04-2, INPUT, DOWN);
401 PIN_SLP(mp04-3, OUT0, NONE);
402 PIN_SLP(mp04-4, INPUT, DOWN);
403 PIN_SLP(mp04-5, INPUT, DOWN);
404 PIN_SLP(mp04-6, OUT0, NONE);
405 PIN_SLP(mp04-7, INPUT, DOWN);
406
407 PIN_SLP(mp05-0, INPUT, NONE);
408 PIN_SLP(mp05-1, INPUT, NONE);
409 PIN_SLP(mp05-2, INPUT, NONE);
410 PIN_SLP(mp05-3, INPUT, NONE);
411 PIN_SLP(mp05-4, INPUT, DOWN);
412 PIN_SLP(mp05-5, OUT0, NONE);
413 PIN_SLP(mp05-6, INPUT, DOWN);
414 PIN_SLP(mp05-7, PREV, NONE);
415
416 PIN_SLP(mp06-0, INPUT, DOWN);
417 PIN_SLP(mp06-1, INPUT, DOWN);
418 PIN_SLP(mp06-2, INPUT, DOWN);
419 PIN_SLP(mp06-3, INPUT, DOWN);
420 PIN_SLP(mp06-4, INPUT, DOWN);
421 PIN_SLP(mp06-5, INPUT, DOWN);
422 PIN_SLP(mp06-6, INPUT, DOWN);
423 PIN_SLP(mp06-7, INPUT, DOWN);
424
425 PIN_SLP(mp07-0, INPUT, DOWN);
426 PIN_SLP(mp07-1, INPUT, DOWN);
427 PIN_SLP(mp07-2, INPUT, DOWN);
428 PIN_SLP(mp07-3, INPUT, DOWN);
429 PIN_SLP(mp07-4, INPUT, DOWN);
430 PIN_SLP(mp07-5, INPUT, DOWN);
431 PIN_SLP(mp07-6, INPUT, DOWN);
432 PIN_SLP(mp07-7, INPUT, DOWN);
433 };
434 };
435
436 &sdhci0 {
437 bus-width = <4>;
438 non-removable;
439 mmc-pwrseq = <&nand_pwrseq>;
440 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>;
441 pinctrl-names = "default";
442 status = "okay";
443
444 assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>;
445 assigned-clock-rates = <0>, <52000000>;
446 assigned-clock-parents = <&clocks MOUT_MPLL>;
447 };