Linux Audio

Check our new training course

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