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