GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / 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                 samsung,audio-routing =
105                         "HP", "HPOUT1L",
106                         "HP", "HPOUT1R",
107
108                         "SPK", "SPKOUTLN",
109                         "SPK", "SPKOUTLP",
110
111                         "RCV", "HPOUT2N",
112                         "RCV", "HPOUT2P",
113
114                         "LINE", "LINEOUT2N",
115                         "LINE", "LINEOUT2P",
116
117                         "IN1LP", "Main Mic",
118                         "IN1LN", "Main Mic",
119
120                         "IN1RP", "Headset Mic",
121                         "IN1RN", "Headset Mic",
122
123                         "IN2LN", "FM In",
124                         "IN2RN", "FM In",
125
126                         "Modem Out", "Modem TX",
127                         "Modem RX", "Modem In",
128
129                         "Bluetooth SPK", "TX",
130                         "RX", "Bluetooth Mic";
131
132                 pinctrl-names = "default";
133                 pinctrl-0 = <&headset_det &earpath_sel>;
134
135                 cpu {
136                         sound-dai = <&i2s0>, <&bt_codec>;
137                 };
138
139                 codec {
140                         sound-dai = <&wm8994>;
141                 };
142         };
143 };
144
145 &aliases {
146         i2c8 = &i2c_fmradio;
147 };
148
149 &pinctrl0 {
150         pinctrl-names = "default";
151         pinctrl-0 = <&sleep_cfg>;
152
153         fm_i2c_pins: fm-i2c-pins {
154                 samsung,pins = "gpd1-2", "gpd1-3";
155                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
156                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
157         };
158
159         headset_det: headset-det-pins {
160                 samsung,pins = "gph0-6", "gph3-6";
161                 samsung,pin-function = <S5PV210_PIN_FUNC_F>;
162                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
163         };
164
165         fm_irq: fm-irq-pins {
166                 samsung,pins = "gpj2-4";
167                 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
168                 samsung,pin-pud = <S5PV210_PIN_PULL_UP>;
169                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
170         };
171
172         fm_rst: fm-rst-pins {
173                 samsung,pins = "gpj2-5";
174                 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
175                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
176                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
177         };
178
179         earpath_sel: earpath-sel-pins {
180                 samsung,pins = "gpj2-6";
181                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
182                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
183         };
184
185         massmemory_en: massmemory-en-pins {
186                 samsung,pins = "gpj2-7";
187                 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
188                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
189                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
190         };
191
192         micbias_reg_ena: micbias-reg-ena-pins {
193                 samsung,pins = "gpj4-2";
194                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
195                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
196         };
197
198         /* Based on CyanogenMod 3.0.101 kernel */
199         sleep_cfg: sleep-state {
200                 PIN_SLP(gpa0-0, PREV, NONE);
201                 PIN_SLP(gpa0-1, PREV, NONE);
202                 PIN_SLP(gpa0-2, PREV, NONE);
203                 PIN_SLP(gpa0-3, OUT1, NONE);
204                 PIN_SLP(gpa0-4, INPUT, DOWN);
205                 PIN_SLP(gpa0-5, OUT0, NONE);
206                 PIN_SLP(gpa0-6, INPUT, DOWN);
207                 PIN_SLP(gpa0-7, OUT1, NONE);
208
209                 PIN_SLP(gpa1-0, INPUT, DOWN);
210                 PIN_SLP(gpa1-1, OUT0, NONE);
211                 PIN_SLP(gpa1-2, INPUT, NONE);
212                 PIN_SLP(gpa1-3, OUT0, NONE);
213
214                 PIN_SLP(gpb-0, OUT0, NONE);
215                 PIN_SLP(gpb-1, OUT1, NONE);
216                 PIN_SLP(gpb-2, OUT0, NONE);
217                 PIN_SLP(gpb-3, PREV, NONE);
218                 PIN_SLP(gpb-4, INPUT, NONE);
219                 PIN_SLP(gpb-5, PREV, NONE);
220                 PIN_SLP(gpb-6, INPUT, DOWN);
221                 PIN_SLP(gpb-7, OUT0, NONE);
222
223                 PIN_SLP(gpc0-0, OUT0, NONE);
224                 PIN_SLP(gpc0-1, INPUT, DOWN);
225                 PIN_SLP(gpc0-2, OUT0, NONE);
226                 PIN_SLP(gpc0-3, INPUT, NONE);
227                 PIN_SLP(gpc0-4, OUT0, NONE);
228
229                 PIN_SLP(gpc1-0, INPUT, DOWN);
230                 PIN_SLP(gpc1-1, INPUT, DOWN);
231                 PIN_SLP(gpc1-2, INPUT, DOWN);
232                 PIN_SLP(gpc1-3, INPUT, DOWN);
233                 PIN_SLP(gpc1-4, INPUT, DOWN);
234
235                 PIN_SLP(gpd0-0, INPUT, DOWN);
236                 PIN_SLP(gpd0-1, OUT0, NONE);
237                 PIN_SLP(gpd0-2, INPUT, DOWN);
238                 PIN_SLP(gpd0-3, INPUT, DOWN);
239
240                 PIN_SLP(gpd1-0, INPUT, NONE);
241                 PIN_SLP(gpd1-1, INPUT, NONE);
242                 PIN_SLP(gpd1-2, INPUT, NONE);
243                 PIN_SLP(gpd1-3, INPUT, NONE);
244                 PIN_SLP(gpd1-4, INPUT, DOWN);
245                 PIN_SLP(gpd1-5, INPUT, DOWN);
246
247                 PIN_SLP(gpe0-0, INPUT, DOWN);
248                 PIN_SLP(gpe0-1, INPUT, DOWN);
249                 PIN_SLP(gpe0-2, INPUT, DOWN);
250                 PIN_SLP(gpe0-3, INPUT, DOWN);
251                 PIN_SLP(gpe0-4, INPUT, DOWN);
252                 PIN_SLP(gpe0-5, INPUT, DOWN);
253                 PIN_SLP(gpe0-6, INPUT, DOWN);
254                 PIN_SLP(gpe0-7, INPUT, DOWN);
255
256                 PIN_SLP(gpe1-0, INPUT, DOWN);
257                 PIN_SLP(gpe1-1, INPUT, DOWN);
258                 PIN_SLP(gpe1-2, INPUT, DOWN);
259                 PIN_SLP(gpe1-3, OUT0, NONE);
260                 PIN_SLP(gpe1-4, INPUT, DOWN);
261
262                 PIN_SLP(gpf0-0, OUT0, NONE);
263                 PIN_SLP(gpf0-1, OUT0, NONE);
264                 PIN_SLP(gpf0-2, OUT0, NONE);
265                 PIN_SLP(gpf0-3, OUT0, NONE);
266                 PIN_SLP(gpf0-4, OUT0, NONE);
267                 PIN_SLP(gpf0-5, OUT0, NONE);
268                 PIN_SLP(gpf0-6, OUT0, NONE);
269                 PIN_SLP(gpf0-7, OUT0, NONE);
270
271                 PIN_SLP(gpf1-0, OUT0, NONE);
272                 PIN_SLP(gpf1-1, OUT0, NONE);
273                 PIN_SLP(gpf1-2, OUT0, NONE);
274                 PIN_SLP(gpf1-3, OUT0, NONE);
275                 PIN_SLP(gpf1-4, OUT0, NONE);
276                 PIN_SLP(gpf1-5, OUT0, NONE);
277                 PIN_SLP(gpf1-6, OUT0, NONE);
278                 PIN_SLP(gpf1-7, OUT0, NONE);
279
280                 PIN_SLP(gpf2-0, OUT0, NONE);
281                 PIN_SLP(gpf2-1, OUT0, NONE);
282                 PIN_SLP(gpf2-2, OUT0, NONE);
283                 PIN_SLP(gpf2-3, OUT0, NONE);
284                 PIN_SLP(gpf2-4, OUT0, NONE);
285                 PIN_SLP(gpf2-5, OUT0, NONE);
286                 PIN_SLP(gpf2-6, OUT0, NONE);
287                 PIN_SLP(gpf2-7, OUT0, NONE);
288
289                 PIN_SLP(gpf3-0, OUT0, NONE);
290                 PIN_SLP(gpf3-1, OUT0, NONE);
291                 PIN_SLP(gpf3-2, OUT0, NONE);
292                 PIN_SLP(gpf3-3, OUT0, NONE);
293                 PIN_SLP(gpf3-4, PREV, NONE);
294                 PIN_SLP(gpf3-5, INPUT, DOWN);
295
296                 PIN_SLP(gpg0-0, OUT0, NONE);
297                 PIN_SLP(gpg0-1, INPUT, NONE);
298                 PIN_SLP(gpg0-2, INPUT, NONE);
299                 PIN_SLP(gpg0-3, INPUT, NONE);
300                 PIN_SLP(gpg0-4, INPUT, NONE);
301                 PIN_SLP(gpg0-5, INPUT, NONE);
302                 PIN_SLP(gpg0-6, INPUT, NONE);
303
304                 PIN_SLP(gpg1-0, OUT0, NONE);
305                 PIN_SLP(gpg1-1, OUT1, NONE);
306                 PIN_SLP(gpg1-2, PREV, NONE);
307                 PIN_SLP(gpg1-3, OUT1, NONE);
308                 PIN_SLP(gpg1-4, OUT1, NONE);
309                 PIN_SLP(gpg1-5, OUT1, NONE);
310                 PIN_SLP(gpg1-6, OUT1, NONE);
311
312                 PIN_SLP(gpg2-0, OUT0, NONE);
313                 PIN_SLP(gpg2-1, OUT0, NONE);
314                 PIN_SLP(gpg2-2, INPUT, NONE);
315                 PIN_SLP(gpg2-3, OUT0, NONE);
316                 PIN_SLP(gpg2-4, OUT0, NONE);
317                 PIN_SLP(gpg2-5, OUT0, NONE);
318                 PIN_SLP(gpg2-6, OUT0, NONE);
319
320                 PIN_SLP(gpg3-0, OUT1, NONE);
321                 PIN_SLP(gpg3-1, OUT0, NONE);
322                 PIN_SLP(gpg3-2, INPUT, NONE);
323                 PIN_SLP(gpg3-3, INPUT, DOWN);
324                 PIN_SLP(gpg3-4, OUT0, NONE);
325                 PIN_SLP(gpg3-5, OUT0, NONE);
326                 PIN_SLP(gpg3-6, INPUT, DOWN);
327
328                 PIN_SLP(gpi-0, PREV, NONE);
329                 PIN_SLP(gpi-1, INPUT, DOWN);
330                 PIN_SLP(gpi-2, PREV, NONE);
331                 PIN_SLP(gpi-3, PREV, NONE);
332                 PIN_SLP(gpi-4, PREV, NONE);
333                 PIN_SLP(gpi-5, INPUT, DOWN);
334                 PIN_SLP(gpi-6, INPUT, DOWN);
335
336                 PIN_SLP(gpj0-0, INPUT, NONE);
337                 PIN_SLP(gpj0-1, INPUT, NONE);
338                 PIN_SLP(gpj0-2, INPUT, NONE);
339                 PIN_SLP(gpj0-3, INPUT, NONE);
340                 PIN_SLP(gpj0-4, INPUT, NONE);
341                 PIN_SLP(gpj0-5, INPUT, DOWN);
342                 PIN_SLP(gpj0-6, OUT0, NONE);
343                 PIN_SLP(gpj0-7, INPUT, NONE);
344
345                 PIN_SLP(gpj1-0, INPUT, DOWN);
346                 PIN_SLP(gpj1-1, OUT0, NONE);
347                 PIN_SLP(gpj1-2, INPUT, DOWN);
348                 PIN_SLP(gpj1-3, PREV, NONE);
349                 PIN_SLP(gpj1-4, PREV, NONE);
350                 PIN_SLP(gpj1-5, OUT0, NONE);
351
352                 PIN_SLP(gpj2-0, INPUT, DOWN);
353                 PIN_SLP(gpj2-1, INPUT, DOWN);
354                 PIN_SLP(gpj2-2, OUT0, NONE);
355                 PIN_SLP(gpj2-3, INPUT, DOWN);
356                 PIN_SLP(gpj2-4, INPUT, UP);
357                 PIN_SLP(gpj2-5, PREV, NONE);
358                 PIN_SLP(gpj2-6, PREV, NONE);
359                 PIN_SLP(gpj2-7, OUT1, NONE);
360
361                 PIN_SLP(gpj3-0, INPUT, NONE);
362                 PIN_SLP(gpj3-1, INPUT, NONE);
363                 PIN_SLP(gpj3-2, OUT0, NONE);
364                 PIN_SLP(gpj3-3, INPUT, DOWN);
365                 PIN_SLP(gpj3-4, INPUT, NONE);
366                 PIN_SLP(gpj3-5, INPUT, NONE);
367                 PIN_SLP(gpj3-6, INPUT, NONE);
368                 PIN_SLP(gpj3-7, INPUT, NONE);
369
370                 PIN_SLP(gpj4-0, INPUT, NONE);
371                 PIN_SLP(gpj4-1, INPUT, DOWN);
372                 PIN_SLP(gpj4-2, PREV, NONE);
373                 PIN_SLP(gpj4-3, INPUT, NONE);
374                 PIN_SLP(gpj4-4, INPUT, DOWN);
375
376                 PIN_SLP(mp01-0, INPUT, DOWN);
377                 PIN_SLP(mp01-1, OUT0, NONE);
378                 PIN_SLP(mp01-2, INPUT, DOWN);
379                 PIN_SLP(mp01-3, INPUT, DOWN);
380                 PIN_SLP(mp01-4, OUT1, NONE);
381                 PIN_SLP(mp01-5, INPUT, DOWN);
382                 PIN_SLP(mp01-6, INPUT, DOWN);
383                 PIN_SLP(mp01-7, INPUT, DOWN);
384
385                 PIN_SLP(mp02-0, INPUT, DOWN);
386                 PIN_SLP(mp02-1, INPUT, DOWN);
387                 PIN_SLP(mp02-2, INPUT, NONE);
388                 PIN_SLP(mp02-3, INPUT, DOWN);
389
390                 PIN_SLP(mp03-0, INPUT, DOWN);
391                 PIN_SLP(mp03-1, INPUT, DOWN);
392                 PIN_SLP(mp03-2, OUT1, NONE);
393                 PIN_SLP(mp03-3, OUT0, NONE);
394                 PIN_SLP(mp03-4, INPUT, NONE);
395                 PIN_SLP(mp03-5, OUT1, NONE);
396                 PIN_SLP(mp03-6, INPUT, DOWN);
397                 PIN_SLP(mp03-7, INPUT, DOWN);
398
399                 PIN_SLP(mp04-0, INPUT, DOWN);
400                 PIN_SLP(mp04-1, OUT0, NONE);
401                 PIN_SLP(mp04-2, INPUT, DOWN);
402                 PIN_SLP(mp04-3, OUT0, NONE);
403                 PIN_SLP(mp04-4, INPUT, DOWN);
404                 PIN_SLP(mp04-5, INPUT, DOWN);
405                 PIN_SLP(mp04-6, OUT0, NONE);
406                 PIN_SLP(mp04-7, INPUT, DOWN);
407
408                 PIN_SLP(mp05-0, INPUT, NONE);
409                 PIN_SLP(mp05-1, INPUT, NONE);
410                 PIN_SLP(mp05-2, INPUT, NONE);
411                 PIN_SLP(mp05-3, INPUT, NONE);
412                 PIN_SLP(mp05-4, INPUT, DOWN);
413                 PIN_SLP(mp05-5, OUT0, NONE);
414                 PIN_SLP(mp05-6, INPUT, DOWN);
415                 PIN_SLP(mp05-7, PREV, NONE);
416
417                 PIN_SLP(mp06-0, INPUT, DOWN);
418                 PIN_SLP(mp06-1, INPUT, DOWN);
419                 PIN_SLP(mp06-2, INPUT, DOWN);
420                 PIN_SLP(mp06-3, INPUT, DOWN);
421                 PIN_SLP(mp06-4, INPUT, DOWN);
422                 PIN_SLP(mp06-5, INPUT, DOWN);
423                 PIN_SLP(mp06-6, INPUT, DOWN);
424                 PIN_SLP(mp06-7, INPUT, DOWN);
425
426                 PIN_SLP(mp07-0, INPUT, DOWN);
427                 PIN_SLP(mp07-1, INPUT, DOWN);
428                 PIN_SLP(mp07-2, INPUT, DOWN);
429                 PIN_SLP(mp07-3, INPUT, DOWN);
430                 PIN_SLP(mp07-4, INPUT, DOWN);
431                 PIN_SLP(mp07-5, INPUT, DOWN);
432                 PIN_SLP(mp07-6, INPUT, DOWN);
433                 PIN_SLP(mp07-7, INPUT, DOWN);
434         };
435 };
436
437 &sdhci0 {
438         bus-width = <4>;
439         non-removable;
440         mmc-pwrseq = <&nand_pwrseq>;
441         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>;
442         pinctrl-names = "default";
443         status = "okay";
444
445         assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>;
446         assigned-clock-rates = <0>, <52000000>;
447         assigned-clock-parents = <&clocks MOUT_MPLL>;
448 };