1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 # Copyright (C) 2019 Renesas Electronics Corp.
5 $id: http://devicetree.org/schemas/media/i2c/maxim,max9286.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
8 title: Maxim Integrated Quad GMSL Deserializer
11 - Jacopo Mondi <jacopo+renesas@jmondi.org>
12 - Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
13 - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
14 - Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
17 The MAX9286 deserializer receives video data on up to 4 Gigabit Multimedia
18 Serial Links (GMSL) and outputs them on a CSI-2 D-PHY port using up to 4 data
21 In addition to video data, the GMSL links carry a bidirectional control
22 channel that encapsulates I2C messages. The MAX9286 forwards all I2C traffic
23 not addressed to itself to the other side of the links, where a GMSL
24 serializer will output it on a local I2C bus. In the other direction all I2C
25 traffic received over GMSL by the MAX9286 is output on the local I2C bus.
38 description: I2C device address
42 description: Regulator providing Power over Coax to the cameras
45 description: GPIO connected to the \#PWDN pin with inverted polarity
53 maxim,reverse-channel-microvolt:
58 Initial amplitude of the reverse control channel, in micro volts.
60 The initial amplitude shall be adjusted to a value compatible with the
61 configuration of the connected remote serializer.
63 Some camera modules (for example RDACM20) include an on-board MCU that
64 pre-programs the embedded serializer with power supply noise immunity
65 (high-threshold) enabled. A typical value of the deserializer's reverse
66 channel amplitude to communicate with pre-programmed serializers is
69 A typical value for the reverse channel amplitude to communicate with
70 a remote serializer whose high-threshold noise immunity is not enabled
74 $ref: /schemas/graph.yaml#/properties/ports
78 $ref: /schemas/graph.yaml#/properties/port
79 description: GMSL Input 0
82 $ref: /schemas/graph.yaml#/properties/port
83 description: GMSL Input 1
86 $ref: /schemas/graph.yaml#/properties/port
87 description: GMSL Input 2
90 $ref: /schemas/graph.yaml#/properties/port
91 description: GMSL Input 3
94 $ref: /schemas/graph.yaml#/$defs/port-base
95 unevaluatedProperties: false
96 description: CSI-2 Output
100 $ref: /schemas/media/video-interfaces.yaml#
101 unevaluatedProperties: false
114 $ref: /schemas/i2c/i2c-mux.yaml#
115 unevaluatedProperties: false
117 Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch.
123 Child node of the i2c bus multiplexer which represents a GMSL link.
124 Each serializer device on the GMSL link remote end is represented with
125 an i2c-mux child node. The MAX9286 chip supports up to 4 GMSL
130 description: The index of the GMSL channel.
134 "^camera@[a-f0-9]+$":
137 The remote camera device, composed by a GMSL serializer and a
138 connected video source.
142 description: The remote device compatible string.
148 The I2C addresses to be assigned to the remote devices through
149 address reprogramming. The number of entries depends on the
150 requirements of the currently connected remote device.
153 $ref: /schemas/graph.yaml#/properties/port
154 description: Connection to the MAX9286 sink.
161 additionalProperties: false
170 additionalProperties: false
174 #include <dt-bindings/gpio/gpio.h>
177 #address-cells = <1>;
180 reg = <0 0xe66d8000>;
182 gmsl-deserializer@2c {
183 compatible = "maxim,max9286";
185 poc-supply = <&camera_poc_12v>;
186 enable-gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
191 maxim,reverse-channel-microvolt = <170000>;
194 #address-cells = <1>;
200 max9286_in0: endpoint {
201 remote-endpoint = <&rdacm20_out0>;
208 max9286_in1: endpoint {
209 remote-endpoint = <&rdacm20_out1>;
216 max9286_in2: endpoint {
217 remote-endpoint = <&rdacm20_out2>;
224 max9286_in3: endpoint {
225 remote-endpoint = <&rdacm20_out3>;
232 max9286_out: endpoint {
233 data-lanes = <1 2 3 4>;
234 remote-endpoint = <&csi40_in>;
240 #address-cells = <1>;
244 #address-cells = <1>;
249 compatible = "imi,rdacm20";
250 reg = <0x51>, <0x61>;
253 rdacm20_out0: endpoint {
254 remote-endpoint = <&max9286_in0>;
262 #address-cells = <1>;
267 compatible = "imi,rdacm20";
268 reg = <0x52>, <0x62>;
271 rdacm20_out1: endpoint {
272 remote-endpoint = <&max9286_in1>;
279 #address-cells = <1>;
284 compatible = "imi,rdacm20";
285 reg = <0x53>, <0x63>;
288 rdacm20_out2: endpoint {
289 remote-endpoint = <&max9286_in2>;
296 #address-cells = <1>;
301 compatible = "imi,rdacm20";
302 reg = <0x54>, <0x64>;
305 rdacm20_out3: endpoint {
306 remote-endpoint = <&max9286_in3>;