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	spi-3 {
188		compatible = "spi-gpio";
189		#address-cells = <1>;
190		#size-cells = <0>;
191
192		num-chipselects = <1>;
193		cs-gpios = <&gpy4 3 GPIO_ACTIVE_LOW>;
194		sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
195		mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
196
197		lcd@0 {
198			compatible = "samsung,ld9040";
199			reg = <0>;
200
201			spi-max-frequency = <1200000>;
202
203			vdd3-supply = <&vmipi_reg>;
204			vci-supply = <&vcclcd_reg>;
205
206			reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
207			power-on-delay = <10>;
208			reset-delay = <10>;
209
210			panel-width-mm = <56>;
211			panel-height-mm = <93>;
212
213			display-timings {
214				timing {
215					clock-frequency = <23492370>;
216					hactive = <480>;
217					vactive = <800>;
218					hback-porch = <16>;
219					hfront-porch = <16>;
220					vback-porch = <2>;
221					vfront-porch = <28>;
222					hsync-len = <2>;
223					vsync-len = <1>;
224					hsync-active = <0>;
225					vsync-active = <0>;
226					de-active = <0>;
227					pixelclk-active = <0>;
228				};
229			};
230
231			port {
232				lcd_ep: endpoint {
233					remote-endpoint = <&fimd_dpi_ep>;
234				};
235			};
236		};
237	};
238
239	fixed-rate-clocks {
240		xxti {
241			compatible = "samsung,clock-xxti";
242			clock-frequency = <0>;
243		};
244
245		xusbxti {
246			compatible = "samsung,clock-xusbxti";
247			clock-frequency = <24000000>;
248		};
249
250		pmic_ap_clk: pmic-ap-clk {
251			/* Workaround for missing clock on max8997 PMIC */
252			compatible = "fixed-clock";
253			#clock-cells = <0>;
254			clock-frequency = <32768>;
255		};
256	};
257};
258
259&camera {
260	pinctrl-0 = <&cam_port_a_clk_active>;
261	pinctrl-names = "default";
262	status = "okay";
263	assigned-clocks = <&clock CLK_MOUT_CAM0>, <&clock CLK_MOUT_CAM1>;
264	assigned-clock-parents = <&clock CLK_XUSBXTI>, <&clock CLK_XUSBXTI>;
265};
266
267&csis_1 {
268	status = "okay";
269	vddcore-supply = <&vusb_reg>;
270	vddio-supply = <&vmipi_reg>;
271	clock-frequency = <160000000>;
272	#address-cells = <1>;
273	#size-cells = <0>;
274
275	port@4 {
276		reg = <4>;
277		csis1_ep: endpoint {
278			remote-endpoint = <&s5k5bafx_ep>;
279			data-lanes = <1>;
280			samsung,csis-hs-settle = <6>;
281		};
282	};
283};
284
285&cpu0 {
286	cpu0-supply = <&varm_breg>;
287};
288
289&cpu_thermal {
290	cooling-maps {
291		map0 {
292			/* Corresponds to 800MHz */
293			cooling-device = <&cpu0 2 2>;
294		};
295		map1 {
296			/* Corresponds to 200MHz */
297			cooling-device = <&cpu0 4 4>;
298		};
299	};
300};
301
302&ehci {
303	status = "okay";
304
305	phys = <&exynos_usbphy 1>;
306	phy-names = "host";
307};
308
309&exynos_usbphy {
310	status = "okay";
311
312	vbus-supply = <&safe1_sreg>;
313};
314
315&fimc_0 {
316	status = "okay";
317
318	assigned-clocks = <&clock CLK_MOUT_FIMC0>, <&clock CLK_SCLK_FIMC0>;
319	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
320	assigned-clock-rates = <0>, <160000000>;
321};
322
323&fimc_1 {
324	/* Back camera not implemented */
325	status = "disabled";
326
327	assigned-clocks = <&clock CLK_MOUT_FIMC1>, <&clock CLK_SCLK_FIMC1>;
328	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
329	assigned-clock-rates = <0>, <160000000>;
330};
331
332&fimc_2 {
333	status = "okay";
334
335	assigned-clocks = <&clock CLK_MOUT_FIMC2>, <&clock CLK_SCLK_FIMC2>;
336	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
337	assigned-clock-rates = <0>, <160000000>;
338};
339
340&fimc_3 {
341	/* Back camera not implemented */
342	status = "disabled";
343
344	assigned-clocks = <&clock CLK_MOUT_FIMC3>, <&clock CLK_SCLK_FIMC3>;
345	assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
346	assigned-clock-rates = <0>, <160000000>;
347};
348
349&fimd {
350	status = "okay";
351	#address-cells = <1>;
352	#size-cells = <0>;
353
354	samsung,invert-vden;
355	samsung,invert-vclk;
356
357	pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
358	pinctrl-names = "default";
359
360	port@3 {
361		reg = <3>;
362
363		fimd_dpi_ep: endpoint {
364			remote-endpoint = <&lcd_ep>;
365		};
366	};
367};
368
369&gpu {
370	status = "okay";
371
372	mali-supply = <&vg3d_breg>;
373};
374
375&hsotg {
376	status = "okay";
377
378	dr_mode = "otg";
379	vusb_d-supply = <&vusb_reg>;
380	vusb_a-supply = <&vusbdac_reg>;
381};
382
383&i2c_3 {
384	status = "okay";
385
386	samsung,i2c-sda-delay = <100>;
387	samsung,i2c-slave-addr = <0x10>;
388	samsung,i2c-max-bus-freq = <100000>;
389
390	pinctrl-0 = <&i2c3_bus>;
391	pinctrl-names = "default";
392
393	touchscreen@4a {
394		compatible = "atmel,maxtouch";
395		reg = <0x4a>;
396
397		interrupt-parent = <&gpx0>;
398		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
399	};
400};
401
402&i2c_5 {
403	status = "okay";
404
405	samsung,i2c-sda-delay = <100>;
406	samsung,i2c-slave-addr = <0x10>;
407	samsung,i2c-max-bus-freq = <100000>;
408
409	pinctrl-0 = <&i2c5_bus>;
410	pinctrl-names = "default";
411
412	pmic@66 {
413		compatible = "maxim,max8997-pmic";
414		reg = <0x66>;
415
416		interrupts-extended = <&gpx0 7 IRQ_TYPE_NONE>,
417				      <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
418
419		max8997,pmic-buck1-uses-gpio-dvs;
420		max8997,pmic-buck2-uses-gpio-dvs;
421		max8997,pmic-buck5-uses-gpio-dvs;
422
423		max8997,pmic-ignore-gpiodvs-side-effect;
424		max8997,pmic-buck125-default-dvs-idx = <0>;
425
426		max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
427						 <&gpx0 6 GPIO_ACTIVE_HIGH>,
428						 <&gpl0 0 GPIO_ACTIVE_HIGH>;
429
430		max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
431						 <1250000>, <1200000>,
432						 <1150000>, <1100000>,
433						 <1000000>, <950000>;
434
435		max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
436						 <950000>,  <900000>,
437						 <1100000>, <1000000>,
438						 <950000>,  <900000>;
439
440		max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
441						 <1200000>, <1200000>,
442						 <1200000>, <1200000>,
443						 <1200000>, <1200000>;
444
445		pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
446		pinctrl-names = "default";
447
448		charger-supply = <&charger_reg>;
449
450		regulators {
451			vadc_reg: LDO1 {
452				regulator-name = "VADC_3.3V_C210";
453				regulator-min-microvolt = <3300000>;
454				regulator-max-microvolt = <3300000>;
455				regulator-always-on;
456
457			};
458			valive_reg: LDO2 {
459				regulator-name = "VALIVE_1.1V_C210";
460				regulator-min-microvolt = <1100000>;
461				regulator-max-microvolt = <1100000>;
462				regulator-always-on;
463
464			};
465
466			vusb_reg: LDO3 {
467				regulator-name = "VUSB_1.1V_C210";
468				regulator-min-microvolt = <1100000>;
469				regulator-max-microvolt = <1100000>;
470			};
471
472			vmipi_reg: LDO4 {
473				regulator-name = "VMIPI_1.8V";
474				regulator-min-microvolt = <1800000>;
475				regulator-max-microvolt = <1800000>;
476				regulator-always-on;
477			};
478
479			vhsic_reg: LDO5 {
480				regulator-name = "VHSIC_1.2V";
481				regulator-min-microvolt = <1200000>;
482				regulator-max-microvolt = <1200000>;
483				regulator-always-on;
484			};
485
486			vpda_reg: LDO6 {
487				regulator-name = "VCC_1.8V_PDA";
488				regulator-min-microvolt = <1800000>;
489				regulator-max-microvolt = <1800000>;
490				regulator-always-on;
491			};
492
493			vcam_reg: LDO7 {
494				regulator-name = "CAM_ISP_1.8V";
495				regulator-min-microvolt = <1800000>;
496				regulator-max-microvolt = <1800000>;
497			};
498
499			vusbdac_reg: LDO8 {
500				regulator-name = "VUSB+VDAC_3.3V_C210";
501				regulator-min-microvolt = <3300000>;
502				regulator-max-microvolt = <3300000>;
503			};
504
505			vccpda_reg: LDO9 {
506				regulator-name = "VCC_2.8V_PDA";
507				regulator-min-microvolt = <2800000>;
508				regulator-max-microvolt = <2800000>;
509				regulator-always-on;
510			};
511
512			vtouch_reg: LDO11 {
513				regulator-name = "TOUCH_2.8V";
514				regulator-min-microvolt = <2800000>;
515				regulator-max-microvolt = <2800000>;
516				regulator-always-on;
517			};
518
519			vpll_reg: LDO10 {
520				regulator-name = "VPLL_1.1V";
521				regulator-min-microvolt = <1100000>;
522				regulator-max-microvolt = <1100000>;
523				regulator-always-on;
524			};
525
526			vtcam_reg: LDO12 {
527				regulator-name = "VT_CAM_1.8V";
528				regulator-min-microvolt = <1800000>;
529				regulator-max-microvolt = <1800000>;
530
531				/*
532				 * Force-enable this regulator; otherwise the
533				 * kernel hangs very early in the boot process
534				 * for about 12 seconds, without apparent
535				 * reason.
536				 */
537				regulator-always-on;
538			};
539
540			vcclcd_reg: LDO13 {
541				regulator-name = "VCC_3.0V_LCD";
542				regulator-min-microvolt = <3000000>;
543				regulator-max-microvolt = <3000000>;
544			};
545
546			vmotor_reg: LDO14 {
547				regulator-name = "VCC_2.8V_MOTOR";
548				regulator-min-microvolt = <2800000>;
549				regulator-max-microvolt = <2800000>;
550			};
551
552			vled_reg: LDO15 {
553				regulator-name = "LED_A_2.8V";
554				regulator-min-microvolt = <2800000>;
555				regulator-max-microvolt = <2800000>;
556			};
557
558			camsensor_reg: LDO16 {
559				regulator-name = "CAM_SENSOR_IO_1.8V";
560				regulator-min-microvolt = <1800000>;
561				regulator-max-microvolt = <1800000>;
562			};
563
564			vtf_reg: LDO17 {
565				regulator-name = "VTF_2.8V";
566				regulator-min-microvolt = <2800000>;
567				regulator-max-microvolt = <2800000>;
568			};
569
570			vtouchled_reg: LDO18 {
571				regulator-name = "TOUCH_LED_3.3V";
572				regulator-min-microvolt = <2500000>;
573				regulator-max-microvolt = <3300000>;
574			};
575
576			vddq_reg: LDO21 {
577				regulator-name = "VDDQ_M1M2_1.2V";
578				regulator-min-microvolt = <1200000>;
579				regulator-max-microvolt = <1200000>;
580				regulator-always-on;
581			};
582
583			varm_breg: BUCK1 {
584				regulator-name = "VARM_1.2V_C210";
585				regulator-min-microvolt = <65000>;
586				regulator-max-microvolt = <2225000>;
587				regulator-always-on;
588			};
589
590			vint_breg: BUCK2 {
591				regulator-name = "VINT_1.1V_C210";
592				regulator-min-microvolt = <65000>;
593				regulator-max-microvolt = <2225000>;
594				regulator-always-on;
595			};
596
597			vg3d_breg: BUCK3 {
598				regulator-name = "G3D_1.1V";
599				regulator-min-microvolt = <900000>;
600				regulator-max-microvolt = <1200000>;
601				regulator-microvolt-offset = <50000>;
602				regulator-always-on;
603			};
604
605			camisp_breg: BUCK4 {
606				regulator-name = "CAM_ISP_CORE_1.2V";
607				regulator-min-microvolt = <1200000>;
608				regulator-max-microvolt = <1200000>;
609			};
610
611			vmem_breg: BUCK5 {
612				regulator-name = "VMEM_1.2V";
613				regulator-min-microvolt = <1200000>;
614				regulator-max-microvolt = <1200000>;
615				regulator-always-on;
616			};
617
618			vccsub_breg: BUCK7 {
619				regulator-name = "VCC_SUB_2.0V";
620				regulator-min-microvolt = <2000000>;
621				regulator-max-microvolt = <2000000>;
622				regulator-always-on;
623			};
624
625			safe1_sreg: ESAFEOUT1 {
626				regulator-name = "SAFEOUT1";
627			};
628
629			safe2_sreg: ESAFEOUT2 {
630				regulator-name = "SAFEOUT2";
631				regulator-boot-on;
632			};
633
634			EN32KHZ_AP {
635				regulator-name = "EN32KHZ_AP";
636				regulator-always-on;
637			};
638
639			EN32KHZ_CP {
640				regulator-name = "EN32KHZ_CP";
641				regulator-always-on;
642			};
643
644			charger_reg: CHARGER {
645				regulator-name = "CHARGER";
646				regulator-min-microamp = <200000>;
647				regulator-max-microamp = <950000>;
648			};
649
650			chargercv_reg: CHARGER_CV {
651				regulator-name = "CHARGER_CV";
652				regulator-min-microvolt = <4200000>;
653				regulator-max-microvolt = <4200000>;
654				regulator-always-on;
655			};
656
657			CHARGER_TOPOFF {
658				regulator-name = "CHARGER_TOPOFF";
659				regulator-min-microamp = <200000>;
660				regulator-max-microamp = <200000>;
661				regulator-always-on;
662			};
663		};
664	};
665};
666
667&i2c_7 {
668	status = "okay";
669
670	samsung,i2c-sda-delay = <100>;
671	samsung,i2c-slave-addr = <0x10>;
672	samsung,i2c-max-bus-freq = <400000>;
673
674	pinctrl-0 = <&i2c7_bus>;
675	pinctrl-names = "default";
676
677	magnetometer@c {
678		compatible = "asahi-kasei,ak8975";
679		reg = <0x0c>;
680
681		gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
682	};
683};
684
685&pinctrl_0 {
686	pinctrl-names = "default";
687	pinctrl-0 = <&sleep0>;
688
689	sleep0: sleep-state {
690		gpa0-0-pin {
691			samsung,pins = "gpa0-0";
692			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
693			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
694		};
695
696		gpa0-1-pin {
697			samsung,pins = "gpa0-1";
698			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
699			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
700		};
701
702		gpa0-2-pin {
703			samsung,pins = "gpa0-2";
704			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
705			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
706		};
707
708		gpa0-3-pin {
709			samsung,pins = "gpa0-3";
710			samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
711			samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
712		};
713	};
714};
715
716&pinctrl_1 {
717	mhl_int: mhl-int-pins {
718		samsung,pins = "gpf3-5";
719		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
720	};
721
722	i2c_mhl_bus: i2c-mhl-bus-pins {
723		samsung,pins = "gpf0-4", "gpf0-6";
724		samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
725		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
726		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
727	};
728
729	usb_sel: usb-sel-pins {
730		samsung,pins = "gpl0-6";
731		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
732		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
733		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
734		samsung,pin-val = <0>;
735	};
736
737	bt_en: bt-en-pins {
738		samsung,pins = "gpl0-4";
739		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
740		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
741		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
742		samsung,pin-val = <0>;
743	};
744
745	bt_res: bt-res-pins {
746		samsung,pins = "gpl1-0";
747		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
748		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
749		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
750		samsung,pin-val = <0>;
751	};
752
753	otg_gp: otg-gp-pins {
754		samsung,pins = "gpx3-3";
755		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
756		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
757		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
758		samsung,pin-val = <0>;
759	};
760
761	mag_mhl_gpio: mag-mhl-pins {
762		samsung,pins = "gpd0-2";
763		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
764		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
765	};
766
767	max8997_irq: max8997-irq-pins {
768		samsung,pins = "gpx0-7";
769		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
770	};
771
772	max17042_fuel_irq: max17042-fuel-irq-pins {
773		samsung,pins = "gpx2-3";
774		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
775	};
776
777	tsp224_irq: tsp224-irq-pins {
778		samsung,pins = "gpx0-4";
779		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
780	};
781};
782
783&rtc {
784	status = "okay";
785	clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
786	clock-names = "rtc", "rtc_src";
787};
788
789&sdhci_0 {
790	status = "okay";
791
792	bus-width = <8>;
793	non-removable;
794	vmmc-supply = <&vemmc_reg>;
795
796	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
797	pinctrl-names = "default";
798};
799
800&sdhci_2 {
801	status = "okay";
802
803	bus-width = <4>;
804	cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
805	vmmc-supply = <&vtf_reg>;
806
807	pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
808	pinctrl-names = "default";
809};
810
811&sdhci_3 {
812	status = "okay";
813
814	#address-cells = <1>;
815	#size-cells = <0>;
816
817	non-removable;
818	bus-width = <4>;
819	mmc-pwrseq = <&wlan_pwrseq>;
820	vmmc-supply = <&vtf_reg>;
821
822	pinctrl-names = "default";
823	pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
824
825	brcmf: wifi@1 {
826		compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
827		reg = <1>;
828
829		interrupt-parent = <&gpx2>;
830		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
831		interrupt-names = "host-wake";
832	};
833};
834
835&serial_0 {
836	status = "okay";
837
838	pinctrl-names = "default";
839	pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
840
841	bluetooth {
842		compatible = "brcm,bcm4330-bt";
843
844		shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
845		reset-gpios = <&gpl1 0 GPIO_ACTIVE_LOW>;
846		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
847
848		interrupt-parent = <&gpx2>;
849		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
850		interrupt-names = "host-wakeup";
851	};
852};
853
854&serial_1 {
855	status = "okay";
856};
857
858&serial_2 {
859	status = "okay";
860};
861
862&serial_3 {
863	status = "okay";
864};
865
866&tmu {
867	status = "okay";
868};
869