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