Loading...
Note: File does not exist in v4.17.
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos4412 based p4note device family base DT.
4 * Based on exynos4412-midas.dtsi.
5 *
6 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
7 * http://www.samsung.com
8 */
9
10/dts-v1/;
11#include "exynos4412.dtsi"
12#include "exynos4412-ppmu-common.dtsi"
13
14#include <dt-bindings/clock/maxim,max77686.h>
15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/input/linux-event-codes.h>
17#include <dt-bindings/interrupt-controller/irq.h>
18#include <dt-bindings/pinctrl/samsung.h>
19
20/ {
21 compatible = "samsung,p4note", "samsung,exynos4412", "samsung,exynos4";
22
23 memory@40000000 {
24 device_type = "memory";
25 reg = <0x40000000 0x80000000>;
26 };
27
28 chosen {
29 stdout-path = &serial_2;
30 };
31
32 firmware@204f000 {
33 compatible = "samsung,secure-firmware";
34 reg = <0x0204F000 0x1000>;
35 };
36
37 fixed-rate-clocks {
38 xxti {
39 compatible = "samsung,clock-xxti";
40 clock-frequency = <0>;
41 };
42
43 xusbxti {
44 compatible = "samsung,clock-xusbxti";
45 clock-frequency = <24000000>;
46 };
47 };
48
49 gpio-keys {
50 compatible = "gpio-keys";
51 pinctrl-names = "default";
52 pinctrl-0 = <&gpio_keys>;
53
54 key-down {
55 gpios = <&gpx2 2 GPIO_ACTIVE_LOW>;
56 linux,code = <KEY_VOLUMEDOWN>;
57 label = "volume down";
58 debounce-interval = <10>;
59 };
60
61 key-up {
62 gpios = <&gpx3 3 GPIO_ACTIVE_LOW>;
63 linux,code = <KEY_VOLUMEUP>;
64 label = "volume up";
65 debounce-interval = <10>;
66 };
67
68 key-power {
69 gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
70 linux,code = <KEY_POWER>;
71 label = "power";
72 debounce-interval = <10>;
73 wakeup-source;
74 };
75 };
76
77 voltage-regulator-1 {
78 compatible = "regulator-fixed";
79 regulator-name = "TSP_LDO1";
80 pinctrl-names = "default";
81 pinctrl-0 = <&tsp_reg_gpio_1>;
82 gpios = <&gpm4 5 GPIO_ACTIVE_HIGH>;
83 enable-active-high;
84 regulator-always-on;
85 };
86
87 voltage-regulator-2 {
88 compatible = "regulator-fixed";
89 regulator-name = "TSP_LDO2";
90 pinctrl-names = "default";
91 pinctrl-0 = <&tsp_reg_gpio_2>;
92 gpios = <&gpb 5 GPIO_ACTIVE_HIGH>;
93 enable-active-high;
94 regulator-always-on;
95 };
96
97 voltage-regulator-3 {
98 compatible = "regulator-fixed";
99 regulator-name = "TSP_LDO3";
100 pinctrl-names = "default";
101 pinctrl-0 = <&tsp_reg_gpio_3>;
102 gpios = <&gpb 7 GPIO_ACTIVE_HIGH>;
103 startup-delay-us = <20000>;
104 enable-active-high;
105 regulator-always-on;
106 };
107
108 wlan_pwrseq: sdhci3-pwrseq {
109 compatible = "mmc-pwrseq-simple";
110 reset-gpios = <&gpm3 5 GPIO_ACTIVE_LOW>;
111 pinctrl-0 = <&wifi_reset>;
112 pinctrl-names = "default";
113 clocks = <&max77686 MAX77686_CLK_PMIC>;
114 clock-names = "ext_clock";
115 };
116
117 i2c-gpio-1 {
118 compatible = "i2c-gpio";
119 sda-gpios = <&gpy2 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
120 scl-gpios = <&gpy2 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
121 i2c-gpio,delay-us = <2>;
122 #address-cells = <1>;
123 #size-cells = <0>;
124
125 magnetometer@c {
126 compatible = "asahi-kasei,ak8975";
127 reg = <0x0c>;
128 pinctrl-0 = <&ak8975_irq>;
129 pinctrl-names = "default";
130 interrupt-parent = <&gpm4>;
131 interrupts = <7 IRQ_TYPE_EDGE_RISING>;
132 };
133 };
134
135 i2c-gpio-2 {
136 compatible = "i2c-gpio";
137 sda-gpios = <&gpy0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
138 scl-gpios = <&gpy0 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
139 i2c-gpio,delay-us = <2>;
140 #address-cells = <1>;
141 #size-cells = <0>;
142
143 fuel-gauge@36 {
144 compatible = "maxim,max17042";
145 reg = <0x36>;
146 pinctrl-0 = <&fuel_alert_irq>;
147 pinctrl-names = "default";
148 interrupt-parent = <&gpx2>;
149 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
150 maxim,rsns-microohm = <10000>;
151 maxim,over-heat-temp = <600>;
152 maxim,over-volt = <4300>;
153 };
154 };
155
156 i2c-gpio-3 {
157 compatible = "i2c-gpio";
158 sda-gpios = <&gpm4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
159 scl-gpios = <&gpm4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
160 i2c-gpio,delay-us = <5>;
161 #address-cells = <1>;
162 #size-cells = <0>;
163
164 adc@41 {
165 compatible = "st,stmpe811";
166 reg = <0x41>;
167 pinctrl-0 = <&stmpe_adc_irq>;
168 pinctrl-names = "default";
169 interrupt-parent = <&gpx0>;
170 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
171 interrupt-controller;
172 irq-trigger = <0x1>;
173 st,adc-freq = <3>;
174 st,mod-12b = <1>;
175 st,ref-sel = <0>;
176 st,sample-time = <3>;
177
178 stmpe_adc {
179 compatible = "st,stmpe-adc";
180 #io-channel-cells = <1>;
181 st,norequest-mask = <0x2F>;
182 };
183 };
184 };
185};
186
187&adc {
188 vdd-supply = <&ldo3_reg>;
189 /* not verified */
190 status = "okay";
191};
192
193&bus_dmc {
194 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
195 vdd-supply = <&buck1_reg>;
196 status = "okay";
197};
198
199&bus_acp {
200 devfreq = <&bus_dmc>;
201 status = "okay";
202};
203
204&bus_c2c {
205 devfreq = <&bus_dmc>;
206 status = "okay";
207};
208
209&bus_leftbus {
210 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
211 vdd-supply = <&buck3_reg>;
212 status = "okay";
213};
214
215&bus_rightbus {
216 devfreq = <&bus_leftbus>;
217 status = "okay";
218};
219
220&bus_display {
221 devfreq = <&bus_leftbus>;
222 status = "okay";
223};
224
225&bus_fsys {
226 devfreq = <&bus_leftbus>;
227 status = "okay";
228};
229
230&bus_peri {
231 devfreq = <&bus_leftbus>;
232 status = "okay";
233};
234
235&bus_mfc {
236 devfreq = <&bus_leftbus>;
237 status = "okay";
238};
239
240&cpu0 {
241 cpu0-supply = <&buck2_reg>;
242};
243
244&cpu_thermal {
245 cooling-maps {
246 map0 {
247 /* Corresponds to 800MHz at freq_table */
248 cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
249 <&cpu2 7 7>, <&cpu3 7 7>;
250 };
251 map1 {
252 /* Corresponds to 200MHz at freq_table */
253 cooling-device = <&cpu0 13 13>, <&cpu1 13 13>,
254 <&cpu2 13 13>, <&cpu3 13 13>;
255 };
256 };
257};
258
259&exynos_usbphy {
260 status = "okay";
261};
262
263&fimd {
264 pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
265 pinctrl-names = "default";
266 status = "okay";
267
268 display-timings {
269 timing0 {
270 clock-frequency = <66666666>;
271 hactive = <1280>;
272 vactive = <800>;
273 hfront-porch = <18>;
274 hback-porch = <36>;
275 hsync-len = <16>;
276 vback-porch = <16>;
277 vfront-porch = <4>;
278 vsync-len = <3>;
279 hsync-active = <1>;
280 };
281 };
282};
283
284&gpu {
285 mali-supply = <&buck4_reg>;
286 status = "okay";
287};
288
289&hsotg {
290 vusb_a-supply = <&ldo12_reg>;
291 dr_mode = "peripheral";
292 status = "okay";
293};
294
295&i2c_3 {
296 samsung,i2c-sda-delay = <100>;
297 samsung,i2c-slave-addr = <0x10>;
298 samsung,i2c-max-bus-freq = <400000>;
299 pinctrl-0 = <&i2c3_bus>;
300 pinctrl-names = "default";
301 status = "okay";
302
303 touchscreen@4a {
304 compatible = "atmel,maxtouch";
305 reg = <0x4a>;
306 pinctrl-0 = <&tsp_rst &tsp_irq>;
307 pinctrl-names = "default";
308 interrupt-parent = <&gpm2>;
309 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
310 reset-gpios = <&gpm0 4 GPIO_ACTIVE_LOW>;
311 };
312};
313
314&i2c_7 {
315 samsung,i2c-sda-delay = <100>;
316 samsung,i2c-slave-addr = <0x10>;
317 samsung,i2c-max-bus-freq = <400000>;
318 pinctrl-0 = <&i2c7_bus>;
319 pinctrl-names = "default";
320 status = "okay";
321
322 max77686: pmic@9 {
323 compatible = "maxim,max77686";
324 interrupt-parent = <&gpx0>;
325 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
326 pinctrl-0 = <&max77686_irq>;
327 pinctrl-names = "default";
328 wakeup-source;
329 reg = <0x09>;
330 #clock-cells = <1>;
331
332 voltage-regulators {
333 ldo1_reg: LDO1 {
334 regulator-name = "ldo1";
335 regulator-always-on;
336 };
337
338 ldo2_reg: LDO2 {
339 regulator-name = "ldo2";
340 regulator-always-on;
341 };
342
343 /* WM8994 audio */
344 ldo3_reg: LDO3 {
345 regulator-name = "VCC_1.8V_AP";
346 regulator-min-microvolt = <1800000>;
347 regulator-max-microvolt = <1800000>;
348 regulator-always-on;
349 regulator-boot-on;
350
351 regulator-state-mem {
352 regulator-on-in-suspend;
353 };
354 };
355
356 ldo4_reg: LDO4 {
357 regulator-name = "ldo4";
358 regulator-always-on;
359 };
360
361 ldo5_reg: LDO5 {
362 regulator-name = "VCC_1.8V_IO";
363 regulator-min-microvolt = <1800000>;
364 regulator-max-microvolt = <1800000>;
365
366 regulator-state-mem {
367 regulator-off-in-suspend;
368 };
369 };
370
371 ldo6_reg: LDO6 {
372 regulator-name = "ldo6";
373 regulator-always-on;
374 };
375
376 ldo7_reg: LDO7 {
377 regulator-name = "ldo7";
378 regulator-always-on;
379 };
380
381 /* CSI IP block */
382 ldo8_reg: LDO8 {
383 regulator-name = "VMIPI_1.0V";
384 regulator-min-microvolt = <1000000>;
385 regulator-max-microvolt = <1000000>;
386 regulator-always-on;
387 regulator-boot-on;
388
389 regulator-state-mem {
390 regulator-on-in-suspend;
391 };
392 };
393
394 /* IR LED on/off */
395 ldo9_reg: LDO9 {
396 regulator-name = "VLED_IC_1.9V";
397 regulator-min-microvolt = <1950000>;
398 regulator-max-microvolt = <1950000>;
399
400 regulator-state-mem {
401 regulator-off-in-suspend;
402 };
403 };
404
405 /* CSI IP block */
406 ldo10_reg: LDO10 {
407 regulator-name = "VMIPI_1.8V";
408 regulator-min-microvolt = <1800000>;
409 regulator-max-microvolt = <1800000>;
410 regulator-always-on;
411 regulator-boot-on;
412
413 regulator-state-mem {
414 regulator-on-in-suspend;
415 };
416 };
417
418 ldo11_reg: LDO11 {
419 regulator-name = "VABB1_1.9V";
420 regulator-min-microvolt = <1950000>;
421 regulator-max-microvolt = <1950000>;
422 regulator-always-on;
423 regulator-boot-on;
424
425 regulator-state-mem {
426 regulator-off-in-suspend;
427 };
428 };
429
430 /* USB OTG */
431 ldo12_reg: LDO12 {
432 regulator-name = "VUOTG_3.0V";
433 regulator-min-microvolt = <3000000>;
434 regulator-max-microvolt = <3000000>;
435 regulator-always-on;
436 regulator-boot-on;
437
438 regulator-state-mem {
439 regulator-on-in-suspend;
440 };
441 };
442
443 /* not connected */
444 ldo13_reg: LDO13 {
445 regulator-name = "ldo13";
446 };
447
448 ldo14_reg: LDO14 {
449 regulator-name = "VABB2_1.9V";
450 regulator-min-microvolt = <1950000>;
451 regulator-max-microvolt = <1950000>;
452 regulator-always-on;
453 regulator-boot-on;
454
455 regulator-state-mem {
456 regulator-off-in-suspend;
457 };
458 };
459
460 ldo15_reg: LDO15 {
461 regulator-name = "ldo15";
462 regulator-always-on;
463 };
464
465 ldo16_reg: LDO16 {
466 regulator-name = "ldo16";
467 regulator-always-on;
468 };
469
470 /* not connected */
471 ldo17_reg: LDO17 {
472 regulator-name = "ldo17";
473 };
474
475 /* Camera ISX012 */
476 ldo18_reg: LDO18 {
477 regulator-name = "CAM_IO_1.8V";
478 regulator-min-microvolt = <1800000>;
479 regulator-max-microvolt = <1800000>;
480
481 regulator-state-mem {
482 regulator-off-in-suspend;
483 };
484 };
485
486 /* Camera S5K6A3 */
487 ldo19_reg: LDO19 {
488 regulator-name = "VT_CORE_1.8V";
489 regulator-min-microvolt = <1800000>;
490 regulator-max-microvolt = <1800000>;
491
492 regulator-state-mem {
493 regulator-off-in-suspend;
494 };
495 };
496
497 /* not connected */
498 ldo20_reg: LDO20 {
499 regulator-name = "ldo20";
500 };
501
502 /* MMC2 */
503 ldo21_reg: LDO21 {
504 regulator-name = "VTF_2.8V";
505 regulator-min-microvolt = <2800000>;
506 regulator-max-microvolt = <2800000>;
507 maxim,ena-gpios = <&gpy2 0 GPIO_ACTIVE_HIGH>;
508 };
509
510 /* not connected */
511 ldo22_reg: LDO22 {
512 regulator-name = "ldo22";
513 };
514
515 /* ADC */
516 ldo23_reg: LDO23 {
517 regulator-name = "VDD_ADC_3.3V";
518 regulator-min-microvolt = <3300000>;
519 regulator-max-microvolt = <3300000>;
520 regulator-always-on;
521 regulator-boot-on;
522
523 regulator-state-mem {
524 regulator-off-in-suspend;
525 };
526 };
527
528 /* Camera S5K6A3 */
529 ldo24_reg: LDO24 {
530 regulator-name = "CAM_A2.8V";
531 regulator-min-microvolt = <2800000>;
532 regulator-max-microvolt = <2800000>;
533
534 regulator-state-mem {
535 regulator-off-in-suspend;
536 };
537 };
538
539 ldo25_reg: LDO25 {
540 regulator-name = "VLED_3.3V";
541 regulator-min-microvolt = <3300000>;
542 regulator-max-microvolt = <3300000>;
543
544 regulator-state-mem {
545 regulator-off-in-suspend;
546 };
547 };
548
549 /* Camera ISX012 */
550 ldo26_reg: LDO26 {
551 regulator-name = "3MP_AF_2.8V";
552 regulator-min-microvolt = <2800000>;
553 regulator-max-microvolt = <2800000>;
554
555 regulator-state-mem {
556 regulator-off-in-suspend;
557 };
558 };
559
560 buck1_reg: BUCK1 {
561 regulator-name = "VDD_MIF";
562 regulator-min-microvolt = <850000>;
563 regulator-max-microvolt = <1050000>;
564 regulator-always-on;
565 regulator-boot-on;
566 };
567
568 buck2_reg: BUCK2 {
569 regulator-name = "VDD_ARM";
570 regulator-min-microvolt = <850000>;
571 regulator-max-microvolt = <1500000>;
572 regulator-always-on;
573 regulator-boot-on;
574 };
575
576 buck3_reg: BUCK3 {
577 regulator-name = "VDD_INT";
578 regulator-min-microvolt = <850000>;
579 regulator-max-microvolt = <1100000>;
580 regulator-always-on;
581 regulator-boot-on;
582 };
583
584 buck4_reg: BUCK4 {
585 regulator-name = "VDD_G3D";
586 regulator-min-microvolt = <850000>;
587 regulator-max-microvolt = <1075000>;
588 regulator-boot-on;
589 };
590
591 buck5_reg: BUCK5 {
592 regulator-name = "buck5";
593 regulator-always-on;
594 };
595
596 buck6_reg: BUCK6 {
597 regulator-name = "buck6";
598 regulator-always-on;
599 };
600
601 buck7_reg: BUCK7 {
602 regulator-name = "buck7";
603 regulator-always-on;
604 };
605
606 /* not connected */
607 buck8_reg: BUCK8 {
608 regulator-name = "buck8";
609 };
610
611 buck9_reg: BUCK9 {
612 regulator-name = "3MP_CORE_1.2V";
613 regulator-min-microvolt = <1200000>;
614 regulator-max-microvolt = <1200000>;
615
616 regulator-state-mem {
617 regulator-off-in-suspend;
618 };
619 };
620 };
621 };
622};
623
624&mshc_0 {
625 broken-cd;
626 non-removable;
627 card-detect-delay = <200>;
628 clock-frequency = <400000000>;
629 samsung,dw-mshc-ciu-div = <0>;
630 samsung,dw-mshc-sdr-timing = <2 3>;
631 samsung,dw-mshc-ddr-timing = <1 2>;
632 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
633 pinctrl-names = "default";
634 bus-width = <4>;
635 cap-mmc-highspeed;
636 cap-sd-highspeed;
637 status = "okay";
638};
639
640&pinctrl_0 {
641 pinctrl-names = "default";
642 pinctrl-0 = <&sleep0>;
643
644 tsp_reg_gpio_2: tsp-reg-gpio-2 {
645 samsung,pins = "gpb-5";
646 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
647 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
648 };
649
650 tsp_reg_gpio_3: tsp-reg-gpio-3 {
651 samsung,pins = "gpb-7";
652 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
653 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
654 };
655
656 sleep0: sleep-states {
657 PIN_SLP(gpa0-0, INPUT, NONE);
658 PIN_SLP(gpa0-1, OUT0, NONE);
659 PIN_SLP(gpa0-2, INPUT, NONE);
660 PIN_SLP(gpa0-3, INPUT, UP);
661 PIN_SLP(gpa0-4, INPUT, NONE);
662 PIN_SLP(gpa0-5, INPUT, DOWN);
663 PIN_SLP(gpa0-6, INPUT, DOWN);
664 PIN_SLP(gpa0-7, INPUT, UP);
665
666 PIN_SLP(gpa1-0, INPUT, DOWN);
667 PIN_SLP(gpa1-1, INPUT, DOWN);
668 PIN_SLP(gpa1-2, INPUT, DOWN);
669 PIN_SLP(gpa1-3, INPUT, DOWN);
670 PIN_SLP(gpa1-4, INPUT, DOWN);
671 PIN_SLP(gpa1-5, INPUT, DOWN);
672
673 PIN_SLP(gpb-0, INPUT, NONE);
674 PIN_SLP(gpb-1, INPUT, NONE);
675 PIN_SLP(gpb-2, INPUT, NONE);
676 PIN_SLP(gpb-3, INPUT, NONE);
677 PIN_SLP(gpb-4, INPUT, DOWN);
678 PIN_SLP(gpb-5, INPUT, DOWN);
679 PIN_SLP(gpb-6, INPUT, DOWN);
680 PIN_SLP(gpb-7, INPUT, DOWN);
681
682 PIN_SLP(gpc0-0, INPUT, DOWN);
683 PIN_SLP(gpc0-1, INPUT, DOWN);
684 PIN_SLP(gpc0-2, INPUT, DOWN);
685 PIN_SLP(gpc0-3, INPUT, DOWN);
686 PIN_SLP(gpc0-4, INPUT, DOWN);
687
688 PIN_SLP(gpc1-0, INPUT, UP);
689 PIN_SLP(gpc1-1, PREV, NONE);
690 PIN_SLP(gpc1-2, INPUT, UP);
691 PIN_SLP(gpc1-3, INPUT, UP);
692 PIN_SLP(gpc1-4, INPUT, UP);
693
694 PIN_SLP(gpd0-0, INPUT, DOWN);
695 PIN_SLP(gpd0-1, OUT0, NONE);
696 PIN_SLP(gpd0-2, INPUT, NONE);
697 PIN_SLP(gpd0-3, INPUT, NONE);
698
699 PIN_SLP(gpd1-0, INPUT, DOWN);
700 PIN_SLP(gpd1-1, INPUT, DOWN);
701 PIN_SLP(gpd1-2, INPUT, NONE);
702 PIN_SLP(gpd1-3, INPUT, NONE);
703
704 PIN_SLP(gpf0-0, OUT0, NONE);
705 PIN_SLP(gpf0-1, OUT0, NONE);
706 PIN_SLP(gpf0-2, OUT0, NONE);
707 PIN_SLP(gpf0-3, OUT0, NONE);
708 PIN_SLP(gpf0-4, OUT0, NONE);
709 PIN_SLP(gpf0-5, OUT0, NONE);
710 PIN_SLP(gpf0-6, OUT0, NONE);
711 PIN_SLP(gpf0-7, OUT0, NONE);
712
713 PIN_SLP(gpf1-0, OUT0, NONE);
714 PIN_SLP(gpf1-1, OUT0, NONE);
715 PIN_SLP(gpf1-2, OUT0, NONE);
716 PIN_SLP(gpf1-3, OUT0, NONE);
717 PIN_SLP(gpf1-4, OUT0, NONE);
718 PIN_SLP(gpf1-5, OUT0, NONE);
719 PIN_SLP(gpf1-6, OUT0, NONE);
720 PIN_SLP(gpf1-7, OUT0, NONE);
721
722 PIN_SLP(gpf2-0, OUT0, NONE);
723 PIN_SLP(gpf2-1, OUT0, NONE);
724 PIN_SLP(gpf2-2, OUT0, NONE);
725 PIN_SLP(gpf2-3, OUT0, NONE);
726 PIN_SLP(gpf2-4, OUT0, NONE);
727 PIN_SLP(gpf2-5, OUT0, NONE);
728 PIN_SLP(gpf2-6, OUT0, NONE);
729 PIN_SLP(gpf2-7, OUT0, NONE);
730
731 PIN_SLP(gpf3-0, OUT0, NONE);
732 PIN_SLP(gpf3-1, OUT0, NONE);
733 PIN_SLP(gpf3-2, OUT0, NONE);
734 PIN_SLP(gpf3-3, OUT0, NONE);
735 PIN_SLP(gpf3-4, OUT0, NONE);
736 PIN_SLP(gpf3-5, OUT0, NONE);
737
738 PIN_SLP(gpj0-0, INPUT, DOWN);
739 PIN_SLP(gpj0-1, INPUT, DOWN);
740 PIN_SLP(gpj0-2, INPUT, DOWN);
741 PIN_SLP(gpj0-3, PREV, NONE);
742 PIN_SLP(gpj0-4, PREV, NONE);
743 PIN_SLP(gpj0-5, OUT0, NONE);
744 PIN_SLP(gpj0-6, OUT0, NONE);
745 PIN_SLP(gpj0-7, OUT0, NONE);
746
747 PIN_SLP(gpj1-0, OUT0, NONE);
748 PIN_SLP(gpj1-1, INPUT, DOWN);
749 PIN_SLP(gpj1-2, PREV, NONE);
750 PIN_SLP(gpj1-3, OUT0, NONE);
751 };
752};
753
754&pinctrl_1 {
755 pinctrl-names = "default";
756 pinctrl-0 = <&sleep1>;
757
758 sd3_wifi: sd3-wifi {
759 samsung,pins = "gpk3-3", "gpk3-4", "gpk3-5", "gpk3-6";
760 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
761 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
762 };
763
764 bt_shutdown: bt-shutdown {
765 samsung,pins = "gpl0-6";
766 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
767 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
768 };
769
770 uart_sel: uart-sel {
771 samsung,pins = "gpl2-7";
772 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
773 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
774 samsung,pin-val = <1>;
775 /* 0 = CP, 1 = AP (serial output) */
776 };
777
778 tsp_rst: tsp-rst {
779 samsung,pins = "gpm0-4";
780 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
781 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
782 };
783
784 tsp_irq: tsp-irq {
785 samsung,pins = "gpm2-3";
786 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
787 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
788 };
789
790 wifi_reset: wifi-reset {
791 samsung,pins = "gpm3-5";
792 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
793 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
794 };
795
796 tsp_reg_gpio_1: tsp-reg-gpio-1 {
797 samsung,pins = "gpm4-5";
798 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
799 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
800 };
801
802 ak8975_irq: ak8975-irq {
803 samsung,pins = "gpm4-7";
804 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
805 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
806 };
807
808 stmpe_adc_irq: stmpe-adc-irq {
809 samsung,pins = "gpx0-1";
810 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
811 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
812 };
813
814 max77686_irq: max77686-irq {
815 samsung,pins = "gpx0-7";
816 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
817 };
818
819 gpio_keys: gpio-keys {
820 samsung,pins = "gpx2-2", "gpx2-7", "gpx3-3";
821 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
822 };
823
824 fuel_alert_irq: fuel-alert-irq {
825 samsung,pins = "gpx2-3";
826 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
827 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
828 };
829
830 wifi_host_wake: wifi-host-wake {
831 samsung,pins = "gpx2-5";
832 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
833 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
834 };
835
836 bt_host_wakeup: bt-host-wakeup {
837 samsung,pins = "gpx2-6";
838 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
839 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
840 };
841
842 bt_device_wakeup: bt-device-wakeup {
843 samsung,pins = "gpx3-1";
844 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
845 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
846 };
847
848 sdhci2_cd: sdhci2-cd {
849 samsung,pins = "gpx3-4";
850 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
851 };
852
853 sleep1: sleep-states {
854 PIN_SLP(gpk0-0, PREV, NONE);
855 PIN_SLP(gpk0-1, PREV, NONE);
856 PIN_SLP(gpk0-2, PREV, NONE);
857 PIN_SLP(gpk0-3, PREV, NONE);
858 PIN_SLP(gpk0-4, PREV, NONE);
859 PIN_SLP(gpk0-5, PREV, NONE);
860 PIN_SLP(gpk0-6, PREV, NONE);
861
862 PIN_SLP(gpk1-0, INPUT, DOWN);
863 PIN_SLP(gpk1-1, INPUT, DOWN);
864 PIN_SLP(gpk1-2, INPUT, DOWN);
865 PIN_SLP(gpk1-3, PREV, NONE);
866 PIN_SLP(gpk1-4, PREV, NONE);
867 PIN_SLP(gpk1-5, PREV, NONE);
868 PIN_SLP(gpk1-6, PREV, NONE);
869
870 PIN_SLP(gpk2-0, INPUT, DOWN);
871 PIN_SLP(gpk2-1, INPUT, DOWN);
872 PIN_SLP(gpk2-2, INPUT, DOWN);
873 PIN_SLP(gpk2-3, INPUT, DOWN);
874 PIN_SLP(gpk2-4, INPUT, DOWN);
875 PIN_SLP(gpk2-5, INPUT, DOWN);
876 PIN_SLP(gpk2-6, INPUT, DOWN);
877
878 PIN_SLP(gpk3-0, OUT0, NONE);
879 PIN_SLP(gpk3-1, INPUT, NONE);
880 PIN_SLP(gpk3-2, INPUT, DOWN);
881 PIN_SLP(gpk3-3, INPUT, NONE);
882 PIN_SLP(gpk3-4, INPUT, NONE);
883 PIN_SLP(gpk3-5, INPUT, NONE);
884 PIN_SLP(gpk3-6, INPUT, NONE);
885
886 PIN_SLP(gpl0-0, OUT0, NONE);
887 PIN_SLP(gpl0-1, INPUT, NONE);
888 PIN_SLP(gpl0-2, INPUT, NONE);
889 PIN_SLP(gpl0-3, INPUT, DOWN);
890 PIN_SLP(gpl0-4, PREV, NONE);
891 PIN_SLP(gpl0-6, PREV, NONE);
892
893 PIN_SLP(gpl1-0, OUT0, NONE);
894 PIN_SLP(gpl1-1, OUT0, NONE);
895
896 PIN_SLP(gpl2-0, INPUT, DOWN);
897 PIN_SLP(gpl2-1, INPUT, DOWN);
898 PIN_SLP(gpl2-2, INPUT, DOWN);
899 PIN_SLP(gpl2-3, INPUT, DOWN);
900 PIN_SLP(gpl2-4, OUT0, NONE);
901 PIN_SLP(gpl2-5, INPUT, DOWN);
902 PIN_SLP(gpl2-6, PREV, NONE);
903 PIN_SLP(gpl2-7, PREV, NONE);
904
905 PIN_SLP(gpm0-0, PREV, NONE);
906 PIN_SLP(gpm0-1, OUT0, NONE);
907 PIN_SLP(gpm0-2, INPUT, DOWN);
908 PIN_SLP(gpm0-3, INPUT, NONE);
909 PIN_SLP(gpm0-4, OUT0, NONE);
910 PIN_SLP(gpm0-5, OUT0, NONE);
911 PIN_SLP(gpm0-6, INPUT, DOWN);
912 PIN_SLP(gpm0-7, OUT0, NONE);
913
914 PIN_SLP(gpm1-0, INPUT, NONE);
915 PIN_SLP(gpm1-1, INPUT, NONE);
916 PIN_SLP(gpm1-2, INPUT, NONE);
917 PIN_SLP(gpm1-3, INPUT, NONE);
918 PIN_SLP(gpm1-4, INPUT, NONE);
919 PIN_SLP(gpm1-5, INPUT, NONE);
920 PIN_SLP(gpm1-6, INPUT, DOWN);
921
922 PIN_SLP(gpm2-0, INPUT, NONE);
923 PIN_SLP(gpm2-1, INPUT, NONE);
924 PIN_SLP(gpm2-2, OUT0, NONE);
925 PIN_SLP(gpm2-3, OUT0, DOWN);
926 PIN_SLP(gpm2-4, INPUT, DOWN);
927
928 PIN_SLP(gpm3-0, PREV, NONE);
929 PIN_SLP(gpm3-1, PREV, NONE);
930 PIN_SLP(gpm3-2, PREV, NONE);
931 PIN_SLP(gpm3-3, OUT1, NONE);
932 PIN_SLP(gpm3-4, OUT0, DOWN);
933 PIN_SLP(gpm3-5, PREV, NONE);
934 PIN_SLP(gpm3-6, PREV, NONE);
935 PIN_SLP(gpm3-7, OUT0, NONE);
936
937 PIN_SLP(gpm4-0, INPUT, NONE);
938 PIN_SLP(gpm4-1, INPUT, NONE);
939 PIN_SLP(gpm4-2, INPUT, DOWN);
940 PIN_SLP(gpm4-3, INPUT, DOWN);
941 PIN_SLP(gpm4-4, PREV, NONE);
942 PIN_SLP(gpm4-5, OUT0, NONE);
943 PIN_SLP(gpm4-6, OUT0, NONE);
944 PIN_SLP(gpm4-7, INPUT, DOWN);
945
946 PIN_SLP(gpy0-0, INPUT, DOWN);
947 PIN_SLP(gpy0-1, INPUT, DOWN);
948 PIN_SLP(gpy0-2, INPUT, NONE);
949 PIN_SLP(gpy0-3, INPUT, NONE);
950 PIN_SLP(gpy0-4, INPUT, NONE);
951 PIN_SLP(gpy0-5, INPUT, NONE);
952
953 PIN_SLP(gpy1-0, INPUT, DOWN);
954 PIN_SLP(gpy1-1, INPUT, DOWN);
955 PIN_SLP(gpy1-2, INPUT, DOWN);
956 PIN_SLP(gpy1-3, INPUT, DOWN);
957
958 PIN_SLP(gpy2-0, PREV, NONE);
959 PIN_SLP(gpy2-1, INPUT, DOWN);
960 PIN_SLP(gpy2-2, INPUT, NONE);
961 PIN_SLP(gpy2-3, INPUT, NONE);
962 PIN_SLP(gpy2-4, INPUT, NONE);
963 PIN_SLP(gpy2-5, INPUT, NONE);
964
965 PIN_SLP(gpy3-0, INPUT, DOWN);
966 PIN_SLP(gpy3-1, INPUT, DOWN);
967 PIN_SLP(gpy3-2, INPUT, DOWN);
968 PIN_SLP(gpy3-3, INPUT, DOWN);
969 PIN_SLP(gpy3-4, INPUT, DOWN);
970 PIN_SLP(gpy3-5, INPUT, DOWN);
971 PIN_SLP(gpy3-6, INPUT, DOWN);
972 PIN_SLP(gpy3-7, INPUT, DOWN);
973
974 PIN_SLP(gpy4-0, INPUT, DOWN);
975 PIN_SLP(gpy4-1, INPUT, DOWN);
976 PIN_SLP(gpy4-2, INPUT, DOWN);
977 PIN_SLP(gpy4-3, INPUT, DOWN);
978 PIN_SLP(gpy4-4, INPUT, DOWN);
979 PIN_SLP(gpy4-5, INPUT, DOWN);
980 PIN_SLP(gpy4-6, INPUT, DOWN);
981 PIN_SLP(gpy4-7, INPUT, DOWN);
982
983 PIN_SLP(gpy5-0, INPUT, DOWN);
984 PIN_SLP(gpy5-1, INPUT, DOWN);
985 PIN_SLP(gpy5-2, INPUT, DOWN);
986 PIN_SLP(gpy5-3, INPUT, DOWN);
987 PIN_SLP(gpy5-4, INPUT, DOWN);
988 PIN_SLP(gpy5-5, INPUT, DOWN);
989 PIN_SLP(gpy5-6, INPUT, DOWN);
990 PIN_SLP(gpy5-7, INPUT, DOWN);
991
992 PIN_SLP(gpy6-0, INPUT, DOWN);
993 PIN_SLP(gpy6-1, INPUT, DOWN);
994 PIN_SLP(gpy6-2, INPUT, DOWN);
995 PIN_SLP(gpy6-3, INPUT, DOWN);
996 PIN_SLP(gpy6-4, INPUT, DOWN);
997 PIN_SLP(gpy6-5, INPUT, DOWN);
998 PIN_SLP(gpy6-6, INPUT, DOWN);
999 PIN_SLP(gpy6-7, INPUT, DOWN);
1000 };
1001};
1002
1003&pinctrl_2 {
1004 pinctrl-names = "default";
1005 pinctrl-0 = <&sleep2>;
1006
1007 sleep2: sleep-states {
1008 PIN_SLP(gpz-0, INPUT, DOWN);
1009 PIN_SLP(gpz-1, INPUT, DOWN);
1010 PIN_SLP(gpz-2, INPUT, DOWN);
1011 PIN_SLP(gpz-3, INPUT, DOWN);
1012 PIN_SLP(gpz-4, INPUT, DOWN);
1013 PIN_SLP(gpz-5, INPUT, DOWN);
1014 PIN_SLP(gpz-6, INPUT, DOWN);
1015 };
1016};
1017
1018&pinctrl_3 {
1019 pinctrl-names = "default";
1020 pinctrl-0 = <&sleep3>;
1021
1022 sleep3: sleep-states {
1023 PIN_SLP(gpv0-0, INPUT, DOWN);
1024 PIN_SLP(gpv0-1, INPUT, DOWN);
1025 PIN_SLP(gpv0-2, INPUT, DOWN);
1026 PIN_SLP(gpv0-3, INPUT, DOWN);
1027 PIN_SLP(gpv0-4, INPUT, DOWN);
1028 PIN_SLP(gpv0-5, INPUT, DOWN);
1029 PIN_SLP(gpv0-6, INPUT, DOWN);
1030 PIN_SLP(gpv0-7, INPUT, DOWN);
1031
1032 PIN_SLP(gpv1-0, INPUT, DOWN);
1033 PIN_SLP(gpv1-1, INPUT, DOWN);
1034 PIN_SLP(gpv1-2, INPUT, DOWN);
1035 PIN_SLP(gpv1-3, INPUT, DOWN);
1036 PIN_SLP(gpv1-4, INPUT, DOWN);
1037 PIN_SLP(gpv1-5, INPUT, DOWN);
1038 PIN_SLP(gpv1-6, INPUT, DOWN);
1039 PIN_SLP(gpv1-7, INPUT, DOWN);
1040
1041 PIN_SLP(gpv2-0, INPUT, DOWN);
1042 PIN_SLP(gpv2-1, INPUT, DOWN);
1043 PIN_SLP(gpv2-2, INPUT, DOWN);
1044 PIN_SLP(gpv2-3, INPUT, DOWN);
1045 PIN_SLP(gpv2-4, INPUT, DOWN);
1046 PIN_SLP(gpv2-5, INPUT, DOWN);
1047 PIN_SLP(gpv2-6, INPUT, DOWN);
1048 PIN_SLP(gpv2-7, INPUT, DOWN);
1049
1050 PIN_SLP(gpv3-0, INPUT, DOWN);
1051 PIN_SLP(gpv3-1, INPUT, DOWN);
1052 PIN_SLP(gpv3-2, INPUT, DOWN);
1053 PIN_SLP(gpv3-3, INPUT, DOWN);
1054 PIN_SLP(gpv3-4, INPUT, DOWN);
1055 PIN_SLP(gpv3-5, INPUT, DOWN);
1056 PIN_SLP(gpv3-6, INPUT, DOWN);
1057 PIN_SLP(gpv3-7, INPUT, DOWN);
1058
1059 PIN_SLP(gpv4-0, INPUT, DOWN);
1060 PIN_SLP(gpv4-1, INPUT, DOWN);
1061 };
1062};
1063
1064&pmu_system_controller {
1065 assigned-clocks = <&pmu_system_controller 0>;
1066 assigned-clock-parents = <&clock CLK_XUSBXTI>;
1067};
1068
1069&rtc {
1070 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>;
1071 clock-names = "rtc", "rtc_src";
1072 status = "okay";
1073};
1074
1075&sdhci_2 {
1076 bus-width = <4>;
1077 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
1078 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sdhci2_cd>;
1079 pinctrl-names = "default";
1080 vmmc-supply = <&ldo21_reg>;
1081 status = "okay";
1082};
1083
1084&sdhci_3 {
1085 #address-cells = <1>;
1086 #size-cells = <0>;
1087 non-removable;
1088 bus-width = <4>;
1089 mmc-pwrseq = <&wlan_pwrseq>;
1090
1091 pinctrl-names = "default";
1092 pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_wifi>;
1093 status = "okay";
1094
1095 wifi@1 {
1096 compatible = "brcm,bcm4329-fmac";
1097 reg = <0x1>;
1098 pinctrl-names = "default";
1099 pinctrl-0 = <&wifi_host_wake>;
1100 interrupt-parent = <&gpx2>;
1101 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
1102 interrupt-names = "host-wake";
1103 };
1104};
1105
1106&serial_0 {
1107 pinctrl-0 = <&uart0_data &uart0_fctl>;
1108 pinctrl-names = "default";
1109 status = "okay";
1110
1111 bluetooth {
1112 compatible = "brcm,bcm4330-bt";
1113 pinctrl-0 = <&bt_shutdown &bt_device_wakeup &bt_host_wakeup>;
1114 pinctrl-names = "default";
1115
1116 max-speed = <2000000>;
1117 shutdown-gpios = <&gpl0 6 GPIO_ACTIVE_HIGH>;
1118 device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
1119 host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
1120 clocks = <&max77686 MAX77686_CLK_PMIC>;
1121 clock-names = "lpo";
1122 };
1123};
1124
1125&serial_2 {
1126 pinctrl-0 = <&uart_sel>;
1127 pinctrl-names = "default";
1128 status = "okay";
1129};
1130
1131&tmu {
1132 status = "okay";
1133};