Documentation / devicetree / bindings / display / imx / fsl,imx-lcdc.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/imx/fsl,imx-lcdc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale i.MX LCD Controller, found on i.MX1, i.MX21, i.MX25 and i.MX27

maintainers:
  - Sascha Hauer <s.hauer@pengutronix.de>
  - Pengutronix Kernel Team <kernel@pengutronix.de>

properties:
  compatible:
    oneOf:
      - enum:
          - fsl,imx1-fb
          - fsl,imx21-fb
      - items:
          - enum:
              - fsl,imx25-fb
              - fsl,imx27-fb
          - const: fsl,imx21-fb
      - items:
          - const: fsl,imx25-lcdc
          - const: fsl,imx21-lcdc

  clocks:
    maxItems: 3

  clock-names:
    items:
      - const: ipg
      - const: ahb
      - const: per

  port:
    $ref: /schemas/graph.yaml#/properties/port

  display:
    $ref: /schemas/types.yaml#/definitions/phandle

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  lcd-supply:
    description:
      Regulator for LCD supply voltage.

  fsl,dmacr:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Override value for DMA Control Register

  fsl,lpccr:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Contrast Control Register value.

  fsl,lscr1:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      LCDC Sharp Configuration Register value.

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx1-lcdc
              - fsl,imx21-lcdc
    then:
      properties:
        display: false
        fsl,dmacr: false
        fsl,lpccr: false
        fsl,lscr1: false

      required:
        - port

    else:
      properties:
        port: false

      required:
        - display

required:
  - compatible
  - clocks
  - clock-names
  - interrupts
  - reg

additionalProperties: false

examples:
  - |
    lcdc@53fbc000 {
        compatible = "fsl,imx25-lcdc", "fsl,imx21-lcdc";
        reg = <0x53fbc000 0x4000>;
        interrupts = <39>;
        clocks = <&clks 103>, <&clks 66>, <&clks 49>;
        clock-names = "ipg", "ahb", "per";
 
        port {
            parallel_out: endpoint {
              remote-endpoint = <&panel_in>;
            };
        };
    };
  - |
    imxfb: fb@10021000 {
        compatible = "fsl,imx21-fb";
        interrupts = <61>;
        reg = <0x10021000 0x1000>;
        display = <&display0>;
        clocks = <&clks 103>, <&clks 49>, <&clks 66>;
        clock-names = "ipg", "ahb", "per";
    };

    display0: display0 {
        model = "Primeview-PD050VL1";
        bits-per-pixel = <16>;
        fsl,pcr = <0xf0c88080>; /* non-standard but required */
 
        display-timings {
            native-mode = <&timing_disp0>;
            timing_disp0: timing0 {
                hactive = <640>;
                vactive = <480>;
                hback-porch = <112>;
                hfront-porch = <36>;
                hsync-len = <32>;
                vback-porch = <33>;
                vfront-porch = <33>;
                vsync-len = <2>;
                clock-frequency = <25000000>;
            };
        };
    };