Devicetree
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: qcom: monaco-arduino-monza: Add Waveshare 8" DSI touch overlay
@ 2026-11-13 20:00 Vishnu Saini
  2026-11-13 20:42 ` sashiko-bot
  0 siblings, 1 reply; 2+ messages in thread
From: Vishnu Saini @ 2026-11-13 20:00 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, venkata.valluru,
	Jessica Zhang, Shashank Maurya, Vishnu Saini

Add an overlay for the Waveshare 8" DSI TOUCH-A kit on the DSI0
connector: the Waveshare GPIO expander (panel supplies, resets,
backlight), the Goodix gt9271 touch controller, the supply regulators
and the JD9365DA based panel.

The expander and touch controller sit on the CCI0 I2C bus, so enable
cci0 for them.

DSI0 is shared with the on-board HDMI path, so disable adv7535, the HDMI
connector and the hdmi-mi2s-playback-dai-link sound node, which would
otherwise wait on the disabled adv7535 codec. HDMI audio is therefore
unavailable while the overlay is applied. Add the hdmi_connector and
hdmi_mi2s_playback_dai_link labels to the base DTS for this.

Co-developed-by: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Signed-off-by: Shashank Maurya <shashank.maurya@oss.qualcomm.com>
Signed-off-by: Vishnu Saini <vishnu.saini@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/Makefile                  |   5 ++
 ...naco-arduino-monza-waveshare-8-dsi-touch-a.dtso | 100 +++++++++++++++++++++
 arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts  |   4 +-
 3 files changed, 107 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 8329c06b60a3..faa0e0f7b867 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -83,6 +83,11 @@ dtb-$(CONFIG_ARCH_QCOM)	+= monaco-arduino-monza.dtb
 monaco-arduino-monza-el2-dtbs	:= monaco-arduino-monza.dtb monaco-el2.dtbo
 
 dtb-$(CONFIG_ARCH_QCOM)	+= monaco-arduino-monza-el2.dtb
+
+monaco-arduino-monza-waveshare-8-dsi-touch-a-dtbs	:= monaco-arduino-monza.dtb monaco-el2.dtbo monaco-arduino-monza-waveshare-8-dsi-touch-a.dtbo
+
+dtb-$(CONFIG_ARCH_QCOM)	+= monaco-arduino-monza-waveshare-8-dsi-touch-a.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= monaco-arduino-monza-waveshare-8-dsi-touch-a.dtbo
 dtb-$(CONFIG_ARCH_QCOM)	+= monaco-ac-evk.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= monaco-evk.dtb
 
diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-8-dsi-touch-a.dtso b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-8-dsi-touch-a.dtso
new file mode 100644
index 000000000000..003c5bcea497
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-8-dsi-touch-a.dtso
@@ -0,0 +1,100 @@
+// 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;
+	};
+
+	regulator-panel-vcc {
+		compatible = "regulator-fixed";
+		regulator-name = "panel-vcc";
+		gpios = <&wsgpio 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+		regulator-always-on;
+	};
+};
+
+&adv7535 {
+	status = "disabled";
+};
+
+&cci0 {
+	pinctrl-0 = <&cci0_0_default>;
+	pinctrl-1 = <&cci0_0_sleep>;
+	pinctrl-names = "default", "sleep";
+	status = "okay";
+};
+
+&cci0_i2c0 {
+	#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>;
+	};
+};
+
+&hdmi_connector {
+	status = "disabled";
+};
+
+&hdmi_mi2s_playback_dai_link {
+	status = "disabled";
+};
+
+&mdss_dsi0 {
+	#address-cells = <1>;
+	#size-cells = <0>;
+	vdda-supply = <&vreg_l1c>;
+
+	panel@0 {
+		compatible = "waveshare,8.0-dsi-touch-a", "jadard,jd9365da-h3";
+		reg = <0>;
+		backlight = <&wsgpio>;
+		reset-gpios = <&wsgpio 1 GPIO_ACTIVE_LOW>;
+		vccio-supply = <&panel_iovcc>;
+		vdd-supply = <&panel_avdd>;
+
+		port {
+			panel_in: endpoint {
+				remote-endpoint = <&mdss_dsi0_out>;
+			};
+		};
+	};
+};
+
+&mdss_dsi0_out {
+	data-lanes = <0 1 2 3>;
+	remote-endpoint = <&panel_in>;
+};
+
+&mdss_dsi0_phy {
+	vdds-supply = <&vreg_l4a>;
+};
diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
index 9ac2a04b302d..f518db091092 100644
--- a/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza.dts
@@ -51,7 +51,7 @@ button-home {
 		};
 	};
 
-	hdmi-connector {
+	hdmi_connector: hdmi-connector {
 		compatible = "hdmi-connector";
 		label = "hdmi";
 		type = "a";
@@ -113,7 +113,7 @@ platform {
 			};
 		};
 
-		hdmi-mi2s-playback-dai-link {
+		hdmi_mi2s_playback_dai_link: hdmi-mi2s-playback-dai-link {
 			link-name = "HDMI Playback";
 
 			codec {

---
base-commit: aaa2f954c21b205a0bcd0961e5b2be4e82e58455
change-id: 20261112-monza_waveshare_dtso-9f9934f7aa77

Best regards,
-- 
Vishnu Saini <vishnu.saini@oss.qualcomm.com>


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] arm64: dts: qcom: monaco-arduino-monza: Add Waveshare 8" DSI touch overlay
  2026-11-13 20:00 [PATCH] arm64: dts: qcom: monaco-arduino-monza: Add Waveshare 8" DSI touch overlay Vishnu Saini
@ 2026-11-13 20:42 ` sashiko-bot
  0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-11-13 20:42 UTC (permalink / raw)
  To: Vishnu Saini; +Cc: devicetree, robh, conor+dt

Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [High] arm64: dts: qcom: monaco-arduino-monza-waveshare: wrong
  mdss_dsi0 vdda-supply
