# 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

  dmas:
    items:
      - description: DMA specifier for the RX DMA channel.

  dma-names:
    items:
      - const: rx

  interrupts:
    items:
      - description: LCDIF DMA interrupt
      - description: LCDIF Error interrupt
    minItems: 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:
          const: fsl,imx6sx-lcdif
    then:
      required:
        - power-domains
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx6sl-lcdif
              - fsl,imx8mm-lcdif
              - fsl,imx8mn-lcdif
              - fsl,imx8mp-lcdif
              - fsl,imx93-lcdif
    then:
      required:
        - power-domains
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx23-lcdif
    then:
      properties:
        interrupts:
          minItems: 2
          maxItems: 2
    else:
      properties:
        interrupts:
          maxItems: 1

  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - fsl,imx28-lcdif
    then:
      properties:
        dmas: false
        dma-names: false

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>;
            };
        };
    };

...
