* [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI
2025-11-11 10:42 [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support Sudarshan Shetty
@ 2025-11-11 10:42 ` Sudarshan Shetty
2025-11-11 10:49 ` Krzysztof Kozlowski
2025-11-17 22:51 ` Bjorn Andersson
2025-11-11 10:48 ` [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support Krzysztof Kozlowski
` (2 subsequent siblings)
3 siblings, 2 replies; 8+ messages in thread
From: Sudarshan Shetty @ 2025-11-11 10:42 UTC (permalink / raw)
To: andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
Sudarshan Shetty
Adds device tree support for the Waveshare 10.1-inch
MIPI-DSI panel on the QCS615 talos evk platform.
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/talos-evk-dsi.dts | 43 ++++++++++++++++++++++
2 files changed, 44 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 282d744acd73..d5a3dd98137d 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -306,6 +306,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb
+dtb-$(CONFIG_ARCH_QCOM) += talos-evk-dsi.dtb
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-evk-dsi.dts b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
new file mode 100644
index 000000000000..8a6dc8b6bf8f
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+
+#include "talos-evk-cb.dtsi"
+
+&i2c1 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ display_mcu: display-mcu@45 {
+ compatible = "waveshare,touchscreen-panel-regulator";
+ reg = <0x45>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ enable-gpio = <&display_mcu 2 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l11a>;
+ status = "okay";
+
+ dsi_panel: dsi-panel@1 {
+ reg = <1>;
+ compatible = "waveshare,10.1-dsi-touch-a";
+ reset-gpio = <&display_mcu 1 GPIO_ACTIVE_HIGH>;
+ backlight = <&display_mcu>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in>;
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI
2025-11-11 10:42 ` [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI Sudarshan Shetty
@ 2025-11-11 10:49 ` Krzysztof Kozlowski
2025-11-11 11:10 ` Dmitry Baryshkov
2025-11-17 22:51 ` Bjorn Andersson
1 sibling, 1 reply; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-11 10:49 UTC (permalink / raw)
To: Sudarshan Shetty, andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel
On 11/11/2025 11:42, Sudarshan Shetty wrote:
> Adds device tree support for the Waveshare 10.1-inch
> MIPI-DSI panel on the QCS615 talos evk platform.
Why is this a board? Panel is a hat or sort of addon, so overlay, not a
board.
>
> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> arch/arm64/boot/dts/qcom/talos-evk-dsi.dts | 43 ++++++++++++++++++++++
> 2 files changed, 44 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 282d744acd73..d5a3dd98137d 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -306,6 +306,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += talos-evk-dsi.dtb
> 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-evk-dsi.dts b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
> new file mode 100644
> index 000000000000..8a6dc8b6bf8f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
> @@ -0,0 +1,43 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +/dts-v1/;
> +
> +#include "talos-evk-cb.dtsi"
> +
> +&i2c1 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + display_mcu: display-mcu@45 {
> + compatible = "waveshare,touchscreen-panel-regulator";
It does not look like you tested the DTS against bindings. Please run
`make dtbs_check W=1` (see
Documentation/devicetree/bindings/writing-schema.rst or
https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
for instructions).
Maybe you need to update your dtschema and yamllint. Don't rely on
distro packages for dtschema and be sure you are using the latest
released dtschema.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI
2025-11-11 10:49 ` Krzysztof Kozlowski
@ 2025-11-11 11:10 ` Dmitry Baryshkov
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Baryshkov @ 2025-11-11 11:10 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Sudarshan Shetty, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-arm-msm, devicetree, linux-kernel
On Tue, Nov 11, 2025 at 11:49:41AM +0100, Krzysztof Kozlowski wrote:
> On 11/11/2025 11:42, Sudarshan Shetty wrote:
> > Adds device tree support for the Waveshare 10.1-inch
> > MIPI-DSI panel on the QCS615 talos evk platform.
>
> Why is this a board? Panel is a hat or sort of addon, so overlay, not a
> board.
Don't waste your time. The developer completely ignored review on the
internal mailing list. I don't see a reason to believe that your review
won't get ignored.
>
> >
> > Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
> > ---
> > arch/arm64/boot/dts/qcom/Makefile | 1 +
> > arch/arm64/boot/dts/qcom/talos-evk-dsi.dts | 43 ++++++++++++++++++++++
> > 2 files changed, 44 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index 282d744acd73..d5a3dd98137d 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -306,6 +306,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb
> > +dtb-$(CONFIG_ARCH_QCOM) += talos-evk-dsi.dtb
> > 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-evk-dsi.dts b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
> > new file mode 100644
> > index 000000000000..8a6dc8b6bf8f
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
> > @@ -0,0 +1,43 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +/*
> > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> > + */
> > +/dts-v1/;
> > +
> > +#include "talos-evk-cb.dtsi"
> > +
> > +&i2c1 {
> > + clock-frequency = <400000>;
> > +
> > + status = "okay";
> > +
> > + display_mcu: display-mcu@45 {
> > + compatible = "waveshare,touchscreen-panel-regulator";
>
>
> It does not look like you tested the DTS against bindings. Please run
> `make dtbs_check W=1` (see
> Documentation/devicetree/bindings/writing-schema.rst or
> https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
> for instructions).
> Maybe you need to update your dtschema and yamllint. Don't rely on
> distro packages for dtschema and be sure you are using the latest
> released dtschema.
>
>
> Best regards,
> Krzysztof
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI
2025-11-11 10:42 ` [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI Sudarshan Shetty
2025-11-11 10:49 ` Krzysztof Kozlowski
@ 2025-11-17 22:51 ` Bjorn Andersson
1 sibling, 0 replies; 8+ messages in thread
From: Bjorn Andersson @ 2025-11-17 22:51 UTC (permalink / raw)
To: Sudarshan Shetty
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel
On Tue, Nov 11, 2025 at 04:12:45PM +0530, Sudarshan Shetty wrote:
The subject indicates that you're adding support for validating DSI to
all Qualcomm boards. Rewrite this to be more specific.
> Adds device tree support for the Waveshare 10.1-inch
> MIPI-DSI panel on the QCS615 talos evk platform.
>
> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> arch/arm64/boot/dts/qcom/talos-evk-dsi.dts | 43 ++++++++++++++++++++++
> 2 files changed, 44 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 282d744acd73..d5a3dd98137d 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -306,6 +306,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += talos-evk-dsi.dtb
> 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-evk-dsi.dts b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
> new file mode 100644
> index 000000000000..8a6dc8b6bf8f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/talos-evk-dsi.dts
This isn't the one and only "EVK with DSI support" board. Please follow
other examples and describe the connected panel as a overlay - and be
specific.
This should likely be talos-evk-waveshare-10.3.dtso - so that one can
support other DSI panels...
> @@ -0,0 +1,43 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +/dts-v1/;
> +
> +#include "talos-evk-cb.dtsi"
This file doesn't exist, please make sure you structure your patches
such that we don't have multiple discussions about the same topic in
parallel.
> +
> +&i2c1 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + display_mcu: display-mcu@45 {
> + compatible = "waveshare,touchscreen-panel-regulator";
> + reg = <0x45>;
> + gpio-controller;
> + #gpio-cells = <2>;
> + enable-gpio = <&display_mcu 2 GPIO_ACTIVE_HIGH>;
> + };
> +};
> +
> +&mdss_dsi0 {
> + vdda-supply = <&vreg_l11a>;
> + status = "okay";
> +
> + dsi_panel: dsi-panel@1 {
> + reg = <1>;
> + compatible = "waveshare,10.1-dsi-touch-a";
> + reset-gpio = <&display_mcu 1 GPIO_ACTIVE_HIGH>;
Can you confirm that this actually works?
Based on the Waveshare "example" driver I had to enable pins 0, 1, and 4
to make my 12.3 DSI panel to work on my board, and then pin 9 to make
the Goodix touchpad work.
Speaking of which, I want the touchscreen support added in the same
patch.
Regards,
Bjorn
> + backlight = <&display_mcu>;
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> + };
> +};
> +
> +&mdss_dsi0_out {
> + remote-endpoint = <&panel_in>;
> +};
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support
2025-11-11 10:42 [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support Sudarshan Shetty
2025-11-11 10:42 ` [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI Sudarshan Shetty
@ 2025-11-11 10:48 ` Krzysztof Kozlowski
2025-11-11 11:32 ` Rob Herring (Arm)
2025-11-17 23:05 ` Bjorn Andersson
3 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-11 10:48 UTC (permalink / raw)
To: Sudarshan Shetty, andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel
On 11/11/2025 11:42, Sudarshan Shetty wrote:
> Device tree bindings for Waveshare MIPI-DSI panels
> of various sizes (5.0, 5.5, 7.0, 8.0, and 10.1).
Please wrap commit message according to Linux coding style / submission
process (neither too early nor over the limit):
https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597
> These panels require proper power sequencing via an external
> regulator and a backlight node for brightness control.
>
> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
> ---
> .../display/panel/waveshare,dsi-panel.yaml | 84 +++++++++++++++++++
> ...waveshare,touchscreen-panel-regulator.yaml | 72 ++++++++++++++++
Do not mix up patches from different subsystems into one patchset.
> 2 files changed, 156 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml
> create mode 100644 Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml
>
Please use subject prefixes matching the subsystem. You can get them for
example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
your patch is touching. For bindings, the preferred subjects are
explained here:
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters
> diff --git a/Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml b/Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml
> new file mode 100644
> index 000000000000..a42ce065124f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml
> @@ -0,0 +1,84 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/waveshare,dsi-panel.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Waveshare 10.1" DSI Touch Display Panel
> +
> +maintainers:
> + - Sudarshan Shetty <tessolveupstream@gmail.com>
> +
> +allOf:
> + - $ref: panel-common.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - waveshare,12.3-dsi-touch-a,4lane
> + - waveshare,10.1-dsi-touch-a
> + - waveshare,10.1-dsi-touch-a-4lane
> + - waveshare,10.1-dsi-touch-b
> + - waveshare,10.1-dsi-touch-b,4lane
> + - waveshare,9.0-dsi-touch-b
> + - waveshare,9.0-dsi-touch-b,4lane
> + - waveshare,8.8-dsi-touch-a
> + - waveshare,8.0-dsi-touch-a
> + - waveshare,8.0-dsi-touch-a-4lane
> + - waveshare,7.0-dsi-touch-a
> + - waveshare,7.0-dsi-touch-b
> + - waveshare,5.5-dsi-touch-a
> + - waveshare,5.0-dsi-touch-a
> + - waveshare,4.0-dsi-touch-c
> + - waveshare,3.4-dsi-touch-c
None of these come with any reasonable model names? How so?
> +
> + reg:
> + description: DSI virtual channel
> + maxItems: 1
> +
> + vdd-supply:
> + description: Power supply regulator for the panel
> +
> + reset-gpios:
> + maxItems: 1
> + description: GPIO to control panel reset
> +
> + enable-gpios:
> + maxItems: 1
> + description: GPIO to control panel power enable
> +
> +required:
> + - compatible
> + - reg
> + - vdd-supply
> + - reset-gpios
> + - enable-gpios
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + dsi@ae94000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + panel@1 {
> + compatible = "waveshare,10.1-dsi-touch-a";
> + reg = <1>;
> + vdd-supply = <&vreg_l11a>;
> + reset-gpios = <&display_mcu 1 GPIO_ACTIVE_HIGH>;
> + enable-gpios = <&display_mcu 2 GPIO_ACTIVE_HIGH>;
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> + };
> + };
> +
> + mdss_dsi0_out: endpoint {
> + remote-endpoint = <&panel_in>;
> + };
Drop node, not relevant here.
> diff --git a/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml b/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml
> new file mode 100644
> index 000000000000..be81be5d2d74
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml
> @@ -0,0 +1,72 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/waveshare,touchscreen-panel-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Waveshare Touchscreen Panel Regulator
> +
> +maintainers:
> + - Sudarshan Shetty <tessolveupstream@gmail.com>
> +
> +description: |
Do not need '|' unless you need to preserve formatting.
> + Regulator driver for Waveshare touchscreen display units.
Driver as Linux driver?
> + This regulator enables and disables panel power and provides
> + backlight control over I2C.
> +
> +properties:
> + compatible:
> + const: waveshare,touchscreen-panel-regulator
That's way too generic. Description doesn't tell me much more what is
this hardware.
How is so that a device with specific programming model over I2C has no
name, no model, absolutely nothing which would identify that programming
model?
> +
> + reg:
> + maxItems: 1
> + description: I2C address of the regulator device
Drop description, redundant.
> +
> + vin-supply:
> + description: Input supply regulator for the panel
> +
> + enable-gpios:
> + maxItems: 1
> + description: GPIO to enable/disable regulator
> +
> +required:
> + - compatible
> + - reg
> + - vin-supply
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + /dts-v1/;
> + /plugin/;
> +
> + / {
Drop all this. Look at existing bindings first, how this is written.
There is no single file like that. Please do not come up with your own
style.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support
2025-11-11 10:42 [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support Sudarshan Shetty
2025-11-11 10:42 ` [PATCH v1 2/2] arm64: dts: qcom: Add support to validate direct DSI Sudarshan Shetty
2025-11-11 10:48 ` [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support Krzysztof Kozlowski
@ 2025-11-11 11:32 ` Rob Herring (Arm)
2025-11-17 23:05 ` Bjorn Andersson
3 siblings, 0 replies; 8+ messages in thread
From: Rob Herring (Arm) @ 2025-11-11 11:32 UTC (permalink / raw)
To: Sudarshan Shetty
Cc: andersson, krzk+dt, konradybcio, linux-kernel, conor+dt,
devicetree, linux-arm-msm
On Tue, 11 Nov 2025 16:12:44 +0530, Sudarshan Shetty wrote:
> Device tree bindings for Waveshare MIPI-DSI panels
> of various sizes (5.0, 5.5, 7.0, 8.0, and 10.1).
> These panels require proper power sequencing via an external
> regulator and a backlight node for brightness control.
>
> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
> ---
> .../display/panel/waveshare,dsi-panel.yaml | 84 +++++++++++++++++++
> ...waveshare,touchscreen-panel-regulator.yaml | 72 ++++++++++++++++
> 2 files changed, 156 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml
> create mode 100644 Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.example.dts:23.16-34.7: Warning (unit_address_vs_reg): /i2c@980000: node has a unit name, but no reg or ranges property
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.example.dtb: /: '#gpio-cells' is a dependency of 'gpio-controller'
from schema $id: http://devicetree.org/schemas/gpio/gpio.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.example.dtb: /: gpio-controller: 'oneOf' conditional failed, one must be fixed:
True was expected
{'compatible': ['test,gpio'], '#gpio-cells': 2, 'phandle': 2} is not of type 'boolean'
{'compatible': ['test,gpio'], '#gpio-cells': 2, 'phandle': 2} is not of type 'null'
from schema $id: http://devicetree.org/schemas/gpio/gpio.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.example.dtb: /: i2c@980000: 'anyOf' conditional failed, one must be fixed:
'reg' is a required property
'ranges' is a required property
from schema $id: http://devicetree.org/schemas/root-node.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.example.dtb: /: 'compatible' is a required property
from schema $id: http://devicetree.org/schemas/root-node.yaml
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.example.dtb: /: 'model' is a required property
from schema $id: http://devicetree.org/schemas/root-node.yaml
Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.example.dts:20.21-37.11: Warning (unit_address_vs_reg): /example-0/dsi@ae94000: node has a unit name, but no reg or ranges property
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20251111104245.3420041-1-tessolveupstream@gmail.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support
2025-11-11 10:42 [PATCH v1 1/2] dt-bindings: arm: qcom: Add waveshare MIPI-DSI panels support Sudarshan Shetty
` (2 preceding siblings ...)
2025-11-11 11:32 ` Rob Herring (Arm)
@ 2025-11-17 23:05 ` Bjorn Andersson
3 siblings, 0 replies; 8+ messages in thread
From: Bjorn Andersson @ 2025-11-17 23:05 UTC (permalink / raw)
To: Sudarshan Shetty
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel
On Tue, Nov 11, 2025 at 04:12:44PM +0530, Sudarshan Shetty wrote:
> Device tree bindings for Waveshare MIPI-DSI panels
> of various sizes (5.0, 5.5, 7.0, 8.0, and 10.1).
> These panels require proper power sequencing via an external
> regulator and a backlight node for brightness control.
>
> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
> ---
> .../display/panel/waveshare,dsi-panel.yaml | 84 +++++++++++++++++++
> ...waveshare,touchscreen-panel-regulator.yaml | 72 ++++++++++++++++
> 2 files changed, 156 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml
> create mode 100644 Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml b/Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml
> new file mode 100644
> index 000000000000..a42ce065124f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/waveshare,dsi-panel.yaml
> @@ -0,0 +1,84 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/waveshare,dsi-panel.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Waveshare 10.1" DSI Touch Display Panel
> +
> +maintainers:
> + - Sudarshan Shetty <tessolveupstream@gmail.com>
> +
> +allOf:
> + - $ref: panel-common.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - waveshare,12.3-dsi-touch-a,4lane
> + - waveshare,10.1-dsi-touch-a
> + - waveshare,10.1-dsi-touch-a-4lane
> + - waveshare,10.1-dsi-touch-b
> + - waveshare,10.1-dsi-touch-b,4lane
> + - waveshare,9.0-dsi-touch-b
> + - waveshare,9.0-dsi-touch-b,4lane
> + - waveshare,8.8-dsi-touch-a
> + - waveshare,8.0-dsi-touch-a
> + - waveshare,8.0-dsi-touch-a-4lane
> + - waveshare,7.0-dsi-touch-a
> + - waveshare,7.0-dsi-touch-b
> + - waveshare,5.5-dsi-touch-a
> + - waveshare,5.0-dsi-touch-a
> + - waveshare,4.0-dsi-touch-c
> + - waveshare,3.4-dsi-touch-c
> +
> + reg:
> + description: DSI virtual channel
> + maxItems: 1
> +
> + vdd-supply:
> + description: Power supply regulator for the panel
> +
> + reset-gpios:
> + maxItems: 1
> + description: GPIO to control panel reset
> +
> + enable-gpios:
> + maxItems: 1
> + description: GPIO to control panel power enable
If this is the correct description of this pin, then this should be a
regulator provided by the regulator node and it should likely have the
3.3V (and 5V?) listed as -supply.
> +
> +required:
> + - compatible
> + - reg
> + - vdd-supply
> + - reset-gpios
> + - enable-gpios
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + dsi@ae94000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + panel@1 {
> + compatible = "waveshare,10.1-dsi-touch-a";
> + reg = <1>;
> + vdd-supply = <&vreg_l11a>;
> + reset-gpios = <&display_mcu 1 GPIO_ACTIVE_HIGH>;
> + enable-gpios = <&display_mcu 2 GPIO_ACTIVE_HIGH>;
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> + };
> + };
> +
> + mdss_dsi0_out: endpoint {
> + remote-endpoint = <&panel_in>;
> + };
> diff --git a/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml b/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml
> new file mode 100644
> index 000000000000..be81be5d2d74
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/waveshare,touchscreen-panel-regulator.yaml
> @@ -0,0 +1,72 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/waveshare,touchscreen-panel-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Waveshare Touchscreen Panel Regulator
> +
> +maintainers:
> + - Sudarshan Shetty <tessolveupstream@gmail.com>
> +
> +description: |
> + Regulator driver for Waveshare touchscreen display units.
> + This regulator enables and disables panel power and provides
> + backlight control over I2C.
> +
> +properties:
> + compatible:
> + const: waveshare,touchscreen-panel-regulator
> +
> + reg:
> + maxItems: 1
> + description: I2C address of the regulator device
> +
> + vin-supply:
> + description: Input supply regulator for the panel
The Waveshare takes 3.3V and 5V inputs, which then is distributed to the
panel and the touch through some regulators controlled by the MCU that
this binding represents.
So I'm pretty sure we need one more supply, and we need better
descriptions of what they are.
> +
> + enable-gpios:
> + maxItems: 1
> + description: GPIO to enable/disable regulator
This too is a pin controlled by the MCU, i.e. provided by the entity you
describe by this node.
> +
The driver that you also posted, which should have been sent together
with the binding, registers a GPIO controller, so you need
"gpio-controller" and "#gpio-cells" here as well.
> +required:
> + - compatible
> + - reg
> + - vin-supply
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + /dts-v1/;
> + /plugin/;
> +
> + / {
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + gpio: gpio-controller {
> + compatible = "test,gpio";
> + #gpio-cells = <2>;
> + };
> +
> + vdd_3v3: regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_3v3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + i2c@980000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "test,i2c";
> +
> + panel-regulator@3c {
> + compatible = "waveshare,touchscreen-panel-regulator";
> + reg = <0x3c>;
Are you sure/ All the material I've found says it's 0x45
> + vin-supply = <&vdd_3v3>;
> + enable-gpios = <&gpio 2 0>; /* active high */
> + };
> + };
This example does not show how the waveshare,touchscreen-panel-regulator
should be added to a DeviceTree!
Based on how you wrote the driver, enable-gpios should point back into
panel-regulator itself. vin-supply
Regards,
Bjorn
> + };
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread