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