1*1bcbc008SJulien Massot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*1bcbc008SJulien Massot# Copyright (C) 2024 Collabora Ltd. 3*1bcbc008SJulien Massot%YAML 1.2 4*1bcbc008SJulien Massot--- 5*1bcbc008SJulien Massot$id: http://devicetree.org/schemas/media/i2c/maxim,max96717.yaml# 6*1bcbc008SJulien Massot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*1bcbc008SJulien Massot 8*1bcbc008SJulien Massottitle: MAX96717 CSI-2 to GMSL2 Serializer 9*1bcbc008SJulien Massot 10*1bcbc008SJulien Massotmaintainers: 11*1bcbc008SJulien Massot - Julien Massot <julien.massot@collabora.com> 12*1bcbc008SJulien Massot 13*1bcbc008SJulien Massotdescription: 14*1bcbc008SJulien Massot The MAX96717 serializer converts MIPI CSI-2 D-PHY formatted input 15*1bcbc008SJulien Massot into GMSL2 serial outputs. The device allows the GMSL2 link to 16*1bcbc008SJulien Massot simultaneously transmit bidirectional control-channel data while forward 17*1bcbc008SJulien Massot video transmissions are in progress. The MAX96717 can connect to one 18*1bcbc008SJulien Massot remotely located deserializer using industry-standard coax or STP 19*1bcbc008SJulien Massot interconnects. The device cans operate in pixel or tunnel mode. In pixel mode 20*1bcbc008SJulien Massot the MAX96717 can select the MIPI datatype, while the tunnel mode forward all the MIPI 21*1bcbc008SJulien Massot data received by the serializer. 22*1bcbc008SJulien Massot The MAX96717 supports Reference Over Reverse (channel), 23*1bcbc008SJulien Massot to generate a clock output for the sensor from the GMSL reverse channel. 24*1bcbc008SJulien Massot 25*1bcbc008SJulien Massot The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the 26*1bcbc008SJulien Massot forward direction and 187.5Mbps in the reverse direction. 27*1bcbc008SJulien Massot MAX96717F only supports a fixed rate of 3Gbps in the forward direction. 28*1bcbc008SJulien Massot 29*1bcbc008SJulien Massotproperties: 30*1bcbc008SJulien Massot compatible: 31*1bcbc008SJulien Massot oneOf: 32*1bcbc008SJulien Massot - const: maxim,max96717f 33*1bcbc008SJulien Massot - items: 34*1bcbc008SJulien Massot - enum: 35*1bcbc008SJulien Massot - maxim,max96717 36*1bcbc008SJulien Massot - const: maxim,max96717f 37*1bcbc008SJulien Massot 38*1bcbc008SJulien Massot '#gpio-cells': 39*1bcbc008SJulien Massot const: 2 40*1bcbc008SJulien Massot description: 41*1bcbc008SJulien Massot First cell is the GPIO pin number, second cell is the flags. The GPIO pin 42*1bcbc008SJulien Massot number must be in range of [0, 10]. 43*1bcbc008SJulien Massot 44*1bcbc008SJulien Massot gpio-controller: true 45*1bcbc008SJulien Massot 46*1bcbc008SJulien Massot '#clock-cells': 47*1bcbc008SJulien Massot const: 0 48*1bcbc008SJulien Massot 49*1bcbc008SJulien Massot reg: 50*1bcbc008SJulien Massot maxItems: 1 51*1bcbc008SJulien Massot 52*1bcbc008SJulien Massot ports: 53*1bcbc008SJulien Massot $ref: /schemas/graph.yaml#/properties/ports 54*1bcbc008SJulien Massot 55*1bcbc008SJulien Massot properties: 56*1bcbc008SJulien Massot port@0: 57*1bcbc008SJulien Massot $ref: /schemas/graph.yaml#/$defs/port-base 58*1bcbc008SJulien Massot unevaluatedProperties: false 59*1bcbc008SJulien Massot description: CSI-2 Input port 60*1bcbc008SJulien Massot 61*1bcbc008SJulien Massot properties: 62*1bcbc008SJulien Massot endpoint: 63*1bcbc008SJulien Massot $ref: /schemas/media/video-interfaces.yaml# 64*1bcbc008SJulien Massot unevaluatedProperties: false 65*1bcbc008SJulien Massot 66*1bcbc008SJulien Massot properties: 67*1bcbc008SJulien Massot data-lanes: 68*1bcbc008SJulien Massot minItems: 1 69*1bcbc008SJulien Massot maxItems: 4 70*1bcbc008SJulien Massot 71*1bcbc008SJulien Massot lane-polarities: 72*1bcbc008SJulien Massot minItems: 1 73*1bcbc008SJulien Massot maxItems: 5 74*1bcbc008SJulien Massot 75*1bcbc008SJulien Massot required: 76*1bcbc008SJulien Massot - data-lanes 77*1bcbc008SJulien Massot 78*1bcbc008SJulien Massot port@1: 79*1bcbc008SJulien Massot $ref: /schemas/graph.yaml#/properties/port 80*1bcbc008SJulien Massot unevaluatedProperties: false 81*1bcbc008SJulien Massot description: GMSL Output port 82*1bcbc008SJulien Massot 83*1bcbc008SJulien Massot required: 84*1bcbc008SJulien Massot - port@1 85*1bcbc008SJulien Massot 86*1bcbc008SJulien Massot i2c-gate: 87*1bcbc008SJulien Massot $ref: /schemas/i2c/i2c-gate.yaml 88*1bcbc008SJulien Massot unevaluatedProperties: false 89*1bcbc008SJulien Massot description: 90*1bcbc008SJulien Massot The MAX96717 will forward the I2C requests from the 91*1bcbc008SJulien Massot incoming GMSL2 link. Therefore, it supports an i2c-gate 92*1bcbc008SJulien Massot subnode to configure a sensor. 93*1bcbc008SJulien Massot 94*1bcbc008SJulien Massotrequired: 95*1bcbc008SJulien Massot - compatible 96*1bcbc008SJulien Massot - reg 97*1bcbc008SJulien Massot - ports 98*1bcbc008SJulien Massot 99*1bcbc008SJulien MassotadditionalProperties: false 100*1bcbc008SJulien Massot 101*1bcbc008SJulien Massotexamples: 102*1bcbc008SJulien Massot - | 103*1bcbc008SJulien Massot #include <dt-bindings/gpio/gpio.h> 104*1bcbc008SJulien Massot #include <dt-bindings/media/video-interfaces.h> 105*1bcbc008SJulien Massot 106*1bcbc008SJulien Massot i2c { 107*1bcbc008SJulien Massot #address-cells = <1>; 108*1bcbc008SJulien Massot #size-cells = <0>; 109*1bcbc008SJulien Massot serializer: serializer@40 { 110*1bcbc008SJulien Massot compatible = "maxim,max96717f"; 111*1bcbc008SJulien Massot reg = <0x40>; 112*1bcbc008SJulien Massot gpio-controller; 113*1bcbc008SJulien Massot #gpio-cells = <2>; 114*1bcbc008SJulien Massot #clock-cells = <0>; 115*1bcbc008SJulien Massot 116*1bcbc008SJulien Massot ports { 117*1bcbc008SJulien Massot #address-cells = <1>; 118*1bcbc008SJulien Massot #size-cells = <0>; 119*1bcbc008SJulien Massot 120*1bcbc008SJulien Massot port@0 { 121*1bcbc008SJulien Massot reg = <0>; 122*1bcbc008SJulien Massot max96717f_csi_in: endpoint { 123*1bcbc008SJulien Massot data-lanes = <1 2 3 4>; 124*1bcbc008SJulien Massot remote-endpoint = <&sensor_out>; 125*1bcbc008SJulien Massot }; 126*1bcbc008SJulien Massot }; 127*1bcbc008SJulien Massot 128*1bcbc008SJulien Massot port@1 { 129*1bcbc008SJulien Massot reg = <1>; 130*1bcbc008SJulien Massot max96917f_gmsl_out: endpoint { 131*1bcbc008SJulien Massot remote-endpoint = <&deser_gmsl_in>; 132*1bcbc008SJulien Massot }; 133*1bcbc008SJulien Massot }; 134*1bcbc008SJulien Massot }; 135*1bcbc008SJulien Massot 136*1bcbc008SJulien Massot i2c-gate { 137*1bcbc008SJulien Massot #address-cells = <1>; 138*1bcbc008SJulien Massot #size-cells = <0>; 139*1bcbc008SJulien Massot sensor@10 { 140*1bcbc008SJulien Massot compatible = "st,st-vgxy61"; 141*1bcbc008SJulien Massot reg = <0x10>; 142*1bcbc008SJulien Massot reset-gpios = <&serializer 0 GPIO_ACTIVE_LOW>; 143*1bcbc008SJulien Massot clocks = <&serializer>; 144*1bcbc008SJulien Massot VCORE-supply = <&v1v2>; 145*1bcbc008SJulien Massot VDDIO-supply = <&v1v8>; 146*1bcbc008SJulien Massot VANA-supply = <&v2v8>; 147*1bcbc008SJulien Massot port { 148*1bcbc008SJulien Massot sensor_out: endpoint { 149*1bcbc008SJulien Massot data-lanes = <1 2 3 4>; 150*1bcbc008SJulien Massot remote-endpoint = <&max96717f_csi_in>; 151*1bcbc008SJulien Massot }; 152*1bcbc008SJulien Massot }; 153*1bcbc008SJulien Massot }; 154*1bcbc008SJulien Massot }; 155*1bcbc008SJulien Massot }; 156*1bcbc008SJulien Massot }; 157*1bcbc008SJulien Massot... 158