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

title: Chipone ICN6211 MIPI-DSI to RGB Converter bridge

maintainers:
  - Jagan Teki <jagan@amarulasolutions.com>

description: |
  ICN6211 is MIPI-DSI to RGB Converter bridge from chipone.

  It has a flexible configuration of MIPI DSI signal input and
  produce RGB565, RGB666, RGB888 output format.

properties:
  compatible:
    enum:
      - chipone,icn6211

  reg:
    maxItems: 1
    description: virtual channel number of a DSI peripheral

  clock-names:
    const: refclk

  clocks:
    maxItems: 1
    description: |
        Optional external clock connected to REF_CLK input.
        The clock rate must be in 10..154 MHz range.

  enable-gpios:
    description: Bridge EN pin, chip is reset when EN is low.

  vdd1-supply:
    description: A 1.8V/2.5V/3.3V supply that power the MIPI RX.

  vdd2-supply:
    description: A 1.8V/2.5V/3.3V supply that power the PLL.

  vdd3-supply:
    description: A 1.8V/2.5V/3.3V supply that power the RGB output.

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description:
          Video port for MIPI DSI input

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                description: array of physical DSI data lane indexes.
                minItems: 1
                items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Video port for MIPI DPI output (panel or connector).

    required:
      - port@1

required:
  - compatible
  - reg
  - enable-gpios
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    dsi {
      #address-cells = <1>;
      #size-cells = <0>;

      bridge@0 {
        compatible = "chipone,icn6211";
        reg = <0>;
        enable-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* LCD-RST: PL5 */

        ports {
          #address-cells = <1>;
          #size-cells = <0>;

          port@0 {
            reg = <0>;

            bridge_in_dsi: endpoint {
              remote-endpoint = <&dsi_out_bridge>;
            };
          };

          port@1 {
            reg = <1>;

            bridge_out_panel: endpoint {
              remote-endpoint = <&panel_out_bridge>;
            };
          };
        };
      };
    };