xref: /linux/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml (revision f22107b91ae26f82ec27620ba37f2687ab3fe2b6)
118f12901SLaurent Pinchart# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
218f12901SLaurent Pinchart# Copyright (C) 2019 Renesas Electronics Corp.
318f12901SLaurent Pinchart%YAML 1.2
418f12901SLaurent Pinchart---
518f12901SLaurent Pinchart$id: http://devicetree.org/schemas/media/i2c/maxim,max9286.yaml#
618f12901SLaurent Pinchart$schema: http://devicetree.org/meta-schemas/core.yaml#
718f12901SLaurent Pinchart
818f12901SLaurent Pincharttitle: Maxim Integrated Quad GMSL Deserializer
918f12901SLaurent Pinchart
1018f12901SLaurent Pinchartmaintainers:
1118f12901SLaurent Pinchart  - Jacopo Mondi <jacopo+renesas@jmondi.org>
1218f12901SLaurent Pinchart  - Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
1318f12901SLaurent Pinchart  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
1418f12901SLaurent Pinchart  - Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
1518f12901SLaurent Pinchart
1618f12901SLaurent Pinchartdescription: |
1718f12901SLaurent Pinchart  The MAX9286 deserializer receives video data on up to 4 Gigabit Multimedia
1818f12901SLaurent Pinchart  Serial Links (GMSL) and outputs them on a CSI-2 D-PHY port using up to 4 data
1918f12901SLaurent Pinchart  lanes.
2018f12901SLaurent Pinchart
2118f12901SLaurent Pinchart  In addition to video data, the GMSL links carry a bidirectional control
2218f12901SLaurent Pinchart  channel that encapsulates I2C messages. The MAX9286 forwards all I2C traffic
2318f12901SLaurent Pinchart  not addressed to itself to the other side of the links, where a GMSL
2418f12901SLaurent Pinchart  serializer will output it on a local I2C bus. In the other direction all I2C
2518f12901SLaurent Pinchart  traffic received over GMSL by the MAX9286 is output on the local I2C bus.
2618f12901SLaurent Pinchart
2718f12901SLaurent Pinchartproperties:
2818f12901SLaurent Pinchart  '#address-cells':
2918f12901SLaurent Pinchart    const: 1
3018f12901SLaurent Pinchart
3118f12901SLaurent Pinchart  '#size-cells':
3218f12901SLaurent Pinchart    const: 0
3318f12901SLaurent Pinchart
3418f12901SLaurent Pinchart  compatible:
3518f12901SLaurent Pinchart    const: maxim,max9286
3618f12901SLaurent Pinchart
3718f12901SLaurent Pinchart  reg:
3818f12901SLaurent Pinchart    description: I2C device address
3918f12901SLaurent Pinchart    maxItems: 1
4018f12901SLaurent Pinchart
4118f12901SLaurent Pinchart  poc-supply:
4218f12901SLaurent Pinchart    description: Regulator providing Power over Coax to the cameras
4318f12901SLaurent Pinchart
4418f12901SLaurent Pinchart  enable-gpios:
4518f12901SLaurent Pinchart    description: GPIO connected to the \#PWDN pin with inverted polarity
4618f12901SLaurent Pinchart    maxItems: 1
4718f12901SLaurent Pinchart
4818f12901SLaurent Pinchart  gpio-controller: true
4918f12901SLaurent Pinchart
5018f12901SLaurent Pinchart  '#gpio-cells':
5118f12901SLaurent Pinchart    const: 2
5218f12901SLaurent Pinchart
53c00b7249SJacopo Mondi  maxim,reverse-channel-microvolt:
54c00b7249SJacopo Mondi    minimum: 30000
55c00b7249SJacopo Mondi    maximum: 200000
56c00b7249SJacopo Mondi    default: 170000
57c00b7249SJacopo Mondi    description: |
58c00b7249SJacopo Mondi      Initial amplitude of the reverse control channel, in micro volts.
59c00b7249SJacopo Mondi
60c00b7249SJacopo Mondi      The initial amplitude shall be adjusted to a value compatible with the
61c00b7249SJacopo Mondi      configuration of the connected remote serializer.
62c00b7249SJacopo Mondi
63c00b7249SJacopo Mondi      Some camera modules (for example RDACM20) include an on-board MCU that
64c00b7249SJacopo Mondi      pre-programs the embedded serializer with power supply noise immunity
65c00b7249SJacopo Mondi      (high-threshold) enabled. A typical value of the deserializer's reverse
66c00b7249SJacopo Mondi      channel amplitude to communicate with pre-programmed serializers is
67c00b7249SJacopo Mondi      170000 micro volts.
68c00b7249SJacopo Mondi
69c00b7249SJacopo Mondi      A typical value for the reverse channel amplitude to communicate with
70c00b7249SJacopo Mondi      a remote serializer whose high-threshold noise immunity is not enabled
71c00b7249SJacopo Mondi      is 100000 micro volts
72c00b7249SJacopo Mondi
7318f12901SLaurent Pinchart  ports:
74066a94e2SRob Herring    $ref: /schemas/graph.yaml#/properties/ports
7518f12901SLaurent Pinchart
7618f12901SLaurent Pinchart    properties:
77066a94e2SRob Herring      port@0:
78066a94e2SRob Herring        $ref: /schemas/graph.yaml#/properties/port
79066a94e2SRob Herring        description: GMSL Input 0
8018f12901SLaurent Pinchart
81066a94e2SRob Herring      port@1:
82066a94e2SRob Herring        $ref: /schemas/graph.yaml#/properties/port
83066a94e2SRob Herring        description: GMSL Input 1
8418f12901SLaurent Pinchart
85066a94e2SRob Herring      port@2:
86066a94e2SRob Herring        $ref: /schemas/graph.yaml#/properties/port
87066a94e2SRob Herring        description: GMSL Input 2
8818f12901SLaurent Pinchart
89066a94e2SRob Herring      port@3:
90066a94e2SRob Herring        $ref: /schemas/graph.yaml#/properties/port
91066a94e2SRob Herring        description: GMSL Input 3
9218f12901SLaurent Pinchart
9318f12901SLaurent Pinchart      port@4:
94066a94e2SRob Herring        $ref: /schemas/graph.yaml#/$defs/port-base
95066a94e2SRob Herring        unevaluatedProperties: false
96066a94e2SRob Herring        description: CSI-2 Output
9718f12901SLaurent Pinchart
98066a94e2SRob Herring        properties:
9918f12901SLaurent Pinchart          endpoint:
100066a94e2SRob Herring            $ref: /schemas/media/video-interfaces.yaml#
101066a94e2SRob Herring            unevaluatedProperties: false
10218f12901SLaurent Pinchart
10318f12901SLaurent Pinchart            properties:
104066a94e2SRob Herring              data-lanes: true
10518f12901SLaurent Pinchart
10618f12901SLaurent Pinchart            required:
10718f12901SLaurent Pinchart              - data-lanes
10818f12901SLaurent Pinchart
10918f12901SLaurent Pinchart    required:
11018f12901SLaurent Pinchart      - port@4
11118f12901SLaurent Pinchart
11218f12901SLaurent Pinchart  i2c-mux:
11318f12901SLaurent Pinchart    type: object
114f22107b9SRob Herring    $ref: /schemas/i2c/i2c-mux.yaml#
115f22107b9SRob Herring    unevaluatedProperties: false
11618f12901SLaurent Pinchart    description: |
117f22107b9SRob Herring      Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch.
11818f12901SLaurent Pinchart
11918f12901SLaurent Pinchart    patternProperties:
12018f12901SLaurent Pinchart      "^i2c@[0-3]$":
12118f12901SLaurent Pinchart        type: object
12218f12901SLaurent Pinchart        description: |
12318f12901SLaurent Pinchart          Child node of the i2c bus multiplexer which represents a GMSL link.
12418f12901SLaurent Pinchart          Each serializer device on the GMSL link remote end is represented with
12518f12901SLaurent Pinchart          an i2c-mux child node. The MAX9286 chip supports up to 4 GMSL
12618f12901SLaurent Pinchart          channels.
12718f12901SLaurent Pinchart
12818f12901SLaurent Pinchart        properties:
12918f12901SLaurent Pinchart          reg:
13018f12901SLaurent Pinchart            description: The index of the GMSL channel.
13118f12901SLaurent Pinchart            maxItems: 1
13218f12901SLaurent Pinchart
13318f12901SLaurent Pinchart        patternProperties:
13418f12901SLaurent Pinchart          "^camera@[a-f0-9]+$":
13518f12901SLaurent Pinchart            type: object
13618f12901SLaurent Pinchart            description: |
13718f12901SLaurent Pinchart              The remote camera device, composed by a GMSL serializer and a
13818f12901SLaurent Pinchart              connected video source.
13918f12901SLaurent Pinchart
14018f12901SLaurent Pinchart            properties:
14118f12901SLaurent Pinchart              compatible:
14218f12901SLaurent Pinchart                description: The remote device compatible string.
14318f12901SLaurent Pinchart
14418f12901SLaurent Pinchart              reg:
14518f12901SLaurent Pinchart                minItems: 2
14618f12901SLaurent Pinchart                maxItems: 3
14718f12901SLaurent Pinchart                description: |
14818f12901SLaurent Pinchart                  The I2C addresses to be assigned to the remote devices through
14918f12901SLaurent Pinchart                  address reprogramming. The number of entries depends on the
15018f12901SLaurent Pinchart                  requirements of the currently connected remote device.
15118f12901SLaurent Pinchart
15218f12901SLaurent Pinchart              port:
153066a94e2SRob Herring                $ref: /schemas/graph.yaml#/properties/port
154066a94e2SRob Herring                description: Connection to the MAX9286 sink.
15518f12901SLaurent Pinchart
15618f12901SLaurent Pinchart            required:
15718f12901SLaurent Pinchart              - compatible
15818f12901SLaurent Pinchart              - reg
15918f12901SLaurent Pinchart              - port
16018f12901SLaurent Pinchart
16118f12901SLaurent Pinchart            additionalProperties: false
16218f12901SLaurent Pinchart
16318f12901SLaurent Pinchartrequired:
16418f12901SLaurent Pinchart  - compatible
16518f12901SLaurent Pinchart  - reg
16618f12901SLaurent Pinchart  - ports
16718f12901SLaurent Pinchart  - i2c-mux
16818f12901SLaurent Pinchart  - gpio-controller
16918f12901SLaurent Pinchart
17018f12901SLaurent PinchartadditionalProperties: false
17118f12901SLaurent Pinchart
17218f12901SLaurent Pinchartexamples:
17318f12901SLaurent Pinchart  - |
17418f12901SLaurent Pinchart    #include <dt-bindings/gpio/gpio.h>
17518f12901SLaurent Pinchart
17618f12901SLaurent Pinchart    i2c@e66d8000 {
17718f12901SLaurent Pinchart      #address-cells = <1>;
17818f12901SLaurent Pinchart      #size-cells = <0>;
17918f12901SLaurent Pinchart
18018f12901SLaurent Pinchart      reg = <0 0xe66d8000>;
18118f12901SLaurent Pinchart
18218f12901SLaurent Pinchart      gmsl-deserializer@2c {
18318f12901SLaurent Pinchart        compatible = "maxim,max9286";
18418f12901SLaurent Pinchart        reg = <0x2c>;
18518f12901SLaurent Pinchart        poc-supply = <&camera_poc_12v>;
18618f12901SLaurent Pinchart        enable-gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
18718f12901SLaurent Pinchart
18818f12901SLaurent Pinchart        gpio-controller;
18918f12901SLaurent Pinchart        #gpio-cells = <2>;
19018f12901SLaurent Pinchart
191c00b7249SJacopo Mondi        maxim,reverse-channel-microvolt = <170000>;
192c00b7249SJacopo Mondi
19318f12901SLaurent Pinchart        ports {
19418f12901SLaurent Pinchart          #address-cells = <1>;
19518f12901SLaurent Pinchart          #size-cells = <0>;
19618f12901SLaurent Pinchart
19718f12901SLaurent Pinchart          port@0 {
19818f12901SLaurent Pinchart            reg = <0>;
19918f12901SLaurent Pinchart
20018f12901SLaurent Pinchart            max9286_in0: endpoint {
20118f12901SLaurent Pinchart              remote-endpoint = <&rdacm20_out0>;
20218f12901SLaurent Pinchart            };
20318f12901SLaurent Pinchart          };
20418f12901SLaurent Pinchart
20518f12901SLaurent Pinchart          port@1 {
20618f12901SLaurent Pinchart            reg = <1>;
20718f12901SLaurent Pinchart
20818f12901SLaurent Pinchart            max9286_in1: endpoint {
20918f12901SLaurent Pinchart              remote-endpoint = <&rdacm20_out1>;
21018f12901SLaurent Pinchart            };
21118f12901SLaurent Pinchart          };
21218f12901SLaurent Pinchart
21318f12901SLaurent Pinchart          port@2 {
21418f12901SLaurent Pinchart            reg = <2>;
21518f12901SLaurent Pinchart
21618f12901SLaurent Pinchart            max9286_in2: endpoint {
21718f12901SLaurent Pinchart              remote-endpoint = <&rdacm20_out2>;
21818f12901SLaurent Pinchart            };
21918f12901SLaurent Pinchart          };
22018f12901SLaurent Pinchart
22118f12901SLaurent Pinchart          port@3 {
22218f12901SLaurent Pinchart            reg = <3>;
22318f12901SLaurent Pinchart
22418f12901SLaurent Pinchart            max9286_in3: endpoint {
22518f12901SLaurent Pinchart              remote-endpoint = <&rdacm20_out3>;
22618f12901SLaurent Pinchart            };
22718f12901SLaurent Pinchart          };
22818f12901SLaurent Pinchart
22918f12901SLaurent Pinchart          port@4 {
23018f12901SLaurent Pinchart            reg = <4>;
23118f12901SLaurent Pinchart
23218f12901SLaurent Pinchart            max9286_out: endpoint {
23318f12901SLaurent Pinchart              data-lanes = <1 2 3 4>;
23418f12901SLaurent Pinchart              remote-endpoint = <&csi40_in>;
23518f12901SLaurent Pinchart            };
23618f12901SLaurent Pinchart          };
23718f12901SLaurent Pinchart        };
23818f12901SLaurent Pinchart
23918f12901SLaurent Pinchart        i2c-mux {
24018f12901SLaurent Pinchart          #address-cells = <1>;
24118f12901SLaurent Pinchart          #size-cells = <0>;
24218f12901SLaurent Pinchart
24318f12901SLaurent Pinchart          i2c@0 {
24418f12901SLaurent Pinchart            #address-cells = <1>;
24518f12901SLaurent Pinchart            #size-cells = <0>;
24618f12901SLaurent Pinchart            reg = <0>;
24718f12901SLaurent Pinchart
24818f12901SLaurent Pinchart            camera@51 {
24918f12901SLaurent Pinchart              compatible = "imi,rdacm20";
25018f12901SLaurent Pinchart              reg = <0x51>, <0x61>;
25118f12901SLaurent Pinchart
25218f12901SLaurent Pinchart              port {
25318f12901SLaurent Pinchart                rdacm20_out0: endpoint {
25418f12901SLaurent Pinchart                  remote-endpoint = <&max9286_in0>;
25518f12901SLaurent Pinchart                };
25618f12901SLaurent Pinchart              };
25718f12901SLaurent Pinchart
25818f12901SLaurent Pinchart            };
25918f12901SLaurent Pinchart          };
26018f12901SLaurent Pinchart
26118f12901SLaurent Pinchart          i2c@1 {
26218f12901SLaurent Pinchart            #address-cells = <1>;
26318f12901SLaurent Pinchart            #size-cells = <0>;
26418f12901SLaurent Pinchart            reg = <1>;
26518f12901SLaurent Pinchart
26618f12901SLaurent Pinchart            camera@52 {
26718f12901SLaurent Pinchart              compatible = "imi,rdacm20";
26818f12901SLaurent Pinchart              reg = <0x52>, <0x62>;
26918f12901SLaurent Pinchart
27018f12901SLaurent Pinchart              port {
27118f12901SLaurent Pinchart                rdacm20_out1: endpoint {
27218f12901SLaurent Pinchart                  remote-endpoint = <&max9286_in1>;
27318f12901SLaurent Pinchart                };
27418f12901SLaurent Pinchart              };
27518f12901SLaurent Pinchart            };
27618f12901SLaurent Pinchart          };
27718f12901SLaurent Pinchart
27818f12901SLaurent Pinchart          i2c@2 {
27918f12901SLaurent Pinchart            #address-cells = <1>;
28018f12901SLaurent Pinchart            #size-cells = <0>;
28118f12901SLaurent Pinchart            reg = <2>;
28218f12901SLaurent Pinchart
28318f12901SLaurent Pinchart            camera@53 {
28418f12901SLaurent Pinchart              compatible = "imi,rdacm20";
28518f12901SLaurent Pinchart              reg = <0x53>, <0x63>;
28618f12901SLaurent Pinchart
28718f12901SLaurent Pinchart              port {
28818f12901SLaurent Pinchart                rdacm20_out2: endpoint {
28918f12901SLaurent Pinchart                  remote-endpoint = <&max9286_in2>;
29018f12901SLaurent Pinchart                };
29118f12901SLaurent Pinchart              };
29218f12901SLaurent Pinchart            };
29318f12901SLaurent Pinchart          };
29418f12901SLaurent Pinchart
29518f12901SLaurent Pinchart          i2c@3 {
29618f12901SLaurent Pinchart            #address-cells = <1>;
29718f12901SLaurent Pinchart            #size-cells = <0>;
29818f12901SLaurent Pinchart            reg = <3>;
29918f12901SLaurent Pinchart
30018f12901SLaurent Pinchart            camera@54 {
30118f12901SLaurent Pinchart              compatible = "imi,rdacm20";
30218f12901SLaurent Pinchart              reg = <0x54>, <0x64>;
30318f12901SLaurent Pinchart
30418f12901SLaurent Pinchart              port {
30518f12901SLaurent Pinchart                rdacm20_out3: endpoint {
30618f12901SLaurent Pinchart                  remote-endpoint = <&max9286_in3>;
30718f12901SLaurent Pinchart                };
30818f12901SLaurent Pinchart              };
30918f12901SLaurent Pinchart            };
31018f12901SLaurent Pinchart          };
31118f12901SLaurent Pinchart        };
31218f12901SLaurent Pinchart      };
31318f12901SLaurent Pinchart    };
314