* [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael)
@ 2025-11-04 22:16 Piyush Raj Chouhan
2025-11-04 22:16 ` [PATCH v2 1/3] dt-bindings: arm: qcom: " Piyush Raj Chouhan
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Piyush Raj Chouhan @ 2025-11-04 22:16 UTC (permalink / raw)
To: linux-arm-msm
Cc: devicetree, linux-kernel, linux-hardening, andersson, konradybcio,
robh, krzk+dt, conor+dt, tony.luck, gpiccoli, david,
Piyush Raj Chouhan
Hi all,
This is v2 of the patch that makes several cleanups and minor fixes to
the SM8150 Xiaomi Raphael device tree.
Changes in this version:
- Updated qcom,vmid to use QCOM_SCM_VMID_MSS_MSA instead of hardcoded 15
- Added include: <dt-bindings/firmware/qcom,scm.h>
- Set ECC size to 8 in ramoops region
- Updated firmware paths to use "Xiaomi" instead of "xiaomi"
- Adjusted configuration for panel pinctrl
- Removed redundant LDO8 regulator entry
- Cleaned up PM8150L LPG LED definitions with proper labels
- General styling and ordering fixups
Link to v1: https://lore.kernel.org/all/20251022054026.22816-2-pc1598@mainlining.org/
Piyush Raj Chouhan (3):
dt-bindings: arm: qcom: Add Xiaomi Redmi K20 Pro (Raphael)
arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi
arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro
.../devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 1 -
.../boot/dts/qcom/sm8150-xiaomi-raphael.dts | 962 ++++++++++++++++++
arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 +
5 files changed, 966 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts
--
2.51.2
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v2 1/3] dt-bindings: arm: qcom: Add Xiaomi Redmi K20 Pro (Raphael) 2025-11-04 22:16 [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Piyush Raj Chouhan @ 2025-11-04 22:16 ` Piyush Raj Chouhan 2025-11-04 22:16 ` [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi Piyush Raj Chouhan ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Piyush Raj Chouhan @ 2025-11-04 22:16 UTC (permalink / raw) To: linux-arm-msm Cc: devicetree, linux-kernel, linux-hardening, andersson, konradybcio, robh, krzk+dt, conor+dt, tony.luck, gpiccoli, david, Piyush Raj Chouhan Document Xiaomi Redmi K20 Pro / Xiaomi Mi 9T Pro. Signed-off-by: Piyush Raj Chouhan <pc1598@mainlining.org> Acked-by: Rob Herring (Arm) <robh@kernel.org> --- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 18b5ed044f9f..b81930eec39c 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -983,6 +983,7 @@ properties: - qcom,sm8150-mtp - sony,bahamut-generic - sony,griffin-generic + - xiaomi,raphael - const: qcom,sm8150 - items: -- 2.51.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi 2025-11-04 22:16 [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Piyush Raj Chouhan 2025-11-04 22:16 ` [PATCH v2 1/3] dt-bindings: arm: qcom: " Piyush Raj Chouhan @ 2025-11-04 22:16 ` Piyush Raj Chouhan 2025-11-04 22:32 ` David Heidelberg 2025-11-05 0:46 ` Dmitry Baryshkov 2025-11-04 22:16 ` [PATCH v2 3/3] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro Piyush Raj Chouhan 2025-11-26 11:36 ` [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Pavel Machek 3 siblings, 2 replies; 8+ messages in thread From: Piyush Raj Chouhan @ 2025-11-04 22:16 UTC (permalink / raw) To: linux-arm-msm Cc: devicetree, linux-kernel, linux-hardening, andersson, konradybcio, robh, krzk+dt, conor+dt, tony.luck, gpiccoli, david, Piyush Raj Chouhan Signed-off-by: Piyush Raj Chouhan <pc1598@mainlining.org> --- arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 1 - arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sm8150-hdk.dts b/arch/arm64/boot/dts/qcom/sm8150-hdk.dts index 0339a572f34d..29afee6160cd 100644 --- a/arch/arm64/boot/dts/qcom/sm8150-hdk.dts +++ b/arch/arm64/boot/dts/qcom/sm8150-hdk.dts @@ -693,7 +693,6 @@ &usb_2 { &usb_1_dwc3 { dr_mode = "otg"; - usb-role-switch; }; &usb_1_dwc3_hs { diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi index acdba79612aa..cd05975dacd1 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -3661,6 +3661,8 @@ usb_1_dwc3: usb@a600000 { phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>; phy-names = "usb2-phy", "usb3-phy"; + usb-role-switch; + ports { #address-cells = <1>; #size-cells = <0>; -- 2.51.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi 2025-11-04 22:16 ` [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi Piyush Raj Chouhan @ 2025-11-04 22:32 ` David Heidelberg 2025-11-05 0:46 ` Dmitry Baryshkov 1 sibling, 0 replies; 8+ messages in thread From: David Heidelberg @ 2025-11-04 22:32 UTC (permalink / raw) To: Piyush Raj Chouhan, linux-arm-msm Cc: devicetree, linux-kernel, linux-hardening, andersson, konradybcio, robh, krzk+dt, conor+dt, tony.luck, gpiccoli You have to provide the commit message, even when the change seems to you self-explaining. Just one or two sentences explaining why. David On 04/11/2025 23:16, Piyush Raj Chouhan wrote: > Signed-off-by: Piyush Raj Chouhan <pc1598@mainlining.org> > --- > arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 1 - > arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 ++ > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8150-hdk.dts b/arch/arm64/boot/dts/qcom/sm8150-hdk.dts > index 0339a572f34d..29afee6160cd 100644 > --- a/arch/arm64/boot/dts/qcom/sm8150-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8150-hdk.dts > @@ -693,7 +693,6 @@ &usb_2 { > > &usb_1_dwc3 { > dr_mode = "otg"; > - usb-role-switch; > }; > > &usb_1_dwc3_hs { > diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi > index acdba79612aa..cd05975dacd1 100644 > --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi > @@ -3661,6 +3661,8 @@ usb_1_dwc3: usb@a600000 { > phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>; > phy-names = "usb2-phy", "usb3-phy"; > > + usb-role-switch; > + > ports { > #address-cells = <1>; > #size-cells = <0>; -- David Heidelberg ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi 2025-11-04 22:16 ` [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi Piyush Raj Chouhan 2025-11-04 22:32 ` David Heidelberg @ 2025-11-05 0:46 ` Dmitry Baryshkov 1 sibling, 0 replies; 8+ messages in thread From: Dmitry Baryshkov @ 2025-11-05 0:46 UTC (permalink / raw) To: Piyush Raj Chouhan Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening, andersson, konradybcio, robh, krzk+dt, conor+dt, tony.luck, gpiccoli, david On Wed, Nov 05, 2025 at 03:46:56AM +0530, Piyush Raj Chouhan wrote: > Signed-off-by: Piyush Raj Chouhan <pc1598@mainlining.org> Missing commit message > --- > arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 1 - > arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 ++ > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8150-hdk.dts b/arch/arm64/boot/dts/qcom/sm8150-hdk.dts > index 0339a572f34d..29afee6160cd 100644 > --- a/arch/arm64/boot/dts/qcom/sm8150-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8150-hdk.dts > @@ -693,7 +693,6 @@ &usb_2 { > > &usb_1_dwc3 { > dr_mode = "otg"; You can drop this line too, it's the default. > - usb-role-switch; > }; > > &usb_1_dwc3_hs { > diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi > index acdba79612aa..cd05975dacd1 100644 > --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi > @@ -3661,6 +3661,8 @@ usb_1_dwc3: usb@a600000 { > phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>; > phy-names = "usb2-phy", "usb3-phy"; > > + usb-role-switch; > + > ports { > #address-cells = <1>; > #size-cells = <0>; > -- > 2.51.2 > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 3/3] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro 2025-11-04 22:16 [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Piyush Raj Chouhan 2025-11-04 22:16 ` [PATCH v2 1/3] dt-bindings: arm: qcom: " Piyush Raj Chouhan 2025-11-04 22:16 ` [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi Piyush Raj Chouhan @ 2025-11-04 22:16 ` Piyush Raj Chouhan 2025-11-05 0:51 ` Dmitry Baryshkov 2025-11-26 11:36 ` [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Pavel Machek 3 siblings, 1 reply; 8+ messages in thread From: Piyush Raj Chouhan @ 2025-11-04 22:16 UTC (permalink / raw) To: linux-arm-msm Cc: devicetree, linux-kernel, linux-hardening, andersson, konradybcio, robh, krzk+dt, conor+dt, tony.luck, gpiccoli, david, Piyush Raj Chouhan Add initial device tree support for the Xiaomi Redmi K20 Pro/ Xiaomi Mi 9T Pro (codename raphael), based on the Qualcomm SM8150 (Snapdragon 855) platform. The supported features include: - Display (Samsung AMS639RQ08 AMOLED panel) - UFS storage - USB Type-C (with role switching, High-Speed only) - PMIC regulators (PM8150, PM8150L, PM8150B) - GPIO keys (volume up, volume down, power) - Remoteprocs (ADSP, CDSP, MPSS) - Adreno 640 GPU with GMU - WCN3990 WiFi - Camera flash LEDs Signed-off-by: Piyush Raj Chouhan <pc1598@mainlining.org> --- arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/sm8150-xiaomi-raphael.dts | 962 ++++++++++++++++++ 2 files changed, 963 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 296688f7cb26..d2b673d2625c 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -279,6 +279,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8150-microsoft-surface-duo.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8150-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8150-sony-xperia-kumano-bahamut.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8150-sony-xperia-kumano-griffin.dtb +dtb-$(CONFIG_ARCH_QCOM) += sm8150-xiaomi-raphael.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8250-hdk.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8250-mtp.dtb dtb-$(CONFIG_ARCH_QCOM) += sm8250-samsung-r8q.dtb diff --git a/arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts b/arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file mode 100644 index 000000000000..3d434ce5d5ad --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts @@ -0,0 +1,962 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2025, Piyush Raj Chouhan <pc1598@mainlining.org>. + */ + +/dts-v1/; + +#include <dt-bindings/arm/qcom,ids.h> +#include <dt-bindings/firmware/qcom,scm.h> +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> +#include <dt-bindings/usb/pd.h> +#include "sm8150.dtsi" +#include "pm8150.dtsi" +#include "pm8150b.dtsi" +#include "pm8150l.dtsi" + +/* + * Rewrite reserved memory maps inherited from sm8150.dtsi to match the ones + * used on xiaomi-raphael. + * Note: this list is ordered by its memory address in sm8150.dtsi. + */ +/delete-node/ &tz_mem; /* same address but larger, no place for rmtfs_mem! */ +/delete-node/ &rmtfs_mem; /* moved to completely different address */ +/delete-node/ &adsp_mem; /* same start address, but larger size */ +/delete-node/ &mpss_mem; /* same size, shifted higher, due to larger adsp_mem */ +/delete-node/ &venus_mem; /* same size, shifted higher */ +/delete-node/ &slpi_mem; /* same size, shifted higher */ +/delete-node/ &ipa_fw_mem; /* same size, shifted higher */ +/delete-node/ &ipa_gsi_mem; /* same size, shifted higher */ +/delete-node/ &gpu_mem; /* same size, shifted higher */ +/delete-node/ &spss_mem; /* same size, shifted higher */ +/delete-node/ &cdsp_mem; /* same size, shifted higher */ + +/ { + model = "Xiaomi Redmi K20 Pro"; + compatible = "xiaomi,raphael", "qcom,sm8150"; + qcom,msm-id = <QCOM_ID_SM8150 0x20000>; /* SM8150 v2 */ + qcom,board-id = <0x28008 0>; + chassis-type = "handset"; + + aliases { + serial0 = &uart2; + wifi0 = &wifi; + }; + + chosen { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + stdout-path = "serial0:115200n8"; + + framebuffer: framebuffer@9c000000 { + compatible = "simple-framebuffer"; + reg = <0 0x9c000000 0 (1080 * 2340 * 4)>; + width = <1080>; + height = <2340>; + stride = <(1080 * 4)>; + format = "a8r8g8b8"; + display = <&panel>; + clocks = <&gcc GCC_DISP_HF_AXI_CLK>; + }; + }; + + disp_vci_vreg: disp-vci-vreg { + compatible = "regulator-fixed"; + regulator-name = "disp_vci_vreg"; + regulator-boot-on; + enable-active-high; + gpio = <&tlmm 99 GPIO_ACTIVE_HIGH>; + }; + + vreg_ibb: regulator-ibb { + compatible = "regulator-fixed"; + regulator-name = "ibb"; + regulator-min-microvolt = <6000000>; + regulator-max-microvolt = <6000000>; + }; + + vreg_lab: regulator-lab { + compatible = "regulator-fixed"; + regulator-name = "lab"; + regulator-min-microvolt = <6000000>; + regulator-max-microvolt = <6000000>; + }; + + reserved-memory { + tz_mem: memory@86200000 { + reg = <0x0 0x86200000 0x0 0x5500000>; + no-map; + }; + + adsp_mem: memory@8be00000 { + reg = <0x0 0x8be00000 0x0 0x2200000>; + no-map; + }; + + mpss_mem: memory@8e000000 { + reg = <0x0 0x8e000000 0x0 0x9600000>; + no-map; + }; + + venus_mem: memory@97600000 { + reg = <0x0 0x97600000 0x0 0x500000>; + no-map; + }; + + slpi_mem: memory@97b00000 { + reg = <0x0 0x97b00000 0x0 0x1400000>; + no-map; + }; + + ipa_fw_mem: memory@98f00000 { + reg = <0x0 0x98f00000 0x0 0x10000>; + no-map; + }; + + ipa_gsi_mem: memory@98f10000 { + reg = <0x0 0x98f10000 0x0 0x5000>; + no-map; + }; + + gpu_mem: memory@98f15000 { + reg = <0x0 0x98f15000 0x0 0x2000>; + no-map; + }; + + spss_mem: memory@99000000 { + reg = <0x0 0x99000000 0x0 0x100000>; + no-map; + }; + + cdsp_mem: memory@99100000 { + reg = <0x0 0x99100000 0x0 0x1400000>; + no-map; + }; + + cont_splash_mem: memory@9c000000 { + reg = <0x0 0x9c000000 0x0 0x2400000>; + no-map; + }; + + cdsp_sec_mem: memory@a4c00000 { + reg = <0x0 0xa4c00000 0x0 0x3c00000>; + no-map; + }; + + ramoops@a1600000 { + compatible = "ramoops"; + reg = <0x0 0xa1600000 0x0 0x800000>; + console-size = <0x400000>; + pmsg-size = <0x200000>; + ecc-size = <8>; + no-map; + }; + + rmtfs_mem: memory@fe101000 { + compatible = "qcom,rmtfs-mem"; + reg = <0 0xfe101000 0 0x300000>; + qcom,client-id = <1>; + qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>; + no-map; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-0 = <&vol_up_n>; + pinctrl-names = "default"; + + key-vol-up { + label = "Volume Up"; + linux,code = <KEY_VOLUMEUP>; + gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>; + }; + }; + + vph_pwr: vph-pwr-regulator { + compatible = "regulator-fixed"; + regulator-name = "vph_pwr"; + regulator-min-microvolt = <3700000>; + regulator-max-microvolt = <3700000>; + }; + + /* + * Apparently RPMh does not provide support for PM8150 S4 because it + * is always-on; model it as a fixed regulator. + */ + vreg_s4a_1p8: pm8150-s4 { + compatible = "regulator-fixed"; + regulator-name = "vreg_s4a_1p8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + vin-supply = <&vph_pwr>; + }; +}; + +&apps_rsc { + regulators-0 { + compatible = "qcom,pm8150-rpmh-regulators"; + qcom,pmic-id = "a"; + + vdd-s1-supply = <&vph_pwr>; + vdd-s2-supply = <&vph_pwr>; + vdd-s3-supply = <&vph_pwr>; + vdd-s4-supply = <&vph_pwr>; + vdd-s5-supply = <&vph_pwr>; + vdd-s6-supply = <&vph_pwr>; + vdd-s7-supply = <&vph_pwr>; + vdd-s8-supply = <&vph_pwr>; + vdd-s9-supply = <&vph_pwr>; + vdd-s10-supply = <&vph_pwr>; + + vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>; + vdd-l2-l10-supply = <&vreg_bob>; + vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>; + vdd-l6-l9-supply = <&vreg_s8c_1p3>; + vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>; + vdd-l13-l16-l17-supply = <&vreg_bob>; + + vreg_s5a_2p0: smps5 { + regulator-min-microvolt = <1904000>; + regulator-max-microvolt = <2000000>; + }; + + vreg_s6a_0p9: smps6 { + regulator-min-microvolt = <920000>; + regulator-max-microvolt = <1128000>; + }; + + vdda_wcss_pll: + vreg_l1a_0p75: ldo1 { + regulator-min-microvolt = <752000>; + regulator-max-microvolt = <752000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vdd_pdphy: + vdda_usb_hs_3p1: + vreg_l2a_3p1: ldo2 { + regulator-min-microvolt = <3072000>; + regulator-max-microvolt = <3072000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l3a_0p8: ldo3 { + regulator-min-microvolt = <480000>; + regulator-max-microvolt = <932000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + /* + * L4A supplies VDD_LPI_MX_* (VDD_LPI_MX_A_1). Board label: vreg_l4a_0p75. + * PM8150 device spec: L4A nominal = 0.816 V, active min = 0.752 V, active max = 0.904 V, + * IRATED = 300 mA. If the board programs L4A to ~0.752 V, keep min=752000 and max=816000. + */ + vreg_l4a_0p75: ldo4 { + regulator-min-microvolt = <752000>; + regulator-max-microvolt = <816000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vdd_usb_hs_core: + vdda_mipi_csi_0_0p9: + vdda_mipi_csi_1_0p9: + vdda_mipi_csi_2_0p9: + vdda_mipi_csi_3_0p9: + vdda_mipi_dsi_0_0p9: + vdda_mipi_dsi_1_0p9: + vdda_mipi_dsi_0_pll_0p9: + vdda_mipi_dsi_1_pll_0p9: + vdda_pcie_1ln_core: + vdda_pcie_2ln_core: + vdda_pll_hv_cc_ebi01: + vdda_pll_hv_cc_ebi23: + vdda_qrefs_0p875_5: + vdda_sp_sensor: + vdda_ufs_2ln_core_1: + vdda_ufs_2ln_core_2: + vdda_qlink_lv: + vdda_qlink_lv_ck: + vreg_l5a_0p875: ldo5 { + regulator-min-microvolt = <880000>; + regulator-max-microvolt = <880000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l6a_1p2: ldo6 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l7a_1p8: ldo7 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vddpx_10: + vreg_l9a_1p2: ldo9 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l10a_2p95: ldo10 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2960000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l11a_0p8: ldo11 { + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vdd_qfprom: + vdd_qfprom_sp: + vdda_apc_cs_1p8: + vdda_gfx_cs_1p8: + vdda_usb_hs_1p8: + vdda_qrefs_vref_1p8: + vddpx_10_a: + vreg_l12a_1p8: ldo12 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l13a_2p7: ldo13 { + regulator-min-microvolt = <2704000>; + regulator-max-microvolt = <2704000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l14a_1p8: ldo14 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1880000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l15a_1p7: ldo15 { + regulator-min-microvolt = <1704000>; + regulator-max-microvolt = <1704000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l16a_2p7: ldo16 { + regulator-min-microvolt = <2704000>; + regulator-max-microvolt = <2960000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l17a_3p0: ldo17 { + regulator-min-microvolt = <2856000>; + regulator-max-microvolt = <3008000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l18a_1p05: ldo18 { + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; + + regulators-1 { + compatible = "qcom,pm8150l-rpmh-regulators"; + qcom,pmic-id = "c"; + + vdd-s1-supply = <&vph_pwr>; + vdd-s2-supply = <&vph_pwr>; + vdd-s3-supply = <&vph_pwr>; + vdd-s4-supply = <&vph_pwr>; + vdd-s5-supply = <&vph_pwr>; + vdd-s6-supply = <&vph_pwr>; + vdd-s7-supply = <&vph_pwr>; + vdd-s8-supply = <&vph_pwr>; + + vdd-l1-l8-supply = <&vreg_s4a_1p8>; + vdd-l2-l3-supply = <&vreg_s8c_1p3>; + vdd-l4-l5-l6-supply = <&vreg_bob>; + vdd-l7-l11-supply = <&vreg_bob>; + vdd-l9-l10-supply = <&vreg_bob>; + + vdd-bob-supply = <&vph_pwr>; + vdd-flash-supply = <&vreg_bob>; + vdd-rgb-supply = <&vreg_bob>; + + vreg_bob: bob { + regulator-min-microvolt = <3008000>; + regulator-max-microvolt = <4000000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; + regulator-allow-bypass; + }; + + vreg_s8c_1p3: smps8 { + regulator-min-microvolt = <1352000>; + regulator-max-microvolt = <1352000>; + }; + + vreg_l1c_1p8: ldo1 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vdda_wcss_adcdac_1: + vdda_wcss_adcdac_22: + vreg_l2c_1p3: ldo2 { + regulator-min-microvolt = <1304000>; + regulator-max-microvolt = <1304000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vdda_hv_ebi0: + vdda_hv_ebi1: + vdda_hv_ebi2: + vdda_hv_ebi3: + vdda_hv_refgen0: + vdda_mipi_dsi0_1p2: + vdda_qlink_hv_ck: + vreg_l3c_1p2: ldo3 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vddpx_5: + vreg_l4c_1p8: ldo4 { + regulator-min-microvolt = <1704000>; + regulator-max-microvolt = <2928000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vddpx_6: + vreg_l5c_1p8: ldo5 { + regulator-min-microvolt = <1704000>; + regulator-max-microvolt = <2928000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vddpx_2: + vreg_l6c_2p9: ldo6 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2960000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l7c_3p0: ldo7 { + regulator-min-microvolt = <2856000>; + regulator-max-microvolt = <3104000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l8c_1p8: ldo8 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l9c_2p9: ldo9 { + regulator-min-microvolt = <2704000>; + regulator-max-microvolt = <2960000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l10c_3p3: ldo10 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + + vreg_l11c_3p3: ldo11 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3312000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + }; +}; + +&gmu { + status = "okay"; +}; + +&gpi_dma2 { + status = "okay"; +}; + +&gpu { + status = "okay"; + + zap-shader { + memory-region = <&gpu_mem>; + firmware-name = "qcom/sm8150/Xiaomi/raphael/a640_zap.mbn"; + }; +}; + +&i2c19 { + /* goodix,gt9886 @5d */ +}; + +&mdss { + status = "okay"; +}; + +&mdss_dsi0 { + vdda-supply = <&vdda_mipi_dsi0_1p2>; + + status = "okay"; + + panel: panel@0 { + compatible = "samsung,ams639rq08"; + reg = <0>; + + vddio-supply = <&vreg_l14a_1p8>; + vdd3p3-supply = <&disp_vci_vreg>; + vsn-supply = <&vreg_ibb>; + vsp-supply = <&vreg_lab>; + + reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>; + + pinctrl-0 = <&panel_reset_active &panel_te_pin>; + pinctrl-1 = <&panel_reset_suspend &panel_te_pin>; + pinctrl-names = "default", "sleep"; + + status = "okay"; + + port { + panel_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + }; +}; + +&mdss_dsi0_out { + data-lanes = <0 1 2 3>; + remote-endpoint = <&panel_in>; +}; + +&mdss_dsi0_phy { + vdds-supply = <&vreg_l5a_0p875>; + + status = "okay"; +}; + +&pm8150_gpios { + vol_up_n: vol-up-n-state { + pins = "gpio6"; + function = PMIC_GPIO_FUNC_NORMAL; + input-enable; + bias-pull-up; + }; +}; + +&pm8150b_typec { + vdd-vbus-supply = <&pm8150b_vbus>; + vdd-pdphy-supply = <&vdda_usb_hs_3p1>; + + status = "okay"; + + connector { + compatible = "usb-c-connector"; + power-role = "source"; + data-role = "dual"; + self-powered; + + source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_DUAL_ROLE | + PDO_FIXED_USB_COMM | PDO_FIXED_DATA_SWAP)>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + pm8150b_hs_in: endpoint { + remote-endpoint = <&usb_1_dwc3_hs>; + }; + }; + }; + }; +}; + +&pm8150b_vbus { + regulator-min-microamp = <500000>; + regulator-max-microamp = <3000000>; + + status = "okay"; +}; + +&pm8150l_flash { + status = "okay"; + + led-1 { + function = LED_FUNCTION_FLASH; + color = <LED_COLOR_ID_WHITE>; + led-sources = <1>; + led-max-microamp = <150000>; + flash-max-microamp = <1000000>; + flash-max-timeout-us = <1280000>; + }; + + led-2 { + function = LED_FUNCTION_FLASH; + color = <LED_COLOR_ID_YELLOW>; + led-sources = <2>; + led-max-microamp = <150000>; + flash-max-microamp = <1000000>; + flash-max-timeout-us = <1280000>; + }; +}; + +&pm8150l_lpg { + status = "okay"; + + led@1 { + reg = <2>; + color = <LED_COLOR_ID_RED>; + function = LED_FUNCTION_STATUS; + function-enumerator = <0>; + label = "popup-camera-left"; + }; + + led@2 { + reg = <3>; + color = <LED_COLOR_ID_RED>; + function = LED_FUNCTION_STATUS; + function-enumerator = <1>; + label = "popup-camera-right"; + }; +}; + +&pm8150l_wled { + qcom,num-strings = <3>; + qcom,cabc; + qcom,cabc-sel = <1>; +}; + +&pon { + mode-bootloader = <0x2>; + mode-recovery = <0x1>; +}; + +&pon_pwrkey { + status = "okay"; +}; + +&pon_resin { + linux,code = <KEY_VOLUMEDOWN>; + + status = "okay"; +}; + +&qupv3_id_1 { + status = "okay"; +}; + +&qupv3_id_2 { + status = "okay"; +}; + +&remoteproc_adsp { + firmware-name = "qcom/sm8150/Xiaomi/raphael/adsp.mbn"; + + status = "okay"; +}; + +&remoteproc_cdsp { + firmware-name = "qcom/sm8150/Xiaomi/raphael/cdsp.mbn"; + + status = "okay"; +}; + +&remoteproc_mpss { + firmware-name = "qcom/sm8150/Xiaomi/raphael/modem.mbn"; + + status = "okay"; +}; + +&remoteproc_slpi { + firmware-name = "qcom/sm8150/Xiaomi/raphael/slpi.mbn"; + + status = "disabled"; +}; + +&tlmm { + gpio-line-names = + "NFC_ESE_SPI_MISO", /* GPIO_0 */ + "NFC_ESE_SPI_MOSI", /* GPIO_1 */ + "NFC_ESE_SPI_CLK", /* GPIO_2 */ + "NFC_ESE_SPI_CS_N", /* GPIO_3 */ + "LCD_ID_DET1", /* GPIO_4 */ + "ERR_INT", /* GPIO_5 */ + "LCD_RESET_N", /* GPIO_6 */ + "", /* GPIO_7 */ + "MDP_VSYNC_P", /* GPIO_8 */ + "MOTOR_DIR", /* GPIO_9 */ + "LASER_CE", /* GPIO_10 */ + "DIGITAL_HALL1_RSTN", /* GPIO_11 */ + "CAMF_RSTN", /* GPIO_12 */ + "CAMW_MCLK0", /* GPIO_13 */ + "CAMT_MCLK1", /* GPIO_14 */ + "CAMF_MCLK2", /* GPIO_15 */ + "CAMU_MCLK3", /* GPIO_16 */ + "CCI_I2C_SDA0", /* GPIO_17 */ + "CCI_I2C_SCL0", /* GPIO_18 */ + "CCI_I2C_SDA1", /* GPIO_19 */ + "CCI_I2C_SCL1", /* GPIO_20 */ + "MOTOR_M0", /* GPIO_21 */ + "FL_STROBE_TRIG", /* GPIO_22 */ + "CAMU_RSTN", /* GPIO_23 */ + "", /* GPIO_24 */ + "", /* GPIO_25 */ + "LASER_IRQ", /* GPIO_26 */ + "DIGITAL_HALL1_INT", /* GPIO_27 */ + "CAMW_RSTN", /* GPIO_28 */ + "", /* GPIO_29 */ + "CAMT_RSTN", /* GPIO_30 */ + "CCI_I2C_SDA2", /* GPIO_31 */ + "CCI_I2C_SCL2", /* GPIO_32 */ + "MOTOR_M1", /* GPIO_33 */ + "CAMU_LDO_EN", /* GPIO_34 */ + "MOTOR_SLEEP", /* GPIO_35 */ + "MOTOR_FAULT", /* GPIO_36 */ + "FOD_SPI_RST", /* GPIO_37 */ + "USB_CC_DIR", /* GPIO_38 */ + "NFC_I2C_SDA", /* GPIO_39 */ + "NFC_I2C_SCL", /* GPIO_40 */ + "", /* GPIO_41 */ + "", /* GPIO_42 */ + "BT_HCI_UART_CTS_N", /* GPIO_43 */ + "BT_HCI_UART_RFR_N", /* GPIO_44 */ + "BT_HCI_UART_TXD", /* GPIO_45 */ + "BT_HCI_UART_RXD", /* GPIO_46 */ + "NFC_IRQ", /* GPIO_47 */ + "NFC_DWL_REQ", /* GPIO_48 */ + "AUDIO_SWITCH_EN", /* GPIO_49 */ + "WLAN_SW_CTRL", /* GPIO_50 */ + "APPS_I2C_SDA", /* GPIO_51 */ + "APPS_I2C_SCL", /* GPIO_52 */ + "", /* GPIO_53 */ + "TP_RESET_N", /* GPIO_54 */ + "", /* GPIO_55 */ + "", /* GPIO_56 */ + "TP_I2C_SDA", /* GPIO_57 */ + "TP_I2C_SCL", /* GPIO_58 */ + "SPKR_PA_RST", /* GPIO_59 */ + "", /* GPIO_60 */ + "QLINK_REQUEST", /* GPIO_61 */ + "QLINK_ENABLE", /* GPIO_62 */ + "WMSS_RESET_N", /* GPIO_63 */ + "SDM_GRFC_8", /* GPIO_64 */ + "SDM_GRFC_9", /* GPIO_65 */ + "SDM_GRFC_10", /* GPIO_66 */ + "SDM_GRFC_11", /* GPIO_67 */ + "", /* GPIO_68 */ + "WLAN_COEX_UART_TXD", /* GPIO_69 */ + "WLAN_COEX_UART_RXD", /* GPIO_70 */ + "SDM_GRFC_0", /* GPIO_71 */ + "SDM_GRFC_1", /* GPIO_72 */ + "SDM_RFFE1_DATA", /* GPIO_73 */ + "SDM_RFFE1_CLK", /* GPIO_74 */ + "SDM_RFFE2_DATA", /* GPIO_75 */ + "SDM_RFFE2_CLK", /* GPIO_76 */ + "SDM_RFFE3_DATA", /* GPIO_77 */ + "SDM_RFFE3_CLK", /* GPIO_78 */ + "", /* GPIO_79 */ + "", /* GPIO_80 */ + "", /* GPIO_81 */ + "", /* GPIO_82 */ + "CAMW_VCM_2P8_EN", /* GPIO_83 */ + "CAMT_VCM_2P8_EN", /* GPIO_84 */ + "DBG_UART_TX", /* GPIO_85 */ + "DBG_UART_RX", /* GPIO_86 */ + "", /* GPIO_87 */ + "TP_TA_INT_N", /* GPIO_88 */ + "", /* GPIO_89 */ + "CAMW_LDO_EN", /* GPIO_90 */ + "", /* GPIO_91 */ + "", /* GPIO_92 */ + "CAMT_LDO_EN", /* GPIO_93 */ + "", /* GPIO_94 */ + "CAMF_LDO_EN", /* GPIO_95 */ + "", /* GPIO_96 */ + "CAM_DOVDD_EN", /* GPIO_97 */ + "TP_3P3_EN", /* GPIO_98 */ + "VCI_3P0_EN", /* GPIO_99 */ + "TP_1P8_EN", /* GPIO_100 */ + "", /* GPIO_101 */ + "", /* GPIO_102 */ + "NFC_ENABLE", /* GPIO_103 */ + "", /* GPIO_104 */ + "UIM2_DATA", /* GPIO_105 */ + "UIM2_CLK", /* GPIO_106 */ + "UIM2_RESET", /* GPIO_107 */ + "UIM2_PRESENT", /* GPIO_108 */ + "UIM1_DATA", /* GPIO_109 */ + "UIM1_CLK", /* GPIO_110 */ + "UIM1_RESET", /* GPIO_111 */ + "UIM1_PRESENT", /* GPIO_112 */ + "NFC_LABBCLK3_EN", /* GPIO_113 */ + "AUDIO_I2C_SDA", /* GPIO_114 */ + "AUDIO_I2C_SCL", /* GPIO_115 */ + "", /* GPIO_116 */ + "ALSPG_INT_N", /* GPIO_117 */ + "FOD_INT_N", /* GPIO_118 */ + "", /* GPIO_119 */ + "", /* GPIO_120 */ + "", /* GPIO_121 */ + "TP_INT_N", /* GPIO_122 */ + "CODEC_INT1_N", /* GPIO_123 */ + "CODEC_INT2_N", /* GPIO_124 */ + "FOD_LDO_EN", /* GPIO_125 */ + "FOD_SPI_MISO", /* GPIO_126 */ + "FOD_SPI_MOSI", /* GPIO_127 */ + "FOD_SPI_CLK", /* GPIO_128 */ + "FOD_SPI_CS_N", /* GPIO_129 */ + "MOTOR_EN", /* GPIO_130 */ + "", /* GPIO_131 */ + "ACCEL_INT", /* GPIO_132 */ + "GYRO_INT", /* GPIO_133 */ + "", /* GPIO_134 */ + "", /* GPIO_135 */ + "FORCED_USB_BOOT", /* GPIO_136 */ + "SPKR_I2S_BCK", /* GPIO_137 */ + "SPKR_I2S_WS", /* GPIO_138 */ + "SPKR_I2S_DOUT", /* GPIO_139 */ + "SPKR_I2S_DIN", /* GPIO_140 */ + "SPKR_INT", /* GPIO_141 */ + "", /* GPIO_142 */ + "CODEC_RST_N", /* GPIO_143 */ + "CDC_SPI_MISO", /* GPIO_144 */ + "CDC_SPI_MOSI", /* GPIO_145 */ + "CDC_SPI_SCLK", /* GPIO_146 */ + "CDC_SPI_CS_N", /* GPIO_147 */ + "", /* GPIO_148 */ + "CODEC_SLIMBUS_CLK", /* GPIO_149 */ + "CODEC_SLIMBUS_DATA0", /* GPIO_150 */ + "CODEC_SLIMBUS_DATA1", /* GPIO_151 */ + "", /* GPIO_152 */ + "BT_FM_SLIMBUS_DATA", /* GPIO_153 */ + "BT_FM_SLIMBUS_CLK", /* GPIO_154 */ + "SSC_MAG_I2C_SDA", /* GPIO_155 */ + "SSC_MAG_I2C_SCL", /* GPIO_156 */ + "SSC_SPI1_MISO", /* GPIO_157 */ + "SSC_SPI1_MOSI", /* GPIO_158 */ + "SSC_SPI1_CLK", /* GPIO_159 */ + "SSC_SPI1_CS_N", /* GPIO_160 */ + "SSC_SENSOR_I2C_SDA", /* GPIO_161 */ + "SSC_SENSOR_I2C_SCL", /* GPIO_162 */ + "", /* GPIO_163 */ + "", /* GPIO_164 */ + "CCI_SYNC6", /* GPIO_165 */ + "", /* GPIO_166 */ + "SSC_UART_1_TX", /* GPIO_167 */ + "SSC_UART_1_RX", /* GPIO_168 */ + "WL_CMD_CLK_CHAIN0", /* GPIO_169 */ + "WL_CMD_DATA_CHAIN0", /* GPIO_170 */ + "WL_CMD_CLK_CHAIN1", /* GPIO_171 */ + "WL_CMD_DATA_CHAIN1", /* GPIO_172 */ + "WL_BT_COEX_CLK", /* GPIO_173 */ + "WL_BT_COEX_DATA"; /* GPIO_174 */ + + /* GPIO 0..3 are NFC spi, gpios 126..129 are FP spi */ + gpio-reserved-ranges = <0 4>, <126 4>; + + /* Display panel pins */ + panel_reset_active: panel-reset-active-state { + pins = "gpio6"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + power-source = <1>; + }; + + panel_reset_suspend: panel-reset-suspend-state { + pins = "gpio6"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + power-source = <1>; + }; + + panel_te_pin: panel-te-state { + pins = "gpio8"; + function = "mdp_vsync"; + drive-strength = <2>; + bias-pull-down; + }; +}; + +&uart2 { + status = "okay"; +}; + +&ufs_mem_hc { + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; + + vcc-supply = <&vreg_l10a_2p95>; + vcc-max-microamp = <750000>; + vccq-supply = <&vreg_l9a_1p2>; + vccq-max-microamp = <700000>; + vccq2-supply = <&vreg_s4a_1p8>; + vccq2-max-microamp = <750000>; + + status = "okay"; +}; + +&ufs_mem_phy { + vdda-phy-supply = <&vdda_ufs_2ln_core_1>; + vdda-pll-supply = <&vreg_l3c_1p2>; + + status = "okay"; +}; + +&usb_1 { + qcom,select-utmi-as-pipe-clk; + + status = "okay"; +}; + +&usb_1_dwc3 { + dr_mode = "otg"; + maximum-speed = "high-speed"; + + /* Remove USB3 phy */ + phys = <&usb_1_hsphy>; + phy-names = "usb2-phy"; +}; + +&usb_1_dwc3_hs { + remote-endpoint = <&pm8150b_hs_in>; +}; + +&usb_1_hsphy { + vdda-pll-supply = <&vdd_usb_hs_core>; + vdda33-supply = <&vdda_usb_hs_3p1>; + vdda18-supply = <&vdda_usb_hs_1p8>; + + status = "okay"; +}; + +&wifi { + vdd-0.8-cx-mx-supply = <&vdda_wcss_pll>; + vdd-1.8-xo-supply = <&vreg_l7a_1p8>; + vdd-1.3-rfa-supply = <&vdda_wcss_adcdac_1>; + vdd-3.3-ch0-supply = <&vreg_l11c_3p3>; + vdd-3.3-ch1-supply = <&vreg_l10c_3p3>; + + status = "okay"; +}; -- 2.51.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro 2025-11-04 22:16 ` [PATCH v2 3/3] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro Piyush Raj Chouhan @ 2025-11-05 0:51 ` Dmitry Baryshkov 0 siblings, 0 replies; 8+ messages in thread From: Dmitry Baryshkov @ 2025-11-05 0:51 UTC (permalink / raw) To: Piyush Raj Chouhan Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening, andersson, konradybcio, robh, krzk+dt, conor+dt, tony.luck, gpiccoli, david On Wed, Nov 05, 2025 at 03:46:57AM +0530, Piyush Raj Chouhan wrote: > Add initial device tree support for the Xiaomi Redmi K20 Pro/ Xiaomi Mi 9T Pro > (codename raphael), based on the Qualcomm SM8150 (Snapdragon 855) > platform. > > The supported features include: > - Display (Samsung AMS639RQ08 AMOLED panel) > - UFS storage > - USB Type-C (with role switching, High-Speed only) > - PMIC regulators (PM8150, PM8150L, PM8150B) > - GPIO keys (volume up, volume down, power) > - Remoteprocs (ADSP, CDSP, MPSS) > - Adreno 640 GPU with GMU > - WCN3990 WiFi > - Camera flash LEDs > > Signed-off-by: Piyush Raj Chouhan <pc1598@mainlining.org> > --- > arch/arm64/boot/dts/qcom/Makefile | 1 + > .../boot/dts/qcom/sm8150-xiaomi-raphael.dts | 962 ++++++++++++++++++ > 2 files changed, 963 insertions(+) > create mode 100644 arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile > index 296688f7cb26..d2b673d2625c 100644 > --- a/arch/arm64/boot/dts/qcom/Makefile > +++ b/arch/arm64/boot/dts/qcom/Makefile > @@ -279,6 +279,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8150-microsoft-surface-duo.dtb > dtb-$(CONFIG_ARCH_QCOM) += sm8150-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += sm8150-sony-xperia-kumano-bahamut.dtb > dtb-$(CONFIG_ARCH_QCOM) += sm8150-sony-xperia-kumano-griffin.dtb > +dtb-$(CONFIG_ARCH_QCOM) += sm8150-xiaomi-raphael.dtb > dtb-$(CONFIG_ARCH_QCOM) += sm8250-hdk.dtb > dtb-$(CONFIG_ARCH_QCOM) += sm8250-mtp.dtb > dtb-$(CONFIG_ARCH_QCOM) += sm8250-samsung-r8q.dtb > diff --git a/arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts b/arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts > new file mode 100644 > index 000000000000..3d434ce5d5ad > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts > @@ -0,0 +1,962 @@ > +// SPDX-License-Identifier: BSD-3-Clause > + > +/* > + * Copyright (c) 2025, Piyush Raj Chouhan <pc1598@mainlining.org>. > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/arm/qcom,ids.h> > +#include <dt-bindings/firmware/qcom,scm.h> > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h> > +#include <dt-bindings/usb/pd.h> > +#include "sm8150.dtsi" > +#include "pm8150.dtsi" > +#include "pm8150b.dtsi" > +#include "pm8150l.dtsi" > + > +/* > + * Rewrite reserved memory maps inherited from sm8150.dtsi to match the ones > + * used on xiaomi-raphael. > + * Note: this list is ordered by its memory address in sm8150.dtsi. > + */ > +/delete-node/ &tz_mem; /* same address but larger, no place for rmtfs_mem! */ > +/delete-node/ &rmtfs_mem; /* moved to completely different address */ > +/delete-node/ &adsp_mem; /* same start address, but larger size */ > +/delete-node/ &mpss_mem; /* same size, shifted higher, due to larger adsp_mem */ > +/delete-node/ &venus_mem; /* same size, shifted higher */ > +/delete-node/ &slpi_mem; /* same size, shifted higher */ > +/delete-node/ &ipa_fw_mem; /* same size, shifted higher */ > +/delete-node/ &ipa_gsi_mem; /* same size, shifted higher */ > +/delete-node/ &gpu_mem; /* same size, shifted higher */ > +/delete-node/ &spss_mem; /* same size, shifted higher */ > +/delete-node/ &cdsp_mem; /* same size, shifted higher */ > + > +/ { > + model = "Xiaomi Redmi K20 Pro"; > + compatible = "xiaomi,raphael", "qcom,sm8150"; > + qcom,msm-id = <QCOM_ID_SM8150 0x20000>; /* SM8150 v2 */ > + qcom,board-id = <0x28008 0>; > + chassis-type = "handset"; > + > + aliases { > + serial0 = &uart2; > + wifi0 = &wifi; > + }; > + > + chosen { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + stdout-path = "serial0:115200n8"; > + > + framebuffer: framebuffer@9c000000 { > + compatible = "simple-framebuffer"; > + reg = <0 0x9c000000 0 (1080 * 2340 * 4)>; > + width = <1080>; > + height = <2340>; > + stride = <(1080 * 4)>; > + format = "a8r8g8b8"; > + display = <&panel>; > + clocks = <&gcc GCC_DISP_HF_AXI_CLK>; > + }; > + }; > + > + disp_vci_vreg: disp-vci-vreg { Please name all regulator nodes in a similar way. The BCP is regulator-foo-bar. Then also please sort all the nodes following the node name (not! the label). > + compatible = "regulator-fixed"; > + regulator-name = "disp_vci_vreg"; > + regulator-boot-on; > + enable-active-high; > + gpio = <&tlmm 99 GPIO_ACTIVE_HIGH>; > + }; > + > + vreg_ibb: regulator-ibb { > + compatible = "regulator-fixed"; > + regulator-name = "ibb"; > + regulator-min-microvolt = <6000000>; > + regulator-max-microvolt = <6000000>; > + }; > + > + vreg_lab: regulator-lab { > + compatible = "regulator-fixed"; > + regulator-name = "lab"; > + regulator-min-microvolt = <6000000>; > + regulator-max-microvolt = <6000000>; > + }; > + > + reserved-memory { > + tz_mem: memory@86200000 { > + reg = <0x0 0x86200000 0x0 0x5500000>; > + no-map; > + }; > + > + adsp_mem: memory@8be00000 { > + reg = <0x0 0x8be00000 0x0 0x2200000>; > + no-map; > + }; > + > + mpss_mem: memory@8e000000 { > + reg = <0x0 0x8e000000 0x0 0x9600000>; > + no-map; > + }; > + > + venus_mem: memory@97600000 { > + reg = <0x0 0x97600000 0x0 0x500000>; > + no-map; > + }; > + > + slpi_mem: memory@97b00000 { > + reg = <0x0 0x97b00000 0x0 0x1400000>; > + no-map; > + }; > + > + ipa_fw_mem: memory@98f00000 { > + reg = <0x0 0x98f00000 0x0 0x10000>; > + no-map; > + }; > + > + ipa_gsi_mem: memory@98f10000 { > + reg = <0x0 0x98f10000 0x0 0x5000>; > + no-map; > + }; > + > + gpu_mem: memory@98f15000 { > + reg = <0x0 0x98f15000 0x0 0x2000>; > + no-map; > + }; > + > + spss_mem: memory@99000000 { > + reg = <0x0 0x99000000 0x0 0x100000>; > + no-map; > + }; > + > + cdsp_mem: memory@99100000 { > + reg = <0x0 0x99100000 0x0 0x1400000>; > + no-map; > + }; > + > + cont_splash_mem: memory@9c000000 { > + reg = <0x0 0x9c000000 0x0 0x2400000>; > + no-map; > + }; > + > + cdsp_sec_mem: memory@a4c00000 { > + reg = <0x0 0xa4c00000 0x0 0x3c00000>; > + no-map; > + }; > + > + ramoops@a1600000 { > + compatible = "ramoops"; > + reg = <0x0 0xa1600000 0x0 0x800000>; > + console-size = <0x400000>; > + pmsg-size = <0x200000>; > + ecc-size = <8>; > + no-map; > + }; > + > + rmtfs_mem: memory@fe101000 { > + compatible = "qcom,rmtfs-mem"; > + reg = <0 0xfe101000 0 0x300000>; > + qcom,client-id = <1>; > + qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>; > + no-map; > + }; > + }; > + > + gpio-keys { This node should be much earlier. > + compatible = "gpio-keys"; > + pinctrl-0 = <&vol_up_n>; > + pinctrl-names = "default"; > + > + key-vol-up { > + label = "Volume Up"; > + linux,code = <KEY_VOLUMEUP>; > + gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>; > + }; > + }; > + > + vph_pwr: vph-pwr-regulator { regulator-vph-pwr > + compatible = "regulator-fixed"; > + regulator-name = "vph_pwr"; > + regulator-min-microvolt = <3700000>; > + regulator-max-microvolt = <3700000>; > + }; > + > + /* > + * Apparently RPMh does not provide support for PM8150 S4 because it > + * is always-on; model it as a fixed regulator. > + */ > + vreg_s4a_1p8: pm8150-s4 { regulator-pm8150-s4 > + compatible = "regulator-fixed"; > + regulator-name = "vreg_s4a_1p8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + regulator-boot-on; > + vin-supply = <&vph_pwr>; > + }; > +}; > + > +&apps_rsc { > + regulators-0 { > + compatible = "qcom,pm8150-rpmh-regulators"; > + qcom,pmic-id = "a"; > + > + vdd-s1-supply = <&vph_pwr>; > + vdd-s2-supply = <&vph_pwr>; > + vdd-s3-supply = <&vph_pwr>; > + vdd-s4-supply = <&vph_pwr>; > + vdd-s5-supply = <&vph_pwr>; > + vdd-s6-supply = <&vph_pwr>; > + vdd-s7-supply = <&vph_pwr>; > + vdd-s8-supply = <&vph_pwr>; > + vdd-s9-supply = <&vph_pwr>; > + vdd-s10-supply = <&vph_pwr>; > + > + vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>; > + vdd-l2-l10-supply = <&vreg_bob>; > + vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>; > + vdd-l6-l9-supply = <&vreg_s8c_1p3>; > + vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>; > + vdd-l13-l16-l17-supply = <&vreg_bob>; > + > + vreg_s5a_2p0: smps5 { > + regulator-min-microvolt = <1904000>; > + regulator-max-microvolt = <2000000>; > + }; > + > + vreg_s6a_0p9: smps6 { > + regulator-min-microvolt = <920000>; > + regulator-max-microvolt = <1128000>; > + }; > + > + vdda_wcss_pll: > + vreg_l1a_0p75: ldo1 { > + regulator-min-microvolt = <752000>; > + regulator-max-microvolt = <752000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vdd_pdphy: > + vdda_usb_hs_3p1: > + vreg_l2a_3p1: ldo2 { > + regulator-min-microvolt = <3072000>; > + regulator-max-microvolt = <3072000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l3a_0p8: ldo3 { > + regulator-min-microvolt = <480000>; > + regulator-max-microvolt = <932000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + /* > + * L4A supplies VDD_LPI_MX_* (VDD_LPI_MX_A_1). Board label: vreg_l4a_0p75. > + * PM8150 device spec: L4A nominal = 0.816 V, active min = 0.752 V, active max = 0.904 V, > + * IRATED = 300 mA. If the board programs L4A to ~0.752 V, keep min=752000 and max=816000. > + */ > + vreg_l4a_0p75: ldo4 { > + regulator-min-microvolt = <752000>; > + regulator-max-microvolt = <816000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vdd_usb_hs_core: > + vdda_mipi_csi_0_0p9: > + vdda_mipi_csi_1_0p9: > + vdda_mipi_csi_2_0p9: > + vdda_mipi_csi_3_0p9: > + vdda_mipi_dsi_0_0p9: > + vdda_mipi_dsi_1_0p9: > + vdda_mipi_dsi_0_pll_0p9: > + vdda_mipi_dsi_1_pll_0p9: > + vdda_pcie_1ln_core: > + vdda_pcie_2ln_core: > + vdda_pll_hv_cc_ebi01: > + vdda_pll_hv_cc_ebi23: > + vdda_qrefs_0p875_5: > + vdda_sp_sensor: > + vdda_ufs_2ln_core_1: > + vdda_ufs_2ln_core_2: > + vdda_qlink_lv: > + vdda_qlink_lv_ck: > + vreg_l5a_0p875: ldo5 { > + regulator-min-microvolt = <880000>; > + regulator-max-microvolt = <880000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l6a_1p2: ldo6 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l7a_1p8: ldo7 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vddpx_10: > + vreg_l9a_1p2: ldo9 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l10a_2p95: ldo10 { > + regulator-min-microvolt = <2950000>; > + regulator-max-microvolt = <2960000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l11a_0p8: ldo11 { > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vdd_qfprom: > + vdd_qfprom_sp: > + vdda_apc_cs_1p8: > + vdda_gfx_cs_1p8: > + vdda_usb_hs_1p8: > + vdda_qrefs_vref_1p8: > + vddpx_10_a: > + vreg_l12a_1p8: ldo12 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l13a_2p7: ldo13 { > + regulator-min-microvolt = <2704000>; > + regulator-max-microvolt = <2704000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l14a_1p8: ldo14 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1880000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l15a_1p7: ldo15 { > + regulator-min-microvolt = <1704000>; > + regulator-max-microvolt = <1704000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l16a_2p7: ldo16 { > + regulator-min-microvolt = <2704000>; > + regulator-max-microvolt = <2960000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l17a_3p0: ldo17 { > + regulator-min-microvolt = <2856000>; > + regulator-max-microvolt = <3008000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l18a_1p05: ldo18 { > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > + > + regulators-1 { > + compatible = "qcom,pm8150l-rpmh-regulators"; > + qcom,pmic-id = "c"; > + > + vdd-s1-supply = <&vph_pwr>; > + vdd-s2-supply = <&vph_pwr>; > + vdd-s3-supply = <&vph_pwr>; > + vdd-s4-supply = <&vph_pwr>; > + vdd-s5-supply = <&vph_pwr>; > + vdd-s6-supply = <&vph_pwr>; > + vdd-s7-supply = <&vph_pwr>; > + vdd-s8-supply = <&vph_pwr>; > + > + vdd-l1-l8-supply = <&vreg_s4a_1p8>; > + vdd-l2-l3-supply = <&vreg_s8c_1p3>; > + vdd-l4-l5-l6-supply = <&vreg_bob>; > + vdd-l7-l11-supply = <&vreg_bob>; > + vdd-l9-l10-supply = <&vreg_bob>; > + > + vdd-bob-supply = <&vph_pwr>; > + vdd-flash-supply = <&vreg_bob>; > + vdd-rgb-supply = <&vreg_bob>; > + > + vreg_bob: bob { > + regulator-min-microvolt = <3008000>; > + regulator-max-microvolt = <4000000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; > + regulator-allow-bypass; > + }; > + > + vreg_s8c_1p3: smps8 { > + regulator-min-microvolt = <1352000>; > + regulator-max-microvolt = <1352000>; > + }; > + > + vreg_l1c_1p8: ldo1 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vdda_wcss_adcdac_1: > + vdda_wcss_adcdac_22: > + vreg_l2c_1p3: ldo2 { > + regulator-min-microvolt = <1304000>; > + regulator-max-microvolt = <1304000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vdda_hv_ebi0: > + vdda_hv_ebi1: > + vdda_hv_ebi2: > + vdda_hv_ebi3: > + vdda_hv_refgen0: > + vdda_mipi_dsi0_1p2: > + vdda_qlink_hv_ck: > + vreg_l3c_1p2: ldo3 { > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vddpx_5: > + vreg_l4c_1p8: ldo4 { > + regulator-min-microvolt = <1704000>; > + regulator-max-microvolt = <2928000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vddpx_6: > + vreg_l5c_1p8: ldo5 { > + regulator-min-microvolt = <1704000>; > + regulator-max-microvolt = <2928000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vddpx_2: > + vreg_l6c_2p9: ldo6 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <2960000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l7c_3p0: ldo7 { > + regulator-min-microvolt = <2856000>; > + regulator-max-microvolt = <3104000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l8c_1p8: ldo8 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l9c_2p9: ldo9 { > + regulator-min-microvolt = <2704000>; > + regulator-max-microvolt = <2960000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l10c_3p3: ldo10 { > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3312000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + > + vreg_l11c_3p3: ldo11 { > + regulator-min-microvolt = <3000000>; > + regulator-max-microvolt = <3312000>; > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; > + }; > + }; > +}; > + > +&gmu { > + status = "okay"; > +}; > + > +&gpi_dma2 { > + status = "okay"; > +}; > + > +&gpu { > + status = "okay"; > + > + zap-shader { &gpu_zap_shader { firmware-name = "..."; }; > + memory-region = <&gpu_mem>; > + firmware-name = "qcom/sm8150/Xiaomi/raphael/a640_zap.mbn"; > + }; > +}; > + > +&i2c19 { > + /* goodix,gt9886 @5d */ status = "okay"; > +}; > + > +&mdss { > + status = "okay"; > +}; > + > +&mdss_dsi0 { > + vdda-supply = <&vdda_mipi_dsi0_1p2>; > + > + status = "okay"; > + > + panel: panel@0 { > + compatible = "samsung,ams639rq08"; > + reg = <0>; > + > + vddio-supply = <&vreg_l14a_1p8>; > + vdd3p3-supply = <&disp_vci_vreg>; > + vsn-supply = <&vreg_ibb>; > + vsp-supply = <&vreg_lab>; > + > + reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>; > + > + pinctrl-0 = <&panel_reset_active &panel_te_pin>; > + pinctrl-1 = <&panel_reset_suspend &panel_te_pin>; > + pinctrl-names = "default", "sleep"; > + > + status = "okay"; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <&mdss_dsi0_out>; > + }; > + }; > + }; > +}; > + > +&mdss_dsi0_out { > + data-lanes = <0 1 2 3>; > + remote-endpoint = <&panel_in>; > +}; > + > +&mdss_dsi0_phy { > + vdds-supply = <&vreg_l5a_0p875>; > + > + status = "okay"; > +}; > + > +&pm8150_gpios { > + vol_up_n: vol-up-n-state { > + pins = "gpio6"; > + function = PMIC_GPIO_FUNC_NORMAL; > + input-enable; > + bias-pull-up; > + }; > +}; > + > +&pm8150b_typec { > + vdd-vbus-supply = <&pm8150b_vbus>; > + vdd-pdphy-supply = <&vdda_usb_hs_3p1>; > + > + status = "okay"; > + > + connector { > + compatible = "usb-c-connector"; > + power-role = "source"; > + data-role = "dual"; > + self-powered; > + > + source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_DUAL_ROLE | > + PDO_FIXED_USB_COMM | PDO_FIXED_DATA_SWAP)>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pm8150b_hs_in: endpoint { > + remote-endpoint = <&usb_1_dwc3_hs>; > + }; > + }; > + }; > + }; > +}; > + > +&pm8150b_vbus { > + regulator-min-microamp = <500000>; > + regulator-max-microamp = <3000000>; > + > + status = "okay"; > +}; > + > +&pm8150l_flash { > + status = "okay"; > + > + led-1 { > + function = LED_FUNCTION_FLASH; > + color = <LED_COLOR_ID_WHITE>; > + led-sources = <1>; > + led-max-microamp = <150000>; > + flash-max-microamp = <1000000>; > + flash-max-timeout-us = <1280000>; > + }; > + > + led-2 { > + function = LED_FUNCTION_FLASH; > + color = <LED_COLOR_ID_YELLOW>; > + led-sources = <2>; > + led-max-microamp = <150000>; > + flash-max-microamp = <1000000>; > + flash-max-timeout-us = <1280000>; > + }; > +}; > + > +&pm8150l_lpg { > + status = "okay"; > + > + led@1 { > + reg = <2>; > + color = <LED_COLOR_ID_RED>; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <0>; > + label = "popup-camera-left"; > + }; > + > + led@2 { > + reg = <3>; > + color = <LED_COLOR_ID_RED>; > + function = LED_FUNCTION_STATUS; > + function-enumerator = <1>; > + label = "popup-camera-right"; > + }; > +}; > + > +&pm8150l_wled { > + qcom,num-strings = <3>; > + qcom,cabc; > + qcom,cabc-sel = <1>; > +}; > + > +&pon { > + mode-bootloader = <0x2>; > + mode-recovery = <0x1>; > +}; > + > +&pon_pwrkey { > + status = "okay"; > +}; > + > +&pon_resin { > + linux,code = <KEY_VOLUMEDOWN>; > + > + status = "okay"; > +}; > + > +&qupv3_id_1 { > + status = "okay"; > +}; > + > +&qupv3_id_2 { > + status = "okay"; > +}; > + > +&remoteproc_adsp { > + firmware-name = "qcom/sm8150/Xiaomi/raphael/adsp.mbn"; > + > + status = "okay"; > +}; > + > +&remoteproc_cdsp { > + firmware-name = "qcom/sm8150/Xiaomi/raphael/cdsp.mbn"; > + > + status = "okay"; > +}; > + > +&remoteproc_mpss { > + firmware-name = "qcom/sm8150/Xiaomi/raphael/modem.mbn"; > + > + status = "okay"; > +}; > + > +&remoteproc_slpi { > + firmware-name = "qcom/sm8150/Xiaomi/raphael/slpi.mbn"; > + > + status = "disabled"; Why? > +}; > + > +&tlmm { > + gpio-line-names = > + "NFC_ESE_SPI_MISO", /* GPIO_0 */ > + "NFC_ESE_SPI_MOSI", /* GPIO_1 */ > + "NFC_ESE_SPI_CLK", /* GPIO_2 */ > + "NFC_ESE_SPI_CS_N", /* GPIO_3 */ > + "LCD_ID_DET1", /* GPIO_4 */ > + "ERR_INT", /* GPIO_5 */ > + "LCD_RESET_N", /* GPIO_6 */ > + "", /* GPIO_7 */ > + "MDP_VSYNC_P", /* GPIO_8 */ > + "MOTOR_DIR", /* GPIO_9 */ > + "LASER_CE", /* GPIO_10 */ > + "DIGITAL_HALL1_RSTN", /* GPIO_11 */ > + "CAMF_RSTN", /* GPIO_12 */ > + "CAMW_MCLK0", /* GPIO_13 */ > + "CAMT_MCLK1", /* GPIO_14 */ > + "CAMF_MCLK2", /* GPIO_15 */ > + "CAMU_MCLK3", /* GPIO_16 */ > + "CCI_I2C_SDA0", /* GPIO_17 */ > + "CCI_I2C_SCL0", /* GPIO_18 */ > + "CCI_I2C_SDA1", /* GPIO_19 */ > + "CCI_I2C_SCL1", /* GPIO_20 */ > + "MOTOR_M0", /* GPIO_21 */ > + "FL_STROBE_TRIG", /* GPIO_22 */ > + "CAMU_RSTN", /* GPIO_23 */ > + "", /* GPIO_24 */ > + "", /* GPIO_25 */ > + "LASER_IRQ", /* GPIO_26 */ > + "DIGITAL_HALL1_INT", /* GPIO_27 */ > + "CAMW_RSTN", /* GPIO_28 */ > + "", /* GPIO_29 */ > + "CAMT_RSTN", /* GPIO_30 */ > + "CCI_I2C_SDA2", /* GPIO_31 */ > + "CCI_I2C_SCL2", /* GPIO_32 */ > + "MOTOR_M1", /* GPIO_33 */ > + "CAMU_LDO_EN", /* GPIO_34 */ > + "MOTOR_SLEEP", /* GPIO_35 */ > + "MOTOR_FAULT", /* GPIO_36 */ > + "FOD_SPI_RST", /* GPIO_37 */ > + "USB_CC_DIR", /* GPIO_38 */ > + "NFC_I2C_SDA", /* GPIO_39 */ > + "NFC_I2C_SCL", /* GPIO_40 */ > + "", /* GPIO_41 */ > + "", /* GPIO_42 */ > + "BT_HCI_UART_CTS_N", /* GPIO_43 */ > + "BT_HCI_UART_RFR_N", /* GPIO_44 */ > + "BT_HCI_UART_TXD", /* GPIO_45 */ > + "BT_HCI_UART_RXD", /* GPIO_46 */ > + "NFC_IRQ", /* GPIO_47 */ > + "NFC_DWL_REQ", /* GPIO_48 */ > + "AUDIO_SWITCH_EN", /* GPIO_49 */ > + "WLAN_SW_CTRL", /* GPIO_50 */ > + "APPS_I2C_SDA", /* GPIO_51 */ > + "APPS_I2C_SCL", /* GPIO_52 */ > + "", /* GPIO_53 */ > + "TP_RESET_N", /* GPIO_54 */ > + "", /* GPIO_55 */ > + "", /* GPIO_56 */ > + "TP_I2C_SDA", /* GPIO_57 */ > + "TP_I2C_SCL", /* GPIO_58 */ > + "SPKR_PA_RST", /* GPIO_59 */ > + "", /* GPIO_60 */ > + "QLINK_REQUEST", /* GPIO_61 */ > + "QLINK_ENABLE", /* GPIO_62 */ > + "WMSS_RESET_N", /* GPIO_63 */ > + "SDM_GRFC_8", /* GPIO_64 */ > + "SDM_GRFC_9", /* GPIO_65 */ > + "SDM_GRFC_10", /* GPIO_66 */ > + "SDM_GRFC_11", /* GPIO_67 */ > + "", /* GPIO_68 */ > + "WLAN_COEX_UART_TXD", /* GPIO_69 */ > + "WLAN_COEX_UART_RXD", /* GPIO_70 */ > + "SDM_GRFC_0", /* GPIO_71 */ > + "SDM_GRFC_1", /* GPIO_72 */ > + "SDM_RFFE1_DATA", /* GPIO_73 */ > + "SDM_RFFE1_CLK", /* GPIO_74 */ > + "SDM_RFFE2_DATA", /* GPIO_75 */ > + "SDM_RFFE2_CLK", /* GPIO_76 */ > + "SDM_RFFE3_DATA", /* GPIO_77 */ > + "SDM_RFFE3_CLK", /* GPIO_78 */ > + "", /* GPIO_79 */ > + "", /* GPIO_80 */ > + "", /* GPIO_81 */ > + "", /* GPIO_82 */ > + "CAMW_VCM_2P8_EN", /* GPIO_83 */ > + "CAMT_VCM_2P8_EN", /* GPIO_84 */ > + "DBG_UART_TX", /* GPIO_85 */ > + "DBG_UART_RX", /* GPIO_86 */ > + "", /* GPIO_87 */ > + "TP_TA_INT_N", /* GPIO_88 */ > + "", /* GPIO_89 */ > + "CAMW_LDO_EN", /* GPIO_90 */ > + "", /* GPIO_91 */ > + "", /* GPIO_92 */ > + "CAMT_LDO_EN", /* GPIO_93 */ > + "", /* GPIO_94 */ > + "CAMF_LDO_EN", /* GPIO_95 */ > + "", /* GPIO_96 */ > + "CAM_DOVDD_EN", /* GPIO_97 */ > + "TP_3P3_EN", /* GPIO_98 */ > + "VCI_3P0_EN", /* GPIO_99 */ > + "TP_1P8_EN", /* GPIO_100 */ > + "", /* GPIO_101 */ > + "", /* GPIO_102 */ > + "NFC_ENABLE", /* GPIO_103 */ > + "", /* GPIO_104 */ > + "UIM2_DATA", /* GPIO_105 */ > + "UIM2_CLK", /* GPIO_106 */ > + "UIM2_RESET", /* GPIO_107 */ > + "UIM2_PRESENT", /* GPIO_108 */ > + "UIM1_DATA", /* GPIO_109 */ > + "UIM1_CLK", /* GPIO_110 */ > + "UIM1_RESET", /* GPIO_111 */ > + "UIM1_PRESENT", /* GPIO_112 */ > + "NFC_LABBCLK3_EN", /* GPIO_113 */ > + "AUDIO_I2C_SDA", /* GPIO_114 */ > + "AUDIO_I2C_SCL", /* GPIO_115 */ > + "", /* GPIO_116 */ > + "ALSPG_INT_N", /* GPIO_117 */ > + "FOD_INT_N", /* GPIO_118 */ > + "", /* GPIO_119 */ > + "", /* GPIO_120 */ > + "", /* GPIO_121 */ > + "TP_INT_N", /* GPIO_122 */ > + "CODEC_INT1_N", /* GPIO_123 */ > + "CODEC_INT2_N", /* GPIO_124 */ > + "FOD_LDO_EN", /* GPIO_125 */ > + "FOD_SPI_MISO", /* GPIO_126 */ > + "FOD_SPI_MOSI", /* GPIO_127 */ > + "FOD_SPI_CLK", /* GPIO_128 */ > + "FOD_SPI_CS_N", /* GPIO_129 */ > + "MOTOR_EN", /* GPIO_130 */ > + "", /* GPIO_131 */ > + "ACCEL_INT", /* GPIO_132 */ > + "GYRO_INT", /* GPIO_133 */ > + "", /* GPIO_134 */ > + "", /* GPIO_135 */ > + "FORCED_USB_BOOT", /* GPIO_136 */ > + "SPKR_I2S_BCK", /* GPIO_137 */ > + "SPKR_I2S_WS", /* GPIO_138 */ > + "SPKR_I2S_DOUT", /* GPIO_139 */ > + "SPKR_I2S_DIN", /* GPIO_140 */ > + "SPKR_INT", /* GPIO_141 */ > + "", /* GPIO_142 */ > + "CODEC_RST_N", /* GPIO_143 */ > + "CDC_SPI_MISO", /* GPIO_144 */ > + "CDC_SPI_MOSI", /* GPIO_145 */ > + "CDC_SPI_SCLK", /* GPIO_146 */ > + "CDC_SPI_CS_N", /* GPIO_147 */ > + "", /* GPIO_148 */ > + "CODEC_SLIMBUS_CLK", /* GPIO_149 */ > + "CODEC_SLIMBUS_DATA0", /* GPIO_150 */ > + "CODEC_SLIMBUS_DATA1", /* GPIO_151 */ > + "", /* GPIO_152 */ > + "BT_FM_SLIMBUS_DATA", /* GPIO_153 */ > + "BT_FM_SLIMBUS_CLK", /* GPIO_154 */ > + "SSC_MAG_I2C_SDA", /* GPIO_155 */ > + "SSC_MAG_I2C_SCL", /* GPIO_156 */ > + "SSC_SPI1_MISO", /* GPIO_157 */ > + "SSC_SPI1_MOSI", /* GPIO_158 */ > + "SSC_SPI1_CLK", /* GPIO_159 */ > + "SSC_SPI1_CS_N", /* GPIO_160 */ > + "SSC_SENSOR_I2C_SDA", /* GPIO_161 */ > + "SSC_SENSOR_I2C_SCL", /* GPIO_162 */ > + "", /* GPIO_163 */ > + "", /* GPIO_164 */ > + "CCI_SYNC6", /* GPIO_165 */ > + "", /* GPIO_166 */ > + "SSC_UART_1_TX", /* GPIO_167 */ > + "SSC_UART_1_RX", /* GPIO_168 */ > + "WL_CMD_CLK_CHAIN0", /* GPIO_169 */ > + "WL_CMD_DATA_CHAIN0", /* GPIO_170 */ > + "WL_CMD_CLK_CHAIN1", /* GPIO_171 */ > + "WL_CMD_DATA_CHAIN1", /* GPIO_172 */ > + "WL_BT_COEX_CLK", /* GPIO_173 */ > + "WL_BT_COEX_DATA"; /* GPIO_174 */ > + > + /* GPIO 0..3 are NFC spi, gpios 126..129 are FP spi */ > + gpio-reserved-ranges = <0 4>, <126 4>; > + > + /* Display panel pins */ > + panel_reset_active: panel-reset-active-state { > + pins = "gpio6"; > + function = "gpio"; > + drive-strength = <8>; > + bias-disable; > + power-source = <1>; > + }; > + > + panel_reset_suspend: panel-reset-suspend-state { > + pins = "gpio6"; > + function = "gpio"; > + drive-strength = <2>; > + bias-pull-down; > + power-source = <1>; > + }; > + > + panel_te_pin: panel-te-state { > + pins = "gpio8"; > + function = "mdp_vsync"; > + drive-strength = <2>; > + bias-pull-down; > + }; > +}; > + > +&uart2 { > + status = "okay"; > +}; > + > +&ufs_mem_hc { > + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; > + > + vcc-supply = <&vreg_l10a_2p95>; > + vcc-max-microamp = <750000>; > + vccq-supply = <&vreg_l9a_1p2>; > + vccq-max-microamp = <700000>; > + vccq2-supply = <&vreg_s4a_1p8>; > + vccq2-max-microamp = <750000>; > + > + status = "okay"; > +}; > + > +&ufs_mem_phy { > + vdda-phy-supply = <&vdda_ufs_2ln_core_1>; > + vdda-pll-supply = <&vreg_l3c_1p2>; > + > + status = "okay"; > +}; > + > +&usb_1 { > + qcom,select-utmi-as-pipe-clk; > + > + status = "okay"; > +}; > + > +&usb_1_dwc3 { > + dr_mode = "otg"; Default, drop. > + maximum-speed = "high-speed"; > + > + /* Remove USB3 phy */ > + phys = <&usb_1_hsphy>; > + phy-names = "usb2-phy"; > +}; > + > +&usb_1_dwc3_hs { > + remote-endpoint = <&pm8150b_hs_in>; > +}; > + > +&usb_1_hsphy { > + vdda-pll-supply = <&vdd_usb_hs_core>; > + vdda33-supply = <&vdda_usb_hs_3p1>; > + vdda18-supply = <&vdda_usb_hs_1p8>; > + > + status = "okay"; > +}; > + > +&wifi { > + vdd-0.8-cx-mx-supply = <&vdda_wcss_pll>; > + vdd-1.8-xo-supply = <&vreg_l7a_1p8>; > + vdd-1.3-rfa-supply = <&vdda_wcss_adcdac_1>; > + vdd-3.3-ch0-supply = <&vreg_l11c_3p3>; > + vdd-3.3-ch1-supply = <&vreg_l10c_3p3>; > + qcom,calibraion-variant = "Xiaomi_something"; Also please send board data file to the mailing list: https://wireless.docs.kernel.org/en/latest/en/users/drivers/ath10k/boardfiles.html > + status = "okay"; > +}; > -- > 2.51.2 > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) 2025-11-04 22:16 [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Piyush Raj Chouhan ` (2 preceding siblings ...) 2025-11-04 22:16 ` [PATCH v2 3/3] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro Piyush Raj Chouhan @ 2025-11-26 11:36 ` Pavel Machek 3 siblings, 0 replies; 8+ messages in thread From: Pavel Machek @ 2025-11-26 11:36 UTC (permalink / raw) To: Piyush Raj Chouhan Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening, andersson, konradybcio, robh, krzk+dt, conor+dt, tony.luck, gpiccoli, david [-- Attachment #1: Type: text/plain, Size: 913 bytes --] Hi! > This is v2 of the patch that makes several cleanups and minor fixes to > the SM8150 Xiaomi Raphael device tree. > > Changes in this version: > - Updated qcom,vmid to use QCOM_SCM_VMID_MSS_MSA instead of hardcoded 15 > - Added include: <dt-bindings/firmware/qcom,scm.h> > - Set ECC size to 8 in ramoops region > - Updated firmware paths to use "Xiaomi" instead of "xiaomi" > - Adjusted configuration for panel pinctrl > - Removed redundant LDO8 regulator entry > - Cleaned up PM8150L LPG LED definitions with proper labels > - General styling and ordering fixups > > Link to v1: > https://lore.kernel.org/all/20251022054026.22816-2-pc1598@mainlining.org/ Thanks for doing this. Please cc phone-devel@vger with phone-related patches. Best regards, Pavel -- I don't work for Nazis and criminals, and neither should you. Boycott Putin, Trump, Netanyahu and Musk! [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-11-26 11:36 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-11-04 22:16 [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Piyush Raj Chouhan 2025-11-04 22:16 ` [PATCH v2 1/3] dt-bindings: arm: qcom: " Piyush Raj Chouhan 2025-11-04 22:16 ` [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi Piyush Raj Chouhan 2025-11-04 22:32 ` David Heidelberg 2025-11-05 0:46 ` Dmitry Baryshkov 2025-11-04 22:16 ` [PATCH v2 3/3] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro Piyush Raj Chouhan 2025-11-05 0:51 ` Dmitry Baryshkov 2025-11-26 11:36 ` [PATCH v2 0/3] Add Xiaomi Redmi K20 Pro (Raphael) Pavel Machek
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).