* [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board
@ 2026-10-30 9:40 anand.tiwari
2026-10-30 9:40 ` [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support anand.tiwari
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: anand.tiwari @ 2026-10-30 9:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list
Cc: linux-arm-msm, devicetree, linux-kernel, linux-rpi-kernel,
linux-arm-kernel, Anand Tiwari, Mohit Dsor, Konrad Dybcio,
Shashank Maurya
Talos Lyra EVK SoC card are mounted on the Lyra carrier card. The
DSI0 interface from SoC card is routed to either the 22-pin DSI
connector on carrier card named as JDISP1 DSI0 or to the DSI0_B2B
connector, through a MUX which can be selected by a hardware DIP
switch. There are multiple daughter cards designed that can be
connected to this B2B connector.
The below B2B display interfaces are enabled by default in base DTB:
- DSI-to-HDMI using the LT9611UXD daughter card
Below overlay DTs are added for additional display configurations:
- talos-lyra-evk-dlc0697: DLC0697 DSI panel for Lyra with DLC
daughter card
- talos-lyra-evk-raspberrypi-dsi-7inch: Raspberry Pi 7-inch DSI
panel with touch via the 22-pin DSI connector for Lyra
- talos-lyra-evk-waveshare-dsi-8inch: Waveshare 8-inch DSI panel
with touch via the 22-pin DSI connector for Lyra
- talos-lyra-evk-lvds-auo,g133han01: AUO G133HAN01 LVDS panel for
Lyra with LVDS daughter card
These overlays are applied on top of the corresponding base board
DTBs.
Link: https://lore.kernel.org/r/20261012-talos-lyra-evk-v2-v2-0-dcc9316ebb59@oss.qualcomm.com
Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
---
Changes in v2:
- Fold in the hdmi_connector port remote-endpoint indentation fix.
- Drop the per-patch Depends-on trailer on the LT9611UXD HDMI bridge
patch; the dt-bindings dependency is now declared as a series
prerequisite (see base-commit/prerequisite info below).
- Drop default-on from the DLC0697 backlight node.
- Add the ilitek,ili9881c fallback compatible to the RPi 7-inch
panel overlay to fix a dtbs_check "too short" binding failure.
- Reword the PWM_CLK defconfig commit message to name Qualcomm as
the SoC vendor.
- Remove a stray blank line and non-ASCII characters from the AUO
LVDS panel overlay.
- Link to v1: https://patch.msgid.link/20261021-lyra-display-upstream-post-v1-0-585caa39cd7c@oss.qualcomm.com
To: Bjorn Andersson <andersson@kernel.org>
To: Konrad Dybcio <konradybcio@kernel.org>
To: Abel Vesa <abelvesa@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Florian Fainelli <florian.fainelli@broadcom.com>
To: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-rpi-kernel@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
---
Anand Tiwari (2):
arm64: defconfig: Enable PWM_CLK for backlight PWM support
arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay
Mohit Dsor (1):
arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support
Shashank Maurya (3):
arm64: dts: qcom: talos-lyra-evk: Add DLC DLC0697 panel overlay
arm64: dts: qcom: talos-lyra-evk: Add RPi 7-inch DSI panel overlay
arm64: dts: qcom: talos-lyra-evk: Add Waveshare 8-inch DSI panel overlay
arch/arm64/boot/dts/qcom/Makefile | 18 +++
.../boot/dts/qcom/talos-lyra-evk-dlc0697.dtso | 77 ++++++++++++
.../qcom/talos-lyra-evk-lvds-auo,g133han01.dtso | 133 +++++++++++++++++++++
.../qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso | 88 ++++++++++++++
.../qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso | 75 ++++++++++++
arch/arm64/boot/dts/qcom/talos-lyra-evk.dts | 106 ++++++++++++++++
arch/arm64/configs/defconfig | 1 +
7 files changed, 498 insertions(+)
---
base-commit: 4eb2586bd40db27d77cc5b724ca9386ed0c71d53
change-id: 20261019-lyra-display-upstream-post-24656268a902
prerequisite-message-id: <20261027-talos-lyra-evk-v2-v3-0-658fd5a7ec99@oss.qualcomm.com>
prerequisite-patch-id: 0dfae1e9d0c620866489eecacb4b7201b9333621
prerequisite-patch-id: 94923ba8f57911649364a7e0e5494c7cfd478367
prerequisite-patch-id: 660755293839baa7364b4baf3a2dd6b4018de48a
prerequisite-message-id: <20261021-lt9611c-v7-v18-0-4978b94896f1@oss.qualcomm.com>
prerequisite-patch-id: 49f1e01bb5594ce9c4301ce4b16715834ece7f41
prerequisite-patch-id: 21cfbbfd71515961501a768edad476740336c13c
Best regards,
--
Anand Tiwari <anand.tiwari@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support
2026-10-30 9:40 [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board anand.tiwari
@ 2026-10-30 9:40 ` anand.tiwari
2026-10-30 9:49 ` sashiko-bot
2026-10-30 9:40 ` [PATCH v2 2/6] arm64: dts: qcom: talos-lyra-evk: Add DLC DLC0697 panel overlay anand.tiwari
` (4 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: anand.tiwari @ 2026-10-30 9:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list
Cc: linux-arm-msm, devicetree, linux-kernel, linux-rpi-kernel,
linux-arm-kernel, Anand Tiwari, Mohit Dsor, Konrad Dybcio
From: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
Add support for the Lontium LT9611UXD DSI-to-HDMI bridge, enabled by
default on the Talos Lyra EVK base board DT, to provide HDMI output
on the DSI0_B2B connector on the carrier card.
LT9611UXD is connected through I2C2, with reset and interrupt
connected to TLMM GPIO61 and GPIO60 respectively.
Signed-off-by: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/talos-lyra-evk.dts | 105 ++++++++++++++++++++++++++++
1 file changed, 105 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
index d4468e609911..eeb8e903b03b 100644
--- a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
+++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
@@ -4,6 +4,8 @@
*/
/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include "talos-lyra-evk-som.dtsi"
/ {
@@ -11,6 +13,10 @@ / {
compatible = "qcom,talos-lyra-evk", "qcom,qcs615", "qcom,sm6150";
chassis-type = "embedded";
+ aliases {
+ i2c2 = &i2c2;
+ };
+
dp0-connector {
compatible = "dp-connector";
label = "DP0";
@@ -22,6 +28,65 @@ dp0_connector_in: endpoint {
};
};
};
+
+ hdmi_connector: hdmi-connector {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_connector_out: endpoint {
+ remote-endpoint = <&hdmi_bridge_out>;
+ };
+ };
+ };
+
+ vreg_disp_3p3: regulator-disp-3p3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_disp_3p3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&tlmm 3 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ pinctrl-0 = <&lcd_bias_en>;
+ pinctrl-names = "default";
+ };
+};
+
+&i2c2 {
+ status = "okay";
+
+ hdmi_bridge: hdmi-bridge@41 {
+ compatible = "lontium,lt9611uxd";
+ reg = <0x41>;
+ interrupts-extended = <&tlmm 60 IRQ_TYPE_EDGE_FALLING>;
+ reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
+ vcc-supply = <&vreg_disp_3p3>;
+ vdd-supply = <&vreg_s4a>;
+
+ pinctrl-0 = <&bridge_irq_pin &bridge_rst_pin>;
+ pinctrl-names = "default";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ hdmi_bridge_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ hdmi_bridge_out: endpoint {
+ remote-endpoint = <&hdmi_connector_out>;
+ };
+ };
+ };
+ };
};
&i2c5 {
@@ -74,6 +139,23 @@ &mdss_dp0_out {
remote-endpoint = <&dp0_connector_in>;
};
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l5a>;
+
+ status = "okay";
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&hdmi_bridge_in>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l11a>;
+
+ status = "okay";
+};
+
&pon_pwrkey {
status = "okay";
};
@@ -113,3 +195,26 @@ &usb_2 {
status = "okay";
};
+
+&tlmm {
+ lcd_bias_en: lcd-bias-en-state {
+ pins = "gpio3";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ bridge_irq_pin: bridge-irq-state {
+ pins = "gpio60";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ bridge_rst_pin: bridge-rst-state {
+ pins = "gpio61";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+};
--
2.55.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/6] arm64: dts: qcom: talos-lyra-evk: Add DLC DLC0697 panel overlay
2026-10-30 9:40 [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board anand.tiwari
2026-10-30 9:40 ` [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support anand.tiwari
@ 2026-10-30 9:40 ` anand.tiwari
2026-10-30 9:40 ` [PATCH v2 3/6] arm64: dts: qcom: talos-lyra-evk: Add RPi 7-inch DSI " anand.tiwari
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: anand.tiwari @ 2026-10-30 9:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list
Cc: linux-arm-msm, devicetree, linux-kernel, linux-rpi-kernel,
linux-arm-kernel, Anand Tiwari, Shashank Maurya, Konrad Dybcio
From: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Add a DT overlay for Qualcomm Talos Lyra EVK, to enable DLC0697 panel
when DLC daughter card connected to DSI0_B2B on carrier card.
Configure DLC0697 reset GPIO, supplies, pinctrl states and GPIO
backlight controlled through TLMM GPIO 2.
Disable the default HDMI bridge and connector in favour of the DSI
panel.
Signed-off-by: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 4 ++
.../boot/dts/qcom/talos-lyra-evk-dlc0697.dtso | 77 ++++++++++++++++++++++
2 files changed, 81 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 243231692866..709a96ece14e 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -476,6 +476,10 @@ dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk.dtb
talos-lyra-evk-el2-dtbs := talos-lyra-evk.dtb talos-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-el2.dtb
+
+talos-lyra-evk-dlc0697-dtbs := talos-lyra-evk.dtb talos-lyra-evk-dlc0697.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-dlc0697.dtb
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-dlc0697.dtbo
x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb
x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo
diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-dlc0697.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-dlc0697.dtso
new file mode 100644
index 000000000000..b79e54459725
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-dlc0697.dtso
@@ -0,0 +1,77 @@
+// 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 = "gpio-backlight";
+ gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&hdmi_bridge {
+ status = "disabled";
+};
+
+&hdmi_connector {
+ status = "disabled";
+};
+
+&mdss_dsi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ panel@0 {
+ compatible = "dlc,dlc0697", "ilitek,ili7807s";
+ reg = <0>;
+
+ reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
+ backlight = <&backlight>;
+
+ vddi-supply = <&vreg_s4a>;
+ avdd-supply = <&vreg_disp_3p3>;
+ avee-supply = <&vreg_disp_3p3>;
+
+ pinctrl-0 = <&panel_rst_n &panel_te_pin>;
+ pinctrl-1 = <&panel_rst_n_suspend>;
+ pinctrl-names = "default", "sleep";
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in>;
+};
+
+&tlmm {
+ panel_te_pin: panel-te-pin-state {
+ pins = "gpio98";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ panel_rst_n: panel-rst-n-state {
+ pins = "gpio118";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ panel_rst_n_suspend: panel-rst-n-suspend-state {
+ pins = "gpio118";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+};
--
2.55.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/6] arm64: dts: qcom: talos-lyra-evk: Add RPi 7-inch DSI panel overlay
2026-10-30 9:40 [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board anand.tiwari
2026-10-30 9:40 ` [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support anand.tiwari
2026-10-30 9:40 ` [PATCH v2 2/6] arm64: dts: qcom: talos-lyra-evk: Add DLC DLC0697 panel overlay anand.tiwari
@ 2026-10-30 9:40 ` anand.tiwari
2026-10-30 9:40 ` [PATCH v2 4/6] arm64: dts: qcom: talos-lyra-evk: Add Waveshare 8-inch " anand.tiwari
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: anand.tiwari @ 2026-10-30 9:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list
Cc: linux-arm-msm, devicetree, linux-kernel, linux-rpi-kernel,
linux-arm-kernel, Anand Tiwari, Shashank Maurya, Konrad Dybcio
From: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Add a DT overlay to enable Raspberry Pi 7-inch DSI panel connected
to DSI 22pin on the carrier card.
DSI0 from SOC is routed through MUX which can be selected by DIP
switch S1016.5 ON for enabling this 22pin connector.
Add the regulator and backlight controller at I2C2 address 0x45,
Goodix GT911 touch controller, panel power and reset control, and
a 2-lane DSI connection.
Disable the default HDMI bridge and connector in favour of the RPi
DSI panel.
Signed-off-by: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 5 ++
.../qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso | 88 ++++++++++++++++++++++
2 files changed, 93 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 709a96ece14e..298054f47046 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -480,6 +480,11 @@ dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-el2.dtb
talos-lyra-evk-dlc0697-dtbs := talos-lyra-evk.dtb talos-lyra-evk-dlc0697.dtbo
dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-dlc0697.dtb
dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-dlc0697.dtbo
+
+talos-lyra-evk-raspberrypi-dsi-7inch-dtbs := \
+ talos-lyra-evk.dtb talos-lyra-evk-raspberrypi-dsi-7inch.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-raspberrypi-dsi-7inch.dtb
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-raspberrypi-dsi-7inch.dtbo
x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb
x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo
diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso
new file mode 100644
index 000000000000..6dafdbb87d3d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-raspberrypi-dsi-7inch.dtso
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ display_bl: backlight {
+ compatible = "pwm-backlight";
+ power-supply = <®_display>;
+ pwms = <&mcu 0 255 0>;
+ };
+
+ reg_display: regulator-display {
+ compatible = "regulator-fixed";
+ regulator-name = "rpi-display";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
+
+ reg_dsi_touch: regulator-dsi-touch {
+ compatible = "regulator-fixed";
+ gpio = <&mcu 1 GPIO_ACTIVE_HIGH>;
+ regulator-name = "rpi-touch";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <50000>;
+ enable-active-high;
+ };
+};
+
+&hdmi_bridge {
+ status = "disabled";
+};
+
+&hdmi_connector {
+ status = "disabled";
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mcu: gpio@45 {
+ compatible = "raspberrypi,touchscreen-panel-regulator-v2";
+ reg = <0x45>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ #pwm-cells = <3>;
+ };
+
+ touchscreen@5d {
+ compatible = "goodix,gt911";
+ reg = <0x5d>;
+ AVDD28-supply = <®_dsi_touch>;
+ touchscreen-size-x = <720>;
+ touchscreen-size-y = <1280>;
+ };
+};
+
+&mdss_dsi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ panel@0 {
+ compatible = "raspberrypi,dsi-7inch", "ilitek,ili9881c";
+ reg = <0>;
+
+ reset-gpios = <&mcu 0 GPIO_ACTIVE_LOW>;
+ power-supply = <®_display>;
+ iovcc-supply = <&vreg_s4a>;
+ backlight = <&display_bl>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in>;
+ data-lanes = <0 1>;
+};
--
2.55.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/6] arm64: dts: qcom: talos-lyra-evk: Add Waveshare 8-inch DSI panel overlay
2026-10-30 9:40 [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board anand.tiwari
` (2 preceding siblings ...)
2026-10-30 9:40 ` [PATCH v2 3/6] arm64: dts: qcom: talos-lyra-evk: Add RPi 7-inch DSI " anand.tiwari
@ 2026-10-30 9:40 ` anand.tiwari
2026-10-30 9:40 ` [PATCH v2 5/6] arm64: defconfig: Enable PWM_CLK for backlight PWM support Anand Tiwari
2026-10-30 9:40 ` [PATCH v2 6/6] arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay Anand Tiwari
5 siblings, 0 replies; 11+ messages in thread
From: anand.tiwari @ 2026-10-30 9:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list
Cc: linux-arm-msm, devicetree, linux-kernel, linux-rpi-kernel,
linux-arm-kernel, Anand Tiwari, Shashank Maurya, Konrad Dybcio
From: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Add a DT overlay to enable Waveshare 8-inch DSI panel connected to
DSI 22pin on the carrier card.
DSI0 from SOC is routed through MUX which can be selected by DIP
switch S1016.5 ON, for enabling this 22pin connector.
Add the JD9365DA-H3 panel, GPIO expander at I2C2 address 0x45 for
panel power, reset and backlight, and the Goodix GT9271 touch
controller.
Disable the default HDMI bridge and connector in favour of the
Waveshare DSI panel.
Signed-off-by: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 5 ++
.../qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso | 75 ++++++++++++++++++++++
2 files changed, 80 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 298054f47046..b6a61339914d 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -485,6 +485,11 @@ talos-lyra-evk-raspberrypi-dsi-7inch-dtbs := \
talos-lyra-evk.dtb talos-lyra-evk-raspberrypi-dsi-7inch.dtbo
dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-raspberrypi-dsi-7inch.dtb
dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-raspberrypi-dsi-7inch.dtbo
+
+talos-lyra-evk-waveshare-dsi-8inch-dtbs := \
+ talos-lyra-evk.dtb talos-lyra-evk-waveshare-dsi-8inch.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-waveshare-dsi-8inch.dtb
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-waveshare-dsi-8inch.dtbo
x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb
x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo
diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso
new file mode 100644
index 000000000000..e9a8fdf0c179
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-waveshare-dsi-8inch.dtso
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+ panel_avdd: regulator-panel-avdd {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-avdd";
+ gpios = <&wsgpio 0 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ panel_iovcc: regulator-panel-iovcc {
+ compatible = "regulator-fixed";
+ regulator-name = "panel-iovcc";
+ gpios = <&wsgpio 4 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&hdmi_bridge {
+ status = "disabled";
+};
+
+&hdmi_connector {
+ status = "disabled";
+};
+
+&i2c2 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wsgpio: gpio@45 {
+ compatible = "waveshare,dsi-touch-gpio";
+ reg = <0x45>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+
+ touchscreen@5d {
+ compatible = "goodix,gt9271";
+ reg = <0x5d>;
+ reset-gpios = <&wsgpio 9 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&mdss_dsi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ panel@0 {
+ compatible = "waveshare,8.0-dsi-touch-a", "jadard,jd9365da-h3";
+ reg = <0>;
+
+ reset-gpios = <&wsgpio 1 GPIO_ACTIVE_LOW>;
+ vccio-supply = <&panel_iovcc>;
+ vdd-supply = <&panel_avdd>;
+ backlight = <&wsgpio>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in>;
+};
--
2.55.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 5/6] arm64: defconfig: Enable PWM_CLK for backlight PWM support
2026-10-30 9:40 [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board anand.tiwari
` (3 preceding siblings ...)
2026-10-30 9:40 ` [PATCH v2 4/6] arm64: dts: qcom: talos-lyra-evk: Add Waveshare 8-inch " anand.tiwari
@ 2026-10-30 9:40 ` Anand Tiwari
2026-10-30 9:40 ` [PATCH v2 6/6] arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay Anand Tiwari
5 siblings, 0 replies; 11+ messages in thread
From: Anand Tiwari @ 2026-10-30 9:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list
Cc: linux-arm-msm, devicetree, linux-kernel, linux-rpi-kernel,
linux-arm-kernel, Anand Tiwari
Enable CONFIG_PWM_CLK so the generic clock-based PWM driver is
available, used by the Qualcomm Talos Lyra EVK LVDS panel overlay
backlight.
Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 50d6357727af..365a69470d13 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1620,6 +1620,7 @@ CONFIG_PWM_ADP5585=m
CONFIG_PWM_APPLE=m
CONFIG_PWM_BCM2835=m
CONFIG_PWM_BRCMSTB=m
+CONFIG_PWM_CLK=m
CONFIG_PWM_CROS_EC=m
CONFIG_PWM_IMX27=m
CONFIG_PWM_MEDIATEK=m
--
2.55.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 6/6] arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay
2026-10-30 9:40 [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board anand.tiwari
` (4 preceding siblings ...)
2026-10-30 9:40 ` [PATCH v2 5/6] arm64: defconfig: Enable PWM_CLK for backlight PWM support Anand Tiwari
@ 2026-10-30 9:40 ` Anand Tiwari
2026-10-30 9:50 ` sashiko-bot
5 siblings, 1 reply; 11+ messages in thread
From: Anand Tiwari @ 2026-10-30 9:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list
Cc: linux-arm-msm, devicetree, linux-kernel, linux-rpi-kernel,
linux-arm-kernel, Anand Tiwari, Konrad Dybcio
Add a DT overlay for Qualcomm Talos Lyra EVK, to enable LVDS interface
when LVDS daughter card is connected to DSI0_B2B on carrier card.
There is SN65DSI84 DSI-to-LVDS bridge on the daughter card which is
connected through I2C5 with reset and interrupt connected to
GPIO61 and GPIO60. Backlight is driven by a generic clock-based PWM
using GCC_GP3 on TLMM GPIO59, with an additional backlight enable
GPIO on TLMM GPIO2.
Disable the default HDMI bridge and connector in favour of the LVDS
panel.
Signed-off-by: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 4 +
.../qcom/talos-lyra-evk-lvds-auo,g133han01.dtso | 133 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/talos-lyra-evk.dts | 1 +
3 files changed, 138 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index b6a61339914d..012dee96f700 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -468,6 +468,10 @@ dtb-$(CONFIG_ARCH_QCOM) += talos-evk-camera-imx577.dtb
talos-evk-lvds-auo,g133han01-dtbs := \
talos-evk.dtb talos-evk-lvds-auo,g133han01.dtbo
dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb
+talos-lyra-evk-lvds-auo,g133han01-dtbs := \
+ talos-lyra-evk.dtb talos-lyra-evk-lvds-auo,g133han01.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-lvds-auo,g133han01.dtb
+dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-lvds-auo,g133han01.dtbo
talos-evk-rpi-display-2-5in-dtbs := \
talos-evk.dtb talos-evk-rpi-display-2-5in.dtbo
dtb-$(CONFIG_ARCH_QCOM) += talos-evk-rpi-display-2-5in.dtb
diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso
new file mode 100644
index 000000000000..8c592e6317c3
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso
@@ -0,0 +1,133 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/qcom,qcs615-gcc.h>
+#include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+&{/} {
+ bklt_pwm: pwm {
+ compatible = "clk-pwm";
+ #pwm-cells = <2>;
+ assigned-clock-parents = <&rpmhcc RPMH_CXO_CLK>;
+ assigned-clocks = <&gcc GCC_GP3_CLK_SRC>;
+ clocks = <&gcc GCC_GP3_CLK>;
+ pinctrl-0 = <&bklt_pwm_default>;
+ pinctrl-names = "default";
+ };
+
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&bklt_pwm 0 100000>;
+ power-supply = <&vreg_disp_3p3>;
+ enable-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
+ brightness-levels = <0 255>;
+ num-interpolated-steps = <255>;
+ default-brightness-level = <128>;
+ };
+
+ panel-lvds {
+ compatible = "auo,g133han01";
+ power-supply = <&vreg_disp_3p3>;
+ backlight = <&backlight>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* LVDS Channel A - odd pixels */
+ port@0 {
+ reg = <0>;
+ dual-lvds-odd-pixels;
+
+ lvds_panel_out_a: endpoint {
+ remote-endpoint = <&sn65dsi84_out_a>;
+ };
+ };
+
+ /* LVDS Channel B - even pixels */
+ port@1 {
+ reg = <1>;
+ dual-lvds-even-pixels;
+
+ lvds_panel_out_b: endpoint {
+ remote-endpoint = <&sn65dsi84_out_b>;
+ };
+ };
+ };
+ };
+};
+
+&hdmi_connector {
+ status = "disabled";
+};
+
+&i2c5 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bridge@2c {
+ compatible = "ti,sn65dsi84";
+ reg = <0x2c>;
+ enable-gpios = <&tlmm 61 GPIO_ACTIVE_HIGH>;
+ interrupts-extended = <&tlmm 60 IRQ_TYPE_EDGE_FALLING>;
+ vcc-supply = <&vreg_s4a>;
+
+ pinctrl-0 = <&bridge_irq_pin &bridge_rst_pin>;
+ pinctrl-names = "default";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ sn65dsi84_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ data-lanes = <1 2 3 4>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ sn65dsi84_out_a: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&lvds_panel_out_a>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+
+ sn65dsi84_out_b: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&lvds_panel_out_b>;
+ };
+ };
+ };
+ };
+};
+
+&hdmi_bridge {
+ status = "disabled";
+};
+
+&tlmm {
+ bklt_pwm_default: bklt-pwm-default-state {
+ pins = "gpio59";
+ function = "gcc_gp";
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&sn65dsi84_in>;
+ data-lanes = <0 1 2 3>;
+};
diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
index eeb8e903b03b..e5c2ea9e1e07 100644
--- a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
+++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
@@ -15,6 +15,7 @@ / {
aliases {
i2c2 = &i2c2;
+ i2c5 = &i2c5;
};
dp0-connector {
--
2.55.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support
2026-10-30 9:40 ` [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support anand.tiwari
@ 2026-10-30 9:49 ` sashiko-bot
2026-10-30 14:30 ` Anand Tiwari
0 siblings, 1 reply; 11+ messages in thread
From: sashiko-bot @ 2026-10-30 9:49 UTC (permalink / raw)
To: anand.tiwari; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] arm64: dts: qcom: talos-lyra-evk: swapped DSI supplies and invalid vdds-supply
- [Low] arm64: dts: qcom: talos-lyra-evk: duplicate tlmm node and unused header
--
commit 22e8de3b84d3ac4983c9f5f3821155bfe2321465
Author: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support
This commit adds device tree support for the Lontium LT9611UXD DSI-to-HDMI
bridge on the Talos Lyra EVK carrier board, connected via I2C2 and MDSS
DSI0.
> diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
> index d4468e6099112..eeb8e903b03b1 100644
> --- a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
> @@ -4,6 +4,8 @@
> */
> /dts-v1/;
>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> #include "talos-lyra-evk-som.dtsi"
[ ... ]
> @@ -74,6 +139,23 @@ &mdss_dp0_out {
> remote-endpoint = <&dp0_connector_in>;
> };
>
> +&mdss_dsi0 {
> + vdda-supply = <&vreg_l5a>;
> +
> + status = "okay";
> +};
> +
> +&mdss_dsi0_out {
> + remote-endpoint = <&hdmi_bridge_in>;
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi0_phy {
> + vdds-supply = <&vreg_l11a>;
> +
> + status = "okay";
> +};
[Severity: Medium]
Are the regulator supplies for mdss_dsi0 and mdss_dsi0_phy swapped here, and
should mdss_dsi0_phy use vcca-supply instead of vdds-supply?
In arch/arm64/boot/dts/qcom/talos.dtsi, mdss_dsi0_phy uses compatible
qcom,sm6150-dsi-phy-14nm. The schema in
Documentation/devicetree/bindings/phy/qcom,dsi-phy-14nm.yaml sets
unevaluatedProperties: false and only defines vcca-supply, not vdds-supply:
vcca-supply:
description: Phandle to vcca regulator device node.
In drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c, the 14nm PHY driver never
requests vdds, so devm_regulator_bulk_get_const() in dsi_phy_driver_probe()
ignores vdds-supply and falls back to a dummy regulator, leaving vreg_l11a
with no consumers.
Furthermore, in arch/arm64/boot/dts/qcom/talos-lyra-evk-som.dtsi, vreg_l5a
is the 0.88V LDO5 rail and vreg_l11a is the 1.2V LDO11 rail. In
drivers/gpu/drm/msm/dsi/dsi_cfg.c (dsi_v2_4_regulators), the DSI controller
expects vdda to be the 1.2V rail, and other QCS615/Talos boards such as
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi and
arch/arm64/boot/dts/qcom/qcs615-ride.dts wire these as:
&mdss_dsi0 {
vdda-supply = <&vreg_l11a>;
status = "okay";
};
&mdss_dsi0_phy {
vcca-supply = <&vreg_l5a>;
status = "okay";
};
>
> &pon_pwrkey {
> status = "okay";
> };
> @@ -113,3 +195,26 @@ &usb_2 {
>
> status = "okay";
> };
> +
> +&tlmm {
> + lcd_bias_en: lcd-bias-en-state {
> + pins = "gpio3";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + bridge_irq_pin: bridge-irq-state {
> + pins = "gpio60";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + bridge_rst_pin: bridge-rst-state {
> + pins = "gpio61";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +};
[Severity: Low]
This isn't a bug, but arch/arm64/boot/dts/qcom/talos-lyra-evk.dts already
has a &tlmm node ordered alphabetically between &spi6 and &usb_1:
&tlmm {
dp_hot_plug_det: dp-hot-plug-det-state {
pins = "gpio104";
function = "dp_hot";
bias-disable;
};
};
Could lcd_bias_en, bridge_irq_pin, and bridge_rst_pin be merged into the
existing &tlmm node rather than adding a second &tlmm block at the end of
the file?
Also, the newly added dt-bindings/pinctrl/qcom,pmic-gpio.h include at the
top of the file appears to be unused (and dt-bindings/gpio/gpio.h is already
included via talos-lyra-evk-som.dtsi). Could the unused header be dropped?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261030-lyra-display-upstream-post-v2-0-906302159392@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 6/6] arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay
2026-10-30 9:40 ` [PATCH v2 6/6] arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay Anand Tiwari
@ 2026-10-30 9:50 ` sashiko-bot
2026-10-30 14:08 ` Anand Tiwari
0 siblings, 1 reply; 11+ messages in thread
From: sashiko-bot @ 2026-10-30 9:50 UTC (permalink / raw)
To: Anand Tiwari; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] arm64: dts: qcom: talos-lyra-evk-lvds: clk-pwm on GCC_GP3 fails with -EINVAL
--
commit c54a5c6f3e0408807da76cadc10d556338f09c09
Author: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay
This commit adds a DT overlay for the Qualcomm Talos Lyra EVK to support the
AUO G133HAN01 LVDS panel connected via a TI SN65DSI84 DSI-to-LVDS bridge on
I2C5, with backlight control using clk-pwm on GCC_GP3.
> diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso
> new file mode 100644
> index 0000000000000..8c592e6317c30
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso
> @@ -0,0 +1,133 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/clock/qcom,qcs615-gcc.h>
> +#include <dt-bindings/clock/qcom,rpmh.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +&{/} {
> + bklt_pwm: pwm {
> + compatible = "clk-pwm";
> + #pwm-cells = <2>;
> + assigned-clock-parents = <&rpmhcc RPMH_CXO_CLK>;
> + assigned-clocks = <&gcc GCC_GP3_CLK_SRC>;
> + clocks = <&gcc GCC_GP3_CLK>;
> + pinctrl-0 = <&bklt_pwm_default>;
> + pinctrl-names = "default";
> + };
> +
> + backlight: backlight {
> + compatible = "pwm-backlight";
> + pwms = <&bklt_pwm 0 100000>;
> + power-supply = <&vreg_disp_3p3>;
> + enable-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
> + brightness-levels = <0 255>;
> + num-interpolated-steps = <255>;
> + default-brightness-level = <128>;
> + };
[Severity: High]
Will clk-pwm work with GCC_GP3_CLK here, or will pwm_clk_apply() fail with
-EINVAL?
When backlight requests a 100000 ns period (10 kHz),
pwm_backlight_update_status() -> pwm_apply_might_sleep() -> __pwm_apply() ->
pwm_clk_apply() runs:
drivers/pwm/pwm-clk.c:pwm_clk_apply() {
...
rate = DIV64_U64_ROUND_UP(NSEC_PER_SEC, period);
ret = clk_set_rate(pcchip->clk, rate);
if (ret)
return ret;
if (state->polarity == PWM_POLARITY_INVERSED)
duty_cycle = period - duty_cycle;
return clk_set_duty_cycle(pcchip->clk, duty_cycle, period);
}
In drivers/clk/qcom/gcc-qcs615.c, gcc_gp3_clk propagates rate changes to
gcc_gp3_clk_src, which uses clk_rcg2_ops with ftbl_gcc_gp1_clk_src rather
than clk_rcg2_gp_ops:
static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
F(25000000, P_GPLL0_OUT_AUX2_DIV, 12, 0, 0),
F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0),
F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
{ }
};
Because all entries in ftbl_gcc_gp1_clk_src have m = 0 and n = 0, calling
clk_set_rate(pcchip->clk, 10000) rounds 10 kHz up to the 25 MHz entry,
switches the parent away from RPMH_CXO_CLK to P_GPLL0_OUT_AUX2_DIV, and leaves
the MND divider in bypass mode (CFG_MODE_MASK == 0).
Immediately after that, clk_set_duty_cycle() calls clk_rcg2_set_duty_cycle()
in drivers/clk/qcom/clk-rcg2.c:
/* Duty-cycle cannot be modified if MND divider is in bypass mode. */
if (!(cfg & CFG_MODE_MASK))
return -EINVAL;
Doesn't this cause every brightness update to fail with -EINVAL while leaving
an unmodulated 25 MHz clock on gpio59 (and leaking clk_enable() references in
pwm_clk_apply() when __pwm_apply() fails before setting pwm->state.enabled)?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261030-lyra-display-upstream-post-v2-0-906302159392@oss.qualcomm.com?part=6
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 6/6] arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay
2026-10-30 9:50 ` sashiko-bot
@ 2026-10-30 14:08 ` Anand Tiwari
0 siblings, 0 replies; 11+ messages in thread
From: Anand Tiwari @ 2026-10-30 14:08 UTC (permalink / raw)
To: sashiko-reviews; +Cc: devicetree, robh, conor+dt
On Fri, Oct 30, 2026 at 09:50:39AM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [High] arm64: dts: qcom: talos-lyra-evk-lvds: clk-pwm on GCC_GP3 fails with -EINVAL
> --
>
> commit c54a5c6f3e0408807da76cadc10d556338f09c09
> Author: Anand Tiwari <anand.tiwari@oss.qualcomm.com>
>
> arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay
>
> This commit adds a DT overlay for the Qualcomm Talos Lyra EVK to support the
> AUO G133HAN01 LVDS panel connected via a TI SN65DSI84 DSI-to-LVDS bridge on
> I2C5, with backlight control using clk-pwm on GCC_GP3.
>
> > diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso
> > new file mode 100644
> > index 0000000000000..8c592e6317c30
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-lvds-auo,g133han01.dtso
> > @@ -0,0 +1,133 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +/*
> > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> > + */
> > +
> > +/dts-v1/;
> > +/plugin/;
> > +
> > +#include <dt-bindings/clock/qcom,qcs615-gcc.h>
> > +#include <dt-bindings/clock/qcom,rpmh.h>
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/interrupt-controller/irq.h>
> > +
> > +&{/} {
> > + bklt_pwm: pwm {
> > + compatible = "clk-pwm";
> > + #pwm-cells = <2>;
> > + assigned-clock-parents = <&rpmhcc RPMH_CXO_CLK>;
> > + assigned-clocks = <&gcc GCC_GP3_CLK_SRC>;
> > + clocks = <&gcc GCC_GP3_CLK>;
> > + pinctrl-0 = <&bklt_pwm_default>;
> > + pinctrl-names = "default";
> > + };
> > +
> > + backlight: backlight {
> > + compatible = "pwm-backlight";
> > + pwms = <&bklt_pwm 0 100000>;
> > + power-supply = <&vreg_disp_3p3>;
> > + enable-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
> > + brightness-levels = <0 255>;
> > + num-interpolated-steps = <255>;
> > + default-brightness-level = <128>;
> > + };
>
> [Severity: High]
> Will clk-pwm work with GCC_GP3_CLK here, or will pwm_clk_apply() fail with
> -EINVAL?
>
> When backlight requests a 100000 ns period (10 kHz),
> pwm_backlight_update_status() -> pwm_apply_might_sleep() -> __pwm_apply() ->
> pwm_clk_apply() runs:
>
> drivers/pwm/pwm-clk.c:pwm_clk_apply() {
> ...
> rate = DIV64_U64_ROUND_UP(NSEC_PER_SEC, period);
> ret = clk_set_rate(pcchip->clk, rate);
> if (ret)
> return ret;
>
> if (state->polarity == PWM_POLARITY_INVERSED)
> duty_cycle = period - duty_cycle;
>
> return clk_set_duty_cycle(pcchip->clk, duty_cycle, period);
> }
>
> In drivers/clk/qcom/gcc-qcs615.c, gcc_gp3_clk propagates rate changes to
> gcc_gp3_clk_src, which uses clk_rcg2_ops with ftbl_gcc_gp1_clk_src rather
> than clk_rcg2_gp_ops:
>
> static const struct freq_tbl ftbl_gcc_gp1_clk_src[] = {
> F(25000000, P_GPLL0_OUT_AUX2_DIV, 12, 0, 0),
> F(50000000, P_GPLL0_OUT_MAIN, 12, 0, 0),
> F(100000000, P_GPLL0_OUT_MAIN, 6, 0, 0),
> F(200000000, P_GPLL0_OUT_MAIN, 3, 0, 0),
> { }
> };
>
> Because all entries in ftbl_gcc_gp1_clk_src have m = 0 and n = 0, calling
> clk_set_rate(pcchip->clk, 10000) rounds 10 kHz up to the 25 MHz entry,
> switches the parent away from RPMH_CXO_CLK to P_GPLL0_OUT_AUX2_DIV, and leaves
> the MND divider in bypass mode (CFG_MODE_MASK == 0).
>
> Immediately after that, clk_set_duty_cycle() calls clk_rcg2_set_duty_cycle()
> in drivers/clk/qcom/clk-rcg2.c:
>
> /* Duty-cycle cannot be modified if MND divider is in bypass mode. */
> if (!(cfg & CFG_MODE_MASK))
> return -EINVAL;
>
> Doesn't this cause every brightness update to fail with -EINVAL while leaving
> an unmodulated 25 MHz clock on gpio59 (and leaking clk_enable() references in
> pwm_clk_apply() when __pwm_apply() fails before setting pwm->state.enabled)?
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20261030-lyra-display-upstream-post-v2-0-906302159392@oss.qualcomm.com?part=6
Yes correct. This series depends on a separate clk driver fix that adds real
10kHz/100kHz entries (non-bypass M/N dividers) to ftbl_gcc_gp1_clk_src
for gcc_gp3_clk_src: https://lore.kernel.org/r/20261016-talos-gp-clk-freqs-update-v1-1-17c9a095063c@oss.qualcomm.com/
Without it, exactly as you describe: clk_set_rate() rounds up to the
nearest static (bypass-mode) table entry and clk_rcg2_set_duty_cycle()
returns -EINVAL. We will add this dependency in next series
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support
2026-10-30 9:49 ` sashiko-bot
@ 2026-10-30 14:30 ` Anand Tiwari
0 siblings, 0 replies; 11+ messages in thread
From: Anand Tiwari @ 2026-10-30 14:30 UTC (permalink / raw)
To: sashiko-reviews; +Cc: devicetree, robh, conor+dt
On Fri, Oct 30, 2026 at 09:49:28AM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> - [Medium] arm64: dts: qcom: talos-lyra-evk: swapped DSI supplies and invalid vdds-supply
> - [Low] arm64: dts: qcom: talos-lyra-evk: duplicate tlmm node and unused header
> --
>
> commit 22e8de3b84d3ac4983c9f5f3821155bfe2321465
> Author: Mohit Dsor <mohit.dsor@oss.qualcomm.com>
>
> arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support
>
> This commit adds device tree support for the Lontium LT9611UXD DSI-to-HDMI
> bridge on the Talos Lyra EVK carrier board, connected via I2C2 and MDSS
> DSI0.
>
> > diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
> > index d4468e6099112..eeb8e903b03b1 100644
> > --- a/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
> > +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk.dts
> > @@ -4,6 +4,8 @@
> > */
> > /dts-v1/;
> >
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> > #include "talos-lyra-evk-som.dtsi"
>
> [ ... ]
>
> > @@ -74,6 +139,23 @@ &mdss_dp0_out {
> > remote-endpoint = <&dp0_connector_in>;
> > };
> >
> > +&mdss_dsi0 {
> > + vdda-supply = <&vreg_l5a>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&mdss_dsi0_out {
> > + remote-endpoint = <&hdmi_bridge_in>;
> > + data-lanes = <0 1 2 3>;
> > +};
> > +
> > +&mdss_dsi0_phy {
> > + vdds-supply = <&vreg_l11a>;
> > +
> > + status = "okay";
> > +};
>
> [Severity: Medium]
> Are the regulator supplies for mdss_dsi0 and mdss_dsi0_phy swapped here, and
> should mdss_dsi0_phy use vcca-supply instead of vdds-supply?
>
> In arch/arm64/boot/dts/qcom/talos.dtsi, mdss_dsi0_phy uses compatible
> qcom,sm6150-dsi-phy-14nm. The schema in
> Documentation/devicetree/bindings/phy/qcom,dsi-phy-14nm.yaml sets
> unevaluatedProperties: false and only defines vcca-supply, not vdds-supply:
>
> vcca-supply:
> description: Phandle to vcca regulator device node.
>
> In drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c, the 14nm PHY driver never
> requests vdds, so devm_regulator_bulk_get_const() in dsi_phy_driver_probe()
> ignores vdds-supply and falls back to a dummy regulator, leaving vreg_l11a
> with no consumers.
>
> Furthermore, in arch/arm64/boot/dts/qcom/talos-lyra-evk-som.dtsi, vreg_l5a
> is the 0.88V LDO5 rail and vreg_l11a is the 1.2V LDO11 rail. In
> drivers/gpu/drm/msm/dsi/dsi_cfg.c (dsi_v2_4_regulators), the DSI controller
> expects vdda to be the 1.2V rail, and other QCS615/Talos boards such as
> arch/arm64/boot/dts/qcom/talos-evk-som.dtsi and
> arch/arm64/boot/dts/qcom/qcs615-ride.dts wire these as:
>
> &mdss_dsi0 {
> vdda-supply = <&vreg_l11a>;
> status = "okay";
> };
>
> &mdss_dsi0_phy {
> vcca-supply = <&vreg_l5a>;
> status = "okay";
> };
>
We will add this in next patch.
> >
> > &pon_pwrkey {
> > status = "okay";
> > };
> > @@ -113,3 +195,26 @@ &usb_2 {
> >
> > status = "okay";
> > };
> > +
> > +&tlmm {
> > + lcd_bias_en: lcd-bias-en-state {
> > + pins = "gpio3";
> > + function = "gpio";
> > + drive-strength = <8>;
> > + bias-disable;
> > + };
> > +
> > + bridge_irq_pin: bridge-irq-state {
> > + pins = "gpio60";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-disable;
> > + };
> > +
> > + bridge_rst_pin: bridge-rst-state {
> > + pins = "gpio61";
> > + function = "gpio";
> > + drive-strength = <8>;
> > + bias-disable;
> > + };
> > +};
>
> [Severity: Low]
> This isn't a bug, but arch/arm64/boot/dts/qcom/talos-lyra-evk.dts already
> has a &tlmm node ordered alphabetically between &spi6 and &usb_1:
>
> &tlmm {
> dp_hot_plug_det: dp-hot-plug-det-state {
> pins = "gpio104";
> function = "dp_hot";
> bias-disable;
> };
> };
>
> Could lcd_bias_en, bridge_irq_pin, and bridge_rst_pin be merged into the
> existing &tlmm node rather than adding a second &tlmm block at the end of
> the file?
>
> Also, the newly added dt-bindings/pinctrl/qcom,pmic-gpio.h include at the
> top of the file appears to be unused (and dt-bindings/gpio/gpio.h is already
> included via talos-lyra-evk-som.dtsi). Could the unused header be dropped?
>
It will be in same tlmm we will handle this in next patch.
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20261030-lyra-display-upstream-post-v2-0-906302159392@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-10-30 14:31 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-30 9:40 [PATCH v2 0/6] arm64: dts: qcom: talos-lyra-evk: Add display overlays for EVK board anand.tiwari
2026-10-30 9:40 ` [PATCH v2 1/6] arm64: dts: qcom: talos-lyra-evk: Add LT9611UXD HDMI bridge support anand.tiwari
2026-10-30 9:49 ` sashiko-bot
2026-10-30 14:30 ` Anand Tiwari
2026-10-30 9:40 ` [PATCH v2 2/6] arm64: dts: qcom: talos-lyra-evk: Add DLC DLC0697 panel overlay anand.tiwari
2026-10-30 9:40 ` [PATCH v2 3/6] arm64: dts: qcom: talos-lyra-evk: Add RPi 7-inch DSI " anand.tiwari
2026-10-30 9:40 ` [PATCH v2 4/6] arm64: dts: qcom: talos-lyra-evk: Add Waveshare 8-inch " anand.tiwari
2026-10-30 9:40 ` [PATCH v2 5/6] arm64: defconfig: Enable PWM_CLK for backlight PWM support Anand Tiwari
2026-10-30 9:40 ` [PATCH v2 6/6] arm64: dts: qcom: talos-lyra-evk: Add AUO G133HAN01 LVDS panel overlay Anand Tiwari
2026-10-30 9:50 ` sashiko-bot
2026-10-30 14:08 ` Anand Tiwari
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox