Documentation / devicetree / bindings / media / i2c / maxim,max96714.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 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
# 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,max96714.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX96714 GMSL2 to CSI-2 Deserializer

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

description:
  The MAX96714 deserializer converts GMSL2 serial inputs into MIPI
  CSI-2 D-PHY formatted output. The device allows the GMSL2 link to
  simultaneously transmit bidirectional control-channel data while forward
  video transmissions are in progress. The MAX96714 can connect to one
  remotely located serializer using industry-standard coax or STP
  interconnects. The device cans operate in pixel or tunnel mode. In pixel mode
  the MAX96714 can select individual video stream, while the tunnel mode forward all
  the MIPI data received by the serializer.
 
  The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
  forward direction and 187.5Mbps in the reverse direction.
  MAX96714F only supports a fixed rate of 3Gbps in the forward direction.

properties:
  compatible:
    oneOf:
      - const: maxim,max96714f
      - items:
          - enum:
              - maxim,max96714
          - const: maxim,max96714f

  reg:
    maxItems: 1

  powerdown-gpios:
    maxItems: 1
    description:
      Specifier for the GPIO connected to the PWDNB pin.

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        unevaluatedProperties: false
        description: GMSL Input
        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false
            description:
              Endpoint for GMSL2-Link port.

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

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

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

              lane-polarities:
                minItems: 1
                maxItems: 5

              link-frequencies:
                maxItems: 1

            required:
              - data-lanes

    required:
      - port@1

  i2c-gate:
    $ref: /schemas/i2c/i2c-gate.yaml
    unevaluatedProperties: false
    description:
      The MAX96714 will pass through and forward the I2C requests from the
      incoming I2C bus over the GMSL2 link. Therefore it supports an i2c-gate
      subnode to configure a serializer.

  port0-poc-supply:
    description: Regulator providing Power over Coax for the GMSL port

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>;
 
        deserializer@28 {
            compatible = "maxim,max96714f";
            reg = <0x28>;
            powerdown-gpios = <&main_gpio0 37 GPIO_ACTIVE_LOW>;
 
            ports {
                #address-cells = <1>;
                #size-cells = <0>;
                port@0 {
                    reg = <0>;
                    max96714_gmsl_in: endpoint {
                        remote-endpoint = <&max96917f_gmsl_out>;
                    };
                };
 
                port@1 {
                    reg = <1>;
                    max96714_csi_out: endpoint {
                        data-lanes = <1 2 3 4>;
                        link-frequencies = /bits/ 64 <400000000>;
                        remote-endpoint = <&csi_in>;
                    };
                };
            };
 
            i2c-gate {
                #address-cells = <1>;
                #size-cells = <0>;
 
                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>;
                                lane-polarities = <1 0 1>;
                                remote-endpoint = <&sensor_out>;
                            };
                        };
 
                        port@1 {
                            reg = <1>;
                            max96917f_gmsl_out: endpoint {
                                remote-endpoint = <&max96714_gmsl_in>;
                            };
                        };
                    };
                };
            };
        };
    };
...