Mention branches and keyring.
[releases.git] / bindings / display / fsl,lcdif.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/display/fsl,lcdif.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Freescale/NXP i.MX LCD Interface (LCDIF)
8
9 maintainers:
10   - Marek Vasut <marex@denx.de>
11   - Stefan Agner <stefan@agner.ch>
12
13 description: |
14   (e)LCDIF display controller found in the Freescale/NXP i.MX SoCs.
15
16 properties:
17   compatible:
18     oneOf:
19       - enum:
20           - fsl,imx23-lcdif
21           - fsl,imx28-lcdif
22           - fsl,imx6sx-lcdif
23           - fsl,imx8mp-lcdif
24           - fsl,imx93-lcdif
25       - items:
26           - enum:
27               - fsl,imx6sl-lcdif
28               - fsl,imx6sll-lcdif
29               - fsl,imx6ul-lcdif
30               - fsl,imx7d-lcdif
31               - fsl,imx8mm-lcdif
32               - fsl,imx8mn-lcdif
33               - fsl,imx8mq-lcdif
34           - const: fsl,imx6sx-lcdif
35
36   reg:
37     maxItems: 1
38
39   clocks:
40     items:
41       - description: Pixel clock
42       - description: Bus clock
43       - description: Display AXI clock
44     minItems: 1
45
46   clock-names:
47     items:
48       - const: pix
49       - const: axi
50       - const: disp_axi
51     minItems: 1
52
53   interrupts:
54     items:
55       - description: LCDIF DMA interrupt
56       - description: LCDIF Error interrupt
57     minItems: 1
58
59   power-domains:
60     maxItems: 1
61
62   port:
63     $ref: /schemas/graph.yaml#/properties/port
64     description: The LCDIF output port
65
66 required:
67   - compatible
68   - reg
69   - clocks
70   - interrupts
71   - port
72
73 additionalProperties: false
74
75 allOf:
76   - if:
77       properties:
78         compatible:
79           contains:
80             const: fsl,imx6sx-lcdif
81     then:
82       properties:
83         clocks:
84           minItems: 2
85           maxItems: 3
86         clock-names:
87           minItems: 2
88           maxItems: 3
89       required:
90         - clock-names
91   - if:
92       properties:
93         compatible:
94           contains:
95             enum:
96               - fsl,imx8mp-lcdif
97               - fsl,imx93-lcdif
98     then:
99       properties:
100         clocks:
101           minItems: 3
102           maxItems: 3
103         clock-names:
104           minItems: 3
105           maxItems: 3
106       required:
107         - clock-names
108   - if:
109       not:
110         properties:
111           compatible:
112             contains:
113               enum:
114                 - fsl,imx6sx-lcdif
115                 - fsl,imx8mp-lcdif
116                 - fsl,imx93-lcdif
117     then:
118       properties:
119         clocks:
120           maxItems: 1
121         clock-names:
122           maxItems: 1
123   - if:
124       properties:
125         compatible:
126           contains:
127             enum:
128               - fsl,imx6sl-lcdif
129               - fsl,imx6sx-lcdif
130               - fsl,imx8mm-lcdif
131               - fsl,imx8mn-lcdif
132               - fsl,imx8mp-lcdif
133               - fsl,imx93-lcdif
134     then:
135       required:
136         - power-domains
137   - if:
138       properties:
139         compatible:
140           contains:
141             enum:
142               - fsl,imx23-lcdif
143     then:
144       properties:
145         interrupts:
146           minItems: 2
147           maxItems: 2
148     else:
149       properties:
150         interrupts:
151           maxItems: 1
152
153 examples:
154   - |
155     #include <dt-bindings/clock/imx6sx-clock.h>
156     #include <dt-bindings/interrupt-controller/arm-gic.h>
157
158     display-controller@2220000 {
159         compatible = "fsl,imx6sx-lcdif";
160         reg = <0x02220000 0x4000>;
161         interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
162         clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
163                  <&clks IMX6SX_CLK_LCDIF_APB>,
164                  <&clks IMX6SX_CLK_DISPLAY_AXI>;
165         clock-names = "pix", "axi", "disp_axi";
166         power-domains = <&pd_disp>;
167
168         port {
169             endpoint {
170                 remote-endpoint = <&panel_in>;
171             };
172         };
173     };
174
175 ...