Re: [PATCH 2/2] arm64: dts: qcom: purwa-iot-evk: Add eDP display overlay

From: Bjorn Andersson

Date: Thu Aug 06 2026 - 20:06:38 EST


On Thu, Aug 06, 2026 at 10:01:21PM +0530, Anand Tiwari wrote:
> Move the eDP panel configuration and related power, backlight, and pinctrl
> nodes into a separate overlay. Keep the base DTB suitable for headless
> variants and provide a composite DTB for headed variants.
>

Why?

> Signed-off-by: Anand Tiwari <anand.tiwari@xxxxxxxxxxxxxxxx>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 3 +
> arch/arm64/boot/dts/qcom/purwa-iot-evk-edp.dtso | 126 ++++++++++++++++++++++++
> arch/arm64/boot/dts/qcom/purwa-iot-evk.dts | 107 --------------------
> 3 files changed, 129 insertions(+), 107 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index bb0da34983c8..fc954da58402 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -165,6 +165,9 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8998-sony-xperia-yoshino-poplar.dtb
> dtb-$(CONFIG_ARCH_QCOM) += msm8998-xiaomi-sagit.dtb
> dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk.dtb
>
> +purwa-iot-evk-edp-dtbs := purwa-iot-evk.dtb purwa-iot-evk-edp.dtbo
> +dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk-edp.dtb
> +
> purwa-iot-evk-el2-dtbs := purwa-iot-evk.dtb x1-el2.dtbo
>
> dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk-el2.dtb
> diff --git a/arch/arm64/boot/dts/qcom/purwa-iot-evk-edp.dtso b/arch/arm64/boot/dts/qcom/purwa-iot-evk-edp.dtso
> new file mode 100644
> index 000000000000..759d05342627
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/purwa-iot-evk-edp.dtso
> @@ -0,0 +1,126 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +
> +&{/} {
> + backlight: backlight {
> + compatible = "pwm-backlight";
> + pwms = <&pmk8550_pwm 0 5000000>;
> + enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
> + power-supply = <&vreg_edp_bl>;
> +
> + pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
> + pinctrl-names = "default";
> + };
> +
> + vreg_edp_3p3: regulator-edp-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_EDP_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&edp_reg_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> + vreg_edp_bl: regulator-edp-bl {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VBL9";
> + regulator-min-microvolt = <3600000>;
> + regulator-max-microvolt = <3600000>;
> +
> + gpio = <&pmc8380_3_gpios 10 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&edp_bl_reg_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +};
> +
> +&mdss_dp3 {
> + /delete-property/ #sound-dai-cells;
> +
> + pinctrl-0 = <&edp0_hpd_default>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +
> + aux-bus {
> + panel {
> + compatible = "edp-panel";
> +
> + backlight = <&backlight>;
> + power-supply = <&vreg_edp_3p3>;
> +
> + port {
> + edp_panel_in: endpoint {
> + remote-endpoint = <&mdss_dp3_out>;
> + };
> + };
> + };
> + };
> +};
> +
> +&mdss_dp3_out {
> + data-lanes = <0 1 2 3>;
> + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +
> + remote-endpoint = <&edp_panel_in>;
> +};
> +
> +&mdss_dp3_phy {
> + vdda-phy-supply = <&vreg_l3j_0p8>;
> + vdda-pll-supply = <&vreg_l2j_1p2>;
> +
> + status = "okay";
> +};
> +
> +&pmc8380_3_gpios {
> + edp_bl_en: edp-bl-en-state {
> + pins = "gpio4";
> + function = "normal";
> + power-source = <1>;
> + input-disable;
> + output-enable;
> + };
> +
> + edp_bl_reg_en: edp-bl-reg-en-state {
> + pins = "gpio10";
> + function = "normal";
> + };
> +};
> +
> +&pmk8550_gpios {
> + edp_bl_pwm: edp-bl-pwm-state {
> + pins = "gpio5";
> + function = "func3";
> + };
> +};
> +
> +&pmk8550_pwm {
> + status = "okay";
> +};
> +
> +&tlmm {
> + edp_reg_en: edp-reg-en-state {
> + pins = "gpio70";
> + function = "gpio";
> + drive-strength = <16>;
> + bias-disable;
> + };
> +};
> diff --git a/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts b/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
> index ad503beec1d3..6dde925025dd 100644
> --- a/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/purwa-iot-evk.dts
> @@ -19,16 +19,6 @@ aliases {
> serial1 = &uart14;
> };
>
> - backlight: backlight {
> - compatible = "pwm-backlight";
> - pwms = <&pmk8550_pwm 0 5000000>;
> - enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>;
> - power-supply = <&vreg_edp_bl>;
> -
> - pinctrl-0 = <&edp_bl_en>, <&edp_bl_pwm>;
> - pinctrl-names = "default";
> - };
> -
> wcd938x: audio-codec {
> compatible = "qcom,wcd9385-codec";
>
> @@ -205,38 +195,6 @@ pmic_glink_ss2_con_sbu_in: endpoint {
> };
> };
>
> - vreg_edp_3p3: regulator-edp-3p3 {
> - compatible = "regulator-fixed";
> -
> - regulator-name = "VREG_EDP_3P3";
> - regulator-min-microvolt = <3300000>;
> - regulator-max-microvolt = <3300000>;
> -
> - gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> - enable-active-high;
> -
> - pinctrl-0 = <&edp_reg_en>;
> - pinctrl-names = "default";
> -
> - regulator-boot-on;
> - };
> -
> - vreg_edp_bl: regulator-edp-bl {
> - compatible = "regulator-fixed";
> -
> - regulator-name = "VBL9";
> - regulator-min-microvolt = <3600000>;
> - regulator-max-microvolt = <3600000>;
> -
> - gpio = <&pmc8380_3_gpios 10 GPIO_ACTIVE_HIGH>;
> - enable-active-high;
> -
> - pinctrl-0 = <&edp_bl_reg_en>;
> - pinctrl-names = "default";
> -
> - regulator-boot-on;
> - };
> -
> vreg_nvme: regulator-nvme {
> compatible = "regulator-fixed";
>
> @@ -962,44 +920,6 @@ &mdss_dp2_out {
> link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> };
>
> -&mdss_dp3 {
> - /delete-property/ #sound-dai-cells;
> -
> - pinctrl-0 = <&edp0_hpd_default>;
> - pinctrl-names = "default";
> -
> - status = "okay";
> -
> - aux-bus {
> - panel {
> - compatible = "edp-panel";
> -
> - backlight = <&backlight>;
> - power-supply = <&vreg_edp_3p3>;
> -
> - port {
> - edp_panel_in: endpoint {
> - remote-endpoint = <&mdss_dp3_out>;
> - };
> - };
> - };
> - };
> -};
> -
> -&mdss_dp3_out {
> - data-lanes = <0 1 2 3>;
> - link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> -
> - remote-endpoint = <&edp_panel_in>;
> -};
> -
> -&mdss_dp3_phy {
> - vdda-phy-supply = <&vreg_l3j_0p8>;
> - vdda-pll-supply = <&vreg_l2j_1p2>;
> -
> - status = "okay";
> -};
> -
> &pcie3_port0 {
> vpcie12v-supply = <&vreg_pcie_12v>;
> vpcie3v3-supply = <&vreg_pcie_3v3>;
> @@ -1128,19 +1048,6 @@ led@2 {
> };
>
> &pmc8380_3_gpios {
> - edp_bl_en: edp-bl-en-state {
> - pins = "gpio4";
> - function = "normal";
> - power-source = <1>;
> - input-disable;
> - output-enable;
> - };
> -
> - edp_bl_reg_en: edp-bl-reg-en-state {
> - pins = "gpio10";
> - function = "normal";
> - };
> -
> pm_sde7_aux_3p3_en: pcie-aux-3p3-default-state {
> pins = "gpio8";
> function = "normal";
> @@ -1169,13 +1076,6 @@ usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
> };
> };
>
> -&pmk8550_gpios {
> - edp_bl_pwm: edp-bl-pwm-state {
> - pins = "gpio5";
> - function = "func3";
> - };
> -};
> -
> &pmk8550_pwm {
> status = "okay";
> };
> @@ -1326,13 +1226,6 @@ right_tweeter: speaker@0,1 {
> };
>
> &tlmm {
> - edp_reg_en: edp-reg-en-state {
> - pins = "gpio70";
> - function = "gpio";
> - drive-strength = <16>;
> - bias-disable;
> - };
> -
> eusb3_reset_n: eusb3-reset-n-state {
> pins = "gpio6";
> function = "gpio";
>
> --
> 2.54.0
>