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