1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/ingenic,lcd.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Ingenic SoCs LCD controller devicetree bindings
8
9maintainers:
10  - Paul Cercueil <paul@crapouillou.net>
11
12properties:
13  $nodename:
14    pattern: "^lcd-controller@[0-9a-f]+$"
15
16  compatible:
17    enum:
18      - ingenic,jz4740-lcd
19      - ingenic,jz4725b-lcd
20      - ingenic,jz4770-lcd
21      - ingenic,jz4780-lcd
22
23  reg:
24    maxItems: 1
25
26  interrupts:
27    maxItems: 1
28
29  clocks:
30    items:
31      - description: Pixel clock
32      - description: Module clock
33    minItems: 1
34
35  clock-names:
36    items:
37      - const: lcd_pclk
38      - const: lcd
39    minItems: 1
40
41  port:
42    $ref: /schemas/graph.yaml#/properties/port
43
44  ports:
45    $ref: /schemas/graph.yaml#/properties/ports
46
47    properties:
48      port@0:
49        $ref: /schemas/graph.yaml#/properties/port
50        description: DPI output, to interface with TFT panels.
51
52      port@8:
53        $ref: /schemas/graph.yaml#/properties/port
54        description: Link to the Image Processing Unit (IPU).
55          (See ingenic,ipu.yaml).
56
57    required:
58      - port@0
59
60required:
61  - compatible
62  - reg
63  - interrupts
64  - clocks
65  - clock-names
66
67if:
68  properties:
69    compatible:
70      contains:
71        enum:
72          - ingenic,jz4740-lcd
73          - ingenic,jz4780-lcd
74then:
75  properties:
76    clocks:
77      minItems: 2
78    clock-names:
79      minItems: 2
80else:
81  properties:
82    clocks:
83      maxItems: 1
84    clock-names:
85      maxItems: 1
86
87additionalProperties: false
88
89examples:
90  - |
91    #include <dt-bindings/clock/ingenic,jz4740-cgu.h>
92    lcd-controller@13050000 {
93      compatible = "ingenic,jz4740-lcd";
94      reg = <0x13050000 0x1000>;
95
96      interrupt-parent = <&intc>;
97      interrupts = <30>;
98
99      clocks = <&cgu JZ4740_CLK_LCD_PCLK>, <&cgu JZ4740_CLK_LCD>;
100      clock-names = "lcd_pclk", "lcd";
101
102      port {
103        endpoint {
104          remote-endpoint = <&panel_input>;
105        };
106      };
107    };
108
109  - |
110    #include <dt-bindings/clock/ingenic,jz4725b-cgu.h>
111    lcd-controller@13050000 {
112      compatible = "ingenic,jz4725b-lcd";
113      reg = <0x13050000 0x1000>;
114
115      interrupt-parent = <&intc>;
116      interrupts = <31>;
117
118      clocks = <&cgu JZ4725B_CLK_LCD>;
119      clock-names = "lcd_pclk";
120
121      port {
122        endpoint {
123          remote-endpoint = <&panel_input>;
124        };
125      };
126    };
127