// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2025, Antony Kurniawan Soemardi */ #include #include #include #include #include "qcom-msm8960.dtsi" #include "pm8921.dtsi" / { model = "Sony Xperia SP"; compatible = "sony,huashan", "qcom,msm8960t", "qcom,msm8960"; chassis-type = "handset"; aliases { serial0 = &gsbi8_serial; mmc0 = &sdcc1; /* SDCC1 eMMC slot */ mmc1 = &sdcc3; /* SDCC3 SD card slot */ }; chosen { stdout-path = "serial0:115200n8"; }; gpio-keys { compatible = "gpio-keys"; key-volume-up { label = "Volume Up"; gpios = <&pm8921_gpio 21 GPIO_ACTIVE_LOW>; debounce-interval = <10>; linux,code = ; }; key-volume-down { label = "Volume Down"; gpios = <&pm8921_gpio 20 GPIO_ACTIVE_LOW>; debounce-interval = <10>; linux,code = ; }; }; }; &gsbi8 { qcom,mode = ; status = "okay"; }; &gsbi8_serial { status = "okay"; }; &pm8921 { interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>; }; &pm8921_gpio { keypad_default_state: keypad-default-state { keypad-sense-pins { pins = "gpio1", "gpio2", "gpio3", "gpio4", "gpio5"; function = PMIC_GPIO_FUNC_NORMAL; bias-pull-up; input-enable; power-source = ; qcom,drive-strength = ; qcom,pull-up-strength = ; }; keypad-drive-pins { pins = "gpio9", "gpio10"; function = PMIC_GPIO_FUNC_FUNC1; bias-disable; drive-open-drain; output-low; power-source = ; qcom,drive-strength = ; }; }; }; &pm8921_keypad { linux,keymap = < MATRIX_KEY(1, 0, KEY_CAMERA_FOCUS) MATRIX_KEY(1, 1, KEY_CAMERA) >; keypad,num-rows = <2>; keypad,num-columns = <5>; pinctrl-0 = <&keypad_default_state>; pinctrl-names = "default"; status = "okay"; }; &rpm { regulators { compatible = "qcom,rpm-pm8921-regulators"; vin_lvs1_3_6-supply = <&pm8921_s4>; vin_lvs2-supply = <&pm8921_s4>; vin_lvs4_5_7-supply = <&pm8921_s4>; vdd_ncp-supply = <&pm8921_l6>; vdd_l1_l2_l12_l18-supply = <&pm8921_s4>; vdd_l21_l23_l29-supply = <&pm8921_s8>; vdd_l24-supply = <&pm8921_s1>; vdd_l25-supply = <&pm8921_s1>; vdd_l26-supply = <&pm8921_s7>; vdd_l27-supply = <&pm8921_s7>; vdd_l28-supply = <&pm8921_s7>; vdd_l29-supply = <&pm8921_s8>; /* Buck SMPS */ pm8921_s1: s1 { regulator-always-on; regulator-min-microvolt = <1225000>; regulator-max-microvolt = <1225000>; qcom,switch-mode-frequency = <3200000>; bias-pull-down; }; pm8921_s2: s2 { regulator-min-microvolt = <1300000>; regulator-max-microvolt = <1300000>; qcom,switch-mode-frequency = <1600000>; bias-pull-down; }; pm8921_s3: s3 { regulator-min-microvolt = <500000>; regulator-max-microvolt = <1150000>; qcom,switch-mode-frequency = <4800000>; bias-pull-down; }; pm8921_s4: s4 { regulator-always-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; qcom,switch-mode-frequency = <1600000>; bias-pull-down; qcom,force-mode = ; }; pm8921_s7: s7 { regulator-min-microvolt = <1150000>; regulator-max-microvolt = <1150000>; qcom,switch-mode-frequency = <3200000>; bias-pull-down; }; pm8921_s8: s8 { regulator-always-on; regulator-min-microvolt = <2050000>; regulator-max-microvolt = <2050000>; qcom,switch-mode-frequency = <1600000>; bias-pull-down; }; /* PMOS LDO */ pm8921_l1: l1 { regulator-always-on; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; bias-pull-down; }; pm8921_l2: l2 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; bias-pull-down; }; pm8921_l3: l3 { regulator-min-microvolt = <3075000>; regulator-max-microvolt = <3075000>; bias-pull-down; }; pm8921_l4: l4 { regulator-always-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; bias-pull-down; }; pm8921_l5: l5 { regulator-min-microvolt = <2950000>; regulator-max-microvolt = <2950000>; bias-pull-down; }; pm8921_l6: l6 { regulator-min-microvolt = <2950000>; regulator-max-microvolt = <2950000>; bias-pull-down; }; pm8921_l7: l7 { regulator-always-on; regulator-min-microvolt = <1850000>; regulator-max-microvolt = <2950000>; bias-pull-down; }; pm8921_l8: l8 { regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3000000>; bias-pull-down; }; pm8921_l9: l9 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; bias-pull-down; }; pm8921_l10: l10 { regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; bias-pull-down; }; pm8921_l11: l11 { regulator-min-microvolt = <2600000>; regulator-max-microvolt = <3000000>; bias-pull-down; }; pm8921_l12: l12 { regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1200000>; bias-pull-down; }; pm8921_l14: l14 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; bias-pull-down; }; pm8921_l15: l15 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2950000>; bias-pull-down; }; pm8921_l16: l16 { regulator-min-microvolt = <2600000>; regulator-max-microvolt = <3000000>; bias-pull-down; }; pm8921_l17: l17 { regulator-always-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3000000>; bias-pull-down; }; pm8921_l18: l18 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; bias-pull-down; }; pm8921_l21: l21 { regulator-min-microvolt = <1900000>; regulator-max-microvolt = <1900000>; bias-pull-down; }; pm8921_l22: l22 { regulator-min-microvolt = <2750000>; regulator-max-microvolt = <2750000>; bias-pull-down; }; pm8921_l23: l23 { regulator-always-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; bias-pull-down; }; pm8921_l24: l24 { regulator-min-microvolt = <750000>; regulator-max-microvolt = <1150000>; bias-pull-down; }; pm8921_l25: l25 { regulator-always-on; regulator-min-microvolt = <1225000>; regulator-max-microvolt = <1225000>; bias-pull-down; }; /* Low Voltage Switch */ pm8921_lvs1: lvs1 { bias-pull-down; }; pm8921_lvs2: lvs2 { bias-pull-down; }; pm8921_lvs3: lvs3 { bias-pull-down; }; pm8921_lvs4: lvs4 { bias-pull-down; }; pm8921_lvs5: lvs5 { bias-pull-down; }; pm8921_lvs6: lvs6 { bias-pull-down; }; pm8921_lvs7: lvs7 { bias-pull-down; }; pm8921_ncp: ncp { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; qcom,switch-mode-frequency = <1600000>; }; }; }; &sdcc1 { vmmc-supply = <&pm8921_l5>; status = "okay"; }; &sdcc3 { vmmc-supply = <&pm8921_l6>; vqmmc-supply = <&pm8921_l7>; pinctrl-0 = <&sdcc3_default_state>; pinctrl-1 = <&sdcc3_sleep_state>; pinctrl-names = "default", "sleep"; status = "okay"; }; &usb_hs1_phy { v3p3-supply = <&pm8921_l3>; v1p8-supply = <&pm8921_l4>; }; &usb1 { dr_mode = "otg"; status = "okay"; };