Loading...
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's S5PV210 based Galaxy Aries board device tree source
4 */
5
6/dts-v1/;
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include "s5pv210.dtsi"
10
11/ {
12 compatible = "samsung,aries", "samsung,s5pv210";
13
14 aliases: aliases {
15 i2c4 = &i2c_sound;
16 i2c5 = &i2c_accel;
17 i2c6 = &i2c_pmic;
18 i2c7 = &i2c_musb;
19 i2c9 = &i2c_fuel;
20 i2c10 = &i2c_touchkey;
21 i2c11 = &i2c_prox;
22 i2c12 = &i2c_magnetometer;
23 };
24
25 memory@30000000 {
26 device_type = "memory";
27 reg = <0x30000000 0x05000000>,
28 <0x40000000 0x10000000>,
29 <0x50000000 0x08000000>;
30 };
31
32 reserved-memory {
33 #address-cells = <1>;
34 #size-cells = <1>;
35 ranges;
36
37 mfc_left: region@43000000 {
38 compatible = "shared-dma-pool";
39 no-map;
40 reg = <0x43000000 0x2000000>;
41 };
42
43 mfc_right: region@51000000 {
44 compatible = "shared-dma-pool";
45 no-map;
46 reg = <0x51000000 0x2000000>;
47 };
48 };
49
50 pmic_ap_clk: clock-0 {
51 /* Workaround for missing clock on PMIC */
52 compatible = "fixed-clock";
53 #clock-cells = <0>;
54 clock-frequency = <32768>;
55 };
56
57 bt_codec: bt-sco {
58 compatible = "linux,bt-sco";
59 #sound-dai-cells = <0>;
60 };
61
62 vibrator_pwr: regulator-fixed-0 {
63 compatible = "regulator-fixed";
64 regulator-name = "vibrator-en";
65 enable-active-high;
66 gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
67
68 pinctrl-names = "default";
69 pinctrl-0 = <&vibrator_ena>;
70 };
71
72 touchkey_vdd: regulator-fixed-1 {
73 compatible = "regulator-fixed";
74 regulator-name = "VTOUCH_3.3V";
75 regulator-min-microvolt = <3300000>;
76 regulator-max-microvolt = <3300000>;
77 enable-active-high;
78 gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>;
79
80 pinctrl-names = "default";
81 pinctrl-0 = <&touchkey_vdd_ena>;
82 };
83
84 gp2a_vled: regulator-fixed-2 {
85 compatible = "regulator-fixed";
86 regulator-name = "VLED";
87 enable-active-high;
88 gpio = <&gpj1 4 GPIO_ACTIVE_HIGH>;
89 regulator-min-microvolt = <2800000>;
90 regulator-max-microvolt = <2800000>;
91
92 pinctrl-names = "default";
93 pinctrl-0 = <&gp2a_power>;
94 };
95
96 wifi_pwrseq: wifi-pwrseq {
97 compatible = "mmc-pwrseq-simple";
98 reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
99 pinctrl-names = "default";
100 pinctrl-0 = <&wlan_gpio_rst>;
101 post-power-on-delay-ms = <500>;
102 power-off-delay-us = <500>;
103 };
104
105 i2c_sound: i2c-gpio-0 {
106 compatible = "i2c-gpio";
107 sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
108 scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
109 i2c-gpio,delay-us = <2>;
110 #address-cells = <1>;
111 #size-cells = <0>;
112
113 pinctrl-names = "default";
114 pinctrl-0 = <&sound_i2c_pins>;
115
116 wm8994: audio-codec@1a {
117 compatible = "wlf,wm8994";
118 reg = <0x1a>;
119
120 #sound-dai-cells = <0>;
121
122 gpio-controller;
123 #gpio-cells = <2>;
124
125 clocks = <&clocks MOUT_CLKOUT>;
126 clock-names = "MCLK1";
127
128 AVDD2-supply = <&buck3_reg>;
129 DBVDD-supply = <&buck3_reg>;
130 CPVDD-supply = <&buck3_reg>;
131 SPKVDD1-supply = <&buck3_reg>;
132 SPKVDD2-supply = <&buck3_reg>;
133
134 wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100
135 0xa101 0x0100 0x8100 0x0100 0x0100
136 0x0100>;
137
138 wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
139 wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
140
141 wlf,lineout1-se;
142 wlf,lineout2-se;
143
144 assigned-clocks = <&clocks MOUT_CLKOUT>;
145 assigned-clock-rates = <0>;
146 assigned-clock-parents = <&xusbxti>;
147
148 pinctrl-names = "default";
149 pinctrl-0 = <&codec_ldo>;
150 };
151 };
152
153 i2c_accel: i2c-gpio-1 {
154 compatible = "i2c-gpio";
155 sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
156 scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
157 i2c-gpio,delay-us = <2>;
158 #address-cells = <1>;
159 #size-cells = <0>;
160
161 pinctrl-names = "default";
162 pinctrl-0 = <&accel_i2c_pins>;
163
164 accelerometer@38 {
165 compatible = "bosch,bma023";
166 reg = <0x38>;
167
168 vdd-supply = <&ldo9_reg>;
169 vddio-supply = <&ldo9_reg>;
170 };
171 };
172
173 i2c_pmic: i2c-gpio-2 {
174 compatible = "i2c-gpio";
175 sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
176 scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
177 i2c-gpio,delay-us = <2>;
178 #address-cells = <1>;
179 #size-cells = <0>;
180
181 pinctrl-names = "default";
182 pinctrl-0 = <&pmic_i2c_pins>;
183
184 pmic@66 {
185 compatible = "maxim,max8998";
186 reg = <0x66>;
187 interrupt-parent = <&gph0>;
188 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
189
190 max8998,pmic-buck1-default-dvs-idx = <1>;
191 max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
192 <&gph0 4 GPIO_ACTIVE_HIGH>;
193 max8998,pmic-buck1-dvs-voltage = <1275000>, <1200000>,
194 <1050000>, <950000>;
195
196 max8998,pmic-buck2-default-dvs-idx = <0>;
197 max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
198 max8998,pmic-buck2-dvs-voltage = <1100000>, <1000000>;
199
200 pinctrl-names = "default";
201 pinctrl-0 = <&pmic_dvs_pins &pmic_irq>;
202
203 regulators {
204 ldo2_reg: LDO2 {
205 regulator-name = "VALIVE_1.2V";
206 regulator-min-microvolt = <1200000>;
207 regulator-max-microvolt = <1200000>;
208 regulator-always-on;
209
210 regulator-state-mem {
211 regulator-on-in-suspend;
212 };
213 };
214
215 ldo3_reg: LDO3 {
216 regulator-name = "VUSB_1.1V";
217 regulator-min-microvolt = <1100000>;
218 regulator-max-microvolt = <1100000>;
219
220 regulator-state-mem {
221 regulator-off-in-suspend;
222 };
223 };
224
225 ldo4_reg: LDO4 {
226 regulator-name = "VADC_3.3V";
227 regulator-min-microvolt = <3300000>;
228 regulator-max-microvolt = <3300000>;
229
230 regulator-state-mem {
231 regulator-off-in-suspend;
232 };
233 };
234
235 ldo5_reg: LDO5 {
236 regulator-name = "VTF_2.8V";
237 regulator-min-microvolt = <2800000>;
238 regulator-max-microvolt = <2800000>;
239
240 regulator-state-mem {
241 regulator-off-in-suspend;
242 };
243 };
244
245 ldo6_reg: LDO6 {
246 regulator-name = "LDO6";
247 regulator-min-microvolt = <1600000>;
248 regulator-max-microvolt = <3600000>;
249 };
250
251 ldo7_reg: LDO7 {
252 regulator-name = "VLCD_1.8V";
253 regulator-min-microvolt = <1800000>;
254 regulator-max-microvolt = <1800000>;
255
256 regulator-state-mem {
257 regulator-off-in-suspend;
258 };
259 };
260
261 ldo8_reg: LDO8 {
262 regulator-name = "VUSB_3.3V";
263 regulator-min-microvolt = <3300000>;
264 regulator-max-microvolt = <3300000>;
265
266 regulator-state-mem {
267 regulator-off-in-suspend;
268 };
269 };
270
271 ldo9_reg: LDO9 {
272 regulator-name = "VCC_2.8V_PDA";
273 regulator-min-microvolt = <2800000>;
274 regulator-max-microvolt = <2800000>;
275 regulator-always-on;
276 };
277
278 ldo10_reg: LDO10 {
279 regulator-name = "VPLL_1.2V";
280 regulator-min-microvolt = <1200000>;
281 regulator-max-microvolt = <1200000>;
282 regulator-always-on;
283
284 regulator-state-mem {
285 regulator-on-in-suspend;
286 };
287 };
288
289 ldo11_reg: LDO11 {
290 regulator-name = "CAM_AF_3.0V";
291 regulator-min-microvolt = <3000000>;
292 regulator-max-microvolt = <3000000>;
293
294 regulator-state-mem {
295 regulator-off-in-suspend;
296 };
297 };
298
299 ldo12_reg: LDO12 {
300 regulator-name = "CAM_SENSOR_CORE_1.2V";
301 regulator-min-microvolt = <1200000>;
302 regulator-max-microvolt = <1200000>;
303
304 regulator-state-mem {
305 regulator-off-in-suspend;
306 };
307 };
308
309 ldo13_reg: LDO13 {
310 regulator-name = "VGA_VDDIO_2.8V";
311 regulator-min-microvolt = <2800000>;
312 regulator-max-microvolt = <2800000>;
313
314 regulator-state-mem {
315 regulator-off-in-suspend;
316 };
317 };
318
319 ldo14_reg: LDO14 {
320 regulator-name = "VGA_DVDD_1.8V";
321 regulator-min-microvolt = <1800000>;
322 regulator-max-microvolt = <1800000>;
323
324 regulator-state-mem {
325 regulator-off-in-suspend;
326 };
327 };
328
329 ldo15_reg: LDO15 {
330 regulator-name = "CAM_ISP_HOST_2.8V";
331 regulator-min-microvolt = <2800000>;
332 regulator-max-microvolt = <2800000>;
333
334 regulator-state-mem {
335 regulator-off-in-suspend;
336 };
337 };
338
339 ldo16_reg: LDO16 {
340 regulator-name = "VGA_AVDD_2.8V";
341 regulator-min-microvolt = <2800000>;
342 regulator-max-microvolt = <2800000>;
343
344 regulator-state-mem {
345 regulator-off-in-suspend;
346 };
347 };
348
349 ldo17_reg: LDO17 {
350 regulator-name = "VCC_3.0V_LCD";
351 regulator-min-microvolt = <3000000>;
352 regulator-max-microvolt = <3000000>;
353
354 regulator-state-mem {
355 regulator-off-in-suspend;
356 };
357 };
358
359 buck1_reg: BUCK1 {
360 regulator-name = "vddarm";
361 regulator-min-microvolt = <750000>;
362 regulator-max-microvolt = <1500000>;
363
364 regulator-state-mem {
365 regulator-off-in-suspend;
366 regulator-suspend-microvolt = <1250000>;
367 };
368 };
369
370 buck2_reg: BUCK2 {
371 regulator-name = "vddint";
372 regulator-min-microvolt = <750000>;
373 regulator-max-microvolt = <1500000>;
374
375 regulator-state-mem {
376 regulator-off-in-suspend;
377 regulator-suspend-microvolt = <1100000>;
378 };
379 };
380
381 buck3_reg: BUCK3 {
382 regulator-name = "VCC_1.8V";
383 regulator-min-microvolt = <1800000>;
384 regulator-max-microvolt = <1800000>;
385 regulator-always-on;
386 };
387
388 buck4_reg: BUCK4 {
389 regulator-name = "CAM_ISP_CORE_1.2V";
390 regulator-min-microvolt = <1200000>;
391 regulator-max-microvolt = <1200000>;
392
393 regulator-state-mem {
394 regulator-off-in-suspend;
395 };
396 };
397
398 ap32khz_reg: EN32KHz-AP {
399 regulator-name = "32KHz AP";
400 regulator-always-on;
401 };
402
403 cp32khz_reg: EN32KHz-CP {
404 regulator-name = "32KHz CP";
405 };
406
407 vichg_reg: ENVICHG {
408 regulator-name = "VICHG";
409 regulator-always-on;
410 };
411
412 safe1_sreg: ESAFEOUT1 {
413 regulator-name = "SAFEOUT1";
414 };
415
416 safe2_sreg: ESAFEOUT2 {
417 regulator-name = "SAFEOUT2";
418 };
419 };
420 };
421 };
422
423 i2c_musb: i2c-gpio-3 {
424 compatible = "i2c-gpio";
425 sda-gpios = <&gpj3 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
426 scl-gpios = <&gpj3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
427 i2c-gpio,delay-us = <2>;
428 #address-cells = <1>;
429 #size-cells = <0>;
430
431 pinctrl-names = "default";
432 pinctrl-0 = <&musb_i2c_pins>;
433
434 fsa9480: musb@25 {
435 compatible = "fcs,fsa9480";
436 reg = <0x25>;
437 interrupt-parent = <&gph2>;
438 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
439
440 pinctrl-names = "default";
441 pinctrl-0 = <&musb_irq>;
442 };
443 };
444
445 i2c_fuel: i2c-gpio-4 {
446 compatible = "i2c-gpio";
447 sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
448 scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
449 i2c-gpio,delay-us = <2>;
450 #address-cells = <1>;
451 #size-cells = <0>;
452
453 pinctrl-names = "default";
454 pinctrl-0 = <&fg_i2c_pins>;
455
456 fg: fuelgauge@36 {
457 compatible = "maxim,max17040";
458 reg = <0x36>;
459 };
460 };
461
462 i2c_touchkey: i2c-gpio-5 {
463 compatible = "i2c-gpio";
464 sda-gpios = <&gpj3 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
465 scl-gpios = <&gpj3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
466 i2c-gpio,delay-us = <2>;
467 #address-cells = <1>;
468 #size-cells = <0>;
469
470 pinctrl-names = "default";
471 pinctrl-0 = <&touchkey_i2c_pins>;
472
473 touchkey@20 {
474 compatible = "cypress,aries-touchkey";
475 reg = <0x20>;
476 vdd-supply = <&touchkey_vdd>;
477 vcc-supply = <&buck3_reg>;
478 linux,keycodes = <KEY_MENU KEY_BACK
479 KEY_HOMEPAGE KEY_SEARCH>;
480 interrupt-parent = <&gpj4>;
481 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
482
483 pinctrl-names = "default";
484 pinctrl-0 = <&touchkey_irq>;
485 };
486 };
487
488 i2c_prox: i2c-gpio-6 {
489 compatible = "i2c-gpio";
490 sda-gpios = <&gpg2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
491 scl-gpios = <&gpg0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
492 i2c-gpio,delay-us = <2>;
493 #address-cells = <1>;
494 #size-cells = <0>;
495
496 pinctrl-names = "default";
497 pinctrl-0 = <&prox_i2c_pins>;
498
499 light-sensor@44 {
500 compatible = "sharp,gp2ap002a00f";
501 reg = <0x44>;
502 interrupt-parent = <&gph0>;
503 interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
504 vdd-supply = <&gp2a_vled>;
505 vio-supply = <&gp2a_vled>;
506 io-channels = <&gp2a_shunt>;
507 io-channel-names = "alsout";
508 sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
509 sharp,proximity-close-hysteresis = /bits/ 8 <0x20>;
510
511 pinctrl-names = "default";
512 pinctrl-0 = <&gp2a_irq>;
513 };
514 };
515
516 i2c_magnetometer: i2c-gpio-7 {
517 compatible = "i2c-gpio";
518 sda-gpios = <&gpj0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
519 scl-gpios = <&gpj0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
520 i2c-gpio,delay-us = <2>;
521 #address-cells = <1>;
522 #size-cells = <0>;
523
524 pinctrl-names = "default";
525 pinctrl-0 = <&magnetometer_i2c_pins>;
526
527 status = "disabled";
528
529 /* Yamaha yas529 magnetometer, no mainline binding */
530 };
531
532 vibrator: pwm-vibrator {
533 compatible = "pwm-vibrator";
534 pwms = <&pwm 1 44642 0>;
535 pwm-names = "enable";
536 vcc-supply = <&vibrator_pwr>;
537 pinctrl-names = "default";
538 pinctrl-0 = <&pwm1_out>;
539 };
540
541 poweroff: syscon-poweroff {
542 compatible = "syscon-poweroff";
543 regmap = <&pmu_syscon>;
544 offset = <0x681c>; /* PS_HOLD_CONTROL */
545 value = <0x5200>;
546 };
547
548 spi_lcd: spi-2 {
549 compatible = "spi-gpio";
550 #address-cells = <1>;
551 #size-cells = <0>;
552
553 sck-gpios = <&mp04 1 GPIO_ACTIVE_HIGH>;
554 mosi-gpios = <&mp04 3 GPIO_ACTIVE_HIGH>;
555 cs-gpios = <&mp01 1 GPIO_ACTIVE_HIGH>;
556 num-chipselects = <1>;
557
558 pinctrl-names = "default";
559 pinctrl-0 = <&lcd_spi_pins>;
560
561 panel@0 {
562 compatible = "samsung,s6e63m0";
563 reg = <0>;
564 reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>;
565 vdd3-supply = <&ldo7_reg>;
566 vci-supply = <&ldo17_reg>;
567 spi-max-frequency = <1200000>;
568
569 pinctrl-names = "default";
570 pinctrl-0 = <&panel_rst>;
571
572 port {
573 lcd_ep: endpoint {
574 remote-endpoint = <&fimd_ep>;
575 };
576 };
577 };
578 };
579};
580
581&adc {
582 vdd-supply = <&ldo4_reg>;
583
584 status = "okay";
585
586 gp2a_shunt: current-sense-shunt {
587 compatible = "current-sense-shunt";
588 io-channels = <&adc 9>;
589 shunt-resistor-micro-ohms = <47000000>; /* 47 ohms */
590 #io-channel-cells = <0>;
591 };
592};
593
594&fimd {
595 pinctrl-names = "default";
596 pinctrl-0 = <&lcd_clk &lcd_data24>;
597 status = "okay";
598
599 samsung,invert-vden;
600 samsung,invert-vclk;
601
602 #address-cells = <1>;
603 #size-cells = <0>;
604
605 port@3 {
606 reg = <3>;
607 fimd_ep: endpoint {
608 remote-endpoint = <&lcd_ep>;
609 };
610 };
611};
612
613&hsotg {
614 vusb_a-supply = <&ldo8_reg>;
615 vusb_d-supply = <&ldo3_reg>;
616 dr_mode = "peripheral";
617 status = "okay";
618};
619
620&i2c2 {
621 samsung,i2c-sda-delay = <100>;
622 samsung,i2c-max-bus-freq = <400000>;
623 samsung,i2c-slave-addr = <0x10>;
624 status = "okay";
625
626 touchscreen@4a {
627 compatible = "atmel,maxtouch";
628 reg = <0x4a>;
629 interrupt-parent = <&gpj0>;
630 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
631 pinctrl-names = "default";
632 pinctrl-0 = <&ts_irq>;
633 reset-gpios = <&gpj1 3 GPIO_ACTIVE_LOW>;
634 };
635};
636
637&i2s0 {
638 dmas = <&pdma0 10>, <&pdma0 9>, <&pdma0 11>;
639 status = "okay";
640};
641
642&mfc {
643 memory-region = <&mfc_left>, <&mfc_right>;
644};
645
646&pinctrl0 {
647 bt_reset: bt-reset-pins {
648 samsung,pins = "gpb-3";
649 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
650 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
651 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
652 };
653
654 wlan_bt_en: wlan-bt-en-pins {
655 samsung,pins = "gpb-5";
656 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
657 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
658 samsung,pin-val = <1>;
659 };
660
661 codec_ldo: codec-ldo-pins {
662 samsung,pins = "gpf3-4";
663 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
664 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
665 };
666
667 prox_i2c_pins: gp2a-i2c-pins {
668 samsung,pins = "gpg0-2", "gpg2-2";
669 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
670 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
671 };
672
673 wlan_gpio_rst: wlan-gpio-rst-pins {
674 samsung,pins = "gpg1-2";
675 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
676 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
677 };
678
679 bt_wake: bt-wake-pins {
680 samsung,pins = "gpg3-4";
681 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
682 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
683 };
684
685 gp2a_irq: gp2a-irq-pins {
686 samsung,pins = "gph0-2";
687 samsung,pin-function = <S5PV210_PIN_FUNC_F>;
688 samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
689 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
690 };
691
692 pmic_dvs_pins: pmic-dvs-pins {
693 samsung,pins = "gph0-3", "gph0-4", "gph0-5";
694 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
695 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
696 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
697 samsung,pin-val = <0>;
698 };
699
700 pmic_irq: pmic-irq-pins {
701 samsung,pins = "gph0-7";
702 samsung,pin-function = <S5PV210_PIN_FUNC_F>;
703 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
704 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
705 };
706
707 wifi_host_wake: wifi-host-wake-pins {
708 samsung,pins = "gph2-4";
709 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
710 samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
711 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
712 };
713
714 bt_host_wake: bt-host-wake-pins {
715 samsung,pins = "gph2-5";
716 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
717 samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
718 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
719 };
720
721 musb_irq: musq-irq-pins {
722 samsung,pins = "gph2-7";
723 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
724 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
725 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
726 };
727
728 tf_detect: tf-detect-pins {
729 samsung,pins = "gph3-4";
730 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
731 samsung,pin-pud = <S5PV210_PIN_PULL_DOWN>;
732 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
733 };
734
735 wifi_wake: wifi-wake-pins {
736 samsung,pins = "gph3-5";
737 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
738 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
739 };
740
741 magnetometer_i2c_pins: yas529-i2c-pins {
742 samsung,pins = "gpj0-0", "gpj0-1";
743 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
744 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
745 };
746
747 ts_irq: ts-irq-pins {
748 samsung,pins = "gpj0-5";
749 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
750 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
751 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
752 };
753
754 vibrator_ena: vibrator-ena-pins {
755 samsung,pins = "gpj1-1";
756 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
757 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
758 };
759
760 gp2a_power: gp2a-power-pins {
761 samsung,pins = "gpj1-4";
762 samsung,pin-function = <S5PV210_PIN_FUNC_OUTPUT>;
763 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
764 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
765 };
766
767 touchkey_i2c_pins: touchkey-i2c-pins {
768 samsung,pins = "gpj3-0", "gpj3-1";
769 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
770 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
771 };
772
773 touchkey_vdd_ena: touchkey-vdd-ena-pins {
774 samsung,pins = "gpj3-2";
775 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
776 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
777 };
778
779 musb_i2c_pins: musb-i2c-pins {
780 samsung,pins = "gpj3-4", "gpj3-5";
781 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
782 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
783 };
784
785 accel_i2c_pins: accel-i2c-pins {
786 samsung,pins = "gpj3-6", "gpj3-7";
787 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
788 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
789 };
790
791 pmic_i2c_pins: pmic-i2c-pins {
792 samsung,pins = "gpj4-0", "gpj4-3";
793 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
794 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
795 };
796
797 touchkey_irq: touchkey-irq-pins {
798 samsung,pins = "gpj4-1";
799 samsung,pin-function = <S5PV210_PIN_FUNC_INPUT>;
800 samsung,pin-pud = <S5PV210_PIN_PULL_UP>;
801 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
802 };
803
804 lcd_spi_pins: spi-lcd-pins {
805 samsung,pins = "mp01-1", "mp04-1", "mp04-3";
806 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
807 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
808 };
809
810 fg_i2c_pins: fg-i2c-pins {
811 samsung,pins = "mp05-0", "mp05-1";
812 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
813 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
814 };
815
816 sound_i2c_pins: sound-i2c-pins {
817 samsung,pins = "mp05-2", "mp05-3";
818 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
819 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
820 };
821
822 panel_rst: panel-rst-pins {
823 samsung,pins = "mp05-5";
824 samsung,pin-pud = <S5PV210_PIN_PULL_NONE>;
825 samsung,pin-drv = <S5PV210_PIN_DRV_LV1>;
826 };
827};
828
829&pwm {
830 samsung,pwm-outputs = <1>;
831};
832
833&rtc {
834 clocks = <&clocks CLK_RTC>, <&pmic_ap_clk>;
835 clock-names = "rtc", "rtc_src";
836};
837
838&sdhci1 {
839 #address-cells = <1>;
840 #size-cells = <0>;
841
842 bus-width = <4>;
843 max-frequency = <38400000>;
844 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4 &wifi_wake &wifi_host_wake &wlan_bt_en>;
845 pinctrl-names = "default";
846 cap-sd-highspeed;
847 cap-mmc-highspeed;
848 keep-power-in-suspend;
849
850 mmc-pwrseq = <&wifi_pwrseq>;
851 non-removable;
852 status = "okay";
853
854 assigned-clocks = <&clocks MOUT_MMC1>, <&clocks SCLK_MMC1>;
855 assigned-clock-rates = <0>, <50000000>;
856 assigned-clock-parents = <&clocks MOUT_MPLL>;
857
858 wlan@1 {
859 reg = <1>;
860 compatible = "brcm,bcm4329-fmac";
861 interrupt-parent = <&gph2>;
862 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
863 interrupt-names = "host-wake";
864 };
865};
866
867&sdhci2 {
868 bus-width = <4>;
869 cd-gpios = <&gph3 4 GPIO_ACTIVE_LOW>;
870 vmmc-supply = <&ldo5_reg>;
871 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>;
872 pinctrl-names = "default";
873 status = "okay";
874
875 assigned-clocks = <&clocks MOUT_MMC2>, <&clocks SCLK_MMC2>;
876 assigned-clock-rates = <0>, <50000000>;
877 assigned-clock-parents = <&clocks MOUT_MPLL>;
878};
879
880&uart0 {
881 assigned-clocks = <&clocks MOUT_UART0>, <&clocks SCLK_UART0>;
882 assigned-clock-rates = <0>, <111166667>;
883 assigned-clock-parents = <&clocks MOUT_MPLL>;
884
885 status = "okay";
886
887 bluetooth {
888 compatible = "brcm,bcm4329-bt";
889 max-speed = <3000000>;
890 pinctrl-names = "default";
891 pinctrl-0 = <&uart0_data &uart0_fctl &bt_host_wake
892 &bt_reset &bt_wake>;
893 shutdown-gpios = <&gpb 3 GPIO_ACTIVE_HIGH>;
894 device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>;
895 interrupt-parent = <&gph2>;
896 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
897 interrupt-names = "host-wakeup";
898 };
899};
900
901&uart1 {
902 status = "okay";
903};
904
905&uart2 {
906 status = "okay";
907};
908
909&usbphy {
910 status = "okay";
911 vbus-supply = <&safe1_sreg>;
912};
913
914&xusbxti {
915 clock-frequency = <24000000>;
916};
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's S5PV210 based Galaxy Aries board device tree source
4 */
5
6/dts-v1/;
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include "s5pv210.dtsi"
10
11/ {
12 compatible = "samsung,aries", "samsung,s5pv210";
13
14 aliases: aliases {
15 i2c4 = &i2c_sound;
16 i2c5 = &i2c_accel;
17 i2c6 = &i2c_pmic;
18 i2c7 = &i2c_musb;
19 i2c9 = &i2c_fuel;
20 i2c10 = &i2c_touchkey;
21 i2c11 = &i2c_prox;
22 i2c12 = &i2c_magnetometer;
23 };
24
25 memory@30000000 {
26 device_type = "memory";
27 reg = <0x30000000 0x05000000
28 0x40000000 0x10000000
29 0x50000000 0x08000000>;
30 };
31
32 reserved-memory {
33 #address-cells = <1>;
34 #size-cells = <1>;
35 ranges;
36
37 mfc_left: region@43000000 {
38 compatible = "shared-dma-pool";
39 no-map;
40 reg = <0x43000000 0x2000000>;
41 };
42
43 mfc_right: region@51000000 {
44 compatible = "shared-dma-pool";
45 no-map;
46 reg = <0x51000000 0x2000000>;
47 };
48 };
49
50 vibrator_pwr: regulator-fixed-0 {
51 compatible = "regulator-fixed";
52 regulator-name = "vibrator-en";
53 enable-active-high;
54 gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>;
55
56 pinctrl-names = "default";
57 pinctr-0 = <&vibrator_ena>;
58 };
59
60 touchkey_vdd: regulator-fixed-1 {
61 compatible = "regulator-fixed";
62 regulator-name = "VTOUCH_3.3V";
63 regulator-min-microvolt = <3300000>;
64 regulator-max-microvolt = <3300000>;
65 enable-active-high;
66 gpio = <&gpj3 2 GPIO_ACTIVE_HIGH>;
67
68 pinctrl-names = "default";
69 pinctrl-0 = <&touchkey_vdd_ena>;
70 };
71
72 gp2a_vled: regulator-fixed-2 {
73 compatible = "regulator-fixed";
74 regulator-name = "VLED";
75 enable-active-high;
76 gpio = <&gpj1 4 GPIO_ACTIVE_HIGH>;
77 regulator-min-microvolt = <2800000>;
78 regulator-max-microvolt = <2800000>;
79
80 pinctrl-names = "default";
81 pinctrl-0 = <&gp2a_power>;
82 };
83
84 wifi_pwrseq: wifi-pwrseq {
85 compatible = "mmc-pwrseq-simple";
86 reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>;
87 pinctrl-names = "default";
88 pinctrl-0 = <&wlan_gpio_rst>;
89 post-power-on-delay-ms = <500>;
90 power-off-delay-us = <500>;
91 };
92
93 i2c_sound: i2c-gpio-0 {
94 compatible = "i2c-gpio";
95 sda-gpios = <&mp05 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
96 scl-gpios = <&mp05 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
97 i2c-gpio,delay-us = <2>;
98 #address-cells = <1>;
99 #size-cells = <0>;
100
101 pinctrl-names = "default";
102 pinctrl-0 = <&sound_i2c_pins>;
103
104 wm8994: wm8994@1a {
105 compatible = "wlf,wm8994";
106 reg = <0x1a>;
107
108 #sound-dai-cells = <0>;
109
110 gpio-controller;
111 #gpio-cells = <2>;
112
113 clocks = <&clocks MOUT_CLKOUT>;
114 clock-names = "MCLK1";
115
116 AVDD2-supply = <&buck3_reg>;
117 DBVDD-supply = <&buck3_reg>;
118 CPVDD-supply = <&buck3_reg>;
119 SPKVDD1-supply = <&buck3_reg>;
120 SPKVDD2-supply = <&buck3_reg>;
121
122 wlf,gpio-cfg = <0xa101 0x8100 0x0100 0x0100 0x8100
123 0xa101 0x0100 0x8100 0x0100 0x0100
124 0x0100>;
125
126 wlf,ldo1ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
127 wlf,ldo2ena = <&gpf3 4 GPIO_ACTIVE_HIGH>;
128
129 wlf,lineout1-se;
130 wlf,lineout2-se;
131
132 assigned-clocks = <&clocks MOUT_CLKOUT>;
133 assigned-clock-rates = <0>;
134 assigned-clock-parents = <&xusbxti>;
135
136 pinctrl-names = "default";
137 pinctrl-0 = <&codec_ldo>;
138 };
139 };
140
141 i2c_accel: i2c-gpio-1 {
142 compatible = "i2c-gpio";
143 sda-gpios = <&gpj3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
144 scl-gpios = <&gpj3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
145 i2c-gpio,delay-us = <2>;
146 #address-cells = <1>;
147 #size-cells = <0>;
148
149 pinctrl-names = "default";
150 pinctrl-0 = <&accel_i2c_pins>;
151
152 accelerometer@38 {
153 compatible = "bosch,bma023";
154 reg = <0x38>;
155
156 vdd-supply = <&ldo9_reg>;
157 vddio-supply = <&ldo9_reg>;
158 };
159 };
160
161 i2c_pmic: i2c-gpio-2 {
162 compatible = "i2c-gpio";
163 sda-gpios = <&gpj4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
164 scl-gpios = <&gpj4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
165 i2c-gpio,delay-us = <2>;
166 #address-cells = <1>;
167 #size-cells = <0>;
168
169 pinctrl-names = "default";
170 pinctrl-0 = <&pmic_i2c_pins>;
171
172 pmic@66 {
173 compatible = "maxim,max8998";
174 reg = <0x66>;
175 interrupt-parent = <&gph0>;
176 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
177
178 max8998,pmic-buck1-default-dvs-idx = <1>;
179 max8998,pmic-buck1-dvs-gpios = <&gph0 3 GPIO_ACTIVE_HIGH>,
180 <&gph0 4 GPIO_ACTIVE_HIGH>;
181 max8998,pmic-buck1-dvs-voltage = <1275000>, <1200000>,
182 <1050000>, <950000>;
183
184 max8998,pmic-buck2-default-dvs-idx = <0>;
185 max8998,pmic-buck2-dvs-gpio = <&gph0 5 GPIO_ACTIVE_HIGH>;
186 max8998,pmic-buck2-dvs-voltage = <1100000>, <1000000>;
187
188 pinctrl-names = "default";
189 pinctrl-0 = <&pmic_dvs_pins &pmic_irq>;
190
191 regulators {
192 ldo2_reg: LDO2 {
193 regulator-name = "VALIVE_1.2V";
194 regulator-min-microvolt = <1200000>;
195 regulator-max-microvolt = <1200000>;
196 regulator-always-on;
197
198 regulator-state-mem {
199 regulator-on-in-suspend;
200 };
201 };
202
203 ldo3_reg: LDO3 {
204 regulator-name = "VUSB_1.1V";
205 regulator-min-microvolt = <1100000>;
206 regulator-max-microvolt = <1100000>;
207
208 regulator-state-mem {
209 regulator-off-in-suspend;
210 };
211 };
212
213 ldo4_reg: LDO4 {
214 regulator-name = "VADC_3.3V";
215 regulator-min-microvolt = <3300000>;
216 regulator-max-microvolt = <3300000>;
217
218 regulator-state-mem {
219 regulator-off-in-suspend;
220 };
221 };
222
223 ldo5_reg: LDO5 {
224 regulator-name = "VTF_2.8V";
225 regulator-min-microvolt = <2800000>;
226 regulator-max-microvolt = <2800000>;
227
228 regulator-state-mem {
229 regulator-off-in-suspend;
230 };
231 };
232
233 ldo6_reg: LDO6 {
234 regulator-name = "LDO6";
235 regulator-min-microvolt = <1600000>;
236 regulator-max-microvolt = <3600000>;
237 };
238
239 ldo7_reg: LDO7 {
240 regulator-name = "VLCD_1.8V";
241 regulator-min-microvolt = <1800000>;
242 regulator-max-microvolt = <1800000>;
243
244 regulator-state-mem {
245 regulator-off-in-suspend;
246 };
247 };
248
249 ldo8_reg: LDO8 {
250 regulator-name = "VUSB_3.3V";
251 regulator-min-microvolt = <3300000>;
252 regulator-max-microvolt = <3300000>;
253
254 regulator-state-mem {
255 regulator-off-in-suspend;
256 };
257 };
258
259 ldo9_reg: LDO9 {
260 regulator-name = "VCC_2.8V_PDA";
261 regulator-min-microvolt = <2800000>;
262 regulator-max-microvolt = <2800000>;
263 regulator-always-on;
264 };
265
266 ldo10_reg: LDO10 {
267 regulator-name = "VPLL_1.2V";
268 regulator-min-microvolt = <1200000>;
269 regulator-max-microvolt = <1200000>;
270 regulator-always-on;
271
272 regulator-state-mem {
273 regulator-on-in-suspend;
274 };
275 };
276
277 ldo11_reg: LDO11 {
278 regulator-name = "CAM_AF_3.0V";
279 regulator-min-microvolt = <3000000>;
280 regulator-max-microvolt = <3000000>;
281
282 regulator-state-mem {
283 regulator-off-in-suspend;
284 };
285 };
286
287 ldo12_reg: LDO12 {
288 regulator-name = "CAM_SENSOR_CORE_1.2V";
289 regulator-min-microvolt = <1200000>;
290 regulator-max-microvolt = <1200000>;
291
292 regulator-state-mem {
293 regulator-off-in-suspend;
294 };
295 };
296
297 ldo13_reg: LDO13 {
298 regulator-name = "VGA_VDDIO_2.8V";
299 regulator-min-microvolt = <2800000>;
300 regulator-max-microvolt = <2800000>;
301
302 regulator-state-mem {
303 regulator-off-in-suspend;
304 };
305 };
306
307 ldo14_reg: LDO14 {
308 regulator-name = "VGA_DVDD_1.8V";
309 regulator-min-microvolt = <1800000>;
310 regulator-max-microvolt = <1800000>;
311
312 regulator-state-mem {
313 regulator-off-in-suspend;
314 };
315 };
316
317 ldo15_reg: LDO15 {
318 regulator-name = "CAM_ISP_HOST_2.8V";
319 regulator-min-microvolt = <2800000>;
320 regulator-max-microvolt = <2800000>;
321
322 regulator-state-mem {
323 regulator-off-in-suspend;
324 };
325 };
326
327 ldo16_reg: LDO16 {
328 regulator-name = "VGA_AVDD_2.8V";
329 regulator-min-microvolt = <2800000>;
330 regulator-max-microvolt = <2800000>;
331
332 regulator-state-mem {
333 regulator-off-in-suspend;
334 };
335 };
336
337 ldo17_reg: LDO17 {
338 regulator-name = "VCC_3.0V_LCD";
339 regulator-min-microvolt = <3000000>;
340 regulator-max-microvolt = <3000000>;
341
342 regulator-state-mem {
343 regulator-off-in-suspend;
344 };
345 };
346
347 buck1_reg: BUCK1 {
348 regulator-name = "vddarm";
349 regulator-min-microvolt = <750000>;
350 regulator-max-microvolt = <1500000>;
351
352 regulator-state-mem {
353 regulator-off-in-suspend;
354 regulator-suspend-microvolt = <1250000>;
355 };
356 };
357
358 buck2_reg: BUCK2 {
359 regulator-name = "vddint";
360 regulator-min-microvolt = <750000>;
361 regulator-max-microvolt = <1500000>;
362
363 regulator-state-mem {
364 regulator-off-in-suspend;
365 regulator-suspend-microvolt = <1100000>;
366 };
367 };
368
369 buck3_reg: BUCK3 {
370 regulator-name = "VCC_1.8V";
371 regulator-min-microvolt = <1800000>;
372 regulator-max-microvolt = <1800000>;
373 regulator-always-on;
374 };
375
376 buck4_reg: BUCK4 {
377 regulator-name = "CAM_ISP_CORE_1.2V";
378 regulator-min-microvolt = <1200000>;
379 regulator-max-microvolt = <1200000>;
380
381 regulator-state-mem {
382 regulator-off-in-suspend;
383 };
384 };
385
386 ap32khz_reg: EN32KHz-AP {
387 regulator-name = "32KHz AP";
388 regulator-always-on;
389 };
390
391 cp32khz_reg: EN32KHz-CP {
392 regulator-name = "32KHz CP";
393 };
394
395 vichg_reg: ENVICHG {
396 regulator-name = "VICHG";
397 regulator-always-on;
398 };
399
400 safe1_sreg: ESAFEOUT1 {
401 regulator-name = "SAFEOUT1";
402 };
403
404 safe2_sreg: ESAFEOUT2 {
405 regulator-name = "SAFEOUT2";
406 };
407 };
408 };
409 };
410
411 i2c_musb: i2c-gpio-3 {
412 compatible = "i2c-gpio";
413 sda-gpios = <&gpj3 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
414 scl-gpios = <&gpj3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
415 i2c-gpio,delay-us = <2>;
416 #address-cells = <1>;
417 #size-cells = <0>;
418
419 pinctrl-names = "default";
420 pinctrl-0 = <&musb_i2c_pins>;
421
422 fsa9480: musb@25 {
423 compatible = "fcs,fsa9480";
424 reg = <0x25>;
425 interrupt-parent = <&gph2>;
426 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
427
428 pinctrl-names = "default";
429 pinctrl-0 = <&musb_irq>;
430 };
431 };
432
433 i2c_fuel: i2c-gpio-4 {
434 compatible = "i2c-gpio";
435 sda-gpios = <&mp05 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
436 scl-gpios = <&mp05 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
437 i2c-gpio,delay-us = <2>;
438 #address-cells = <1>;
439 #size-cells = <0>;
440
441 pinctrl-names = "default";
442 pinctrl-0 = <&fg_i2c_pins>;
443
444 fg: fuelgauge@36 {
445 compatible = "maxim,max17040";
446 reg = <0x36>;
447 };
448 };
449
450 i2c_touchkey: i2c-gpio-5 {
451 compatible = "i2c-gpio";
452 sda-gpios = <&gpj3 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
453 scl-gpios = <&gpj3 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
454 i2c-gpio,delay-us = <2>;
455 #address-cells = <1>;
456 #size-cells = <0>;
457
458 pinctrl-names = "default";
459 pinctrl-0 = <&touchkey_i2c_pins>;
460
461 touchkey@20 {
462 compatible = "cypress,aries-touchkey";
463 reg = <0x20>;
464 vdd-supply = <&touchkey_vdd>;
465 vcc-supply = <&buck3_reg>;
466 linux,keycodes = <KEY_MENU KEY_BACK
467 KEY_HOMEPAGE KEY_SEARCH>;
468 interrupt-parent = <&gpj4>;
469 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
470
471 pinctrl-names = "default";
472 pinctrl-0 = <&touchkey_irq>;
473 };
474 };
475
476 i2c_prox: i2c-gpio-6 {
477 compatible = "i2c-gpio";
478 sda-gpios = <&gpg2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
479 scl-gpios = <&gpg0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
480 i2c-gpio,delay-us = <2>;
481 #address-cells = <1>;
482 #size-cells = <0>;
483
484 pinctrl-names = "default";
485 pinctrl-0 = <&prox_i2c_pins>;
486
487 light-sensor@44 {
488 compatible = "sharp,gp2ap002a00f";
489 reg = <0x44>;
490 interrupt-parent = <&gph0>;
491 interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
492 vdd-supply = <&gp2a_vled>;
493 vio-supply = <&gp2a_vled>;
494 io-channels = <&gp2a_shunt>;
495 io-channel-names = "alsout";
496 sharp,proximity-far-hysteresis = /bits/ 8 <0x40>;
497 sharp,proximity-close-hysteresis = /bits/ 8 <0x20>;
498
499 pinctrl-names = "default";
500 pinctrl-0 = <&gp2a_irq>;
501 };
502 };
503
504 i2c_magnetometer: i2c-gpio-7 {
505 compatible = "i2c-gpio";
506 sda-gpios = <&gpj0 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
507 scl-gpios = <&gpj0 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
508 i2c-gpio,delay-us = <2>;
509 #address-cells = <1>;
510 #size-cells = <0>;
511
512 pinctrl-names = "default";
513 pinctrl-0 = <&magnetometer_i2c_pins>;
514
515 status = "disabled";
516
517 /* Yamaha yas529 magnetometer, no mainline binding */
518 };
519
520 vibrator: pwm-vibrator {
521 compatible = "pwm-vibrator";
522 pwms = <&pwm 1 44642 0>;
523 pwm-names = "enable";
524 vcc-supply = <&vibrator_pwr>;
525 pinctrl-names = "default";
526 pinctrl-0 = <&pwm1_out>;
527 };
528
529 poweroff: syscon-poweroff {
530 compatible = "syscon-poweroff";
531 regmap = <&pmu_syscon>;
532 offset = <0x681c>; /* PS_HOLD_CONTROL */
533 value = <0x5200>;
534 };
535
536 spi_lcd: spi-gpio-0 {
537 compatible = "spi-gpio";
538 #address-cells = <1>;
539 #size-cells = <0>;
540
541 sck-gpios = <&mp04 1 GPIO_ACTIVE_HIGH>;
542 mosi-gpios = <&mp04 3 GPIO_ACTIVE_HIGH>;
543 cs-gpios = <&mp01 1 GPIO_ACTIVE_HIGH>;
544 num-chipselects = <1>;
545
546 pinctrl-names = "default";
547 pinctrl-0 = <&lcd_spi_pins>;
548
549 panel@0 {
550 compatible = "samsung,s6e63m0";
551 reg = <0>;
552 reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>;
553 vdd3-supply = <&ldo7_reg>;
554 vci-supply = <&ldo17_reg>;
555 spi-cs-high;
556 spi-max-frequency = <1200000>;
557
558 pinctrl-names = "default";
559 pinctrl-0 = <&panel_rst>;
560
561 port {
562 lcd_ep: endpoint {
563 remote-endpoint = <&fimd_ep>;
564 };
565 };
566 };
567 };
568};
569
570&adc {
571 vdd-supply = <&ldo4_reg>;
572
573 status = "okay";
574
575 gp2a_shunt: current-sense-shunt {
576 compatible = "current-sense-shunt";
577 io-channels = <&adc 9>;
578 shunt-resistor-micro-ohms = <47000000>; /* 47 ohms */
579 #io-channel-cells = <0>;
580 io-channel-ranges;
581 };
582};
583
584&fimd {
585 pinctrl-names = "default";
586 pinctrl-0 = <&lcd_clk &lcd_data24>;
587 status = "okay";
588
589 samsung,invert-vden;
590 samsung,invert-vclk;
591
592 #address-cells = <1>;
593 #size-cells = <0>;
594
595 port@3 {
596 reg = <3>;
597 fimd_ep: endpoint {
598 remote-endpoint = <&lcd_ep>;
599 };
600 };
601};
602
603&hsotg {
604 vusb_a-supply = <&ldo8_reg>;
605 vusb_d-supply = <&ldo3_reg>;
606 dr_mode = "peripheral";
607 status = "okay";
608};
609
610&i2c2 {
611 samsung,i2c-sda-delay = <100>;
612 samsung,i2c-max-bus-freq = <400000>;
613 samsung,i2c-slave-addr = <0x10>;
614 status = "okay";
615
616 touchscreen@4a {
617 compatible = "atmel,maxtouch";
618 reg = <0x4a>;
619 interrupt-parent = <&gpj0>;
620 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
621 pinctrl-names = "default";
622 pinctrl-0 = <&ts_irq>;
623 reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>;
624 };
625};
626
627&mfc {
628 memory-region = <&mfc_left>, <&mfc_right>;
629};
630
631&pinctrl0 {
632 bt_reset: bt-reset {
633 samsung,pins = "gpb-3";
634 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
635 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
636 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
637 };
638
639 wlan_bt_en: wlan-bt-en {
640 samsung,pins = "gpb-5";
641 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
642 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
643 samsung,pin-val = <1>;
644 };
645
646 codec_ldo: codec-ldo {
647 samsung,pins = "gpf3-4";
648 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
649 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
650 };
651
652 prox_i2c_pins: gp2a-i2c-pins {
653 samsung,pins = "gpg0-2", "gpg2-2";
654 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
655 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
656 };
657
658 wlan_gpio_rst: wlan-gpio-rst {
659 samsung,pins = "gpg1-2";
660 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
661 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
662 };
663
664 bt_wake: bt-wake {
665 samsung,pins = "gpg3-4";
666 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
667 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
668 };
669
670 gp2a_irq: gp2a-irq {
671 samsung,pins = "gph0-2";
672 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
673 samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
674 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
675 };
676
677 pmic_dvs_pins: pmic-dvs-pins {
678 samsung,pins = "gph0-3", "gph0-4", "gph0-5";
679 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
680 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
681 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
682 samsung,pin-val = <0>;
683 };
684
685 pmic_irq: pmic-irq {
686 samsung,pins = "gph0-7";
687 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
688 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
689 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
690 };
691
692 wifi_host_wake: wifi-host-wake {
693 samsung,pins = "gph2-4";
694 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
695 samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
696 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
697 };
698
699 bt_host_wake: bt-host-wake {
700 samsung,pins = "gph2-5";
701 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
702 samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
703 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
704 };
705
706 musb_irq: musq-irq {
707 samsung,pins = "gph2-7";
708 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
709 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
710 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
711 };
712
713 tf_detect: tf-detect {
714 samsung,pins = "gph3-4";
715 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
716 samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>;
717 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
718 };
719
720 wifi_wake: wifi-wake {
721 samsung,pins = "gph3-5";
722 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
723 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
724 };
725
726 magnetometer_i2c_pins: yas529-i2c-pins {
727 samsung,pins = "gpj0-0", "gpj0-1";
728 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
729 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
730 };
731
732 ts_irq: ts-irq {
733 samsung,pins = "gpj0-5";
734 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
735 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
736 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
737 };
738
739 vibrator_ena: vibrator-ena {
740 samsung,pins = "gpj1-1";
741 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
742 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
743 };
744
745 gp2a_power: gp2a-power {
746 samsung,pins = "gpj1-4";
747 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
748 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
749 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
750 };
751
752 touchkey_i2c_pins: touchkey-i2c-pins {
753 samsung,pins = "gpj3-0", "gpj3-1";
754 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
755 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
756 };
757
758 touchkey_vdd_ena: touchkey-vdd-ena {
759 samsung,pins = "gpj3-2";
760 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
761 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
762 };
763
764 musb_i2c_pins: musb-i2c-pins {
765 samsung,pins = "gpj3-4", "gpj3-5";
766 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
767 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
768 };
769
770 accel_i2c_pins: accel-i2c-pins {
771 samsung,pins = "gpj3-6", "gpj3-7";
772 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
773 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
774 };
775
776 pmic_i2c_pins: pmic-i2c-pins {
777 samsung,pins = "gpj4-0", "gpj4-3";
778 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
779 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
780 };
781
782 touchkey_irq: touchkey-irq {
783 samsung,pins = "gpj4-1";
784 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
785 samsung,pin-pud = <S3C64XX_PIN_PULL_UP>;
786 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
787 };
788
789 lcd_spi_pins: spi-lcd-pins {
790 samsung,pins = "mp01-1", "mp04-1", "mp04-3";
791 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
792 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
793 };
794
795 fg_i2c_pins: fg-i2c-pins {
796 samsung,pins = "mp05-0", "mp05-1";
797 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
798 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
799 };
800
801 sound_i2c_pins: sound-i2c-pins {
802 samsung,pins = "mp05-2", "mp05-3";
803 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
804 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
805 };
806
807 panel_rst: panel-rst {
808 samsung,pins = "mp05-5";
809 samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
810 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
811 };
812};
813
814&pwm {
815 samsung,pwm-outputs = <1>;
816};
817
818&sdhci1 {
819 #address-cells = <1>;
820 #size-cells = <0>;
821
822 bus-width = <4>;
823 max-frequency = <38400000>;
824 pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4 &wifi_wake &wifi_host_wake &wlan_bt_en>;
825 pinctrl-names = "default";
826 cap-sd-highspeed;
827 cap-mmc-highspeed;
828 keep-power-in-suspend;
829
830 mmc-pwrseq = <&wifi_pwrseq>;
831 non-removable;
832 status = "okay";
833
834 assigned-clocks = <&clocks MOUT_MMC1>, <&clocks SCLK_MMC1>;
835 assigned-clock-rates = <0>, <50000000>;
836 assigned-clock-parents = <&clocks MOUT_MPLL>;
837
838 wlan@1 {
839 reg = <1>;
840 compatible = "brcm,bcm4329-fmac";
841 interrupt-parent = <&gph2>;
842 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
843 interrupt-names = "host-wake";
844 };
845};
846
847&sdhci2 {
848 bus-width = <4>;
849 cd-gpios = <&gph3 4 GPIO_ACTIVE_LOW>;
850 vmmc-supply = <&ldo5_reg>;
851 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>;
852 pinctrl-names = "default";
853 status = "okay";
854
855 assigned-clocks = <&clocks MOUT_MMC2>, <&clocks SCLK_MMC2>;
856 assigned-clock-rates = <0>, <50000000>;
857 assigned-clock-parents = <&clocks MOUT_MPLL>;
858};
859
860&uart0 {
861 assigned-clocks = <&clocks MOUT_UART0>, <&clocks SCLK_UART0>;
862 assigned-clock-rates = <0>, <111166667>;
863 assigned-clock-parents = <&clocks MOUT_MPLL>;
864
865 status = "okay";
866
867 bluetooth {
868 compatible = "brcm,bcm4329-bt";
869 max-speed = <3000000>;
870 pinctrl-names = "default";
871 pinctrl-0 = <&uart0_data &uart0_fctl &bt_host_wake
872 &bt_reset &bt_wake>;
873 shutdown-gpios = <&gpb 3 GPIO_ACTIVE_HIGH>;
874 device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>;
875 interrupt-parent = <&gph2>;
876 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
877 interrupt-names = "host-wake";
878 };
879};
880
881&uart1 {
882 status = "okay";
883};
884
885&uart2 {
886 status = "okay";
887};
888
889&usbphy {
890 status = "okay";
891 vbus-supply = <&safe1_sreg>;
892};
893
894&xusbxti {
895 clock-frequency = <24000000>;
896};