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

title: Toshiba TC358746 Parallel to MIPI CSI2 Bridge

maintainers:
  - Marco Felsch <kernel@pengutronix.de>

description: |-
  The Toshiba TC358746 converts a parallel video stream into a MIPI CSI-2
  stream. The direction can be either parallel-in -> csi-out or csi-in ->
  parallel-out The chip is programmable trough I2C and SPI but the SPI
  interface is only supported in parallel-in -> csi-out mode.

  Note that the current device tree bindings only support the
  parallel-in -> csi-out path.

properties:
  compatible:
    const: toshiba,tc358746

  reg:
    maxItems: 1

  clocks:
    description:
      The phandle to the reference clock source. This corresponds to the
      hardware pin REFCLK.
    maxItems: 1

  clock-names:
    const: refclk

  "#clock-cells":
    description: |
      The bridge can act as clock provider for the sensor. To enable this
      support #clock-cells must be specified. Attention if this feature is used
      then the mclk rate must be at least: (2 * link-frequency) / 8
                                           `------------------´   ^
                                           internal PLL rate   smallest possible
                                                                   mclk-div
    const: 0

  clock-output-names:
    description:
      The clock name of the MCLK output, the default name is tc358746-mclk.
    maxItems: 1

  vddc-supply:
    description: Digital core voltage supply, 1.2 volts

  vddio-supply:
    description: Digital I/O voltage supply, 1.8 volts

  vddmipi-supply:
    description: MIPI CSI phy voltage supply, 1.2 volts

  reset-gpios:
    description:
      The phandle and specifier for the GPIO that controls the chip reset.
      This corresponds to the hardware pin RESX which is physically active low.
    maxItems: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        description: Input port

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

            properties:
              hsync-active: true
              vsync-active: true
              bus-type:
                enum: [ 5, 6 ]

            required:
              - hsync-active
              - vsync-active
              - bus-type

      port@1:
        $ref: /schemas/graph.yaml#/$defs/port-base
        description: Output port

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

            properties:
              data-lanes:
                minItems: 1
                maxItems: 4

              clock-noncontinuous: true
              link-frequencies: true

            required:
              - data-lanes
              - link-frequencies

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - vddc-supply
  - vddio-supply
  - vddmipi-supply
  - ports

additionalProperties: false

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

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

      csi-bridge@e {
        compatible = "toshiba,tc358746";
        reg = <0xe>;

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

        reset-gpios = <&gpio 2 GPIO_ACTIVE_LOW>;

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

        /* sensor mclk provider */
        #clock-cells = <0>;

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

          /* Input */
          port@0 {
            reg = <0>;
            tc358746_in: endpoint {
              remote-endpoint = <&sensor_out>;
              hsync-active = <0>;
              vsync-active = <0>;
              bus-type = <5>;
            };
          };

          /* Output */
          port@1 {
            reg = <1>;
            tc358746_out: endpoint {
              remote-endpoint = <&mipi_csi2_in>;
              data-lanes = <1 2>;
              clock-noncontinuous;
              link-frequencies = /bits/ 64 <216000000>;
            };
          };
        };
      };
    };
