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};
1168