GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / s5pv210-fascinate4g.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 S Fascinate 4G (SGH-T959P) based on S5PV210";
10         compatible = "samsung,fascinate4g", "samsung,aries", "samsung,s5pv210";
11         chassis-type = "handset";
12
13         chosen {
14                 stdout-path = &uart2;
15         };
16
17         gpio-keys {
18                 compatible = "gpio-keys";
19
20                 key-power {
21                         label = "power";
22                         gpios = <&gph2 6 GPIO_ACTIVE_LOW>;
23                         linux,code = <KEY_POWER>;
24                         wakeup-source;
25                 };
26
27                 key-vol-down {
28                         label = "volume_down";
29                         gpios = <&gph3 2 GPIO_ACTIVE_LOW>;
30                         linux,code = <KEY_VOLUMEDOWN>;
31                 };
32
33                 key-vol-up {
34                         label = "volume_up";
35                         gpios = <&gph3 1 GPIO_ACTIVE_LOW>;
36                         linux,code = <KEY_VOLUMEUP>;
37                 };
38         };
39
40         headset_micbias_reg: regulator-fixed-3 {
41                 compatible = "regulator-fixed";
42                 regulator-name = "Headset_Micbias";
43                 gpio = <&gpj2 5 GPIO_ACTIVE_HIGH>;
44                 enable-active-high;
45
46                 pinctrl-names = "default";
47                 pinctrl-0 = <&headset_micbias_ena>;
48         };
49
50         main_micbias_reg: regulator-fixed-4 {
51                 compatible = "regulator-fixed";
52                 regulator-name = "Main_Micbias";
53                 gpio = <&gpj4 2 GPIO_ACTIVE_HIGH>;
54                 enable-active-high;
55
56                 pinctrl-names = "default";
57                 pinctrl-0 = <&main_micbias_ena>;
58         };
59
60         sound {
61                 compatible = "samsung,fascinate4g-wm8994";
62
63                 model = "Fascinate4G";
64
65                 extcon = <&fsa9480>;
66
67                 main-micbias-supply = <&main_micbias_reg>;
68                 headset-micbias-supply = <&headset_micbias_reg>;
69
70                 earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>;
71
72                 io-channels = <&adc 3>;
73                 io-channel-names = "headset-detect";
74                 headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_HIGH>;
75                 headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>;
76
77                 samsung,audio-routing =
78                         "HP", "HPOUT1L",
79                         "HP", "HPOUT1R",
80
81                         "SPK", "SPKOUTLN",
82                         "SPK", "SPKOUTLP",
83
84                         "RCV", "HPOUT2N",
85                         "RCV", "HPOUT2P",
86
87                         "LINE", "LINEOUT2N",
88                         "LINE", "LINEOUT2P",
89
90                         "IN1LP", "Main Mic",
91                         "IN1LN", "Main Mic",
92
93                         "IN1RP", "Headset Mic",
94                         "IN1RN", "Headset Mic",
95
96                         "Modem Out", "Modem TX",
97                         "Modem RX", "Modem In",
98
99                         "Bluetooth SPK", "TX",
100                         "RX", "Bluetooth Mic";
101
102                 pinctrl-names = "default";
103                 pinctrl-0 = <&headset_det &earpath_sel>;
104
105                 cpu {
106                         sound-dai = <&i2s0>, <&bt_codec>;
107                 };
108
109                 codec {
110                         sound-dai = <&wm8994>;
111                 };
112         };
113 };
114
115 &fg {
116         compatible = "maxim,max77836-battery";
117
118         interrupt-parent = <&gph3>;
119         interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
120
121         pinctrl-names = "default";
122         pinctrl-0 = <&fg_irq>;
123 };
124
125 &pinctrl0 {
126         pinctrl-names = "default";
127         pinctrl-0 = <&sleep_cfg>;
128
129         headset_det: headset-det-pins {
130                 samsung,pins = "gph0-6", "gph3-6";
131                 samsung,pin-function = <S5PV210_PIN_FUNC_F>;
132                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
133         };
134
135         fg_irq: fg-irq-pins {
136                 samsung,pins = "gph3-3";
137                 samsung,pin-function = <S5PV210_PIN_FUNC_F>;
138                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
139                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
140         };
141
142         headset_micbias_ena: headset-micbias-ena-pins {
143                 samsung,pins = "gpj2-5";
144                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
145                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
146         };
147
148         earpath_sel: earpath-sel-pins {
149                 samsung,pins = "gpj2-6";
150                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
151                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
152         };
153
154         main_micbias_ena: main-micbias-ena-pins {
155                 samsung,pins = "gpj4-2";
156                 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
157                 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
158         };
159
160         /* Based on vendor kernel v2.6.35.7 */
161         sleep_cfg: sleep-state {
162                 PIN_SLP(gpa0-0, PREV, NONE);
163                 PIN_SLP(gpa0-1, PREV, NONE);
164                 PIN_SLP(gpa0-2, PREV, NONE);
165                 PIN_SLP(gpa0-3, OUT1, NONE);
166                 PIN_SLP(gpa0-4, PREV, NONE);
167                 PIN_SLP(gpa0-5, PREV, NONE);
168                 PIN_SLP(gpa0-6, PREV, NONE);
169                 PIN_SLP(gpa0-7, PREV, NONE);
170
171                 PIN_SLP(gpa1-0, INPUT, DOWN);
172                 PIN_SLP(gpa1-1, OUT0, NONE);
173                 PIN_SLP(gpa1-2, INPUT, DOWN);
174                 PIN_SLP(gpa1-3, OUT0, NONE);
175
176                 PIN_SLP(gpb-0, OUT0, NONE);
177                 PIN_SLP(gpb-1, OUT1, NONE);
178                 PIN_SLP(gpb-2, OUT0, NONE);
179                 PIN_SLP(gpb-3, PREV, NONE);
180                 PIN_SLP(gpb-4, INPUT, NONE);
181                 PIN_SLP(gpb-5, PREV, NONE);
182                 PIN_SLP(gpb-6, INPUT, DOWN);
183                 PIN_SLP(gpb-7, OUT0, NONE);
184
185                 PIN_SLP(gpc0-0, OUT0, NONE);
186                 PIN_SLP(gpc0-1, INPUT, DOWN);
187                 PIN_SLP(gpc0-2, OUT0, NONE);
188                 PIN_SLP(gpc0-3, INPUT, DOWN);
189                 PIN_SLP(gpc0-4, OUT0, NONE);
190
191                 PIN_SLP(gpc1-0, INPUT, DOWN);
192                 PIN_SLP(gpc1-1, INPUT, DOWN);
193                 PIN_SLP(gpc1-2, INPUT, DOWN);
194                 PIN_SLP(gpc1-3, INPUT, DOWN);
195                 PIN_SLP(gpc1-4, INPUT, DOWN);
196
197                 PIN_SLP(gpd0-0, INPUT, DOWN);
198                 PIN_SLP(gpd0-1, OUT0, NONE);
199                 PIN_SLP(gpd0-2, INPUT, DOWN);
200                 PIN_SLP(gpd0-3, INPUT, DOWN);
201
202                 PIN_SLP(gpd1-0, INPUT, NONE);
203                 PIN_SLP(gpd1-1, INPUT, NONE);
204                 PIN_SLP(gpd1-2, INPUT, DOWN);
205                 PIN_SLP(gpd1-3, INPUT, DOWN);
206                 PIN_SLP(gpd1-4, INPUT, DOWN);
207                 PIN_SLP(gpd1-5, INPUT, DOWN);
208
209                 PIN_SLP(gpe0-0, INPUT, DOWN);
210                 PIN_SLP(gpe0-1, INPUT, DOWN);
211                 PIN_SLP(gpe0-2, INPUT, DOWN);
212                 PIN_SLP(gpe0-3, INPUT, DOWN);
213                 PIN_SLP(gpe0-4, INPUT, DOWN);
214                 PIN_SLP(gpe0-5, INPUT, DOWN);
215                 PIN_SLP(gpe0-6, INPUT, DOWN);
216                 PIN_SLP(gpe0-7, INPUT, DOWN);
217
218                 PIN_SLP(gpe1-0, INPUT, DOWN);
219                 PIN_SLP(gpe1-1, INPUT, DOWN);
220                 PIN_SLP(gpe1-2, INPUT, DOWN);
221                 PIN_SLP(gpe1-3, OUT0, NONE);
222                 PIN_SLP(gpe1-4, INPUT, DOWN);
223
224                 PIN_SLP(gpf0-0, OUT0, NONE);
225                 PIN_SLP(gpf0-1, OUT0, NONE);
226                 PIN_SLP(gpf0-2, OUT0, NONE);
227                 PIN_SLP(gpf0-3, OUT0, NONE);
228                 PIN_SLP(gpf0-4, OUT0, NONE);
229                 PIN_SLP(gpf0-5, OUT0, NONE);
230                 PIN_SLP(gpf0-6, OUT0, NONE);
231                 PIN_SLP(gpf0-7, OUT0, NONE);
232
233                 PIN_SLP(gpf1-0, OUT0, NONE);
234                 PIN_SLP(gpf1-1, OUT0, NONE);
235                 PIN_SLP(gpf1-2, OUT0, NONE);
236                 PIN_SLP(gpf1-3, OUT0, NONE);
237                 PIN_SLP(gpf1-4, OUT0, NONE);
238                 PIN_SLP(gpf1-5, OUT0, NONE);
239                 PIN_SLP(gpf1-6, OUT0, NONE);
240                 PIN_SLP(gpf1-7, OUT0, NONE);
241
242                 PIN_SLP(gpf2-0, OUT0, NONE);
243                 PIN_SLP(gpf2-1, OUT0, NONE);
244                 PIN_SLP(gpf2-2, OUT0, NONE);
245                 PIN_SLP(gpf2-3, OUT0, NONE);
246                 PIN_SLP(gpf2-4, OUT0, NONE);
247                 PIN_SLP(gpf2-5, OUT0, NONE);
248                 PIN_SLP(gpf2-6, OUT0, NONE);
249                 PIN_SLP(gpf2-7, OUT0, NONE);
250
251                 PIN_SLP(gpf3-0, OUT0, NONE);
252                 PIN_SLP(gpf3-1, OUT0, NONE);
253                 PIN_SLP(gpf3-2, OUT0, NONE);
254                 PIN_SLP(gpf3-3, OUT0, NONE);
255                 PIN_SLP(gpf3-4, PREV, NONE);
256                 PIN_SLP(gpf3-5, INPUT, DOWN);
257
258                 PIN_SLP(gpg0-0, INPUT, DOWN);
259                 PIN_SLP(gpg0-1, INPUT, DOWN);
260                 PIN_SLP(gpg0-2, INPUT, NONE);
261                 PIN_SLP(gpg0-3, INPUT, DOWN);
262                 PIN_SLP(gpg0-4, INPUT, DOWN);
263                 PIN_SLP(gpg0-5, INPUT, DOWN);
264                 PIN_SLP(gpg0-6, INPUT, DOWN);
265
266                 PIN_SLP(gpg1-0, OUT0, NONE);
267                 PIN_SLP(gpg1-1, OUT1, NONE);
268                 PIN_SLP(gpg1-2, PREV, NONE);
269                 PIN_SLP(gpg1-3, OUT1, NONE);
270                 PIN_SLP(gpg1-4, OUT1, NONE);
271                 PIN_SLP(gpg1-5, OUT1, NONE);
272                 PIN_SLP(gpg1-6, OUT1, NONE);
273
274                 PIN_SLP(gpg2-0, OUT0, NONE);
275                 PIN_SLP(gpg2-1, OUT0, NONE);
276                 PIN_SLP(gpg2-2, INPUT, NONE);
277                 PIN_SLP(gpg2-3, OUT0, NONE);
278                 PIN_SLP(gpg2-4, OUT0, NONE);
279                 PIN_SLP(gpg2-5, OUT0, NONE);
280                 PIN_SLP(gpg2-6, OUT0, NONE);
281
282                 PIN_SLP(gpg3-0, PREV, UP);
283                 PIN_SLP(gpg3-1, PREV, UP);
284                 PIN_SLP(gpg3-2, INPUT, NONE);
285                 PIN_SLP(gpg3-3, INPUT, DOWN);
286                 PIN_SLP(gpg3-4, OUT0, NONE);
287                 PIN_SLP(gpg3-5, OUT0, NONE);
288                 PIN_SLP(gpg3-6, INPUT, DOWN);
289
290                 PIN_SLP(gpi-0, PREV, NONE);
291                 PIN_SLP(gpi-1, INPUT, DOWN);
292                 PIN_SLP(gpi-2, PREV, NONE);
293                 PIN_SLP(gpi-3, PREV, NONE);
294                 PIN_SLP(gpi-4, PREV, NONE);
295                 PIN_SLP(gpi-5, INPUT, DOWN);
296                 PIN_SLP(gpi-6, INPUT, DOWN);
297
298                 PIN_SLP(gpj0-0, INPUT, NONE);
299                 PIN_SLP(gpj0-1, INPUT, NONE);
300                 PIN_SLP(gpj0-2, INPUT, NONE);
301                 PIN_SLP(gpj0-3, INPUT, NONE);
302                 PIN_SLP(gpj0-4, INPUT, NONE);
303                 PIN_SLP(gpj0-5, INPUT, DOWN);
304                 PIN_SLP(gpj0-6, OUT0, NONE);
305                 PIN_SLP(gpj0-7, INPUT, NONE);
306
307                 PIN_SLP(gpj1-0, OUT1, NONE);
308                 PIN_SLP(gpj1-1, OUT0, NONE);
309                 PIN_SLP(gpj1-2, INPUT, DOWN);
310                 PIN_SLP(gpj1-3, PREV, NONE);
311                 PIN_SLP(gpj1-4, PREV, NONE);
312                 PIN_SLP(gpj1-5, OUT0, NONE);
313
314                 PIN_SLP(gpj2-0, INPUT, DOWN);
315                 PIN_SLP(gpj2-1, INPUT, DOWN);
316                 PIN_SLP(gpj2-2, OUT0, NONE);
317                 PIN_SLP(gpj2-3, INPUT, DOWN);
318                 PIN_SLP(gpj2-4, INPUT, DOWN);
319                 PIN_SLP(gpj2-5, PREV, NONE);
320                 PIN_SLP(gpj2-6, PREV, NONE);
321                 PIN_SLP(gpj2-7, INPUT, DOWN);
322
323                 PIN_SLP(gpj3-0, INPUT, NONE);
324                 PIN_SLP(gpj3-1, INPUT, NONE);
325                 PIN_SLP(gpj3-2, OUT0, NONE);
326                 PIN_SLP(gpj3-3, INPUT, DOWN);
327                 PIN_SLP(gpj3-4, INPUT, NONE);
328                 PIN_SLP(gpj3-5, INPUT, NONE);
329                 PIN_SLP(gpj3-6, INPUT, NONE);
330                 PIN_SLP(gpj3-7, INPUT, NONE);
331
332                 PIN_SLP(gpj4-0, INPUT, NONE);
333                 PIN_SLP(gpj4-1, INPUT, DOWN);
334                 PIN_SLP(gpj4-2, PREV, NONE);
335                 PIN_SLP(gpj4-3, INPUT, NONE);
336                 PIN_SLP(gpj4-4, INPUT, DOWN);
337
338                 PIN_SLP(mp01-0, OUT1, NONE);
339                 PIN_SLP(mp01-1, OUT0, NONE);
340                 PIN_SLP(mp01-2, INPUT, DOWN);
341                 PIN_SLP(mp01-3, INPUT, DOWN);
342                 PIN_SLP(mp01-4, OUT1, NONE);
343                 PIN_SLP(mp01-5, INPUT, DOWN);
344                 PIN_SLP(mp01-6, INPUT, DOWN);
345                 PIN_SLP(mp01-7, INPUT, DOWN);
346
347                 PIN_SLP(mp02-0, INPUT, DOWN);
348                 PIN_SLP(mp02-1, INPUT, DOWN);
349                 PIN_SLP(mp02-2, INPUT, NONE);
350                 PIN_SLP(mp02-3, INPUT, DOWN);
351
352                 PIN_SLP(mp03-0, INPUT, DOWN);
353                 PIN_SLP(mp03-1, INPUT, DOWN);
354                 PIN_SLP(mp03-2, OUT1, NONE);
355                 PIN_SLP(mp03-3, OUT0, NONE);
356                 PIN_SLP(mp03-4, INPUT, NONE);
357                 PIN_SLP(mp03-5, OUT0, NONE);
358                 PIN_SLP(mp03-6, INPUT, DOWN);
359                 PIN_SLP(mp03-7, INPUT, DOWN);
360
361                 PIN_SLP(mp04-0, INPUT, DOWN);
362                 PIN_SLP(mp04-1, OUT0, NONE);
363                 PIN_SLP(mp04-2, INPUT, DOWN);
364                 PIN_SLP(mp04-3, OUT0, NONE);
365                 PIN_SLP(mp04-4, INPUT, DOWN);
366                 PIN_SLP(mp04-5, INPUT, DOWN);
367                 PIN_SLP(mp04-6, OUT0, NONE);
368                 PIN_SLP(mp04-7, INPUT, DOWN);
369
370                 PIN_SLP(mp05-0, INPUT, NONE);
371                 PIN_SLP(mp05-1, INPUT, NONE);
372                 PIN_SLP(mp05-2, INPUT, NONE);
373                 PIN_SLP(mp05-3, INPUT, NONE);
374                 PIN_SLP(mp05-4, INPUT, DOWN);
375                 PIN_SLP(mp05-5, OUT0, NONE);
376                 PIN_SLP(mp05-6, INPUT, DOWN);
377                 PIN_SLP(mp05-7, PREV, NONE);
378
379                 PIN_SLP(mp06-0, INPUT, DOWN);
380                 PIN_SLP(mp06-1, INPUT, DOWN);
381                 PIN_SLP(mp06-2, INPUT, DOWN);
382                 PIN_SLP(mp06-3, INPUT, DOWN);
383                 PIN_SLP(mp06-4, INPUT, DOWN);
384                 PIN_SLP(mp06-5, INPUT, DOWN);
385                 PIN_SLP(mp06-6, INPUT, DOWN);
386                 PIN_SLP(mp06-7, INPUT, DOWN);
387
388                 PIN_SLP(mp07-0, INPUT, DOWN);
389                 PIN_SLP(mp07-1, INPUT, DOWN);
390                 PIN_SLP(mp07-2, INPUT, DOWN);
391                 PIN_SLP(mp07-3, INPUT, DOWN);
392                 PIN_SLP(mp07-4, INPUT, DOWN);
393                 PIN_SLP(mp07-5, INPUT, DOWN);
394                 PIN_SLP(mp07-6, INPUT, DOWN);
395                 PIN_SLP(mp07-7, INPUT, DOWN);
396         };
397 };
398
399 &wm8994 {
400         /* GPIO3 (BCLK2) and GPIO4 (LRCLK2) as outputs */
401         wlf,gpio-cfg = <0xa101 0x8100 0x8100 0x8100 0x8100 0xa101
402                         0x0100 0x8100 0x0100 0x0100 0x0100>;
403 };