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