Add Xiaomi Redmi K20 Pro (Raphael)
v2 cover Add Xiaomi Redmi K20 Pro (Raphael)
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/[email protected]/
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
Signature · 1 line
2.51.2
PATCH v2 1/3 dt-bindings: arm: qcom: Add Xiaomi Redmi K20 Pro (Raphael)
Document Xiaomi Redmi K20 Pro / Xiaomi Mi 9T Pro.
--- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
@@ -983,6 +983,7 @@ properties: - qcom,sm8150-mtp - sony,bahamut-generic - sony,griffin-generic + - xiaomi,raphael - const: qcom,sm8150 - items:
Signature · 1 line
2.51.2
PATCH v2 2/3 arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi
In reply to Piyush Raj Chouhan--- arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 1 - arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/sm8150-hdk.dts +0 -1
@@ -693,7 +693,6 @@ &usb_2 { &usb_1_dwc3 { dr_mode = "otg"; - usb-role-switch; }; &usb_1_dwc3_hs {
arch/arm64/boot/dts/qcom/sm8150.dtsi +2 -0
@@ -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>;
Signature · 1 line
2.51.2
Re: [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi
You have to provide the commit message, even when the change seems to you self-explaining. Just one or two sentences explaining why.
David
Quoted 31 lines · Piyush Raj Chouhan
Signed-off-by Piyush Raj Chouhan <[email protected]>--- arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 1 - arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-)arch/arm64/boot/dts/qcom/sm8150-hdk.dts +0
-1@@ -693,7 +693,6 @@ &usb_2 { &usb_1_dwc3 { dr_mode = "otg"; - usb-role-switch; }; &usb_1_dwc3_hs {arch/arm64/boot/dts/qcom/sm8150.dtsi +2
-0@@ -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>;
Signature · 1 line
David Heidelberg
Re: [PATCH v2 2/3] arm64: dts: qcom: sm8150: Move usb-role-switch property to common dtsi
In reply to Piyush Raj ChouhanQuoted 1 line · Piyush Raj Chouhan
Signed-off-by Piyush Raj Chouhan <[email protected]>
Missing commit message
arch/arm64/boot/dts/qcom/sm8150-hdk.dts &usb_2 { · line 695
Quoted 13 lines
--- arch/arm64/boot/dts/qcom/sm8150-hdk.dts | 1 - arch/arm64/boot/dts/qcom/sm8150.dtsi | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-)arch/arm64/boot/dts/qcom/sm8150-hdk.dts +0
-0@@ -693,7 +693,6 @@ &usb_2 { &usb_1_dwc3 { dr_mode = "otg";
You can drop this line too, it's the default.
Quoted 20 lines
arch/arm64/boot/dts/qcom/sm8150-hdk.dts +0
-1- usb-role-switch; }; &usb_1_dwc3_hs {arch/arm64/boot/dts/qcom/sm8150.dtsi +2
-0@@ -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>;Signature · 1 line
2.51.2
Signature · 2 lines
With best wishes Dmitry
PATCH v2 3/3 arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro
In reply to Piyush Raj ChouhanAdd 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
--- 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
arch/arm64/boot/dts/qcom/Makefile +1 -0
@@ -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
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +962 -0
962 lines not on this page · raw message
Signature · 1 line
2.51.2
Re: [PATCH v2 3/3] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro
Quoted 99 lines · 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 LEDsSigned-off-by Piyush Raj Chouhan <[email protected]>--- 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.dtsarch/arm64/boot/dts/qcom/Makefile +1
-0@@ -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.dtbarch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +59
-0@@ -0,0 +1,962 @@ +// SPDX-License-Identifier: BSD-3-Clause + +/* + * Copyright (c) 2025, Piyush Raj Chouhan <[email protected]>. + */ + +/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)>;
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 69
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +10
-0+ 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).
Quoted 91 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +91
-0+ 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; + }; +
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 170
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +10
-0+ 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.
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 182
Quoted 12 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +12
-0+ 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
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 193
Quoted 11 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +11
-0+ 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
Quoted 298 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +298
-0+ 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";
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 501
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +10
-0+}; + +&gpi_dma2 { + status = "okay"; +}; + +&gpu { + status = "okay"; + + zap-shader {
&gpu_zap_shader {
firmware-name = "...";
};arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 508
Quoted 7 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +7
-0+ memory-region = <&gpu_mem>; + firmware-name = "qcom/sm8150/Xiaomi/raphael/a640_zap.mbn"; + }; +}; + +&i2c19 { + /* goodix,gt9886 @5d */
status = "okay";
Quoted 176 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +176
-0+}; + +&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"; +}; +
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 694
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +10
-0+&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?
Quoted 230 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +230
-0+}; + +&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";
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 934
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +10
-0+}; + +&usb_1 { + qcom,select-utmi-as-pipe-clk; + + status = "okay"; +}; + +&usb_1_dwc3 { + dr_mode = "otg";
Default, drop.
Quoted 16 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +16
-0+ 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>; +
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts line 960
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +10
-0+ 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
Quoted 5 lines
arch/arm64/boot/dts/qcom/sm8150-xiaomi-raphael.dts new file +2
-0+ status = "okay"; +};Signature · 1 line
2.51.2
Signature · 2 lines
With best wishes Dmitry
Hi!
Quoted 13 lines
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 useQCOM_SCM_VMID_MSS_MSAinstead 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
Quoted 2 lines
Thanks for doing this. Please cc phone-devel@vger with phone-related patches.
Best regards,
Pavel
Signature · 2 lines
I don't work for Nazis and criminals, and neither should you. Boycott Putin, Trump, Netanyahu and Musk!