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