xref: /freebsd/sys/contrib/device-tree/src/arm/samsung/exynos4210-i9100.dts (revision a0ca4af9455b844c5e094fc1b09b1390ffa979fc)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos4210 based Galaxy S2 (GT-I9100 version) device tree
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 * Copyright (c) 2020 Stenkin Evgeniy <stenkinevgeniy@gmail.com>
8 * Copyright (c) 2020 Paul Cercueil <paul@crapouillou.net>
9 */
10
11/dts-v1/;
12#include "exynos4210.dtsi"
13#include "exynos4412-ppmu-common.dtsi"
14
15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/input/linux-event-codes.h>
17
18/ {
19	model = "Samsung Galaxy S2 (GT-I9100)";
20	compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";
21	chassis-type = "handset";
22
23	memory@40000000 {
24		device_type = "memory";
25		reg = <0x40000000 0x40000000>;
26	};
27
28	aliases {
29		mmc0 = &sdhci_0;
30		mmc1 = &sdhci_2;
31		mmc2 = &sdhci_3;
32	};
33
34	chosen {
35		stdout-path = "serial2:115200n8";
36	};
37
38	vemmc_reg: regulator-0 {
39		compatible = "regulator-fixed";
40		regulator-name = "VMEM_VDD_2.8V";
41		regulator-min-microvolt = <2800000>;
42		regulator-max-microvolt = <2800000>;
43		gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
44		enable-active-high;
45	};
46
47	tsp_reg: regulator-1 {
48		compatible = "regulator-fixed";
49		regulator-name = "TSP_FIXED_VOLTAGES";
50		regulator-min-microvolt = <3300000>;
51		regulator-max-microvolt = <3300000>;
52		gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
53		startup-delay-us = <70000>;
54		enable-active-high;
55		regulator-boot-on;
56		regulator-always-on;
57	};
58
59	cam_af_28v_reg: regulator-2 {
60		compatible = "regulator-fixed";
61		regulator-name = "8M_AF_2.8V_EN";
62		regulator-min-microvolt = <2800000>;
63		regulator-max-microvolt = <2800000>;
64		gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
65		enable-active-high;
66	};
67
68	cam_io_en_reg: regulator-3 {
69		compatible = "regulator-fixed";
70		regulator-name = "CAM_IO_EN";
71		regulator-min-microvolt = <2800000>;
72		regulator-max-microvolt = <2800000>;
73		gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
74		enable-active-high;
75	};
76
77	cam_io_12v_reg: regulator-4 {
78		compatible = "regulator-fixed";
79		regulator-name = "8M_1.2V_EN";
80		regulator-min-microvolt = <1200000>;
81		regulator-max-microvolt = <1200000>;
82		gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
83		enable-active-high;
84	};
85
86	vt_core_15v_reg: regulator-5 {
87		compatible = "regulator-fixed";
88		regulator-name = "VT_CORE_1.5V";
89		regulator-min-microvolt = <1500000>;
90		regulator-max-microvolt = <1500000>;
91		gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
92		enable-active-high;
93	};
94
95	gpio-keys {
96		compatible = "gpio-keys";
97
98		key-vol-down {
99			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
100			linux,code = <KEY_VOLUMEDOWN>;
101			label = "volume down";
102			debounce-interval = <10>;
103		};
104
105		key-vol-up {
106			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
107			linux,code = <KEY_VOLUMEUP>;
108			label = "volume up";
109			debounce-interval = <10>;
110		};
111
112		key-power {
113			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
114			linux,code = <KEY_POWER>;
115			label = "power";
116			debounce-interval = <10>;
117			wakeup-source;
118		};
119
120		key-ok {
121			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
122			linux,code = <KEY_OK>;
123			label = "ok";
124			debounce-interval = <10>;
125		};
126	};
127
128	wlan_pwrseq: sdhci3-pwrseq {
129		compatible = "mmc-pwrseq-simple";
130		reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
131	};
132
133	i2c_max17042_fuel: i2c-gpio-0 {
134		compatible = "i2c-gpio";
135		#address-cells = <1>;
136		#size-cells = <0>;
137
138		sda-gpios = <&gpy4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
139		scl-gpios = <&gpy4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
140		i2c-gpio,delay-us = <5>;
141
142		battery@36 {
143			compatible = "maxim,max17042";
144
145			interrupt-parent = <&gpx2>;
146			interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
147
148			pinctrl-0 = <&max17042_fuel_irq>;
149			pinctrl-names = "default";
150
151			reg = <0x36>;
152			maxim,over-heat-temp = <700>;
153			maxim,over-volt = <4500>;
154		};
155	};
156
157	i2c_s5k5baf: i2c-gpio-1 {
158		compatible = "i2c-gpio";
159		#address-cells = <1>;
160		#size-cells = <0>;
161
162		sda-gpios = <&gpc1 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
163		scl-gpios = <&gpc1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
164		i2c-gpio,delay-us = <2>;
165
166		image-sensor@2d {
167			compatible = "samsung,s5k5baf";
168			reg = <0x2d>;
169			vdda-supply = <&cam_io_en_reg>;
170			vddreg-supply = <&vt_core_15v_reg>;
171			vddio-supply = <&vtcam_reg>;
172			clocks = <&camera 0>;
173			clock-names = "mclk";
174			stbyn-gpios = <&gpl2 0 GPIO_ACTIVE_LOW>;
175			rstn-gpios = <&gpl2 1 GPIO_ACTIVE_LOW>;
176			clock-frequency = <24000000>;
177
178			port {
179				s5k5bafx_ep: endpoint {
180					remote-endpoint = <&csis1_ep>;
181					data-lanes = <1>;
182				};
183			};
184		};
185	};
186
187	i2c-gpio-2 {
188		compatible = "i2c-gpio";
189		#address-cells = <1>;
190		#size-cells = <0>;
191
192		sda-gpios = <&gpk1 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
193		scl-gpios = <&gpk1 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
194		i2c-gpio,delay-us = <2>;
195
196		touchscreen@20 {
197			compatible = "cypress,aries-touchkey";
198			reg = <0x20>;
199
200			interrupt-parent = <&gpl0>;
201			interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
202
203			vdd-supply = <&vtouchled_reg>;
204			vcc-supply = <&vtouch_reg>;
205			linux,keycodes = <KEY_MENU>, <KEY_BACK>;
206		};
207	};
208
209	spi-3 {
210		compatible = "spi-gpio";
211		#address-cells = <1>;
212		#size-cells = <0>;
213
214		num-chipselects = <1>;
215		cs-gpios = <&gpy4 3 GPIO_ACTIVE_LOW>;
216		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
217		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
218
219		lcd@0 {
220			compatible = "samsung,ld9040";
221			reg = <0>;
222
223			spi-max-frequency = <1200000>;
224
225			vdd3-supply = <&vmipi_reg>;
226			vci-supply = <&vcclcd_reg>;
227
228			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
229			power-on-delay = <10>;
230			reset-delay = <10>;
231
232			panel-width-mm = <56>;
233			panel-height-mm = <93>;
234
235			display-timings {
236				timing {
237					clock-frequency = <23492370>;
238					hactive = <480>;
239					vactive = <800>;
240					hback-porch = <16>;
241					hfront-porch = <16>;
242					vback-porch = <2>;
243					vfront-porch = <28>;
244					hsync-len = <2>;
245					vsync-len = <1>;
246					hsync-active = <0>;
247					vsync-active = <0>;
248					de-active = <0>;
249					pixelclk-active = <0>;
250				};
251			};
252
253			port {
254				lcd_ep: endpoint {
255					remote-endpoint = <&fimd_dpi_ep>;
256				};
257			};
258		};
259	};
260
261	fixed-rate-clocks {
262		xxti {
263			compatible = "samsung,clock-xxti";
264			clock-frequency = <0>;
265		};
266
267		xusbxti {
268			compatible = "samsung,clock-xusbxti";
269			clock-frequency = <24000000>;
270		};
271
272		pmic_ap_clk: pmic-ap-clk {
273			/* Workaround for missing clock on max8997 PMIC */
274			compatible = "fixed-clock";
275			#clock-cells = <0>;
276			clock-frequency = <32768>;
277		};
278	};
279};
280
281&camera {
282	pinctrl-0 = <&cam_port_a_clk_active>;
283	pinctrl-names = "default";
284	status = "okay";
285	assigned-clocks = <&clock CLK_MOUT_CAM0>, <&clock CLK_MOUT_CAM1>;
286	assigned-clock-parents = <&clock CLK_XUSBXTI>, <&clock CLK_XUSBXTI>;
287};
288
289&csis_1 {
290	status = "okay";
291	vddcore-supply = <&vusb_reg>;
292	vddio-supply = <&vmipi_reg>;
293	clock-frequency = <160000000>;
294	#address-cells = <1>;
295	#size-cells = <0>;
296
297	port@4 {
298		reg = <4>;
299		csis1_ep: endpoint {
300			remote-endpoint = <&s5k5bafx_ep>;
301			data-lanes = <1>;
302			samsung,csis-hs-settle = <6>;
303		};
304	};
305};
306
307&cpu0 {
308	cpu0-supply = <&varm_breg>;
309};
310
311&cpu_thermal {
312	cooling-maps {
313		map0 {
314			/* Corresponds to 800MHz */
315			cooling-device = <&cpu0 2 2>;
316		};
317		map1 {
318			/* Corresponds to 200MHz */
319			cooling-device = <&cpu0 4 4>;
320		};
321	};
322};
323
324&ehci {
325	status = "okay";
326
327	phys = <&exynos_usbphy 1>;
328	phy-names = "host";
329};
330
331&exynos_usbphy {
332	status = "okay";
333
334	vbus-supply = <&safe1_sreg>;
335};
336
337&fimc_0 {
338	status = "okay";
339
340	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
341	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
342	assigned-clock-rates = <0>, <160000000>;
343};
344
345&fimc_1 {
346	/* Back camera not implemented */
347	status = "disabled";
348
349	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
350	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
351	assigned-clock-rates = <0>, <160000000>;
352};
353
354&fimc_2 {
355	status = "okay";
356
357	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
358	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
359	assigned-clock-rates = <0>, <160000000>;
360};
361
362&fimc_3 {
363	/* Back camera not implemented */
364	status = "disabled";
365
366	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
367	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
368	assigned-clock-rates = <0>, <160000000>;
369};
370
371&fimd {
372	status = "okay";
373	#address-cells = <1>;
374	#size-cells = <0>;
375
376	samsung,invert-vden;
377	samsung,invert-vclk;
378
379	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
380	pinctrl-names = "default";
381
382	port@3 {
383		reg = <3>;
384
385		fimd_dpi_ep: endpoint {
386			remote-endpoint = <&lcd_ep>;
387		};
388	};
389};
390
391&gpu {
392	status = "okay";
393
394	mali-supply = <&vg3d_breg>;
395};
396
397&hsotg {
398	status = "okay";
399
400	dr_mode = "otg";
401	vusb_d-supply = <&vusb_reg>;
402	vusb_a-supply = <&vusbdac_reg>;
403};
404
405&i2c_1 {
406	status = "okay";
407
408	samsung,i2c-sda-delay = <100>;
409	samsung,i2c-slave-addr = <0x10>;
410	samsung,i2c-max-bus-freq = <100000>;
411
412	lis3dh: accelerometer@19 {
413		compatible = "st,lis3dh-accel";
414		reg = <0x19>;
415
416		mount-matrix = "0", "-1", "0",
417			       "1", "0", "0",
418			       "0", "0", "1";
419	};
420};
421
422&i2c_3 {
423	status = "okay";
424
425	samsung,i2c-sda-delay = <100>;
426	samsung,i2c-slave-addr = <0x10>;
427	samsung,i2c-max-bus-freq = <100000>;
428
429	pinctrl-0 = <&i2c3_bus>;
430	pinctrl-names = "default";
431
432	touchscreen@4a {
433		compatible = "atmel,maxtouch";
434		reg = <0x4a>;
435
436		interrupt-parent = <&gpx0>;
437		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
438	};
439};
440
441&i2c_5 {
442	status = "okay";
443
444	samsung,i2c-sda-delay = <100>;
445	samsung,i2c-slave-addr = <0x10>;
446	samsung,i2c-max-bus-freq = <100000>;
447
448	pinctrl-0 = <&i2c5_bus>;
449	pinctrl-names = "default";
450
451	pmic@66 {
452		compatible = "maxim,max8997-pmic";
453		reg = <0x66>;
454
455		interrupts-extended = <&gpx0 7 IRQ_TYPE_NONE>,
456				      <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
457
458		max8997,pmic-buck1-uses-gpio-dvs;
459		max8997,pmic-buck2-uses-gpio-dvs;
460		max8997,pmic-buck5-uses-gpio-dvs;
461
462		max8997,pmic-ignore-gpiodvs-side-effect;
463		max8997,pmic-buck125-default-dvs-idx = <0>;
464
465		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
466						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
467						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
468
469		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
470						 <1250000>, <1200000>,
471						 <1150000>, <1100000>,
472						 <1000000>, <950000>;
473
474		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
475						 <950000>,  <900000>,
476						 <1100000>, <1000000>,
477						 <950000>,  <900000>;
478
479		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
480						 <1200000>, <1200000>,
481						 <1200000>, <1200000>,
482						 <1200000>, <1200000>;
483
484		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
485		pinctrl-names = "default";
486
487		charger-supply = <&charger_reg>;
488
489		regulators {
490			vadc_reg: LDO1 {
491				regulator-name = "VADC_3.3V_C210";
492				regulator-min-microvolt = <3300000>;
493				regulator-max-microvolt = <3300000>;
494				regulator-always-on;
495
496			};
497			valive_reg: LDO2 {
498				regulator-name = "VALIVE_1.1V_C210";
499				regulator-min-microvolt = <1100000>;
500				regulator-max-microvolt = <1100000>;
501				regulator-always-on;
502
503			};
504
505			vusb_reg: LDO3 {
506				regulator-name = "VUSB_1.1V_C210";
507				regulator-min-microvolt = <1100000>;
508				regulator-max-microvolt = <1100000>;
509			};
510
511			vmipi_reg: LDO4 {
512				regulator-name = "VMIPI_1.8V";
513				regulator-min-microvolt = <1800000>;
514				regulator-max-microvolt = <1800000>;
515				regulator-always-on;
516			};
517
518			vhsic_reg: LDO5 {
519				regulator-name = "VHSIC_1.2V";
520				regulator-min-microvolt = <1200000>;
521				regulator-max-microvolt = <1200000>;
522				regulator-always-on;
523			};
524
525			vpda_reg: LDO6 {
526				regulator-name = "VCC_1.8V_PDA";
527				regulator-min-microvolt = <1800000>;
528				regulator-max-microvolt = <1800000>;
529				regulator-always-on;
530			};
531
532			vcam_reg: LDO7 {
533				regulator-name = "CAM_ISP_1.8V";
534				regulator-min-microvolt = <1800000>;
535				regulator-max-microvolt = <1800000>;
536			};
537
538			vusbdac_reg: LDO8 {
539				regulator-name = "VUSB+VDAC_3.3V_C210";
540				regulator-min-microvolt = <3300000>;
541				regulator-max-microvolt = <3300000>;
542			};
543
544			vccpda_reg: LDO9 {
545				regulator-name = "VCC_2.8V_PDA";
546				regulator-min-microvolt = <2800000>;
547				regulator-max-microvolt = <2800000>;
548				regulator-always-on;
549			};
550
551			vtouch_reg: LDO11 {
552				regulator-name = "TOUCH_2.8V";
553				regulator-min-microvolt = <2800000>;
554				regulator-max-microvolt = <2800000>;
555			};
556
557			vpll_reg: LDO10 {
558				regulator-name = "VPLL_1.1V";
559				regulator-min-microvolt = <1100000>;
560				regulator-max-microvolt = <1100000>;
561				regulator-always-on;
562			};
563
564			vtcam_reg: LDO12 {
565				regulator-name = "VT_CAM_1.8V";
566				regulator-min-microvolt = <1800000>;
567				regulator-max-microvolt = <1800000>;
568
569				/*
570				 * Force-enable this regulator; otherwise the
571				 * kernel hangs very early in the boot process
572				 * for about 12 seconds, without apparent
573				 * reason.
574				 */
575				regulator-always-on;
576			};
577
578			vcclcd_reg: LDO13 {
579				regulator-name = "VCC_3.0V_LCD";
580				regulator-min-microvolt = <3000000>;
581				regulator-max-microvolt = <3000000>;
582			};
583
584			vmotor_reg: LDO14 {
585				regulator-name = "VCC_2.8V_MOTOR";
586				regulator-min-microvolt = <2800000>;
587				regulator-max-microvolt = <2800000>;
588			};
589
590			vled_reg: LDO15 {
591				regulator-name = "LED_A_2.8V";
592				regulator-min-microvolt = <2800000>;
593				regulator-max-microvolt = <2800000>;
594			};
595
596			camsensor_reg: LDO16 {
597				regulator-name = "CAM_SENSOR_IO_1.8V";
598				regulator-min-microvolt = <1800000>;
599				regulator-max-microvolt = <1800000>;
600			};
601
602			vtf_reg: LDO17 {
603				regulator-name = "VTF_2.8V";
604				regulator-min-microvolt = <2800000>;
605				regulator-max-microvolt = <2800000>;
606			};
607
608			vtouchled_reg: LDO18 {
609				regulator-name = "TOUCH_LED_3.3V";
610				regulator-min-microvolt = <2500000>;
611				regulator-max-microvolt = <3300000>;
612			};
613
614			vddq_reg: LDO21 {
615				regulator-name = "VDDQ_M1M2_1.2V";
616				regulator-min-microvolt = <1200000>;
617				regulator-max-microvolt = <1200000>;
618				regulator-always-on;
619			};
620
621			varm_breg: BUCK1 {
622				regulator-name = "VARM_1.2V_C210";
623				regulator-min-microvolt = <65000>;
624				regulator-max-microvolt = <2225000>;
625				regulator-always-on;
626			};
627
628			vint_breg: BUCK2 {
629				regulator-name = "VINT_1.1V_C210";
630				regulator-min-microvolt = <65000>;
631				regulator-max-microvolt = <2225000>;
632				regulator-always-on;
633			};
634
635			vg3d_breg: BUCK3 {
636				regulator-name = "G3D_1.1V";
637				regulator-min-microvolt = <900000>;
638				regulator-max-microvolt = <1200000>;
639				regulator-microvolt-offset = <50000>;
640				regulator-always-on;
641			};
642
643			camisp_breg: BUCK4 {
644				regulator-name = "CAM_ISP_CORE_1.2V";
645				regulator-min-microvolt = <1200000>;
646				regulator-max-microvolt = <1200000>;
647			};
648
649			vmem_breg: BUCK5 {
650				regulator-name = "VMEM_1.2V";
651				regulator-min-microvolt = <1200000>;
652				regulator-max-microvolt = <1200000>;
653				regulator-always-on;
654			};
655
656			vccsub_breg: BUCK7 {
657				regulator-name = "VCC_SUB_2.0V";
658				regulator-min-microvolt = <2000000>;
659				regulator-max-microvolt = <2000000>;
660				regulator-always-on;
661			};
662
663			safe1_sreg: ESAFEOUT1 {
664				regulator-name = "SAFEOUT1";
665			};
666
667			safe2_sreg: ESAFEOUT2 {
668				regulator-name = "SAFEOUT2";
669				regulator-boot-on;
670			};
671
672			EN32KHZ_AP {
673				regulator-name = "EN32KHZ_AP";
674				regulator-always-on;
675			};
676
677			EN32KHZ_CP {
678				regulator-name = "EN32KHZ_CP";
679				regulator-always-on;
680			};
681
682			charger_reg: CHARGER {
683				regulator-name = "CHARGER";
684				regulator-min-microamp = <200000>;
685				regulator-max-microamp = <950000>;
686			};
687
688			chargercv_reg: CHARGER_CV {
689				regulator-name = "CHARGER_CV";
690				regulator-min-microvolt = <4200000>;
691				regulator-max-microvolt = <4200000>;
692				regulator-always-on;
693			};
694
695			CHARGER_TOPOFF {
696				regulator-name = "CHARGER_TOPOFF";
697				regulator-min-microamp = <200000>;
698				regulator-max-microamp = <200000>;
699				regulator-always-on;
700			};
701		};
702	};
703};
704
705&i2c_7 {
706	status = "okay";
707
708	samsung,i2c-sda-delay = <100>;
709	samsung,i2c-slave-addr = <0x10>;
710	samsung,i2c-max-bus-freq = <400000>;
711
712	pinctrl-0 = <&i2c7_bus>;
713	pinctrl-names = "default";
714
715	magnetometer@c {
716		compatible = "asahi-kasei,ak8975";
717		reg = <0x0c>;
718
719		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
720	};
721};
722
723&pinctrl_0 {
724	pinctrl-names = "default";
725	pinctrl-0 = <&sleep0>;
726
727	sleep0: sleep-state {
728		gpa0-0-pin {
729			samsung,pins = "gpa0-0";
730			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
731			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
732		};
733
734		gpa0-1-pin {
735			samsung,pins = "gpa0-1";
736			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
737			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
738		};
739
740		gpa0-2-pin {
741			samsung,pins = "gpa0-2";
742			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
743			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
744		};
745
746		gpa0-3-pin {
747			samsung,pins = "gpa0-3";
748			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
749			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
750		};
751	};
752};
753
754&pinctrl_1 {
755	mhl_int: mhl-int-pins {
756		samsung,pins = "gpf3-5";
757		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
758	};
759
760	i2c_mhl_bus: i2c-mhl-bus-pins {
761		samsung,pins = "gpf0-4", "gpf0-6";
762		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
763		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
764		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
765	};
766
767	usb_sel: usb-sel-pins {
768		samsung,pins = "gpl0-6";
769		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
770		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
771		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
772		samsung,pin-val = <0>;
773	};
774
775	bt_en: bt-en-pins {
776		samsung,pins = "gpl0-4";
777		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
778		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
779		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
780		samsung,pin-val = <0>;
781	};
782
783	bt_res: bt-res-pins {
784		samsung,pins = "gpl1-0";
785		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
786		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
787		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
788		samsung,pin-val = <0>;
789	};
790
791	otg_gp: otg-gp-pins {
792		samsung,pins = "gpx3-3";
793		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
794		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
795		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
796		samsung,pin-val = <0>;
797	};
798
799	mag_mhl_gpio: mag-mhl-pins {
800		samsung,pins = "gpd0-2";
801		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
802		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
803	};
804
805	max8997_irq: max8997-irq-pins {
806		samsung,pins = "gpx0-7";
807		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
808	};
809
810	max17042_fuel_irq: max17042-fuel-irq-pins {
811		samsung,pins = "gpx2-3";
812		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
813	};
814
815	tsp224_irq: tsp224-irq-pins {
816		samsung,pins = "gpx0-4";
817		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
818	};
819};
820
821&rtc {
822	status = "okay";
823	clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
824	clock-names = "rtc", "rtc_src";
825};
826
827&sdhci_0 {
828	status = "okay";
829
830	bus-width = <8>;
831	non-removable;
832	vmmc-supply = <&vemmc_reg>;
833
834	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
835	pinctrl-names = "default";
836};
837
838&sdhci_2 {
839	status = "okay";
840
841	bus-width = <4>;
842	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
843	vmmc-supply = <&vtf_reg>;
844
845	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
846	pinctrl-names = "default";
847};
848
849&sdhci_3 {
850	status = "okay";
851
852	#address-cells = <1>;
853	#size-cells = <0>;
854
855	non-removable;
856	bus-width = <4>;
857	mmc-pwrseq = <&wlan_pwrseq>;
858	vmmc-supply = <&vtf_reg>;
859
860	pinctrl-names = "default";
861	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
862
863	brcmf: wifi@1 {
864		compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
865		reg = <1>;
866
867		interrupt-parent = <&gpx2>;
868		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
869		interrupt-names = "host-wake";
870	};
871};
872
873&serial_0 {
874	status = "okay";
875
876	pinctrl-names = "default";
877	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
878
879	bluetooth {
880		compatible = "brcm,bcm4330-bt";
881
882		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
883		reset-gpios = <&gpl1 0 GPIO_ACTIVE_LOW>;
884		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
885
886		interrupt-parent = <&gpx2>;
887		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
888		interrupt-names = "host-wakeup";
889	};
890};
891
892&serial_1 {
893	status = "okay";
894};
895
896&serial_2 {
897	status = "okay";
898};
899
900&serial_3 {
901	status = "okay";
902};
903
904&tmu {
905	status = "okay";
906};
907