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