[PATCH 2/5] dt-bindings: display: Add the Ingenic X1600 LCD controller

From: Olivier Louvignes

Date: Sun Oct 25 2026 - 05:00:06 EST


The X1600's display controller fetches frames through descriptors and
keeps its interface and timings in register blocks of their own (X1600
programming manual, chapter 10), so it shares nothing with the
controllers ingenic,lcd.yaml describes. Its registers are those of the
X2000's display controller without the composer.

Signed-off-by: Olivier Louvignes <olivier@xxxxxxxxx>
---
.../bindings/display/ingenic,x1600-lcd.yaml | 70 +++++++++++++++++++
MAINTAINERS | 5 ++
2 files changed, 75 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/ingenic,x1600-lcd.yaml

diff --git a/Documentation/devicetree/bindings/display/ingenic,x1600-lcd.yaml b/Documentation/devicetree/bindings/display/ingenic,x1600-lcd.yaml
new file mode 100644
index 000000000000..171536c78f4b
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/ingenic,x1600-lcd.yaml
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/ingenic,x1600-lcd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ingenic X1600 LCD controller
+
+maintainers:
+ - Olivier Louvignes <olivier@xxxxxxxxx>
+
+description:
+ The display controller of the Ingenic X1600 SoC. It fetches frames through
+ descriptors in memory and drives a parallel RGB panel or a smart panel;
+ its registers have nothing in common with the controllers described in
+ ingenic,lcd.yaml.
+
+properties:
+ $nodename:
+ pattern: "^lcd-controller@[0-9a-f]+$"
+
+ compatible:
+ const: ingenic,x1600-lcd
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: The pixel clock, whose gate also gates the controller
+
+ clock-names:
+ items:
+ - const: lcd
+
+ port:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: The output, to the panel or bridge.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+ - port
+
+additionalProperties: false
+
+examples:
+ - |
+ lcd-controller@13050000 {
+ compatible = "ingenic,x1600-lcd";
+ reg = <0x13050000 0x10000>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <31>;
+
+ clocks = <&cgu 16>;
+ clock-names = "lcd";
+
+ port {
+ lcd_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index a08087fb6e67..98d46b1cc029 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12927,6 +12927,11 @@ F: include/linux/mfd/ingenic-tcu.h
F: sound/soc/codecs/jz47*
F: sound/soc/jz4740/

+INGENIC X1600 DRM DRIVER
+M: Olivier Louvignes <olivier@xxxxxxxxx>
+S: Maintained
+F: Documentation/devicetree/bindings/display/ingenic,x1600-lcd.yaml
+
INJOINIC IP5xxx POWER BANK IC DRIVER
M: Samuel Holland <samuel@xxxxxxxxxxxx>
S: Maintained
--
2.39.5