xref: /linux/Documentation/devicetree/bindings/display/fsl,lcdif.yaml (revision e7e86d7697c6ed1dbbde18d7185c35b6967945ed)
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
7title: Freescale/NXP i.MX LCD Interface (LCDIF)
8
9maintainers:
10  - Marek Vasut <marex@denx.de>
11  - Stefan Agner <stefan@agner.ch>
12
13description: |
14  (e)LCDIF display controller found in the Freescale/NXP i.MX SoCs.
15
16properties:
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  dmas:
54    items:
55      - description: DMA specifier for the RX DMA channel.
56
57  dma-names:
58    items:
59      - const: rx
60
61  interrupts:
62    items:
63      - description: LCDIF DMA interrupt
64      - description: LCDIF Error interrupt
65    minItems: 1
66
67  power-domains:
68    maxItems: 1
69
70  port:
71    $ref: /schemas/graph.yaml#/properties/port
72    description: The LCDIF output port
73
74  display:
75    $ref: /schemas/types.yaml#/definitions/phandle
76    description: phandle to display panel
77    deprecated: true
78
79  display0:
80    $ref: panel/panel-common.yaml#
81    deprecated: true
82
83  lcd-supply:
84    deprecated: true
85
86required:
87  - compatible
88  - reg
89  - clocks
90  - interrupts
91
92additionalProperties: false
93
94allOf:
95  - if:
96      properties:
97        compatible:
98          contains:
99            const: fsl,imx6sx-lcdif
100    then:
101      properties:
102        clocks:
103          minItems: 2
104          maxItems: 3
105        clock-names:
106          minItems: 2
107          maxItems: 3
108      required:
109        - clock-names
110  - if:
111      properties:
112        compatible:
113          contains:
114            enum:
115              - fsl,imx8mp-lcdif
116              - fsl,imx93-lcdif
117    then:
118      properties:
119        clocks:
120          minItems: 3
121          maxItems: 3
122        clock-names:
123          minItems: 3
124          maxItems: 3
125      required:
126        - clock-names
127  - if:
128      not:
129        properties:
130          compatible:
131            contains:
132              enum:
133                - fsl,imx6sx-lcdif
134                - fsl,imx8mp-lcdif
135                - fsl,imx93-lcdif
136    then:
137      properties:
138        clocks:
139          maxItems: 1
140        clock-names:
141          maxItems: 1
142  - if:
143      properties:
144        compatible:
145          const: fsl,imx6sx-lcdif
146    then:
147      required:
148        - power-domains
149  - if:
150      properties:
151        compatible:
152          contains:
153            enum:
154              - fsl,imx6sl-lcdif
155              - fsl,imx8mm-lcdif
156              - fsl,imx8mn-lcdif
157              - fsl,imx8mp-lcdif
158              - fsl,imx93-lcdif
159    then:
160      required:
161        - power-domains
162  - if:
163      properties:
164        compatible:
165          contains:
166            enum:
167              - fsl,imx23-lcdif
168    then:
169      properties:
170        interrupts:
171          minItems: 2
172          maxItems: 2
173    else:
174      properties:
175        interrupts:
176          maxItems: 1
177
178  - if:
179      not:
180        properties:
181          compatible:
182            contains:
183              enum:
184                - fsl,imx28-lcdif
185    then:
186      properties:
187        dmas: false
188        dma-names: false
189        display: false
190        display0: false
191        lcd-supply: false
192
193      required:
194        - port
195
196examples:
197  - |
198    #include <dt-bindings/clock/imx6sx-clock.h>
199    #include <dt-bindings/interrupt-controller/arm-gic.h>
200
201    display-controller@2220000 {
202        compatible = "fsl,imx6sx-lcdif";
203        reg = <0x02220000 0x4000>;
204        interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
205        clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
206                 <&clks IMX6SX_CLK_LCDIF_APB>,
207                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
208        clock-names = "pix", "axi", "disp_axi";
209        power-domains = <&pd_disp>;
210
211        port {
212            endpoint {
213                remote-endpoint = <&panel_in>;
214            };
215        };
216    };
217
218...
219