Merge tag 'regmap-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[linux-2.6-microblaze.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,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     description: OF graph bindings (specified in bindings/graph.txt).
43
44   ports:
45     description: OF graph bindings (specified in bindings/graph.txt).
46     type: object
47     properties:
48       port@0:
49         type: object
50         description: DPI output, to interface with TFT panels.
51
52       port@8:
53         type: object
54         description: Link to the Image Processing Unit (IPU).
55           (See ingenic,ipu.yaml).
56
57     required:
58       - port@0
59
60 required:
61   - compatible
62   - reg
63   - interrupts
64   - clocks
65   - clock-names
66
67 if:
68   properties:
69     compatible:
70       contains:
71         enum:
72           - ingenic,jz4740-lcd
73           - ingenic,jz4780-lcd
74 then:
75   properties:
76     clocks:
77       minItems: 2
78     clock-names:
79       minItems: 2
80 else:
81   properties:
82     clocks:
83       maxItems: 1
84     clock-names:
85       maxItems: 1
86
87 additionalProperties: false
88
89 examples:
90   - |
91     #include <dt-bindings/clock/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/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     };