Add Device Tree binding documentation for the Display Control
Unit (DCU) found in Nuvoton MA35D1 SoCs.
The DCU is a DPI-based display controller supporting RGB output
with optional external bridges or panels.
Signed-off-by: Joey Lu <a0987203069@gmail.com>
---
.../bindings/display/nuvoton,ma35d1-dcu.yaml | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/nuvoton,ma35d1-dcu.yaml
diff --git a/Documentation/devicetree/bindings/display/nuvoton,ma35d1-dcu.yaml b/Documentation/devicetree/bindings/display/nuvoton,ma35d1-dcu.yaml
new file mode 100644
index 000000000000..adfc20117eb7
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/nuvoton,ma35d1-dcu.yaml
@@ -0,0 +1,73 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/nuvoton,ma35d1-dcu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton MA35D1 Display Controller Unit (DCU)
+
+maintainers:
+ - Joey Lu <a0987203069@gmail.com>
+
+description:
+ The Nuvoton MA35D1 Display Controller Unit (DCU) supports multiple
+ layers of composition, blending, and output to parallel RGB (DPI)
+ interfaces.
+
+properties:
+ compatible:
+ const: nuvoton,ma35d1-dcu
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: DCU Gate clock for register access
+ - description: DCU Pixel clock for display timing
+
+ clock-names:
+ items:
+ - const: dcu_gate
+ - const: dcup_div
+
+ resets:
+ maxItems: 1
+
+ port:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: Video output port
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+ - resets
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
+ #include <dt-bindings/reset/nuvoton,ma35d1-reset.h>
+
+ display@40260000 {
+ compatible = "nuvoton,ma35d1-dcu";
+ reg = <0x40260000 0x2000>;
+ interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk DCU_GATE>, <&clk DCUP_DIV>;
+ clock-names = "dcu_gate", "dcup_div";
+ resets = <&sys MA35D1_RESET_DISP>;
+
+ port {
+ dpi_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
--
2.43.0
On Thu, Jan 29, 2026 at 12:05:30PM +0800, Joey Lu wrote: > + > + clocks: > + items: > + - description: DCU Gate clock for register access > + - description: DCU Pixel clock for display timing > + > + clock-names: > + items: > + - const: dcu_gate That's bus or apb > + - const: dcup_div That's pixel Use descriptive names of functions here. Not your clock controller. It is completely irrelevant whether you provide here gate or div or mux or whatever else. If by any chance in new design you put here mux, not div, then completely new binding? Best regards, Krzysztof
On 2/5/2026 9:18 PM, Krzysztof Kozlowski wrote: > On Thu, Jan 29, 2026 at 12:05:30PM +0800, Joey Lu wrote: >> + >> + clocks: >> + items: >> + - description: DCU Gate clock for register access >> + - description: DCU Pixel clock for display timing >> + >> + clock-names: >> + items: >> + - const: dcu_gate > That's bus or apb > >> + - const: dcup_div > That's pixel > > Use descriptive names of functions here. Not your clock controller. It > is completely irrelevant whether you provide here gate or div or mux or > whatever else. If by any chance in new design you put here mux, not div, > then completely new binding? > > > Best regards, > Krzysztof I'll use functional clock names bus & pixel instead. Joey
© 2016 - 2026 Red Hat, Inc.