xref: /openbmc/linux/Documentation/devicetree/bindings/display/imx/fsl,imx-lcdc.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
193266da2SUwe Kleine-König# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
293266da2SUwe Kleine-König%YAML 1.2
393266da2SUwe Kleine-König---
493266da2SUwe Kleine-König$id: http://devicetree.org/schemas/display/imx/fsl,imx-lcdc.yaml#
593266da2SUwe Kleine-König$schema: http://devicetree.org/meta-schemas/core.yaml#
693266da2SUwe Kleine-König
793266da2SUwe Kleine-Königtitle: Freescale i.MX LCD Controller, found on i.MX1, i.MX21, i.MX25 and i.MX27
893266da2SUwe Kleine-König
993266da2SUwe Kleine-Königmaintainers:
1093266da2SUwe Kleine-König  - Sascha Hauer <s.hauer@pengutronix.de>
1193266da2SUwe Kleine-König  - Pengutronix Kernel Team <kernel@pengutronix.de>
1293266da2SUwe Kleine-König
1393266da2SUwe Kleine-Königproperties:
1493266da2SUwe Kleine-König  compatible:
1593266da2SUwe Kleine-König    oneOf:
1693266da2SUwe Kleine-König      - enum:
1793266da2SUwe Kleine-König          - fsl,imx1-fb
1893266da2SUwe Kleine-König          - fsl,imx21-fb
1993266da2SUwe Kleine-König      - items:
2093266da2SUwe Kleine-König          - enum:
2193266da2SUwe Kleine-König              - fsl,imx25-fb
2293266da2SUwe Kleine-König              - fsl,imx27-fb
2393266da2SUwe Kleine-König          - const: fsl,imx21-fb
24*492054f7SUwe Kleine-König      - items:
25*492054f7SUwe Kleine-König          - const: fsl,imx25-lcdc
26*492054f7SUwe Kleine-König          - const: fsl,imx21-lcdc
2793266da2SUwe Kleine-König
2893266da2SUwe Kleine-König  clocks:
2993266da2SUwe Kleine-König    maxItems: 3
3093266da2SUwe Kleine-König
3193266da2SUwe Kleine-König  clock-names:
3293266da2SUwe Kleine-König    items:
3393266da2SUwe Kleine-König      - const: ipg
3493266da2SUwe Kleine-König      - const: ahb
3593266da2SUwe Kleine-König      - const: per
3693266da2SUwe Kleine-König
37*492054f7SUwe Kleine-König  port:
38*492054f7SUwe Kleine-König    $ref: /schemas/graph.yaml#/properties/port
39*492054f7SUwe Kleine-König
4093266da2SUwe Kleine-König  display:
4193266da2SUwe Kleine-König    $ref: /schemas/types.yaml#/definitions/phandle
4293266da2SUwe Kleine-König
4393266da2SUwe Kleine-König  interrupts:
4493266da2SUwe Kleine-König    maxItems: 1
4593266da2SUwe Kleine-König
4693266da2SUwe Kleine-König  reg:
4793266da2SUwe Kleine-König    maxItems: 1
4893266da2SUwe Kleine-König
4993266da2SUwe Kleine-König  lcd-supply:
5093266da2SUwe Kleine-König    description:
5193266da2SUwe Kleine-König      Regulator for LCD supply voltage.
5293266da2SUwe Kleine-König
5393266da2SUwe Kleine-König  fsl,dmacr:
5493266da2SUwe Kleine-König    $ref: /schemas/types.yaml#/definitions/uint32
5593266da2SUwe Kleine-König    description:
5693266da2SUwe Kleine-König      Override value for DMA Control Register
5793266da2SUwe Kleine-König
5893266da2SUwe Kleine-König  fsl,lpccr:
5993266da2SUwe Kleine-König    $ref: /schemas/types.yaml#/definitions/uint32
6093266da2SUwe Kleine-König    description:
6193266da2SUwe Kleine-König      Contrast Control Register value.
6293266da2SUwe Kleine-König
6393266da2SUwe Kleine-König  fsl,lscr1:
6493266da2SUwe Kleine-König    $ref: /schemas/types.yaml#/definitions/uint32
6593266da2SUwe Kleine-König    description:
6693266da2SUwe Kleine-König      LCDC Sharp Configuration Register value.
6793266da2SUwe Kleine-König
68*492054f7SUwe Kleine-KönigallOf:
69*492054f7SUwe Kleine-König  - if:
70*492054f7SUwe Kleine-König      properties:
71*492054f7SUwe Kleine-König        compatible:
72*492054f7SUwe Kleine-König          contains:
73*492054f7SUwe Kleine-König            enum:
74*492054f7SUwe Kleine-König              - fsl,imx1-lcdc
75*492054f7SUwe Kleine-König              - fsl,imx21-lcdc
76*492054f7SUwe Kleine-König    then:
77*492054f7SUwe Kleine-König      properties:
78*492054f7SUwe Kleine-König        display: false
79*492054f7SUwe Kleine-König        fsl,dmacr: false
80*492054f7SUwe Kleine-König        fsl,lpccr: false
81*492054f7SUwe Kleine-König        fsl,lscr1: false
82*492054f7SUwe Kleine-König
83*492054f7SUwe Kleine-König      required:
84*492054f7SUwe Kleine-König        - port
85*492054f7SUwe Kleine-König
86*492054f7SUwe Kleine-König    else:
87*492054f7SUwe Kleine-König      properties:
88*492054f7SUwe Kleine-König        port: false
89*492054f7SUwe Kleine-König
90*492054f7SUwe Kleine-König      required:
91*492054f7SUwe Kleine-König        - display
92*492054f7SUwe Kleine-König
9393266da2SUwe Kleine-Königrequired:
9493266da2SUwe Kleine-König  - compatible
9593266da2SUwe Kleine-König  - clocks
9693266da2SUwe Kleine-König  - clock-names
9793266da2SUwe Kleine-König  - interrupts
9893266da2SUwe Kleine-König  - reg
9993266da2SUwe Kleine-König
10093266da2SUwe Kleine-KönigadditionalProperties: false
10193266da2SUwe Kleine-König
10293266da2SUwe Kleine-Königexamples:
10393266da2SUwe Kleine-König  - |
104*492054f7SUwe Kleine-König    lcdc@53fbc000 {
105*492054f7SUwe Kleine-König        compatible = "fsl,imx25-lcdc", "fsl,imx21-lcdc";
106*492054f7SUwe Kleine-König        reg = <0x53fbc000 0x4000>;
107*492054f7SUwe Kleine-König        interrupts = <39>;
108*492054f7SUwe Kleine-König        clocks = <&clks 103>, <&clks 66>, <&clks 49>;
109*492054f7SUwe Kleine-König        clock-names = "ipg", "ahb", "per";
110*492054f7SUwe Kleine-König
111*492054f7SUwe Kleine-König        port {
112*492054f7SUwe Kleine-König            parallel_out: endpoint {
113*492054f7SUwe Kleine-König              remote-endpoint = <&panel_in>;
114*492054f7SUwe Kleine-König            };
115*492054f7SUwe Kleine-König        };
116*492054f7SUwe Kleine-König    };
117*492054f7SUwe Kleine-König  - |
11893266da2SUwe Kleine-König    imxfb: fb@10021000 {
11993266da2SUwe Kleine-König        compatible = "fsl,imx21-fb";
12093266da2SUwe Kleine-König        interrupts = <61>;
12193266da2SUwe Kleine-König        reg = <0x10021000 0x1000>;
12293266da2SUwe Kleine-König        display = <&display0>;
12393266da2SUwe Kleine-König        clocks = <&clks 103>, <&clks 49>, <&clks 66>;
12493266da2SUwe Kleine-König        clock-names = "ipg", "ahb", "per";
12593266da2SUwe Kleine-König    };
12693266da2SUwe Kleine-König
12793266da2SUwe Kleine-König    display0: display0 {
12893266da2SUwe Kleine-König        model = "Primeview-PD050VL1";
12993266da2SUwe Kleine-König        bits-per-pixel = <16>;
13093266da2SUwe Kleine-König        fsl,pcr = <0xf0c88080>; /* non-standard but required */
13193266da2SUwe Kleine-König
13293266da2SUwe Kleine-König        display-timings {
13393266da2SUwe Kleine-König            native-mode = <&timing_disp0>;
13493266da2SUwe Kleine-König            timing_disp0: timing0 {
13593266da2SUwe Kleine-König                hactive = <640>;
13693266da2SUwe Kleine-König                vactive = <480>;
13793266da2SUwe Kleine-König                hback-porch = <112>;
13893266da2SUwe Kleine-König                hfront-porch = <36>;
13993266da2SUwe Kleine-König                hsync-len = <32>;
14093266da2SUwe Kleine-König                vback-porch = <33>;
14193266da2SUwe Kleine-König                vfront-porch = <33>;
14293266da2SUwe Kleine-König                vsync-len = <2>;
14393266da2SUwe Kleine-König                clock-frequency = <25000000>;
14493266da2SUwe Kleine-König            };
14593266da2SUwe Kleine-König        };
14693266da2SUwe Kleine-König    };
147