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