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