Devicetree
 help / color / mirror / Atom feed
From: Charlie Garner <charlie@akao.au>
To: Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>
Cc: Abel Vesa <abelvesa@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Val Packett <val@packett.cool>,
	Laurentiu Tudor <laurentiu.tudor1@dell.com>,
	Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, Charlie Garner <charlie@akao.au>
Subject: [PATCH 1/2] arm64: dts: qcom: x1e80100-dell-inspiron-14-plus-7441: add PWM backlight
Date: Thu, 24 Sep 2026 00:55:05 +0930	[thread overview]
Message-ID: <20260923152506.44989-2-charlie@akao.au> (raw)
In-Reply-To: <20260923152506.44989-1-charlie@akao.au>

The panel on the Dell Inspiron 14 Plus 7441 (AUO B140QAX01.H) cannot have
its brightness set over eDP AUX. DPCD 0x702 has BRIGHTNESS_PWM_PIN_CAP set
but BRIGHTNESS_AUX_SET_CAP clear:

	0x701 GENERAL_CAP_1            = 0x9b
	0x702 BACKLIGHT_ADJUSTMENT_CAP = 0x91   bit1 (AUX_SET) clear
	0x721 MODE_SET                 = 0x00   control mode: PWM pin

With no backlight phandle on the panel, panel-edp falls back to
drm_panel_dp_aux_backlight(). drm_edp_backlight_supported() only tests
0x701 bit0, which is set, so a backlight device is registered - but
drm_edp_backlight_probe_max() returns early when !aux_set, leaving max at
0:

	systemd-backlight: dp_aux_backlight: Maximum brightness is 0, ignoring device.
	gnome-shell: Backlight is unusable because the maximum brightness 0 is
	             bigger than minimum brightness 0

Brightness is driven by PWM instead. UEFI already configures the pad and
leaves it running, which is how the panel is lit before Linux touches it:

	gpiochip0 (c42d000.spmi:pmic@0:gpio@8800, PMK8550):
	  gpio5 : out low func3 vin-0 pull-down 10uA push-pull medium

and the corresponding LPG is present but disabled:

	pmic@0/pwm  qcom,pmk8550-pwm  status=disabled

This matches the PWM wiring of the HP OmniBook X14
(x1-hp-omnibook-x14.dtsi), so describe it the same way: enable
pmk8550_pwm, add the pinctrl state for gpio5 func3, and give the panel a
pwm-backlight.

The panel keeps its existing enable-gpios and edp_bl_en pinctrl, so power
sequencing is unchanged; only brightness control is added.

Keep this in the Inspiron DT rather than x1-dell-thena.dtsi. The Latitude
7455 shares the dtsi but was submitted with a different panel (BOE
NE14QDM) and a working backlight without any PWM description, and this
has only been tested on the Inspiron. Label the panel in the dtsi so the
board DT can attach the backlight, as the ThinkPad T14s LCD variant does.

Signed-off-by: Charlie Garner <charlie@akao.au>
---

Notes:
    If a Latitude 7455 owner can confirm the same PWM wiring on that machine,
    this can move to x1-dell-thena.dtsi.

 arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi   |  2 +-
 .../x1e80100-dell-inspiron-14-plus-7441.dts   | 27 +++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi b/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi
index 2ebb42906c9b..ce31c9f5cd05 100644
--- a/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi
@@ -1039,7 +1039,7 @@ &mdss_dp3 {
 	status = "okay";
 
 	aux-bus {
-		panel {
+		panel: panel {
 			compatible = "edp-panel";
 			enable-gpios = <&tlmm 74 GPIO_ACTIVE_HIGH>;
 			power-supply = <&vreg_edp_3p3>;
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-inspiron-14-plus-7441.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-inspiron-14-plus-7441.dts
index 75e10d97c386..5779a4e84522 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-dell-inspiron-14-plus-7441.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-inspiron-14-plus-7441.dts
@@ -10,6 +10,18 @@
 / {
 	model = "Dell Inspiron 14 Plus 7441";
 	compatible = "dell,inspiron-14-plus-7441", "qcom,x1e80100";
+
+	backlight: backlight {
+		compatible = "pwm-backlight";
+		pwms = <&pmk8550_pwm 0 5000000>;
+
+		brightness-levels = <0 2048 4096 8192 16384 65535>;
+		num-interpolated-steps = <20>;
+		default-brightness-level = <80>;
+
+		pinctrl-0 = <&edp_bl_pwm>;
+		pinctrl-names = "default";
+	};
 };
 
 &sound {
@@ -42,6 +54,21 @@ &iris {
 	status = "okay";
 };
 
+&panel {
+	backlight = <&backlight>;
+};
+
+&pmk8550_gpios {
+	edp_bl_pwm: edp-bl-pwm-state {
+		pins = "gpio5";
+		function = "func3";
+	};
+};
+
+&pmk8550_pwm {
+	status = "okay";
+};
+
 &remoteproc_adsp {
 	firmware-name = "qcom/x1e80100/dell/inspiron-14-plus-7441/qcadsp8380.mbn",
 			"qcom/x1e80100/dell/inspiron-14-plus-7441/adsp_dtbs.elf";
-- 
2.55.0


  reply	other threads:[~2026-09-23 15:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-23 15:25 [PATCH 0/2] arm64: dts: qcom: Dell Inspiron 14 Plus 7441 backlight and touchscreen fixes Charlie Garner
2026-09-23 15:25 ` Charlie Garner [this message]
2026-09-23 15:25 ` [PATCH 2/2] arm64: dts: qcom: x1e80100-dell-inspiron-14-plus-7441: fix touchscreen i2c address Charlie Garner
2026-09-23 22:19 ` [PATCH 0/2] arm64: dts: qcom: Dell Inspiron 14 Plus 7441 backlight and touchscreen fixes Bjorn Andersson
2026-09-24  0:54 ` Bjorn Andersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260923152506.44989-2-charlie@akao.au \
    --to=charlie@akao.au \
    --cc=abelvesa@kernel.org \
    --cc=andersson@kernel.org \
    --cc=bryan.odonoghue@linaro.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=laurentiu.tudor1@dell.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=val@packett.cool \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox