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

title: Freescale i.MX8qm/qxp LVDS Display Bridge

maintainers:
  - Liu Ying <victor.liu@nxp.com>

description: |
  The Freescale i.MX8qm/qxp LVDS Display Bridge(LDB) has two channels.

  The i.MX8qm/qxp LDB is controlled by Control and Status Registers(CSR) module.
  The CSR module, as a system controller, contains the LDB's configuration
  registers.

  For i.MX8qxp LDB, each channel supports up to 24bpp parallel input color
  format and can map the input to VESA or JEIDA standards.  The two channels
  cannot be used simultaneously, that is to say, the user should pick one of
  them to use.  Two LDB channels from two LDB instances can work together in
  LDB split mode to support a dual link LVDS display.  The channel indexes
  have to be different.  Channel0 outputs odd pixels and channel1 outputs
  even pixels.

  For i.MX8qm LDB, each channel additionally supports up to 30bpp parallel
  input color format.  The two channels can be used simultaneously, either
  in dual mode or split mode.  In dual mode, the two channels output identical
  data.  In split mode, channel0 outputs odd pixels and channel1 outputs even
  pixels.

  A side note is that i.MX8qm/qxp LDB is officially called pixel mapper in
  the SoC reference manuals.  The pixel mapper uses logic of LDBs embedded in
  i.MX6qdl/sx SoCs, i.e., it is essentially based on them.  To keep the naming
  consistency, this binding calls it LDB.

properties:
  compatible:
    enum:
      - fsl,imx8qm-ldb
      - fsl,imx8qxp-ldb

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  clocks:
    items:
      - description: pixel clock
      - description: bypass clock

  clock-names:
    items:
      - const: pixel
      - const: bypass

  power-domains:
    maxItems: 1

  fsl,companion-ldb:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: |
      A phandle which points to companion LDB which is used in LDB split mode.

patternProperties:
  "^channel@[0-1]$":
    type: object
    description: Represents a channel of LDB.

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

      reg:
        description: The channel index.
        enum: [ 0, 1 ]

      phys:
        description: A phandle to the phy module representing the LVDS PHY.
        maxItems: 1

      phy-names:
        const: lvds_phy

      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: Input port of the channel.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: Output port of the channel.

    required:
      - "#address-cells"
      - "#size-cells"
      - reg
      - phys
      - phy-names

    additionalProperties: false

required:
  - compatible
  - "#address-cells"
  - "#size-cells"
  - clocks
  - clock-names
  - power-domains
  - channel@0
  - channel@1

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: fsl,imx8qm-ldb
    then:
      properties:
        fsl,companion-ldb: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/firmware/imx/rsrc.h>
    ldb {
        #address-cells = <1>;
        #size-cells = <0>;
        compatible = "fsl,imx8qxp-ldb";
        clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
                 <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
        clock-names = "pixel", "bypass";
        power-domains = <&pd IMX_SC_R_LVDS_0>;

        channel@0 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0>;
            phys = <&mipi_lvds_0_phy>;
            phy-names = "lvds_phy";

            port@0 {
                reg = <0>;

                mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi: endpoint {
                    remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0>;
                };
            };
        };

        channel@1 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <1>;
            phys = <&mipi_lvds_0_phy>;
            phy-names = "lvds_phy";

            port@0 {
                reg = <0>;

                mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi: endpoint {
                    remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1>;
                };
            };
        };
    };
