1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*0e8011faSEmmanuel Vadot# Copyright (C) 2024 Collabora Ltd. 3*0e8011faSEmmanuel Vadot%YAML 1.2 4*0e8011faSEmmanuel Vadot--- 5*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/media/i2c/maxim,max96714.yaml# 6*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*0e8011faSEmmanuel Vadot 8*0e8011faSEmmanuel Vadottitle: Maxim MAX96714 GMSL2 to CSI-2 Deserializer 9*0e8011faSEmmanuel Vadot 10*0e8011faSEmmanuel Vadotmaintainers: 11*0e8011faSEmmanuel Vadot - Julien Massot <julien.massot@collabora.com> 12*0e8011faSEmmanuel Vadot 13*0e8011faSEmmanuel Vadotdescription: 14*0e8011faSEmmanuel Vadot The MAX96714 deserializer converts GMSL2 serial inputs into MIPI 15*0e8011faSEmmanuel Vadot CSI-2 D-PHY formatted output. The device allows the GMSL2 link to 16*0e8011faSEmmanuel Vadot simultaneously transmit bidirectional control-channel data while forward 17*0e8011faSEmmanuel Vadot video transmissions are in progress. The MAX96714 can connect to one 18*0e8011faSEmmanuel Vadot remotely located serializer using industry-standard coax or STP 19*0e8011faSEmmanuel Vadot interconnects. The device cans operate in pixel or tunnel mode. In pixel mode 20*0e8011faSEmmanuel Vadot the MAX96714 can select individual video stream, while the tunnel mode forward all 21*0e8011faSEmmanuel Vadot the MIPI data received by the serializer. 22*0e8011faSEmmanuel Vadot 23*0e8011faSEmmanuel Vadot The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the 24*0e8011faSEmmanuel Vadot forward direction and 187.5Mbps in the reverse direction. 25*0e8011faSEmmanuel Vadot MAX96714F only supports a fixed rate of 3Gbps in the forward direction. 26*0e8011faSEmmanuel Vadot 27*0e8011faSEmmanuel Vadotproperties: 28*0e8011faSEmmanuel Vadot compatible: 29*0e8011faSEmmanuel Vadot oneOf: 30*0e8011faSEmmanuel Vadot - const: maxim,max96714f 31*0e8011faSEmmanuel Vadot - items: 32*0e8011faSEmmanuel Vadot - enum: 33*0e8011faSEmmanuel Vadot - maxim,max96714 34*0e8011faSEmmanuel Vadot - const: maxim,max96714f 35*0e8011faSEmmanuel Vadot 36*0e8011faSEmmanuel Vadot reg: 37*0e8011faSEmmanuel Vadot maxItems: 1 38*0e8011faSEmmanuel Vadot 39*0e8011faSEmmanuel Vadot powerdown-gpios: 40*0e8011faSEmmanuel Vadot maxItems: 1 41*0e8011faSEmmanuel Vadot description: 42*0e8011faSEmmanuel Vadot Specifier for the GPIO connected to the PWDNB pin. 43*0e8011faSEmmanuel Vadot 44*0e8011faSEmmanuel Vadot ports: 45*0e8011faSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 46*0e8011faSEmmanuel Vadot 47*0e8011faSEmmanuel Vadot properties: 48*0e8011faSEmmanuel Vadot port@0: 49*0e8011faSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 50*0e8011faSEmmanuel Vadot unevaluatedProperties: false 51*0e8011faSEmmanuel Vadot description: GMSL Input 52*0e8011faSEmmanuel Vadot properties: 53*0e8011faSEmmanuel Vadot endpoint: 54*0e8011faSEmmanuel Vadot $ref: /schemas/media/video-interfaces.yaml# 55*0e8011faSEmmanuel Vadot unevaluatedProperties: false 56*0e8011faSEmmanuel Vadot description: 57*0e8011faSEmmanuel Vadot Endpoint for GMSL2-Link port. 58*0e8011faSEmmanuel Vadot 59*0e8011faSEmmanuel Vadot port@1: 60*0e8011faSEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 61*0e8011faSEmmanuel Vadot unevaluatedProperties: false 62*0e8011faSEmmanuel Vadot description: CSI-2 Output port 63*0e8011faSEmmanuel Vadot 64*0e8011faSEmmanuel Vadot properties: 65*0e8011faSEmmanuel Vadot endpoint: 66*0e8011faSEmmanuel Vadot $ref: /schemas/media/video-interfaces.yaml# 67*0e8011faSEmmanuel Vadot unevaluatedProperties: false 68*0e8011faSEmmanuel Vadot 69*0e8011faSEmmanuel Vadot properties: 70*0e8011faSEmmanuel Vadot data-lanes: 71*0e8011faSEmmanuel Vadot minItems: 1 72*0e8011faSEmmanuel Vadot maxItems: 4 73*0e8011faSEmmanuel Vadot 74*0e8011faSEmmanuel Vadot lane-polarities: 75*0e8011faSEmmanuel Vadot minItems: 1 76*0e8011faSEmmanuel Vadot maxItems: 5 77*0e8011faSEmmanuel Vadot 78*0e8011faSEmmanuel Vadot link-frequencies: 79*0e8011faSEmmanuel Vadot maxItems: 1 80*0e8011faSEmmanuel Vadot 81*0e8011faSEmmanuel Vadot required: 82*0e8011faSEmmanuel Vadot - data-lanes 83*0e8011faSEmmanuel Vadot 84*0e8011faSEmmanuel Vadot required: 85*0e8011faSEmmanuel Vadot - port@1 86*0e8011faSEmmanuel Vadot 87*0e8011faSEmmanuel Vadot i2c-gate: 88*0e8011faSEmmanuel Vadot $ref: /schemas/i2c/i2c-gate.yaml 89*0e8011faSEmmanuel Vadot unevaluatedProperties: false 90*0e8011faSEmmanuel Vadot description: 91*0e8011faSEmmanuel Vadot The MAX96714 will pass through and forward the I2C requests from the 92*0e8011faSEmmanuel Vadot incoming I2C bus over the GMSL2 link. Therefore it supports an i2c-gate 93*0e8011faSEmmanuel Vadot subnode to configure a serializer. 94*0e8011faSEmmanuel Vadot 95*0e8011faSEmmanuel Vadot port0-poc-supply: 96*0e8011faSEmmanuel Vadot description: Regulator providing Power over Coax for the GMSL port 97*0e8011faSEmmanuel Vadot 98*0e8011faSEmmanuel Vadotrequired: 99*0e8011faSEmmanuel Vadot - compatible 100*0e8011faSEmmanuel Vadot - reg 101*0e8011faSEmmanuel Vadot - ports 102*0e8011faSEmmanuel Vadot 103*0e8011faSEmmanuel VadotadditionalProperties: false 104*0e8011faSEmmanuel Vadot 105*0e8011faSEmmanuel Vadotexamples: 106*0e8011faSEmmanuel Vadot - | 107*0e8011faSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 108*0e8011faSEmmanuel Vadot #include <dt-bindings/media/video-interfaces.h> 109*0e8011faSEmmanuel Vadot 110*0e8011faSEmmanuel Vadot i2c { 111*0e8011faSEmmanuel Vadot #address-cells = <1>; 112*0e8011faSEmmanuel Vadot #size-cells = <0>; 113*0e8011faSEmmanuel Vadot 114*0e8011faSEmmanuel Vadot deserializer@28 { 115*0e8011faSEmmanuel Vadot compatible = "maxim,max96714f"; 116*0e8011faSEmmanuel Vadot reg = <0x28>; 117*0e8011faSEmmanuel Vadot powerdown-gpios = <&main_gpio0 37 GPIO_ACTIVE_LOW>; 118*0e8011faSEmmanuel Vadot 119*0e8011faSEmmanuel Vadot ports { 120*0e8011faSEmmanuel Vadot #address-cells = <1>; 121*0e8011faSEmmanuel Vadot #size-cells = <0>; 122*0e8011faSEmmanuel Vadot port@0 { 123*0e8011faSEmmanuel Vadot reg = <0>; 124*0e8011faSEmmanuel Vadot max96714_gmsl_in: endpoint { 125*0e8011faSEmmanuel Vadot remote-endpoint = <&max96917f_gmsl_out>; 126*0e8011faSEmmanuel Vadot }; 127*0e8011faSEmmanuel Vadot }; 128*0e8011faSEmmanuel Vadot 129*0e8011faSEmmanuel Vadot port@1 { 130*0e8011faSEmmanuel Vadot reg = <1>; 131*0e8011faSEmmanuel Vadot max96714_csi_out: endpoint { 132*0e8011faSEmmanuel Vadot data-lanes = <1 2 3 4>; 133*0e8011faSEmmanuel Vadot link-frequencies = /bits/ 64 <400000000>; 134*0e8011faSEmmanuel Vadot remote-endpoint = <&csi_in>; 135*0e8011faSEmmanuel Vadot }; 136*0e8011faSEmmanuel Vadot }; 137*0e8011faSEmmanuel Vadot }; 138*0e8011faSEmmanuel Vadot 139*0e8011faSEmmanuel Vadot i2c-gate { 140*0e8011faSEmmanuel Vadot #address-cells = <1>; 141*0e8011faSEmmanuel Vadot #size-cells = <0>; 142*0e8011faSEmmanuel Vadot 143*0e8011faSEmmanuel Vadot serializer@40 { 144*0e8011faSEmmanuel Vadot compatible = "maxim,max96717f"; 145*0e8011faSEmmanuel Vadot reg = <0x40>; 146*0e8011faSEmmanuel Vadot gpio-controller; 147*0e8011faSEmmanuel Vadot #gpio-cells = <2>; 148*0e8011faSEmmanuel Vadot #clock-cells = <0>; 149*0e8011faSEmmanuel Vadot 150*0e8011faSEmmanuel Vadot ports { 151*0e8011faSEmmanuel Vadot #address-cells = <1>; 152*0e8011faSEmmanuel Vadot #size-cells = <0>; 153*0e8011faSEmmanuel Vadot 154*0e8011faSEmmanuel Vadot port@0 { 155*0e8011faSEmmanuel Vadot reg = <0>; 156*0e8011faSEmmanuel Vadot max96717f_csi_in: endpoint { 157*0e8011faSEmmanuel Vadot data-lanes = <1 2>; 158*0e8011faSEmmanuel Vadot lane-polarities = <1 0 1>; 159*0e8011faSEmmanuel Vadot remote-endpoint = <&sensor_out>; 160*0e8011faSEmmanuel Vadot }; 161*0e8011faSEmmanuel Vadot }; 162*0e8011faSEmmanuel Vadot 163*0e8011faSEmmanuel Vadot port@1 { 164*0e8011faSEmmanuel Vadot reg = <1>; 165*0e8011faSEmmanuel Vadot max96917f_gmsl_out: endpoint { 166*0e8011faSEmmanuel Vadot remote-endpoint = <&max96714_gmsl_in>; 167*0e8011faSEmmanuel Vadot }; 168*0e8011faSEmmanuel Vadot }; 169*0e8011faSEmmanuel Vadot }; 170*0e8011faSEmmanuel Vadot }; 171*0e8011faSEmmanuel Vadot }; 172*0e8011faSEmmanuel Vadot }; 173*0e8011faSEmmanuel Vadot }; 174*0e8011faSEmmanuel Vadot... 175