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