xref: /linux/Documentation/devicetree/bindings/media/i2c/maxim,max96717.yaml (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
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