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