- [High] arm64: dts: qcom: Makefile: monaco-el2.dtbo applied to non-EL2
  Waveshare DTB
--

commit b8a3c8f8c7e536ea10afaadd72a3ac9f01d55e3c
Author: Vishnu Saini <vishnu.saini@oss.qualcomm.com>

arm64: dts: qcom: monaco-arduino-monza: Add Waveshare 8" DSI touch overlay

This commit adds a device tree overlay for the Waveshare 8" DSI TOUCH-A
panel and touch controller on the Arduino Monza board, disabling the
shared DSI0 HDMI bridge path when applied.

> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 8329c06b60a3f..faa0e0f7b867f 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -83,6 +83,11 @@ dtb-$(CONFIG_ARCH_QCOM)	+= monaco-arduino-monza.dtb
>  monaco-arduino-monza-el2-dtbs	:= monaco-arduino-monza.dtb monaco-el2.dtbo
>  
>  dtb-$(CONFIG_ARCH_QCOM)	+= monaco-arduino-monza-el2.dtb
> +
> +monaco-arduino-monza-waveshare-8-dsi-touch-a-dtbs	:= monaco-arduino-monza.dtb monaco-el2.dtbo monaco-arduino-monza-waveshare-8-dsi-touch-a.dtbo

[Severity: High]
Should monaco-arduino-monza-waveshare-8-dsi-touch-a-dtbs omit
monaco-el2.dtbo?  Including monaco-el2.dtbo in the non-EL2 target disables
gpu_zap_shader and iris, and attaches EL2-only apps_smmu IOMMU mappings to
remoteproc_adsp, remoteproc_cdsp, and remoteproc_gpdsp when booting in the
default EL1 mode under Gunyah.

> diff --git a/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-8-dsi-touch-a.dtso b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-8-dsi-touch-a.dtso
> new file mode 100644
> index 0000000000000..003c5bcea4973
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/monaco-arduino-monza-waveshare-8-dsi-touch-a.dtso

[ ... ]

> +&mdss_dsi0 {
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +	vdda-supply = <&vreg_l1c>;
> +
> +	panel@0 {
> +		compatible = "waveshare,8.0-dsi-touch-a", "jadard,jd9365da-h3";
> +		reg = <0>;
> +		backlight = <&wsgpio>;
> +		reset-gpios = <&wsgpio 1 GPIO_ACTIVE_LOW>;
> +		vccio-supply = <&panel_iovcc>;
> +		vdd-supply = <&panel_avdd>;
> +
> +		port {
> +			panel_in: endpoint {
> +				remote-endpoint = <&mdss_dsi0_out>;
> +			};
> +		};
> +	};
> +};
> +
> +&mdss_dsi0_out {
> +	data-lanes = <0 1 2 3>;
> +	remote-endpoint = <&panel_in>;
> +};
> +
> +&mdss_dsi0_phy {
> +	vdds-supply = <&vreg_l4a>;
> +};

[Severity: High]
Does setting vdda-supply = <&vreg_l1c> on mdss_dsi0 overwrite the SoM's
1.2V DSI supply with the LPDDR VDDQ regulator?

In arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi, mdss_dsi0 already uses
vreg_l5a (1.2V), while vreg_l1c is the 0.3V-0.512V LPDDR VDDQ rail:

arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi:
		vreg_l1c: ldo1 { /* LPDDR VDDQ */
			regulator-name = "vreg_l1c";
			regulator-min-microvolt = <300000>;
			regulator-max-microvolt = <512000>;
    ...
&mdss_dsi0 {
	vdda-supply = <&vreg_l5a>;
};

&mdss_dsi0_phy {
	vdds-supply = <&vreg_l4a>;
};

Overriding vdda-supply with vreg_l1c leaves vreg_l5a unvoted and causes
the DSI driver to disable the LPDDR VDDQ regulator on display suspend or
probe unwind.  Both vdda-supply on mdss_dsi0 and the redundant
mdss_dsi0_phy node can be dropped from the overlay since
monaco-monza-som.dtsi already configures them.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261114-monza_waveshare_dtso-v1-1-4b7c80e90e08@oss.qualcomm.com?part=1

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-11-13 20:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 20:00 [PATCH] arm64: dts: qcom: monaco-arduino-monza: Add Waveshare 8" DSI touch overlay Vishnu Saini
2026-11-13 20:42 ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox