1*3b1b42fdSLaurent Pinchart# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*3b1b42fdSLaurent Pinchart%YAML 1.2
3*3b1b42fdSLaurent Pinchart---
4*3b1b42fdSLaurent Pinchart$id: http://devicetree.org/schemas/display/fsl,lcdif.yaml#
5*3b1b42fdSLaurent Pinchart$schema: http://devicetree.org/meta-schemas/core.yaml#
6*3b1b42fdSLaurent Pinchart
7*3b1b42fdSLaurent Pincharttitle: Freescale/NXP i.MX LCD Interface (LCDIF)
8*3b1b42fdSLaurent Pinchart
9*3b1b42fdSLaurent Pinchartmaintainers:
10*3b1b42fdSLaurent Pinchart  - Marek Vasut <marex@denx.de>
11*3b1b42fdSLaurent Pinchart  - Stefan Agner <stefan@agner.ch>
12*3b1b42fdSLaurent Pinchart
13*3b1b42fdSLaurent Pinchartdescription: |
14*3b1b42fdSLaurent Pinchart  (e)LCDIF display controller found in the Freescale/NXP i.MX SoCs.
15*3b1b42fdSLaurent Pinchart
16*3b1b42fdSLaurent Pinchartproperties:
17*3b1b42fdSLaurent Pinchart  compatible:
18*3b1b42fdSLaurent Pinchart    enum:
19*3b1b42fdSLaurent Pinchart      - fsl,imx23-lcdif
20*3b1b42fdSLaurent Pinchart      - fsl,imx28-lcdif
21*3b1b42fdSLaurent Pinchart      - fsl,imx6sx-lcdif
22*3b1b42fdSLaurent Pinchart      - fsl,imx8mq-lcdif
23*3b1b42fdSLaurent Pinchart
24*3b1b42fdSLaurent Pinchart  reg:
25*3b1b42fdSLaurent Pinchart    maxItems: 1
26*3b1b42fdSLaurent Pinchart
27*3b1b42fdSLaurent Pinchart  clocks:
28*3b1b42fdSLaurent Pinchart    items:
29*3b1b42fdSLaurent Pinchart      - description: Pixel clock
30*3b1b42fdSLaurent Pinchart      - description: Bus clock
31*3b1b42fdSLaurent Pinchart      - description: Display AXI clock
32*3b1b42fdSLaurent Pinchart    minItems: 1
33*3b1b42fdSLaurent Pinchart
34*3b1b42fdSLaurent Pinchart  clock-names:
35*3b1b42fdSLaurent Pinchart    items:
36*3b1b42fdSLaurent Pinchart      - const: pix
37*3b1b42fdSLaurent Pinchart      - const: axi
38*3b1b42fdSLaurent Pinchart      - const: disp_axi
39*3b1b42fdSLaurent Pinchart    minItems: 1
40*3b1b42fdSLaurent Pinchart
41*3b1b42fdSLaurent Pinchart  interrupts:
42*3b1b42fdSLaurent Pinchart    maxItems: 1
43*3b1b42fdSLaurent Pinchart
44*3b1b42fdSLaurent Pinchart  port:
45*3b1b42fdSLaurent Pinchart    $ref: /schemas/graph.yaml#/properties/port
46*3b1b42fdSLaurent Pinchart    description: The LCDIF output port
47*3b1b42fdSLaurent Pinchart
48*3b1b42fdSLaurent Pinchartrequired:
49*3b1b42fdSLaurent Pinchart  - compatible
50*3b1b42fdSLaurent Pinchart  - reg
51*3b1b42fdSLaurent Pinchart  - clocks
52*3b1b42fdSLaurent Pinchart  - interrupts
53*3b1b42fdSLaurent Pinchart  - port
54*3b1b42fdSLaurent Pinchart
55*3b1b42fdSLaurent PinchartadditionalProperties: false
56*3b1b42fdSLaurent Pinchart
57*3b1b42fdSLaurent PinchartallOf:
58*3b1b42fdSLaurent Pinchart  - if:
59*3b1b42fdSLaurent Pinchart      properties:
60*3b1b42fdSLaurent Pinchart        compatible:
61*3b1b42fdSLaurent Pinchart          contains:
62*3b1b42fdSLaurent Pinchart            const: fsl,imx6sx-lcdif
63*3b1b42fdSLaurent Pinchart    then:
64*3b1b42fdSLaurent Pinchart      properties:
65*3b1b42fdSLaurent Pinchart        clocks:
66*3b1b42fdSLaurent Pinchart          minItems: 2
67*3b1b42fdSLaurent Pinchart          maxItems: 3
68*3b1b42fdSLaurent Pinchart        clock-names:
69*3b1b42fdSLaurent Pinchart          minItems: 2
70*3b1b42fdSLaurent Pinchart          maxItems: 3
71*3b1b42fdSLaurent Pinchart      required:
72*3b1b42fdSLaurent Pinchart        - clock-names
73*3b1b42fdSLaurent Pinchart    else:
74*3b1b42fdSLaurent Pinchart      properties:
75*3b1b42fdSLaurent Pinchart        clocks:
76*3b1b42fdSLaurent Pinchart          maxItems: 1
77*3b1b42fdSLaurent Pinchart        clock-names:
78*3b1b42fdSLaurent Pinchart          maxItems: 1
79*3b1b42fdSLaurent Pinchart
80*3b1b42fdSLaurent Pinchartexamples:
81*3b1b42fdSLaurent Pinchart  - |
82*3b1b42fdSLaurent Pinchart    #include <dt-bindings/clock/imx6sx-clock.h>
83*3b1b42fdSLaurent Pinchart    #include <dt-bindings/interrupt-controller/arm-gic.h>
84*3b1b42fdSLaurent Pinchart
85*3b1b42fdSLaurent Pinchart    display-controller@2220000 {
86*3b1b42fdSLaurent Pinchart        compatible = "fsl,imx6sx-lcdif";
87*3b1b42fdSLaurent Pinchart        reg = <0x02220000 0x4000>;
88*3b1b42fdSLaurent Pinchart        interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
89*3b1b42fdSLaurent Pinchart        clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
90*3b1b42fdSLaurent Pinchart                 <&clks IMX6SX_CLK_LCDIF_APB>,
91*3b1b42fdSLaurent Pinchart                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
92*3b1b42fdSLaurent Pinchart        clock-names = "pix", "axi", "disp_axi";
93*3b1b42fdSLaurent Pinchart
94*3b1b42fdSLaurent Pinchart        port {
95*3b1b42fdSLaurent Pinchart            endpoint {
96*3b1b42fdSLaurent Pinchart                remote-endpoint = <&panel_in>;
97*3b1b42fdSLaurent Pinchart            };
98*3b1b42fdSLaurent Pinchart        };
99*3b1b42fdSLaurent Pinchart    };
100*3b1b42fdSLaurent Pinchart
101*3b1b42fdSLaurent Pinchart...
102