* [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* 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 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
* [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 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