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

title: Toshiba TC358762 MIPI DSI to MIPI DPI bridge

maintainers:
  - Marek Vasut <marex@denx.de>

description: |
  The TC358762 is bridge device which converts MIPI DSI to MIPI DPI.

properties:
  compatible:
    enum:
      - toshiba,tc358762

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

  vddc-supply:
    description: Regulator for 1.2V internal core power.

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Video port for MIPI DSI input

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

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - vddc-supply
  - ports

additionalProperties: false

examples:
  - |
    i2c1 {
      #address-cells = <1>;
      #size-cells = <0>;

      bridge@0 {
        reg = <0>;
        compatible = "toshiba,tc358762";
        vddc-supply = <&vcc_1v2_reg>;

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

          port@0 {
            reg = <0>;
            bridge_in: endpoint {
              remote-endpoint = <&dsi_out>;
            };
          };

          port@1 {
            reg = <1>;
            bridge_out: endpoint {
              remote-endpoint = <&panel_in>;
            };
          };
        };
      };
    };

...
