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