From: Rob Herring <robh@kernel.org>
To: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Cc: Drew Fustini <fustini@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
dri-devel@lists.freedesktop.org, Guo Ren <guoren@kernel.org>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
Andrzej Hajda <andrzej.hajda@intel.com>,
linux-riscv@lists.infradead.org, David Airlie <airlied@gmail.com>,
Yao Zi <ziyao@disroot.org>, Simona Vetter <simona@ffwll.ch>,
Robert Foss <rfoss@kernel.org>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Michal Wilczynski <m.wilczynski@samsung.com>,
devicetree@vger.kernel.org, Conor Dooley <conor+dt@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
Jonas Karlman <jonas@kwiboo.se>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
linux-kernel@vger.kernel.org,
Philipp Zabel <p.zabel@pengutronix.de>,
Han Gao <rabenda.cn@gmail.com>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Fu Wei <wefu@redhat.com>
Subject: Re: [PATCH v4 2/9] dt-bindings: display: add verisilicon,dc
Date: Mon, 5 Jan 2026 09:46:56 -0600 [thread overview]
Message-ID: <20260105154656.GA2585570-robh@kernel.org> (raw)
In-Reply-To: <20251224161205.1132149-3-zhengxingda@iscas.ac.cn>
On Thu, Dec 25, 2025 at 12:11:58AM +0800, Icenowy Zheng wrote:
> From: Icenowy Zheng <uwu@icenowy.me>
>
> Verisilicon has a series of display controllers prefixed with DC and
> with self-identification facility like their GC series GPUs.
>
> Add a device tree binding for it.
>
> Depends on the specific DC model, it can have either one or two display
> outputs, and each display output could be set to DPI signal or "DP"
> signal (which seems to be some plain parallel bus to HDMI controllers).
>
> Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
> Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
> ---
> Changes in v4:
> - Added a comment for "verisilicon,dc" that says the ID/revision is
> discoverable via registers.
> - Removed clock minItems constraint w/o specific compatible strings.
>
> Changes in v3:
> - Added SoC-specific compatible string, and arm the binding with clock /
> port checking for the specific SoC (with a 2-output DC).
>
> Changes in v2:
> - Fixed misspelt "versilicon" in title.
> - Moved minItems in clock properties to be earlier than items.
> - Re-aligned multi-line clocks and resets in example.
>
> .../bindings/display/verisilicon,dc.yaml | 144 ++++++++++++++++++
> 1 file changed, 144 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/verisilicon,dc.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/verisilicon,dc.yaml b/Documentation/devicetree/bindings/display/verisilicon,dc.yaml
> new file mode 100644
> index 0000000000000..fe64cc1466690
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/verisilicon,dc.yaml
> @@ -0,0 +1,144 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/verisilicon,dc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Verisilicon DC-series display controllers
> +
> +maintainers:
> + - Icenowy Zheng <uwu@icenowy.me>
> +
> +properties:
> + $nodename:
> + pattern: "^display@[0-9a-f]+$"
> +
> + compatible:
> + items:
> + - enum:
> + - thead,th1520-dc8200
> + - const: verisilicon,dc # DC IPs have discoverable ID/revision registers
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: DC Core clock
> + - description: DMA AXI bus clock
> + - description: Configuration AHB bus clock
> + - description: Pixel clock of output 0
> + - description: Pixel clock of output 1
> +
> + clock-names:
> + items:
> + - const: core
> + - const: axi
> + - const: ahb
> + - const: pix0
> + - const: pix1
> +
> + resets:
> + items:
> + - description: DC Core reset
> + - description: DMA AXI bus reset
> + - description: Configuration AHB bus reset
> +
> + reset-names:
> + items:
> + - const: core
> + - const: axi
> + - const: ahb
> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> + properties:
> + port@0:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: The first output channel , endpoint 0 should be
No space before comma. Or perhaps should be a period instead.
> + used for DPI format output and endpoint 1 should be used
> + for DP format output.
> +
> + port@1:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: The second output channel if the DC variant
> + supports. Follow the same endpoint addressing rule with
> + the first port.
> +
> + required:
> + - port@0
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> + - clock-names
> + - ports
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: thead,th1520-dc8200
> + then:
> + properties:
> + clocks:
> + minItems: 5
That's already implicitly the min. Perhaps you wanted 'minItems: 4' on
the clocks and clock-names definitions for versions with only 1 output?
> + ports:
> + required:
> + - port@0
> + - port@1
It is valid to omit these if the output is present, but unused.
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/clock/thead,th1520-clk-ap.h>
> + #include <dt-bindings/reset/thead,th1520-reset.h>
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + display@ffef600000 {
> + compatible = "thead,th1520-dc8200", "verisilicon,dc";
> + reg = <0xff 0xef600000 0x0 0x100000>;
> + interrupts = <93 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk_vo CLK_DPU_CCLK>,
> + <&clk_vo CLK_DPU_ACLK>,
> + <&clk_vo CLK_DPU_HCLK>,
> + <&clk_vo CLK_DPU_PIXELCLK0>,
> + <&clk_vo CLK_DPU_PIXELCLK1>;
> + clock-names = "core", "axi", "ahb", "pix0", "pix1";
> + resets = <&rst TH1520_RESET_ID_DPU_CORE>,
> + <&rst TH1520_RESET_ID_DPU_AXI>,
> + <&rst TH1520_RESET_ID_DPU_AHB>;
> + reset-names = "core", "axi", "ahb";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + };
> +
> + port@1 {
> + reg = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dpu_out_dp1: endpoint@1 {
> + reg = <1>;
> + remote-endpoint = <&hdmi_in>;
> + };
> + };
> + };
> + };
> + };
> --
> 2.52.0
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Drew Fustini <fustini@kernel.org>, Guo Ren <guoren@kernel.org>,
Fu Wei <wefu@redhat.com>, Philipp Zabel <p.zabel@pengutronix.de>,
Heiko Stuebner <heiko@sntech.de>,
Andrzej Hajda <andrzej.hajda@intel.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Robert Foss <rfoss@kernel.org>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
Jonas Karlman <jonas@kwiboo.se>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Michal Wilczynski <m.wilczynski@samsung.com>,
Han Gao <rabenda.cn@gmail.com>, Yao Zi <ziyao@disroot.org>,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
Icenowy Zheng <uwu@icenowy.me>
Subject: Re: [PATCH v4 2/9] dt-bindings: display: add verisilicon,dc
Date: Mon, 5 Jan 2026 09:46:56 -0600 [thread overview]
Message-ID: <20260105154656.GA2585570-robh@kernel.org> (raw)
In-Reply-To: <20251224161205.1132149-3-zhengxingda@iscas.ac.cn>
On Thu, Dec 25, 2025 at 12:11:58AM +0800, Icenowy Zheng wrote:
> From: Icenowy Zheng <uwu@icenowy.me>
>
> Verisilicon has a series of display controllers prefixed with DC and
> with self-identification facility like their GC series GPUs.
>
> Add a device tree binding for it.
>
> Depends on the specific DC model, it can have either one or two display
> outputs, and each display output could be set to DPI signal or "DP"
> signal (which seems to be some plain parallel bus to HDMI controllers).
>
> Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
> Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
> ---
> Changes in v4:
> - Added a comment for "verisilicon,dc" that says the ID/revision is
> discoverable via registers.
> - Removed clock minItems constraint w/o specific compatible strings.
>
> Changes in v3:
> - Added SoC-specific compatible string, and arm the binding with clock /
> port checking for the specific SoC (with a 2-output DC).
>
> Changes in v2:
> - Fixed misspelt "versilicon" in title.
> - Moved minItems in clock properties to be earlier than items.
> - Re-aligned multi-line clocks and resets in example.
>
> .../bindings/display/verisilicon,dc.yaml | 144 ++++++++++++++++++
> 1 file changed, 144 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/verisilicon,dc.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/verisilicon,dc.yaml b/Documentation/devicetree/bindings/display/verisilicon,dc.yaml
> new file mode 100644
> index 0000000000000..fe64cc1466690
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/verisilicon,dc.yaml
> @@ -0,0 +1,144 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/verisilicon,dc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Verisilicon DC-series display controllers
> +
> +maintainers:
> + - Icenowy Zheng <uwu@icenowy.me>
> +
> +properties:
> + $nodename:
> + pattern: "^display@[0-9a-f]+$"
> +
> + compatible:
> + items:
> + - enum:
> + - thead,th1520-dc8200
> + - const: verisilicon,dc # DC IPs have discoverable ID/revision registers
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: DC Core clock
> + - description: DMA AXI bus clock
> + - description: Configuration AHB bus clock
> + - description: Pixel clock of output 0
> + - description: Pixel clock of output 1
> +
> + clock-names:
> + items:
> + - const: core
> + - const: axi
> + - const: ahb
> + - const: pix0
> + - const: pix1
> +
> + resets:
> + items:
> + - description: DC Core reset
> + - description: DMA AXI bus reset
> + - description: Configuration AHB bus reset
> +
> + reset-names:
> + items:
> + - const: core
> + - const: axi
> + - const: ahb
> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> + properties:
> + port@0:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: The first output channel , endpoint 0 should be
No space before comma. Or perhaps should be a period instead.
> + used for DPI format output and endpoint 1 should be used
> + for DP format output.
> +
> + port@1:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: The second output channel if the DC variant
> + supports. Follow the same endpoint addressing rule with
> + the first port.
> +
> + required:
> + - port@0
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> + - clock-names
> + - ports
> +
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: thead,th1520-dc8200
> + then:
> + properties:
> + clocks:
> + minItems: 5
That's already implicitly the min. Perhaps you wanted 'minItems: 4' on
the clocks and clock-names definitions for versions with only 1 output?
> + ports:
> + required:
> + - port@0
> + - port@1
It is valid to omit these if the output is present, but unused.
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/clock/thead,th1520-clk-ap.h>
> + #include <dt-bindings/reset/thead,th1520-reset.h>
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + display@ffef600000 {
> + compatible = "thead,th1520-dc8200", "verisilicon,dc";
> + reg = <0xff 0xef600000 0x0 0x100000>;
> + interrupts = <93 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clk_vo CLK_DPU_CCLK>,
> + <&clk_vo CLK_DPU_ACLK>,
> + <&clk_vo CLK_DPU_HCLK>,
> + <&clk_vo CLK_DPU_PIXELCLK0>,
> + <&clk_vo CLK_DPU_PIXELCLK1>;
> + clock-names = "core", "axi", "ahb", "pix0", "pix1";
> + resets = <&rst TH1520_RESET_ID_DPU_CORE>,
> + <&rst TH1520_RESET_ID_DPU_AXI>,
> + <&rst TH1520_RESET_ID_DPU_AHB>;
> + reset-names = "core", "axi", "ahb";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + };
> +
> + port@1 {
> + reg = <1>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + dpu_out_dp1: endpoint@1 {
> + reg = <1>;
> + remote-endpoint = <&hdmi_in>;
> + };
> + };
> + };
> + };
> + };
> --
> 2.52.0
>
next prev parent reply other threads:[~2026-01-05 15:47 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20251224161255eucas1p24c6de486b021f25007ed1ce24468cab2@eucas1p2.samsung.com>
2025-12-24 16:11 ` [PATCH v4 0/9] Verisilicon DC8200 driver (and adaption to TH1520) Icenowy Zheng
2025-12-24 16:11 ` Icenowy Zheng
2025-12-24 16:11 ` [PATCH v4 1/9] dt-bindings: vendor-prefixes: add verisilicon Icenowy Zheng
2025-12-24 16:11 ` Icenowy Zheng
2025-12-24 16:11 ` [PATCH v4 2/9] dt-bindings: display: add verisilicon,dc Icenowy Zheng
2025-12-24 16:11 ` Icenowy Zheng
2025-12-25 9:35 ` Han Gao (Revy)
2025-12-25 9:35 ` Han Gao (Revy)
2025-12-27 11:08 ` Krzysztof Kozlowski
2025-12-27 11:08 ` Krzysztof Kozlowski
2025-12-25 9:45 ` Han Gao (Revy)
2025-12-25 9:45 ` Han Gao (Revy)
2025-12-27 11:09 ` Krzysztof Kozlowski
2025-12-27 11:09 ` Krzysztof Kozlowski
2025-12-27 12:08 ` Han Gao
2025-12-27 12:08 ` Han Gao
2025-12-28 7:48 ` Krzysztof Kozlowski
2025-12-28 7:48 ` Krzysztof Kozlowski
2025-12-28 7:54 ` Han Gao
2025-12-28 7:54 ` Han Gao
2026-01-05 15:46 ` Rob Herring [this message]
2026-01-05 15:46 ` Rob Herring
2026-01-05 16:11 ` Icenowy Zheng
2026-01-05 16:11 ` Icenowy Zheng
2026-01-05 16:20 ` Rob Herring
2026-01-05 16:20 ` Rob Herring
2026-01-13 13:41 ` Icenowy Zheng
2026-01-13 13:41 ` Icenowy Zheng
2025-12-24 16:11 ` [PATCH v4 3/9] drm: verisilicon: add a driver for Verisilicon display controllers Icenowy Zheng
2025-12-24 16:11 ` Icenowy Zheng
2025-12-25 9:36 ` Han Gao (Revy)
2025-12-25 9:36 ` Han Gao (Revy)
2025-12-25 9:45 ` Han Gao (Revy)
2025-12-25 9:45 ` Han Gao (Revy)
2025-12-31 14:20 ` Luca Ceresoli
2025-12-31 14:20 ` Luca Ceresoli
2025-12-24 16:12 ` [PATCH v4 4/9] dt-bindings: display/bridge: add binding for TH1520 HDMI controller Icenowy Zheng
2025-12-24 16:12 ` Icenowy Zheng
2025-12-24 16:12 ` [PATCH v4 5/9] drm/bridge: add a driver for T-Head " Icenowy Zheng
2025-12-24 16:12 ` Icenowy Zheng
2025-12-25 9:46 ` Han Gao (Revy)
2025-12-25 9:46 ` Han Gao (Revy)
2025-12-25 11:07 ` Andy Yan
2025-12-25 11:07 ` Andy Yan
2025-12-26 13:27 ` [PATCH " Icenowy Zheng
2025-12-26 13:27 ` Icenowy Zheng
2025-12-27 7:03 ` Andy Yan
2025-12-27 7:03 ` Andy Yan
2025-12-27 7:22 ` Icenowy Zheng
2025-12-27 7:22 ` Icenowy Zheng
2025-12-28 17:41 ` Heiko Stübner
2025-12-28 17:41 ` Heiko Stübner
2025-12-24 16:12 ` [PATCH v4 6/9] riscv: dts: thead: add DPU and HDMI device tree nodes Icenowy Zheng
2025-12-24 16:12 ` Icenowy Zheng
2025-12-25 9:46 ` Han Gao (Revy)
2025-12-25 9:46 ` Han Gao (Revy)
2025-12-24 16:12 ` [PATCH v4 7/9] riscv: dts: thead: lichee-pi-4a: enable HDMI Icenowy Zheng
2025-12-24 16:12 ` Icenowy Zheng
2025-12-25 9:47 ` Han Gao (Revy)
2025-12-25 9:47 ` Han Gao (Revy)
2025-12-24 16:12 ` [PATCH v4 8/9] MAINTAINERS: assign myself as maintainer for verisilicon DC driver Icenowy Zheng
2025-12-24 16:12 ` Icenowy Zheng
2025-12-24 16:12 ` [PATCH v4 9/9] mailmap: map all Icenowy Zheng's mail addresses Icenowy Zheng
2025-12-24 16:12 ` Icenowy Zheng
2025-12-29 16:32 ` [PATCH v4 0/9] Verisilicon DC8200 driver (and adaption to TH1520) Michal Wilczynski
2025-12-29 16:32 ` Michal Wilczynski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260105154656.GA2585570-robh@kernel.org \
--to=robh@kernel.org \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=fustini@kernel.org \
--cc=guoren@kernel.org \
--cc=heiko@sntech.de \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=m.wilczynski@samsung.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=p.zabel@pengutronix.de \
--cc=rabenda.cn@gmail.com \
--cc=rfoss@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=wefu@redhat.com \
--cc=zhengxingda@iscas.ac.cn \
--cc=ziyao@disroot.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.