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      - items:
25          - enum:
26              - fsl,imx6sl-lcdif
27              - fsl,imx6sll-lcdif
28              - fsl,imx6ul-lcdif
29              - fsl,imx7d-lcdif
30              - fsl,imx8mm-lcdif
31              - fsl,imx8mn-lcdif
32              - fsl,imx8mq-lcdif
33          - const: fsl,imx6sx-lcdif
34
35  reg:
36    maxItems: 1
37
38  clocks:
39    items:
40      - description: Pixel clock
41      - description: Bus clock
42      - description: Display AXI clock
43    minItems: 1
44
45  clock-names:
46    items:
47      - const: pix
48      - const: axi
49      - const: disp_axi
50    minItems: 1
51
52  interrupts:
53    maxItems: 1
54
55  port:
56    $ref: /schemas/graph.yaml#/properties/port
57    description: The LCDIF output port
58
59required:
60  - compatible
61  - reg
62  - clocks
63  - interrupts
64  - port
65
66additionalProperties: false
67
68allOf:
69  - if:
70      properties:
71        compatible:
72          contains:
73            const: fsl,imx6sx-lcdif
74    then:
75      properties:
76        clocks:
77          minItems: 2
78          maxItems: 3
79        clock-names:
80          minItems: 2
81          maxItems: 3
82      required:
83        - clock-names
84    else:
85      properties:
86        clocks:
87          maxItems: 1
88        clock-names:
89          maxItems: 1
90
91examples:
92  - |
93    #include <dt-bindings/clock/imx6sx-clock.h>
94    #include <dt-bindings/interrupt-controller/arm-gic.h>
95
96    display-controller@2220000 {
97        compatible = "fsl,imx6sx-lcdif";
98        reg = <0x02220000 0x4000>;
99        interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
100        clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
101                 <&clks IMX6SX_CLK_LCDIF_APB>,
102                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
103        clock-names = "pix", "axi", "disp_axi";
104
105        port {
106            endpoint {
107                remote-endpoint = <&panel_in>;
108            };
109        };
110    };
111
112...
113