Documentation / devicetree / bindings / media / i2c / maxim,max96717.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2024 Collabora Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/maxim,max96717.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MAX96717 CSI-2 to GMSL2 Serializer

maintainers:
  - Julien Massot <julien.massot@collabora.com>

description:
  The MAX96717 serializer converts MIPI CSI-2 D-PHY formatted input
  into GMSL2 serial outputs. The device allows the GMSL2 link to
  simultaneously transmit bidirectional control-channel data while forward
  video transmissions are in progress. The MAX96717 can connect to one
  remotely located deserializer using industry-standard coax or STP
  interconnects. The device cans operate in pixel or tunnel mode. In pixel mode
  the MAX96717 can select the MIPI datatype, while the tunnel mode forward all the MIPI
  data received by the serializer.
  The MAX96717 supports Reference Over Reverse (channel),
  to generate a clock output for the sensor from the GMSL reverse channel.
 
  The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
  forward direction and 187.5Mbps in the reverse direction.
  MAX96717F only supports a fixed rate of 3Gbps in the forward direction.

properties:
  compatible:
    oneOf:
      - const: maxim,max96717f
      - items:
          - enum:
              - maxim,max96717
          - const: maxim,max96717f
 
  '#gpio-cells':
    const: 2
    description:
      First cell is the GPIO pin number, second cell is the flags. The GPIO pin
      number must be in range of [0, 10].

  gpio-controller: true
 
  '#clock-cells':
    const: 0

  reg:
    maxItems: 1

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: CSI-2 Input port

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

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

              lane-polarities:
                minItems: 1
                maxItems: 5

            required:
              - data-lanes

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        unevaluatedProperties: false
        description: GMSL Output port

    required:
      - port@1

  i2c-gate:
    $ref: /schemas/i2c/i2c-gate.yaml
    unevaluatedProperties: false
    description:
      The MAX96717 will forward the I2C requests from the
      incoming GMSL2 link. Therefore, it supports an i2c-gate
      subnode to configure a sensor.

required:
  - compatible
  - reg
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/media/video-interfaces.h>
 
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        serializer: serializer@40 {
            compatible = "maxim,max96717f";
            reg = <0x40>;
            gpio-controller;
            #gpio-cells = <2>;
            #clock-cells = <0>;
 
            ports {
                #address-cells = <1>;
                #size-cells = <0>;
 
                port@0 {
                    reg = <0>;
                    max96717f_csi_in: endpoint {
                        data-lanes = <1 2 3 4>;
                        remote-endpoint = <&sensor_out>;
                    };
                };
 
                port@1 {
                    reg = <1>;
                    max96917f_gmsl_out: endpoint {
                        remote-endpoint = <&deser_gmsl_in>;
                    };
                };
            };
 
            i2c-gate {
                #address-cells = <1>;
                #size-cells = <0>;
                sensor@10 {
                    compatible = "st,st-vgxy61";
                    reg = <0x10>;
                    reset-gpios = <&serializer 0 GPIO_ACTIVE_LOW>;
                    clocks = <&serializer>;
                    VCORE-supply = <&v1v2>;
                    VDDIO-supply = <&v1v8>;
                    VANA-supply = <&v2v8>;
                    port {
                        sensor_out: endpoint {
                            data-lanes = <1 2 3 4>;
                            remote-endpoint = <&max96717f_csi_in>;
                        };
                    };
                };
            };
        };
    };
...