arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+)
Previously, the eDP panel backlight was enabled via UEFI. Added backlight
control node in kernel DTS due to some meta may not enable the backlight.
Aligned with other x1e80100-based platforms: the PWM signal is controlled
by PMK8550, and the backlight enable signal is handled by PMC8380.
Signed-off-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
---
Changes in v2:
- Add hamoa-iot-evk to the commit subject. [Konrad]
- Correct the property order in the vreg_edp_bl node. [Konrad]
- Link to v1: https://lore.kernel.org/r/20251028-hamoa_dvt_backlight-v1-1-97ecb8d0ad01@oss.qualcomm.com
---
arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 55 ++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
index 36dd6599402b..454aad40de34 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
+++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
@@ -17,6 +17,16 @@ 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";
@@ -183,6 +193,22 @@ vreg_edp_3p3: regulator-edp-3p3 {
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";
@@ -819,6 +845,8 @@ &mdss_dp3 {
aux-bus {
panel {
compatible = "edp-panel";
+
+ backlight = <&backlight>;
power-supply = <&vreg_edp_3p3>;
port {
@@ -879,6 +907,22 @@ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
};
};
+&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";
+ };
+
+};
+
&pmc8380_5_gpios {
usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
pins = "gpio8";
@@ -890,6 +934,17 @@ 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";
+};
+
&smb2360_0 {
status = "okay";
};
---
base-commit: f7d2388eeec24966fc4d5cf32d706f0514f29ac5
change-id: 20251028-hamoa_dvt_backlight-373528b7ce7e
Best regards,
--
Yongxing Mou <yongxing.mou@oss.qualcomm.com>
On 11/6/25 8:12 AM, Yongxing Mou wrote: > Previously, the eDP panel backlight was enabled via UEFI. Added backlight > control node in kernel DTS due to some meta may not enable the backlight. Adding the hardware description to the DT with the reason that some prior boot stage might not have taken care of it is not great How about: The backlight on the Hamoa IoT EVK is controlled through a PWM signal. Aligned with other x1e80100-based platforms: the PWM signal is controlled by PMK8550, and the backlight enable signal is handled by PMC8380. Describe the backlight device and connect it to the eDP panel to allow for brightness control Konrad
On 11/6/2025 6:15 PM, Konrad Dybcio wrote: > On 11/6/25 8:12 AM, Yongxing Mou wrote: >> Previously, the eDP panel backlight was enabled via UEFI. Added backlight >> control node in kernel DTS due to some meta may not enable the backlight. > > Adding the hardware description to the DT with the reason that some prior > boot stage might not have taken care of it is not great > > How about: > > The backlight on the Hamoa IoT EVK is controlled through a PWM signal. > Aligned with other x1e80100-based platforms: the PWM signal is controlled > by PMK8550, and the backlight enable signal is handled by PMC8380. > > Describe the backlight device and connect it to the eDP panel to allow > for brightness control > > Konrad > That's great. Thanks for your comments and suggestions. Will update the commit message next version.
On 25-11-06 15:12:06, Yongxing Mou wrote:
> Previously, the eDP panel backlight was enabled via UEFI. Added backlight
> control node in kernel DTS due to some meta may not enable the backlight.
>
> Aligned with other x1e80100-based platforms: the PWM signal is controlled
> by PMK8550, and the backlight enable signal is handled by PMC8380.
>
> Signed-off-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
> ---
> Changes in v2:
> - Add hamoa-iot-evk to the commit subject. [Konrad]
> - Correct the property order in the vreg_edp_bl node. [Konrad]
> - Link to v1: https://lore.kernel.org/r/20251028-hamoa_dvt_backlight-v1-1-97ecb8d0ad01@oss.qualcomm.com
> ---
> arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 55 ++++++++++++++++++++++++++++++
> 1 file changed, 55 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
> index 36dd6599402b..454aad40de34 100644
> --- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
> @@ -17,6 +17,16 @@ 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";
>
> @@ -183,6 +193,22 @@ vreg_edp_3p3: regulator-edp-3p3 {
> 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";
>
> @@ -819,6 +845,8 @@ &mdss_dp3 {
> aux-bus {
> panel {
> compatible = "edp-panel";
> +
> + backlight = <&backlight>;
> power-supply = <&vreg_edp_3p3>;
>
> port {
> @@ -879,6 +907,22 @@ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
> };
> };
>
> +&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";
> + };
> +
Drop empty line.
With that fixed:
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
On 11/6/2025 4:43 PM, Abel Vesa wrote:
> On 25-11-06 15:12:06, Yongxing Mou wrote:
>> Previously, the eDP panel backlight was enabled via UEFI. Added backlight
>> control node in kernel DTS due to some meta may not enable the backlight.
>>
>> Aligned with other x1e80100-based platforms: the PWM signal is controlled
>> by PMK8550, and the backlight enable signal is handled by PMC8380.
>>
>> Signed-off-by: Yongxing Mou <yongxing.mou@oss.qualcomm.com>
>> ---
>> Changes in v2:
>> - Add hamoa-iot-evk to the commit subject. [Konrad]
>> - Correct the property order in the vreg_edp_bl node. [Konrad]
>> - Link to v1: https://lore.kernel.org/r/20251028-hamoa_dvt_backlight-v1-1-97ecb8d0ad01@oss.qualcomm.com
>> ---
>> arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 55 ++++++++++++++++++++++++++++++
>> 1 file changed, 55 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
>> index 36dd6599402b..454aad40de34 100644
>> --- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
>> +++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
>> @@ -17,6 +17,16 @@ 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";
>>
>> @@ -183,6 +193,22 @@ vreg_edp_3p3: regulator-edp-3p3 {
>> 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";
>>
>> @@ -819,6 +845,8 @@ &mdss_dp3 {
>> aux-bus {
>> panel {
>> compatible = "edp-panel";
>> +
>> + backlight = <&backlight>;
>> power-supply = <&vreg_edp_3p3>;
>>
>> port {
>> @@ -879,6 +907,22 @@ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
>> };
>> };
>>
>> +&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";
>> + };
>> +
>
> Drop empty line.
>
> With that fixed:
>
> Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Thanks, will fix that next patchset.
© 2016 - 2026 Red Hat, Inc.