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

title: Toschiba TC358768/TC358778 Parallel RGB to MIPI DSI bridge

maintainers:
  - Peter Ujfalusi <peter.ujfalusi@ti.com>

description: |
  The TC358768/TC358778 is bridge device which converts RGB to DSI.

properties:
  compatible:
    enum:
      - toshiba,tc358768
      - toshiba,tc358778

  reg:
    maxItems: 1
    description: base I2C address of the device

  reset-gpios:
    maxItems: 1
    description: GPIO connected to active low RESX pin

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

  vddmipi-supply:
    description: Regulator for 1.2V for the MIPI.

  vddio-supply:
    description: Regulator for 1.8V - 3.3V IO power.

  clocks:
    maxItems: 1

  clock-names:
    const: refclk

  ports:
    type: object

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

      "#size-cells":
        const: 0

      port@0:
        type: object
        additionalProperties: false

        description: |
          Video port for RGB input

        properties:
          reg:
            const: 0

        patternProperties:
          endpoint:
            type: object
            additionalProperties: false

            properties:
              data-lines:
                enum: [ 16, 18, 24 ]

              remote-endpoint: true

        required:
          - reg

      port@1:
        type: object
        additionalProperties: false

        description: |
          Video port for DSI output (panel or connector).

        properties:
          reg:
            const: 1

        patternProperties:
          endpoint:
            type: object
            additionalProperties: false

            properties:
              remote-endpoint: true

        required:
          - reg

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

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

additionalProperties: false

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

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

      dsi_bridge: dsi-bridge@e {
        compatible = "toshiba,tc358768";
        reg = <0xe>;

        clocks = <&tc358768_refclk>;
        clock-names = "refclk";

        reset-gpios = <&pcf_display_board 0 GPIO_ACTIVE_LOW>;

        vddc-supply = <&v1_2d>;
        vddmipi-supply = <&v1_2d>;
        vddio-supply = <&v3_3d>;

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

          port@0 {
            reg = <0>;
            rgb_in: endpoint {
              remote-endpoint = <&dpi_out>;
              data-lines = <24>;
            };
          };

          port@1 {
            reg = <1>;
            dsi_out: endpoint {
              remote-endpoint = <&lcd_in>;
            };
          };
        };
      };
    };
    
