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