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

title: Freescale i.MX8qm/qxp Pixel Combiner

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

description: |
  The Freescale i.MX8qm/qxp Pixel Combiner takes two output streams from a
  single display controller and manipulates the two streams to support a number
  of modes(bypass, pixel combine, YUV444 to YUV422, split_RGB) configured as
  either one screen, two screens, or virtual screens.  The pixel combiner is
  also responsible for generating some of the control signals for the pixel link
  output channel.

properties:
  compatible:
    enum:
      - fsl,imx8qm-pixel-combiner
      - fsl,imx8qxp-pixel-combiner

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: apb

  power-domains:
    maxItems: 1

patternProperties:
  "^channel@[0-1]$":
    type: object
    description: Represents a display stream of pixel combiner.

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

      "#size-cells":
        const: 0

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

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

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

    required:
      - "#address-cells"
      - "#size-cells"
      - reg
      - port@0
      - port@1

    additionalProperties: false

required:
  - compatible
  - "#address-cells"
  - "#size-cells"
  - reg
  - clocks
  - clock-names
  - power-domains

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/imx8-lpcg.h>
    #include <dt-bindings/firmware/imx/rsrc.h>
    pixel-combiner@56020000 {
        compatible = "fsl,imx8qxp-pixel-combiner";
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0x56020000 0x10000>;
        clocks = <&dc0_pixel_combiner_lpcg IMX_LPCG_CLK_4>;
        clock-names = "apb";
        power-domains = <&pd IMX_SC_R_DC_0>;

        channel@0 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0>;

            port@0 {
                reg = <0>;

                dc0_pixel_combiner_ch0_dc0_dpu_disp0: endpoint {
                    remote-endpoint = <&dc0_dpu_disp0_dc0_pixel_combiner_ch0>;
                };
            };

            port@1 {
                reg = <1>;

                dc0_pixel_combiner_ch0_dc0_pixel_link0: endpoint {
                    remote-endpoint = <&dc0_pixel_link0_dc0_pixel_combiner_ch0>;
                };
            };
        };

        channel@1 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <1>;

            port@0 {
                reg = <0>;

                dc0_pixel_combiner_ch1_dc0_dpu_disp1: endpoint {
                    remote-endpoint = <&dc0_dpu_disp1_dc0_pixel_combiner_ch1>;
                };
            };

            port@1 {
                reg = <1>;

                dc0_pixel_combiner_ch1_dc0_pixel_link1: endpoint {
                    remote-endpoint = <&dc0_pixel_link1_dc0_pixel_combiner_ch1>;
                };
            };
        };
    };
