Loading...
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};
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
12 chosen {
13 stdout-path = &uart2;
14 };
15
16 nand_pwrseq: nand-pwrseq {
17 compatible = "mmc-pwrseq-simple";
18 reset-gpios = <&gpj2 7 GPIO_ACTIVE_LOW>;
19 pinctrl-names = "default";
20 pinctrl-0 = <&massmemory_en>;
21 };
22
23 gpio-keys {
24 compatible = "gpio-keys";
25
26 power {
27 label = "power";
28 gpios = <&gph2 6 GPIO_ACTIVE_LOW>;
29 linux,code = <KEY_POWER>;
30 wakeup-source;
31 };
32
33 vol-down {
34 label = "volume_down";
35 gpios = <&gph3 1 GPIO_ACTIVE_LOW>;
36 linux,code = <KEY_VOLUMEDOWN>;
37 };
38
39 vol-up {
40 label = "volume_up";
41 gpios = <&gph3 2 GPIO_ACTIVE_LOW>;
42 linux,code = <KEY_VOLUMEUP>;
43 };
44
45 home {
46 label = "home";
47 gpios = <&gph3 5 GPIO_ACTIVE_LOW>;
48 linux,code = <KEY_HOME>;
49 wakeup-source;
50 };
51 };
52
53 i2c_fmradio: i2c-gpio-8 {
54 compatible = "i2c-gpio";
55 sda-gpios = <&gpd1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
56 scl-gpios = <&gpd1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
57 i2c-gpio,delay-us = <2>;
58 #address-cells = <1>;
59 #size-cells = <0>;
60
61 pinctrl-names = "default";
62 pinctrl-0 = <&fm_i2c_pins>;
63
64 fmradio@10 {
65 compatible = "silabs,si470x";
66 reg = <0x10>;
67 interrupt-parent = <&gpj2>;
68 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
69 reset-gpios = <&gpj2 5 GPIO_ACTIVE_HIGH>;
70
71 pinctrl-names = "default";
72 pinctrl-0 = <&fm_irq &fm_rst>;
73 };
74 };
75
76 micbias_reg: regulator-fixed-3 {
77 compatible = "regulator-fixed";
78 regulator-name = "MICBIAS";
79 gpio = <&gpj4 2 GPIO_ACTIVE_HIGH>;
80 enable-active-high;
81
82 pinctrl-names = "default";
83 pinctrl-0 = <&micbias_reg_ena>;
84 };
85
86 sound {
87 compatible = "samsung,aries-wm8994";
88
89 model = "Aries";
90
91 extcon = <&fsa9480>;
92
93 main-micbias-supply = <&micbias_reg>;
94 headset-micbias-supply = <&micbias_reg>;
95
96 earpath-sel-gpios = <&gpj2 6 GPIO_ACTIVE_HIGH>;
97
98 io-channels = <&adc 3>;
99 io-channel-names = "headset-detect";
100 headset-detect-gpios = <&gph0 6 GPIO_ACTIVE_LOW>;
101 headset-key-gpios = <&gph3 6 GPIO_ACTIVE_HIGH>;
102
103 samsung,audio-routing =
104 "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 = <S3C64XX_PIN_PULL_NONE>;
155 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
156 };
157
158 headset_det: headset-det {
159 samsung,pins = "gph0-6", "gph3-6";
160 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
161 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
162 };
163
164 fm_irq: fm-irq {
165 samsung,pins = "gpj2-4";
166 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
167 samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
168 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
169 };
170
171 fm_rst: fm-rst {
172 samsung,pins = "gpj2-5";
173 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
174 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
175 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
176 };
177
178 earpath_sel: earpath-sel {
179 samsung,pins = "gpj2-6";
180 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
181 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
182 };
183
184 massmemory_en: massmemory-en {
185 samsung,pins = "gpj2-7";
186 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
187 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
188 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
189 };
190
191 micbias_reg_ena: micbias-reg-ena {
192 samsung,pins = "gpj4-2";
193 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
194 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
195 };
196
197 /* Based on CyanogenMod 3.0.101 kernel */
198 sleep_cfg: sleep-cfg {
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};