162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/display/imx/fsl,imx-lcdc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Freescale i.MX LCD Controller, found on i.MX1, i.MX21, i.MX25 and i.MX27
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Sascha Hauer <s.hauer@pengutronix.de>
1162306a36Sopenharmony_ci  - Pengutronix Kernel Team <kernel@pengutronix.de>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciproperties:
1462306a36Sopenharmony_ci  compatible:
1562306a36Sopenharmony_ci    oneOf:
1662306a36Sopenharmony_ci      - enum:
1762306a36Sopenharmony_ci          - fsl,imx1-fb
1862306a36Sopenharmony_ci          - fsl,imx21-fb
1962306a36Sopenharmony_ci      - items:
2062306a36Sopenharmony_ci          - enum:
2162306a36Sopenharmony_ci              - fsl,imx25-fb
2262306a36Sopenharmony_ci              - fsl,imx27-fb
2362306a36Sopenharmony_ci          - const: fsl,imx21-fb
2462306a36Sopenharmony_ci      - items:
2562306a36Sopenharmony_ci          - const: fsl,imx25-lcdc
2662306a36Sopenharmony_ci          - const: fsl,imx21-lcdc
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  clocks:
2962306a36Sopenharmony_ci    maxItems: 3
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  clock-names:
3262306a36Sopenharmony_ci    items:
3362306a36Sopenharmony_ci      - const: ipg
3462306a36Sopenharmony_ci      - const: ahb
3562306a36Sopenharmony_ci      - const: per
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  port:
3862306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/properties/port
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  display:
4162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  interrupts:
4462306a36Sopenharmony_ci    maxItems: 1
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  reg:
4762306a36Sopenharmony_ci    maxItems: 1
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  lcd-supply:
5062306a36Sopenharmony_ci    description:
5162306a36Sopenharmony_ci      Regulator for LCD supply voltage.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  fsl,dmacr:
5462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
5562306a36Sopenharmony_ci    description:
5662306a36Sopenharmony_ci      Override value for DMA Control Register
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  fsl,lpccr:
5962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
6062306a36Sopenharmony_ci    description:
6162306a36Sopenharmony_ci      Contrast Control Register value.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci  fsl,lscr1:
6462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
6562306a36Sopenharmony_ci    description:
6662306a36Sopenharmony_ci      LCDC Sharp Configuration Register value.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciallOf:
6962306a36Sopenharmony_ci  - if:
7062306a36Sopenharmony_ci      properties:
7162306a36Sopenharmony_ci        compatible:
7262306a36Sopenharmony_ci          contains:
7362306a36Sopenharmony_ci            enum:
7462306a36Sopenharmony_ci              - fsl,imx1-lcdc
7562306a36Sopenharmony_ci              - fsl,imx21-lcdc
7662306a36Sopenharmony_ci    then:
7762306a36Sopenharmony_ci      properties:
7862306a36Sopenharmony_ci        display: false
7962306a36Sopenharmony_ci        fsl,dmacr: false
8062306a36Sopenharmony_ci        fsl,lpccr: false
8162306a36Sopenharmony_ci        fsl,lscr1: false
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci      required:
8462306a36Sopenharmony_ci        - port
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci    else:
8762306a36Sopenharmony_ci      properties:
8862306a36Sopenharmony_ci        port: false
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci      required:
9162306a36Sopenharmony_ci        - display
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_cirequired:
9462306a36Sopenharmony_ci  - compatible
9562306a36Sopenharmony_ci  - clocks
9662306a36Sopenharmony_ci  - clock-names
9762306a36Sopenharmony_ci  - interrupts
9862306a36Sopenharmony_ci  - reg
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciadditionalProperties: false
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciexamples:
10362306a36Sopenharmony_ci  - |
10462306a36Sopenharmony_ci    lcdc@53fbc000 {
10562306a36Sopenharmony_ci        compatible = "fsl,imx25-lcdc", "fsl,imx21-lcdc";
10662306a36Sopenharmony_ci        reg = <0x53fbc000 0x4000>;
10762306a36Sopenharmony_ci        interrupts = <39>;
10862306a36Sopenharmony_ci        clocks = <&clks 103>, <&clks 66>, <&clks 49>;
10962306a36Sopenharmony_ci        clock-names = "ipg", "ahb", "per";
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci        port {
11262306a36Sopenharmony_ci            parallel_out: endpoint {
11362306a36Sopenharmony_ci              remote-endpoint = <&panel_in>;
11462306a36Sopenharmony_ci            };
11562306a36Sopenharmony_ci        };
11662306a36Sopenharmony_ci    };
11762306a36Sopenharmony_ci  - |
11862306a36Sopenharmony_ci    imxfb: fb@10021000 {
11962306a36Sopenharmony_ci        compatible = "fsl,imx21-fb";
12062306a36Sopenharmony_ci        interrupts = <61>;
12162306a36Sopenharmony_ci        reg = <0x10021000 0x1000>;
12262306a36Sopenharmony_ci        display = <&display0>;
12362306a36Sopenharmony_ci        clocks = <&clks 103>, <&clks 49>, <&clks 66>;
12462306a36Sopenharmony_ci        clock-names = "ipg", "ahb", "per";
12562306a36Sopenharmony_ci    };
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci    display0: display0 {
12862306a36Sopenharmony_ci        model = "Primeview-PD050VL1";
12962306a36Sopenharmony_ci        bits-per-pixel = <16>;
13062306a36Sopenharmony_ci        fsl,pcr = <0xf0c88080>; /* non-standard but required */
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci        display-timings {
13362306a36Sopenharmony_ci            native-mode = <&timing_disp0>;
13462306a36Sopenharmony_ci            timing_disp0: timing0 {
13562306a36Sopenharmony_ci                hactive = <640>;
13662306a36Sopenharmony_ci                vactive = <480>;
13762306a36Sopenharmony_ci                hback-porch = <112>;
13862306a36Sopenharmony_ci                hfront-porch = <36>;
13962306a36Sopenharmony_ci                hsync-len = <32>;
14062306a36Sopenharmony_ci                vback-porch = <33>;
14162306a36Sopenharmony_ci                vfront-porch = <33>;
14262306a36Sopenharmony_ci                vsync-len = <2>;
14362306a36Sopenharmony_ci                clock-frequency = <25000000>;
14462306a36Sopenharmony_ci            };
14562306a36Sopenharmony_ci        };
14662306a36Sopenharmony_ci    };
147