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";
23 device_type = "memory";
24 reg = <0x40000000 0x40000000>;
28 stdout-path = "serial2:115200n8";
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>;
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>;
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>;
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>;
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>;
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>;
89 compatible = "gpio-keys";
92 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
93 linux,code = <KEY_VOLUMEDOWN>;
94 label = "volume down";
95 debounce-interval = <10>;
99 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
100 linux,code = <KEY_VOLUMEUP>;
102 debounce-interval = <10>;
106 gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
107 linux,code = <KEY_POWER>;
109 debounce-interval = <10>;
114 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
115 linux,code = <KEY_OK>;
117 debounce-interval = <10>;
121 wlan_pwrseq: sdhci3-pwrseq {
122 compatible = "mmc-pwrseq-simple";
123 reset-gpios = <&gpl1 2 GPIO_ACTIVE_LOW>;
126 i2c_max17042_fuel: i2c-gpio-0 {
127 compatible = "i2c-gpio";
128 #address-cells = <1>;
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>;
136 compatible = "maxim,max17042";
138 interrupt-parent = <&gpx2>;
139 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
141 pinctrl-0 = <&max17042_fuel_irq>;
142 pinctrl-names = "default";
145 maxim,over-heat-temp = <700>;
146 maxim,over-volt = <4500>;
150 i2c_s5k5baf: i2c-gpio-1 {
151 compatible = "i2c-gpio";
152 #address-cells = <1>;
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>;
160 compatible = "samsung,s5k5baf";
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>;
172 s5k5bafx_ep: endpoint {
173 remote-endpoint = <&csis1_ep>;
181 compatible = "spi-gpio";
182 #address-cells = <1>;
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>;
191 compatible = "samsung,ld9040";
194 spi-max-frequency = <1200000>;
196 vdd3-supply = <&vmipi_reg>;
197 vci-supply = <&vcclcd_reg>;
199 reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
200 power-on-delay = <10>;
203 panel-width-mm = <90>;
204 panel-height-mm = <154>;
208 clock-frequency = <23492370>;
220 pixelclk-active = <0>;
226 remote-endpoint = <&fimd_dpi_ep>;
234 compatible = "samsung,clock-xxti";
235 clock-frequency = <0>;
239 compatible = "samsung,clock-xusbxti";
240 clock-frequency = <24000000>;
243 pmic_ap_clk: pmic-ap-clk {
244 /* Workaround for missing clock on max8997 PMIC */
245 compatible = "fixed-clock";
247 clock-frequency = <32768>;
253 pinctrl-0 = <&cam_port_a_clk_active>;
254 pinctrl-names = "default";
256 assigned-clocks = <&clock CLK_MOUT_CAM0>, <&clock CLK_MOUT_CAM1>;
257 assigned-clock-parents = <&clock CLK_XUSBXTI>, <&clock CLK_XUSBXTI>;
262 vddcore-supply = <&vusb_reg>;
263 vddio-supply = <&vmipi_reg>;
264 clock-frequency = <160000000>;
265 #address-cells = <1>;
271 remote-endpoint = <&s5k5bafx_ep>;
273 samsung,csis-hs-settle = <6>;
279 cpu0-supply = <&varm_breg>;
285 /* Corresponds to 800MHz */
286 cooling-device = <&cpu0 2 2>;
289 /* Corresponds to 200MHz */
290 cooling-device = <&cpu0 4 4>;
298 phys = <&exynos_usbphy 1>;
305 vbus-supply = <&safe1_sreg>;
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>;
317 /* Back camera not implemented */
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>;
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>;
334 /* Back camera not implemented */
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>;
344 #address-cells = <1>;
350 pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
351 pinctrl-names = "default";
356 fimd_dpi_ep: endpoint {
357 remote-endpoint = <&lcd_ep>;
365 mali-supply = <&vg3d_breg>;
372 vusb_d-supply = <&vusb_reg>;
373 vusb_a-supply = <&vusbdac_reg>;
379 samsung,i2c-sda-delay = <100>;
380 samsung,i2c-slave-addr = <0x10>;
381 samsung,i2c-max-bus-freq = <100000>;
383 pinctrl-0 = <&i2c3_bus>;
384 pinctrl-names = "default";
387 compatible = "atmel,maxtouch";
390 interrupt-parent = <&gpx0>;
391 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
398 samsung,i2c-sda-delay = <100>;
399 samsung,i2c-slave-addr = <0x10>;
400 samsung,i2c-max-bus-freq = <100000>;
402 pinctrl-0 = <&i2c5_bus>;
403 pinctrl-names = "default";
406 compatible = "maxim,max8997-pmic";
409 interrupts-extended = <&gpx0 7 IRQ_TYPE_NONE>,
410 <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
412 max8997,pmic-buck1-uses-gpio-dvs;
413 max8997,pmic-buck2-uses-gpio-dvs;
414 max8997,pmic-buck5-uses-gpio-dvs;
416 max8997,pmic-ignore-gpiodvs-side-effect;
417 max8997,pmic-buck125-default-dvs-idx = <0>;
419 max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
420 <&gpx0 6 GPIO_ACTIVE_HIGH>,
421 <&gpl0 0 GPIO_ACTIVE_HIGH>;
423 max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
424 <1250000>, <1200000>,
425 <1150000>, <1100000>,
428 max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
430 <1100000>, <1000000>,
433 max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
434 <1200000>, <1200000>,
435 <1200000>, <1200000>,
436 <1200000>, <1200000>;
438 pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
439 pinctrl-names = "default";
441 charger-supply = <&charger_reg>;
445 regulator-name = "VADC_3.3V_C210";
446 regulator-min-microvolt = <3300000>;
447 regulator-max-microvolt = <3300000>;
452 regulator-name = "VALIVE_1.1V_C210";
453 regulator-min-microvolt = <1100000>;
454 regulator-max-microvolt = <1100000>;
460 regulator-name = "VUSB_1.1V_C210";
461 regulator-min-microvolt = <1100000>;
462 regulator-max-microvolt = <1100000>;
466 regulator-name = "VMIPI_1.8V";
467 regulator-min-microvolt = <1800000>;
468 regulator-max-microvolt = <1800000>;
473 regulator-name = "VHSIC_1.2V";
474 regulator-min-microvolt = <1200000>;
475 regulator-max-microvolt = <1200000>;
480 regulator-name = "VCC_1.8V_PDA";
481 regulator-min-microvolt = <1800000>;
482 regulator-max-microvolt = <1800000>;
487 regulator-name = "CAM_ISP_1.8V";
488 regulator-min-microvolt = <1800000>;
489 regulator-max-microvolt = <1800000>;
493 regulator-name = "VUSB+VDAC_3.3V_C210";
494 regulator-min-microvolt = <3300000>;
495 regulator-max-microvolt = <3300000>;
499 regulator-name = "VCC_2.8V_PDA";
500 regulator-min-microvolt = <2800000>;
501 regulator-max-microvolt = <2800000>;
506 regulator-name = "TOUCH_2.8V";
507 regulator-min-microvolt = <2800000>;
508 regulator-max-microvolt = <2800000>;
513 regulator-name = "VPLL_1.1V";
514 regulator-min-microvolt = <1100000>;
515 regulator-max-microvolt = <1100000>;
520 regulator-name = "VT_CAM_1.8V";
521 regulator-min-microvolt = <1800000>;
522 regulator-max-microvolt = <1800000>;
526 regulator-name = "VCC_3.0V_LCD";
527 regulator-min-microvolt = <3000000>;
528 regulator-max-microvolt = <3000000>;
532 regulator-name = "VCC_2.8V_MOTOR";
533 regulator-min-microvolt = <2800000>;
534 regulator-max-microvolt = <2800000>;
538 regulator-name = "LED_A_2.8V";
539 regulator-min-microvolt = <2800000>;
540 regulator-max-microvolt = <2800000>;
543 camsensor_reg: LDO16 {
544 regulator-name = "CAM_SENSOR_IO_1.8V";
545 regulator-min-microvolt = <1800000>;
546 regulator-max-microvolt = <1800000>;
550 regulator-name = "VTF_2.8V";
551 regulator-min-microvolt = <2800000>;
552 regulator-max-microvolt = <2800000>;
555 vtouchled_reg: LDO18 {
556 regulator-name = "TOUCH_LED_3.3V";
557 regulator-min-microvolt = <2500000>;
558 regulator-max-microvolt = <3300000>;
562 regulator-name = "VDDQ_M1M2_1.2V";
563 regulator-min-microvolt = <1200000>;
564 regulator-max-microvolt = <1200000>;
569 regulator-name = "VARM_1.2V_C210";
570 regulator-min-microvolt = <65000>;
571 regulator-max-microvolt = <2225000>;
576 regulator-name = "VINT_1.1V_C210";
577 regulator-min-microvolt = <65000>;
578 regulator-max-microvolt = <2225000>;
583 regulator-name = "G3D_1.1V";
584 regulator-min-microvolt = <900000>;
585 regulator-max-microvolt = <1200000>;
586 regulator-microvolt-offset = <50000>;
591 regulator-name = "CAM_ISP_CORE_1.2V";
592 regulator-min-microvolt = <1200000>;
593 regulator-max-microvolt = <1200000>;
597 regulator-name = "VMEM_1.2V";
598 regulator-min-microvolt = <1200000>;
599 regulator-max-microvolt = <1200000>;
604 regulator-name = "VCC_SUB_2.0V";
605 regulator-min-microvolt = <2000000>;
606 regulator-max-microvolt = <2000000>;
610 safe1_sreg: ESAFEOUT1 {
611 regulator-name = "SAFEOUT1";
614 safe2_sreg: ESAFEOUT2 {
615 regulator-name = "SAFEOUT2";
620 regulator-name = "EN32KHZ_AP";
625 regulator-name = "EN32KHZ_CP";
629 charger_reg: CHARGER {
630 regulator-name = "CHARGER";
631 regulator-min-microamp = <200000>;
632 regulator-max-microamp = <950000>;
635 chargercv_reg: CHARGER_CV {
636 regulator-name = "CHARGER_CV";
637 regulator-min-microvolt = <4200000>;
638 regulator-max-microvolt = <4200000>;
643 regulator-name = "CHARGER_TOPOFF";
644 regulator-min-microamp = <200000>;
645 regulator-max-microamp = <200000>;
655 samsung,i2c-sda-delay = <100>;
656 samsung,i2c-slave-addr = <0x10>;
657 samsung,i2c-max-bus-freq = <400000>;
659 pinctrl-0 = <&i2c7_bus>;
660 pinctrl-names = "default";
663 compatible = "asahi-kasei,ak8975";
666 gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
671 pinctrl-names = "default";
672 pinctrl-0 = <&sleep0>;
674 sleep0: sleep-states {
676 samsung,pins = "gpa0-0";
677 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
678 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
682 samsung,pins = "gpa0-1";
683 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
684 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
688 samsung,pins = "gpa0-2";
689 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
690 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
694 samsung,pins = "gpa0-3";
695 samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT1>;
696 samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
703 samsung,pins = "gpf3-5";
704 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
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>;
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>;
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>;
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>;
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>;
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>;
752 max8997_irq: max8997-irq {
753 samsung,pins = "gpx0-7";
754 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
757 max17042_fuel_irq: max17042-fuel-irq {
758 samsung,pins = "gpx2-3";
759 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
762 tsp224_irq: tsp224-irq {
763 samsung,pins = "gpx0-4";
764 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
770 clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
771 clock-names = "rtc", "rtc_src";
779 vmmc-supply = <&vemmc_reg>;
781 pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_bus8>;
782 pinctrl-names = "default";
789 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
790 vmmc-supply = <&vtf_reg>;
792 pinctrl-0 = <&sd2_clk>, <&sd2_cmd>, <&sd2_bus4>;
793 pinctrl-names = "default";
799 #address-cells = <1>;
804 mmc-pwrseq = <&wlan_pwrseq>;
805 vmmc-supply = <&vtf_reg>;
807 pinctrl-names = "default";
808 pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
811 compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
814 interrupt-parent = <&gpx2>;
815 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
816 interrupt-names = "host-wake";
823 pinctrl-names = "default";
824 pinctrl-0 = <&bt_en>, <&bt_res>, <&uart0_data>, <&uart0_fctl>;
827 compatible = "brcm,bcm4330-bt";
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>;