# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/fsl,lcdif.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale/NXP i.MX LCD Interface (LCDIF)

maintainers:
  - Marek Vasut <marex@denx.de>
  - Stefan Agner <stefan@agner.ch>

description: |
  (e)LCDIF display controller found in the Freescale/NXP i.MX SoCs.

properties:
  compatible:
    oneOf:
      - enum:
          - fsl,imx23-lcdif
          - fsl,imx28-lcdif
          - fsl,imx6sx-lcdif
          - fsl,imx8mp-lcdif
          - fsl,imx93-lcdif
      - items:
          - enum:
              - fsl,imx6sl-lcdif
              - fsl,imx6sll-lcdif
              - fsl,imx6ul-lcdif
              - fsl,imx7d-lcdif
              - fsl,imx8mm-lcdif
              - fsl,imx8mn-lcdif
              - fsl,imx8mq-lcdif
          - const: fsl,imx6sx-lcdif

  reg:
    maxItems: 1

  clocks:
    items:
      - description: Pixel clock
      - description: Bus clock
      - description: Display AXI clock
    minItems: 1

  clock-names:
    items:
      - const: pix
      - const: axi
      - const: disp_axi
    minItems: 1

  interrupts:
    maxItems: 1

  power-domains:
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description: The LCDIF output port

required:
  - compatible
  - reg
  - clocks
  - interrupts
  - port

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: fsl,imx6sx-lcdif
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 3
        clock-names:
          minItems: 2
          maxItems: 3
      required:
        - clock-names
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx8mp-lcdif
              - fsl,imx93-lcdif
    then:
      properties:
        clocks:
          minItems: 3
          maxItems: 3
        clock-names:
          minItems: 3
          maxItems: 3
      required:
        - clock-names
  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - fsl,imx6sx-lcdif
                - fsl,imx8mp-lcdif
                - fsl,imx93-lcdif
    then:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          maxItems: 1
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx6sl-lcdif
              - fsl,imx6sx-lcdif
              - fsl,imx8mm-lcdif
              - fsl,imx8mn-lcdif
              - fsl,imx8mp-lcdif
              - fsl,imx93-lcdif
    then:
      required:
        - power-domains

examples:
  - |
    #include <dt-bindings/clock/imx6sx-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    display-controller@2220000 {
        compatible = "fsl,imx6sx-lcdif";
        reg = <0x02220000 0x4000>;
        interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
                 <&clks IMX6SX_CLK_LCDIF_APB>,
                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
        clock-names = "pix", "axi", "disp_axi";
        power-domains = <&pd_disp>;

        port {
            endpoint {
                remote-endpoint = <&panel_in>;
            };
        };
    };

...
