// SPDX-License-Identifier: BSD-3-Clause /* * Copyright (c) 2022, Lux Aliaga */ /dts-v1/; #include #include #include #include #include "sm6125.dtsi" #include "pm6125.dtsi" / { model = "Xiaomi Mi A3"; compatible = "xiaomi,laurel-sprout", "qcom,sm6125"; chassis-type = "handset"; /* required for bootloader to select correct board */ qcom,msm-id = <394 0>; /* sm6125 v1 */ qcom,board-id = <11 0>; chosen { #address-cells = <2>; #size-cells = <2>; ranges; framebuffer0: framebuffer@5c000000 { compatible = "simple-framebuffer"; reg = <0 0x5c000000 0 (1560 * 720 * 4)>; width = <720>; height = <1560>; stride = <(720 * 4)>; format = "a8r8g8b8"; }; }; reserved-memory { debug_mem: debug@ffb00000 { reg = <0x0 0xffb00000 0x0 0xc0000>; no-map; }; last_log_mem: lastlog@ffbc0000 { reg = <0x0 0xffbc0000 0x0 0x80000>; no-map; }; pstore_mem: ramoops@ffc00000 { compatible = "ramoops"; reg = <0x0 0xffc40000 0x0 0xc0000>; record-size = <0x1000>; console-size = <0x40000>; pmsg-size = <0x20000>; }; cmdline_mem: memory@ffd00000 { reg = <0x0 0xffd40000 0x0 0x1000>; no-map; }; }; extcon_usb: usb-id { compatible = "linux,extcon-usb-gpio"; id-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>; }; gpio-keys { compatible = "gpio-keys"; pinctrl-0 = <&vol_up_n>; pinctrl-names = "default"; key-volume-up { label = "Volume Up"; gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>; linux,code = ; debounce-interval = <15>; linux,can-disable; wakeup-source; }; }; thermal-zones { rf-pa0-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&pm6125_adc_tm 0>; trips { active-config0 { temperature = <125000>; hysteresis = <1000>; type = "critical"; }; }; }; quiet-thermal { polling-delay-passive = <0>; polling-delay = <5000>; thermal-sensors = <&pm6125_adc_tm 1>; trips { active-config0 { temperature = <125000>; hysteresis = <1000>; type = "critical"; }; }; }; xo-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&pm6125_adc_tm 2>; trips { active-config0 { temperature = <125000>; hysteresis = <1000>; type = "critical"; }; }; }; }; }; &hsusb_phy1 { vdd-supply = <&vreg_l7a>; vdda-pll-supply = <&vreg_l10a>; vdda-phy-dpdm-supply = <&vreg_l15a>; status = "okay"; }; &pm6125_adc { pinctrl-names = "default"; pinctrl-0 = <&camera_flash_therm &emmc_ufs_therm>; channel@4d { reg = ; qcom,ratiometric; qcom,hw-settle-time = <200>; qcom,pre-scaling = <1 1>; label = "rf_pa0_therm"; }; channel@4e { reg = ; qcom,ratiometric; qcom,hw-settle-time = <200>; qcom,pre-scaling = <1 1>; label = "quiet_therm"; }; channel@52 { reg = ; qcom,ratiometric; qcom,hw-settle-time = <200>; qcom,pre-scaling = <1 1>; label = "camera_flash_therm"; }; channel@54 { reg = ; qcom,ratiometric; qcom,hw-settle-time = <200>; qcom,pre-scaling = <1 1>; label = "emmc_ufs_therm"; }; }; &pm6125_adc_tm { status = "okay"; rf-pa0-therm@0 { reg = <0>; io-channels = <&pm6125_adc ADC5_AMUX_THM1_100K_PU>; qcom,ratiometric; qcom,hw-settle-time-us = <200>; }; quiet-therm@1 { reg = <1>; io-channels = <&pm6125_adc ADC5_AMUX_THM2_100K_PU>; qcom,ratiometric; qcom,hw-settle-time-us = <200>; }; xo-therm@2 { reg = <2>; io-channels = <&pm6125_adc ADC5_XO_THERM_100K_PU>; qcom,ratiometric; qcom,hw-settle-time-us = <200>; }; }; &pm6125_gpios { camera_flash_therm: camera-flash-therm-state { pins = "gpio3"; function = PMIC_GPIO_FUNC_NORMAL; bias-high-impedance; }; emmc_ufs_therm: emmc-ufs-therm-state { pins = "gpio6"; function = PMIC_GPIO_FUNC_NORMAL; bias-high-impedance; }; vol_up_n: vol-up-n-state { pins = "gpio5"; function = PMIC_GPIO_FUNC_NORMAL; input-enable; bias-pull-up; }; }; &pon_pwrkey { status = "okay"; }; &pon_resin { linux,code = ; status = "okay"; }; &rpm_requests { regulators-0 { compatible = "qcom,rpm-pm6125-regulators"; vreg_s6a: s6 { regulator-min-microvolt = <936000>; regulator-max-microvolt = <1422000>; }; vreg_l1a: l1 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1256000>; }; vreg_l2a: l2 { regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1056000>; }; vreg_l3a: l3 { regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1064000>; }; vreg_l4a: l4 { regulator-min-microvolt = <872000>; regulator-max-microvolt = <976000>; regulator-allow-set-load; }; vreg_l5a: l5 { regulator-min-microvolt = <1648000>; regulator-max-microvolt = <2950000>; regulator-allow-set-load; }; vreg_l6a: l6 { regulator-min-microvolt = <576000>; regulator-max-microvolt = <656000>; }; vreg_l7a: l7 { regulator-min-microvolt = <872000>; regulator-max-microvolt = <976000>; }; vreg_l8a: l8 { regulator-min-microvolt = <400000>; regulator-max-microvolt = <728000>; }; vreg_l9a: l9 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1896000>; }; vreg_l10a: l10 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1896000>; regulator-allow-set-load; }; vreg_l11a: l11 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1952000>; regulator-allow-set-load; }; vreg_l12a: l12 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1996000>; }; vreg_l13a: l13 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1832000>; }; vreg_l14a: l14 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1904000>; }; vreg_l15a: l15 { regulator-min-microvolt = <3104000>; regulator-max-microvolt = <3232000>; }; vreg_l16a: l16 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1904000>; }; vreg_l17a: l17 { regulator-min-microvolt = <1248000>; regulator-max-microvolt = <1304000>; }; vreg_l18a: l18 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1264000>; regulator-allow-set-load; }; vreg_l19a: l19 { regulator-min-microvolt = <1648000>; regulator-max-microvolt = <2952000>; }; vreg_l20a: l20 { regulator-min-microvolt = <1648000>; regulator-max-microvolt = <2952000>; }; vreg_l21a: l21 { regulator-min-microvolt = <2600000>; regulator-max-microvolt = <2856000>; }; vreg_l22a: l22 { regulator-min-microvolt = <2944000>; regulator-max-microvolt = <2950000>; regulator-allow-set-load; }; vreg_l23a: l23 { regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3400000>; }; vreg_l24a: l24 { regulator-min-microvolt = <2944000>; regulator-max-microvolt = <2950000>; regulator-allow-set-load; }; }; }; &sdc2_off_state { sd-cd-pins { pins = "gpio98"; function = "gpio"; drive-strength = <2>; bias-disable; }; }; &sdc2_on_state { sd-cd-pins { pins = "gpio98"; function = "gpio"; drive-strength = <2>; bias-pull-up; }; }; &sdhc_2 { cd-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>; vmmc-supply = <&vreg_l22a>; vqmmc-supply = <&vreg_l5a>; no-sdio; no-mmc; status = "okay"; }; &tlmm { gpio-reserved-ranges = <22 2>, <28 6>; }; &ufs_mem_hc { vcc-supply = <&vreg_l24a>; vccq2-supply = <&vreg_l11a>; vcc-max-microamp = <600000>; vccq2-max-microamp = <600000>; status = "okay"; }; &ufs_mem_phy { vdda-phy-supply = <&vreg_l4a>; vdda-pll-supply = <&vreg_l10a>; vdda-phy-max-microamp = <51400>; vdda-pll-max-microamp = <14200>; vddp-ref-clk-supply = <&vreg_l18a>; status = "okay"; }; &usb3 { status = "okay"; }; &usb3_dwc3 { extcon = <&extcon_usb>; };