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