1 // SPDX-License-Identifier: GPL-2.0
3 * Samsung's Exynos4210 based Galaxy S2 (GT-I9100 version) device tree
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>
12 #include "exynos4210.dtsi"
13 #include "exynos4412-ppmu-common.dtsi"
15 #include <dt-bindings/gpio/gpio.h>
16 #include <dt-bindings/input/linux-event-codes.h>
19 model = "Samsung Galaxy S2 (GT-I9100)";
20 compatible = "samsung,i9100", "samsung,exynos4210", "samsung,exynos4";
21 chassis-type = "handset";
24 device_type = "memory";
25 reg = <0x40000000 0x40000000>;
29 stdout-path = "serial2:115200n8";
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>;
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>;
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>;
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>;
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>;
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>;
90 compatible = "gpio-keys";
93 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
94 linux,code = <KEY_VOLUMEDOWN>;
95 label = "volume down";
96 debounce-interval = <10>;
100 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
101 linux,code = <KEY_VOLUMEUP>;
103 debounce-interval = <10>;
107 gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
108 linux,code = <KEY_POWER>;
110 debounce-interval = <10>;
115 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
116 linux,code = <KEY_OK>;
118 debounce-interval = <10>;
122 wlan_pwrseq: sdhci3-pwrseq {
123 compatible = "mmc-pwrseq-simple";
124 reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
127 i2c_max17042_fuel: i2c-gpio-0 {
128 compatible = "i2c-gpio";
129 #address-cells = <1>;
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>;
137 compatible = "maxim,max17042";
139 interrupt-parent = <&gpx2>;
140 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
142 pinctrl-0 = <&max17042_fuel_irq>;
143 pinctrl-names = "default";
146 maxim,over-heat-temp = <700>;
147 maxim,over-volt = <4500>;
151 i2c_s5k5baf: i2c-gpio-1 {
152 compatible = "i2c-gpio";
153 #address-cells = <1>;
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>;
161 compatible = "samsung,s5k5baf";
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>;
173 s5k5bafx_ep: endpoint {
174 remote-endpoint = <&csis1_ep>;
182 compatible = "spi-gpio";
183 #address-cells = <1>;
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>;
192 compatible = "samsung,ld9040";
195 spi-max-frequency = <1200000>;
197 vdd3-supply = <&vmipi_reg>;
198 vci-supply = <&vcclcd_reg>;
200 reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
201 power-on-delay = <10>;
204 panel-width-mm = <56>;
205 panel-height-mm = <93>;
209 clock-frequency = <23492370>;
221 pixelclk-active = <0>;
227 remote-endpoint = <&fimd_dpi_ep>;
235 compatible = "samsung,clock-xxti";
236 clock-frequency = <0>;
240 compatible = "samsung,clock-xusbxti";
241 clock-frequency = <24000000>;
244 pmic_ap_clk: pmic-ap-clk {
245 /* Workaround for missing clock on max8997 PMIC */
246 compatible = "fixed-clock";
248 clock-frequency = <32768>;
254 pinctrl-0 = <&cam_port_a_clk_active>;
255 pinctrl-names = "default";
257 assigned-clocks = <&clock CLK_MOUT_CAM0>, <&clock CLK_MOUT_CAM1>;
258 assigned-clock-parents = <&clock CLK_XUSBXTI>, <&clock CLK_XUSBXTI>;
263 vddcore-supply = <&vusb_reg>;
264 vddio-supply = <&vmipi_reg>;
265 clock-frequency = <160000000>;
266 #address-cells = <1>;
272 remote-endpoint = <&s5k5bafx_ep>;
274 samsung,csis-hs-settle = <6>;
280 cpu0-supply = <&varm_breg>;
286 /* Corresponds to 800MHz */
287 cooling-device = <&cpu0 2 2>;
290 /* Corresponds to 200MHz */
291 cooling-device = <&cpu0 4 4>;
299 phys = <&exynos_usbphy 1>;
306 vbus-supply = <&safe1_sreg>;
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>;
318 /* Back camera not implemented */
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>;
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>;
335 /* Back camera not implemented */
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>;
345 #address-cells = <1>;
351 pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
352 pinctrl-names = "default";
357 fimd_dpi_ep: endpoint {
358 remote-endpoint = <&lcd_ep>;
366 mali-supply = <&vg3d_breg>;
373 vusb_d-supply = <&vusb_reg>;
374 vusb_a-supply = <&vusbdac_reg>;
380 samsung,i2c-sda-delay = <100>;
381 samsung,i2c-slave-addr = <0x10>;
382 samsung,i2c-max-bus-freq = <100000>;
384 pinctrl-0 = <&i2c3_bus>;
385 pinctrl-names = "default";
388 compatible = "atmel,maxtouch";
391 interrupt-parent = <&gpx0>;
392 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
399 samsung,i2c-sda-delay = <100>;
400 samsung,i2c-slave-addr = <0x10>;
401 samsung,i2c-max-bus-freq = <100000>;
403 pinctrl-0 = <&i2c5_bus>;
404 pinctrl-names = "default";
407 compatible = "maxim,max8997-pmic";
410 interrupts-extended = <&gpx0 7 IRQ_TYPE_NONE>,
411 <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
413 max8997,pmic-buck1-uses-gpio-dvs;
414 max8997,pmic-buck2-uses-gpio-dvs;
415 max8997,pmic-buck5-uses-gpio-dvs;
417 max8997,pmic-ignore-gpiodvs-side-effect;
418 max8997,pmic-buck125-default-dvs-idx = <0>;
420 max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
421 <&gpx0 6 GPIO_ACTIVE_HIGH>,
422 <&gpl0 0 GPIO_ACTIVE_HIGH>;
424 max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
425 <1250000>, <1200000>,
426 <1150000>, <1100000>,
429 max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
431 <1100000>, <1000000>,
434 max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
435 <1200000>, <1200000>,
436 <1200000>, <1200000>,
437 <1200000>, <1200000>;
439 pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
440 pinctrl-names = "default";
442 charger-supply = <&charger_reg>;
446 regulator-name = "VADC_3.3V_C210";
447 regulator-min-microvolt = <3300000>;
448 regulator-max-microvolt = <3300000>;
453 regulator-name = "VALIVE_1.1V_C210";
454 regulator-min-microvolt = <1100000>;
455 regulator-max-microvolt = <1100000>;
461 regulator-name = "VUSB_1.1V_C210";
462 regulator-min-microvolt = <1100000>;
463 regulator-max-microvolt = <1100000>;
467 regulator-name = "VMIPI_1.8V";
468 regulator-min-microvolt = <1800000>;
469 regulator-max-microvolt = <1800000>;
474 regulator-name = "VHSIC_1.2V";
475 regulator-min-microvolt = <1200000>;
476 regulator-max-microvolt = <1200000>;
481 regulator-name = "VCC_1.8V_PDA";
482 regulator-min-microvolt = <1800000>;
483 regulator-max-microvolt = <1800000>;
488 regulator-name = "CAM_ISP_1.8V";
489 regulator-min-microvolt = <1800000>;
490 regulator-max-microvolt = <1800000>;
494 regulator-name = "VUSB+VDAC_3.3V_C210";
495 regulator-min-microvolt = <3300000>;
496 regulator-max-microvolt = <3300000>;
500 regulator-name = "VCC_2.8V_PDA";
501 regulator-min-microvolt = <2800000>;
502 regulator-max-microvolt = <2800000>;
507 regulator-name = "TOUCH_2.8V";
508 regulator-min-microvolt = <2800000>;
509 regulator-max-microvolt = <2800000>;
514 regulator-name = "VPLL_1.1V";
515 regulator-min-microvolt = <1100000>;
516 regulator-max-microvolt = <1100000>;
521 regulator-name = "VT_CAM_1.8V";
522 regulator-min-microvolt = <1800000>;
523 regulator-max-microvolt = <1800000>;
526 * Force-enable this regulator; otherwise the
527 * kernel hangs very early in the boot process
528 * for about 12 seconds, without apparent
535 regulator-name = "VCC_3.0V_LCD";
536 regulator-min-microvolt = <3000000>;
537 regulator-max-microvolt = <3000000>;
541 regulator-name = "VCC_2.8V_MOTOR";
542 regulator-min-microvolt = <2800000>;
543 regulator-max-microvolt = <2800000>;
547 regulator-name = "LED_A_2.8V";
548 regulator-min-microvolt = <2800000>;
549 regulator-max-microvolt = <2800000>;
552 camsensor_reg: LDO16 {
553 regulator-name = "CAM_SENSOR_IO_1.8V";
554 regulator-min-microvolt = <1800000>;
555 regulator-max-microvolt = <1800000>;
559 regulator-name = "VTF_2.8V";
560 regulator-min-microvolt = <2800000>;
561 regulator-max-microvolt = <2800000>;
564 vtouchled_reg: LDO18 {
565 regulator-name = "TOUCH_LED_3.3V";
566 regulator-min-microvolt = <2500000>;
567 regulator-max-microvolt = <3300000>;
571 regulator-name = "VDDQ_M1M2_1.2V";
572 regulator-min-microvolt = <1200000>;
573 regulator-max-microvolt = <1200000>;
578 regulator-name = "VARM_1.2V_C210";
579 regulator-min-microvolt = <65000>;
580 regulator-max-microvolt = <2225000>;
585 regulator-name = "VINT_1.1V_C210";
586 regulator-min-microvolt = <65000>;
587 regulator-max-microvolt = <2225000>;
592 regulator-name = "G3D_1.1V";
593 regulator-min-microvolt = <900000>;
594 regulator-max-microvolt = <1200000>;
595 regulator-microvolt-offset = <50000>;
600 regulator-name = "CAM_ISP_CORE_1.2V";
601 regulator-min-microvolt = <1200000>;
602 regulator-max-microvolt = <1200000>;
606 regulator-name = "VMEM_1.2V";
607 regulator-min-microvolt = <1200000>;
608 regulator-max-microvolt = <1200000>;
613 regulator-name = "VCC_SUB_2.0V";
614 regulator-min-microvolt = <2000000>;
615 regulator-max-microvolt = <2000000>;
619 safe1_sreg: ESAFEOUT1 {
620 regulator-name = "SAFEOUT1";
623 safe2_sreg: ESAFEOUT2 {
624 regulator-name = "SAFEOUT2";
629 regulator-name = "EN32KHZ_AP";
634 regulator-name = "EN32KHZ_CP";
638 charger_reg: CHARGER {
639 regulator-name = "CHARGER";
640 regulator-min-microamp = <200000>;
641 regulator-max-microamp = <950000>;
644 chargercv_reg: CHARGER_CV {
645 regulator-name = "CHARGER_CV";
646 regulator-min-microvolt = <4200000>;
647 regulator-max-microvolt = <4200000>;
652 regulator-name = "CHARGER_TOPOFF";
653 regulator-min-microamp = <200000>;
654 regulator-max-microamp = <200000>;
664 samsung,i2c-sda-delay = <100>;
665 samsung,i2c-slave-addr = <0x10>;
666 samsung,i2c-max-bus-freq = <400000>;
668 pinctrl-0 = <&i2c7_bus>;
669 pinctrl-names = "default";
672 compatible = "asahi-kasei,ak8975";
675 gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
680 pinctrl-names = "default";
681 pinctrl-0 = <&sleep0>;
683 sleep0: sleep-state {
685 samsung,pins = "gpa0-0";
686 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
687 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
691 samsung,pins = "gpa0-1";
692 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
693 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
697 samsung,pins = "gpa0-2";
698 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
699 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
703 samsung,pins = "gpa0-3";
704 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
705 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
711 mhl_int: mhl-int-pins {
712 samsung,pins = "gpf3-5";
713 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
716 i2c_mhl_bus: i2c-mhl-bus-pins {
717 samsung,pins = "gpf0-4", "gpf0-6";
718 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
719 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
720 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
723 usb_sel: usb-sel-pins {
724 samsung,pins = "gpl0-6";
725 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
726 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
727 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
728 samsung,pin-val = <0>;
732 samsung,pins = "gpl0-4";
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>;
739 bt_res: bt-res-pins {
740 samsung,pins = "gpl1-0";
741 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
742 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
743 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
744 samsung,pin-val = <0>;
747 otg_gp: otg-gp-pins {
748 samsung,pins = "gpx3-3";
749 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
750 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
751 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
752 samsung,pin-val = <0>;
755 mag_mhl_gpio: mag-mhl-pins {
756 samsung,pins = "gpd0-2";
757 samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
758 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
761 max8997_irq: max8997-irq-pins {
762 samsung,pins = "gpx0-7";
763 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
766 max17042_fuel_irq: max17042-fuel-irq-pins {
767 samsung,pins = "gpx2-3";
768 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
771 tsp224_irq: tsp224-irq-pins {
772 samsung,pins = "gpx0-4";
773 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
779 clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
780 clock-names = "rtc", "rtc_src";
788 vmmc-supply = <&vemmc_reg>;
790 pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
791 pinctrl-names = "default";
798 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
799 vmmc-supply = <&vtf_reg>;
801 pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
802 pinctrl-names = "default";
808 #address-cells = <1>;
813 mmc-pwrseq = <&wlan_pwrseq>;
814 vmmc-supply = <&vtf_reg>;
816 pinctrl-names = "default";
817 pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
820 compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
823 interrupt-parent = <&gpx2>;
824 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
825 interrupt-names = "host-wake";
832 pinctrl-names = "default";
833 pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
836 compatible = "brcm,bcm4330-bt";
838 shutdown-gpios = <&gpl0 4 GPIO_ACTIVE_HIGH>;
839 reset-gpios = <&gpl1 0 GPIO_ACTIVE_LOW>;
840 device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
842 interrupt-parent = <&gpx2>;
843 interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
844 interrupt-names = "host-wakeup";