Re: [PATCH 2/2] arm64: dts: qcom: sm8150: Add support for Xiaomi Redmi K20 Pro

From: Konrad Dybcio

Date: Mon Oct 27 2025 - 07:37:07 EST


On 10/22/25 7:40 AM, 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.

[...]

> + ramoops@a1600000 {
> + compatible = "ramoops";
> + reg = <0x0 0xa1600000 0x0 0x800000>;
> + console-size = <0x400000>;
> + pmsg-size = <0x200000>;
> + record-size = <0>;
> + ftrace-size = <0>;
> + ecc-size = <0>;
> + no-map;

You can probably remove the = 0 entries (although ECC is very useful
to set to e.g. 8)

[...]

> + gpio-keys {
> + compatible = "gpio-keys";
> + pinctrl-names = "default";
> + pinctrl-0 = <&vol_up_n>;

property-n
property-names

in this order, please, file-wide


> + /*
> + * PM8150 LDO8 (L8A) — supplies vreg_l8a_0p75
> + * Device spec: nominal 0.752 V, active min 0.752 V, active max 0.904 V, IRATED = 300 mA

Hm?

[...]

> +&gpu {
> + zap-shader {
> + memory-region = <&gpu_mem>;
> + firmware-name = "qcom/sm8150/xiaomi/raphael/a640_zap.mbn";
> + };
> +
> + status = "okay";

This shouldn't compile

[...]

> +};
> +
> +&i2c19 {
> + /* goodix,gt9886 @5d */

I see there's driver support for the GT98*97* - is there a chance you can
reuse some of it?

> +};
> +
> +&mdss {
> + status = "okay";
> +};
> +
> +&mdss_dsi0 {
> + vdda-supply = <&vdda_mipi_dsi0_1p2>;
> +
> + status = "okay";

Please add a newline between this property an the following subnode

[...]

> +&pm8150b_typec {
> + vdd-vbus-supply = <&pm8150b_vbus>;
> + vdd-pdphy-supply = <&vdda_usb_hs_3p1>;
> +
> + status = "okay";

ditto

> + 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)>;

Have you verified this is in line with your specific device's
downstream kernel?

[...]

> +&pm8150l_flash {
> +
> + status = "okay";

ditto

[...]

> +&pm8150l_lpg {
> +
> + status = "okay";

ditto> + led@1 {
> + reg = <1>;
> + color = <LED_COLOR_ID_WHITE>;
> + function = LED_FUNCTION_STATUS;
> +
> + status = "disabled";

?

> + };
> +
> + led@2 {
> + reg = <2>;
> + color = <LED_COLOR_ID_RED>;
> + function = LED_FUNCTION_STATUS;
> + function-enumerator = <0>;
> + };
> +
> + led@3 {
> + reg = <3>;
> + color = <LED_COLOR_ID_RED>;
> + function = LED_FUNCTION_STATUS;
> + function-enumerator = <1>;
> + };

Are there really two separate red LEDs?

[...]

> + /* GPIO 0..3 are NFC spi, gpios 126..129 are FP spi */
> + gpio-reserved-ranges = <0 4>, <126 4>;
> +
> + /* Display panel pins */
> + panel_reset_pin: panel-reset-state {
> + pins = "gpio6";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + output-low;

Please drop output- properites from TLMM subnodes, these are controlled by
the kernel's GPIO framework instead

[...]

> +&usb_1_dwc3 {
> + dr_mode = "otg";
> + maximum-speed = "high-speed";
> +
> + /* Remove USB3 phy */
> + phys = <&usb_1_hsphy>;
> + phy-names = "usb2-phy";

Is this a physical limitation, i.e. missing wires?

> +
> + usb-role-switch;

This property should be moved to the SoC DTSI

Konrad