summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/media/i2c/maxim,max96714.yaml
blob: 3ace50e11921b2b93858725726388ca8a7bbc168 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2024 Collabora Ltd.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/maxim,max96714.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX96714 GMSL2 to CSI-2 Deserializer

maintainers:
  - Julien Massot <julien.massot@collabora.com>

description:
  The MAX96714 deserializer converts GMSL2 serial inputs into MIPI
  CSI-2 D-PHY formatted output. The device allows the GMSL2 link to
  simultaneously transmit bidirectional control-channel data while forward
  video transmissions are in progress. The MAX96714 can connect to one
  remotely located serializer using industry-standard coax or STP
  interconnects. The device cans operate in pixel or tunnel mode. In pixel mode
  the MAX96714 can select individual video stream, while the tunnel mode forward all
  the MIPI data received by the serializer.

  The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
  forward direction and 187.5Mbps in the reverse direction.
  MAX96714F only supports a fixed rate of 3Gbps in the forward direction.

properties:
  compatible:
    oneOf:
      - const: maxim,max96714f
      - items:
          - enum:
              - maxim,max96714
          - const: maxim,max96714f

  reg:
    maxItems: 1

  powerdown-gpios:
    maxItems: 1
    description:
      Specifier for the GPIO connected to the PWDNB pin.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        unevaluatedProperties: false
        description: GMSL Input
        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false
            description:
              Endpoint for GMSL2-Link port.

      port@1:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: CSI-2 Output port

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                minItems: 1
                maxItems: 4

              lane-polarities:
                minItems: 1
                maxItems: 5

              link-frequencies:
                maxItems: 1

            required:
              - data-lanes

    required:
      - port@1

  i2c-gate:
    $ref: /schemas/i2c/i2c-gate.yaml
    unevaluatedProperties: false
    description:
      The MAX96714 will pass through and forward the I2C requests from the
      incoming I2C bus over the GMSL2 link. Therefore it supports an i2c-gate
      subnode to configure a serializer.

  port0-poc-supply:
    description: Regulator providing Power over Coax for the GMSL port

required:
  - compatible
  - reg
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/media/video-interfaces.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        deserializer@28 {
            compatible = "maxim,max96714f";
            reg = <0x28>;
            powerdown-gpios = <&main_gpio0 37 GPIO_ACTIVE_LOW>;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;
                port@0 {
                    reg = <0>;
                    max96714_gmsl_in: endpoint {
                        remote-endpoint = <&max96917f_gmsl_out>;
                    };
                };

                port@1 {
                    reg = <1>;
                    max96714_csi_out: endpoint {
                        data-lanes = <1 2 3 4>;
                        link-frequencies = /bits/ 64 <400000000>;
                        remote-endpoint = <&csi_in>;
                    };
                };
            };

            i2c-gate {
                #address-cells = <1>;
                #size-cells = <0>;

                serializer@40 {
                    compatible = "maxim,max96717f";
                    reg = <0x40>;
                    gpio-controller;
                    #gpio-cells = <2>;
                    #clock-cells = <0>;

                    ports {
                        #address-cells = <1>;
                        #size-cells = <0>;

                        port@0 {
                            reg = <0>;
                            max96717f_csi_in: endpoint {
                                data-lanes = <1 2>;
                                lane-polarities = <1 0 1>;
                                remote-endpoint = <&sensor_out>;
                            };
                        };

                        port@1 {
                            reg = <1>;
                            max96917f_gmsl_out: endpoint {
                                remote-endpoint = <&max96714_gmsl_in>;
                            };
                        };
                    };
                };
            };
        };
    };
...