File Index
Files and directories
Sign in
FILE

ti,ds90ub960.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/media/i2c/ti,ds90ub960.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Texas Instruments DS90UB9XX Family FPD-Link Deserializer Hubs
  8
  9maintainers:
 10  - Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
 11
 12description:
 13  The TI DS90UB9XX devices are FPD-Link video deserializers with I2C and GPIO
 14  forwarding.
 15
 16allOf:
 17  - $ref: /schemas/i2c/i2c-atr.yaml#
 18
 19properties:
 20  compatible:
 21    enum:
 22      - ti,ds90ub960-q1
 23      - ti,ds90ub9702-q1
 24
 25  reg:
 26    maxItems: 1
 27
 28  clocks:
 29    maxItems: 1
 30    description:
 31      Reference clock connected to the REFCLK pin.
 32
 33  clock-names:
 34    items:
 35      - const: refclk
 36
 37  powerdown-gpios:
 38    maxItems: 1
 39    description:
 40      Specifier for the GPIO connected to the PDB pin.
 41
 42  i2c-alias-pool:
 43    minItems: 1
 44    maxItems: 32
 45
 46  links:
 47    type: object
 48    additionalProperties: false
 49
 50    properties:
 51      '#address-cells':
 52        const: 1
 53
 54      '#size-cells':
 55        const: 0
 56
 57      ti,manual-strobe:
 58        type: boolean
 59        description:
 60          Enable manual strobe position and EQ level
 61
 62    patternProperties:
 63      '^link@[0-3]$':
 64        type: object
 65        additionalProperties: false
 66        properties:
 67          reg:
 68            description: The link number
 69            maxItems: 1
 70
 71          '#address-cells':
 72            const: 1
 73
 74          '#size-cells':
 75            const: 0
 76
 77          i2c-alias:
 78            $ref: /schemas/types.yaml#/definitions/uint32
 79            description:
 80              The I2C address used for the serializer. Transactions to this
 81              address on the I2C bus where the deserializer resides are
 82              forwarded to the serializer.
 83
 84          ti,rx-mode:
 85            $ref: /schemas/types.yaml#/definitions/uint32
 86            enum:
 87              - 0 # RAW10
 88              - 1 # RAW12 HF
 89              - 2 # RAW12 LF
 90              - 3 # CSI2 SYNC
 91              - 4 # CSI2 NON-SYNC
 92            description:
 93              FPD-Link Input Mode. This should reflect the hardware and the
 94              default mode of the connected device.
 95
 96          ti,cdr-mode:
 97            $ref: /schemas/types.yaml#/definitions/uint32
 98            enum:
 99              - 0 # FPD-Link III
100              - 1 # FPD-Link IV
101            description:
102              FPD-Link CDR Mode. This should reflect the hardware and the
103              default mode of the connected device.
104
105          ti,strobe-pos:
106            $ref: /schemas/types.yaml#/definitions/int32
107            minimum: -13
108            maximum: 13
109            description: Manual strobe position
110
111          ti,eq-level:
112            $ref: /schemas/types.yaml#/definitions/uint32
113            maximum: 14
114            description: Manual EQ level
115
116        patternProperties:
117          '^serializer(@[0-9a-f]+)*$':
118            type: object
119            description: FPD-Link Serializer node
120
121        required:
122          - reg
123          - i2c-alias
124          - ti,rx-mode
125
126  ports:
127    $ref: /schemas/graph.yaml#/properties/ports
128
129    properties:
130      port@0:
131        $ref: /schemas/graph.yaml#/$defs/port-base
132        unevaluatedProperties: false
133        description: FPD-Link input 0
134
135        properties:
136          endpoint:
137            $ref: /schemas/media/video-interfaces.yaml#
138            unevaluatedProperties: false
139            description:
140              Endpoint for FPD-Link port. If the RX mode for this port is RAW,
141              hsync-active and vsync-active must be defined.
142
143      port@1:
144        $ref: /schemas/graph.yaml#/$defs/port-base
145        unevaluatedProperties: false
146        description: FPD-Link input 1
147
148        properties:
149          endpoint:
150            $ref: /schemas/media/video-interfaces.yaml#
151            unevaluatedProperties: false
152            description:
153              Endpoint for FPD-Link port. If the RX mode for this port is RAW,
154              hsync-active and vsync-active must be defined.
155
156      port@2:
157        $ref: /schemas/graph.yaml#/$defs/port-base
158        unevaluatedProperties: false
159        description: FPD-Link input 2
160
161        properties:
162          endpoint:
163            $ref: /schemas/media/video-interfaces.yaml#
164            unevaluatedProperties: false
165            description:
166              Endpoint for FPD-Link port. If the RX mode for this port is RAW,
167              hsync-active and vsync-active must be defined.
168
169      port@3:
170        $ref: /schemas/graph.yaml#/$defs/port-base
171        unevaluatedProperties: false
172        description: FPD-Link input 3
173
174        properties:
175          endpoint:
176            $ref: /schemas/media/video-interfaces.yaml#
177            unevaluatedProperties: false
178            description:
179              Endpoint for FPD-Link port. If the RX mode for this port is RAW,
180              hsync-active and vsync-active must be defined.
181
182      port@4:
183        $ref: /schemas/graph.yaml#/$defs/port-base
184        unevaluatedProperties: false
185        description: CSI-2 Output 0
186
187        properties:
188          endpoint:
189            $ref: /schemas/media/video-interfaces.yaml#
190            unevaluatedProperties: false
191
192            properties:
193              data-lanes:
194                minItems: 1
195                maxItems: 4
196              link-frequencies:
197                maxItems: 1
198
199            required:
200              - data-lanes
201              - link-frequencies
202
203      port@5:
204        $ref: /schemas/graph.yaml#/$defs/port-base
205        unevaluatedProperties: false
206        description: CSI-2 Output 1
207
208        properties:
209          endpoint:
210            $ref: /schemas/media/video-interfaces.yaml#
211            unevaluatedProperties: false
212
213            properties:
214              data-lanes:
215                minItems: 1
216                maxItems: 4
217              link-frequencies:
218                maxItems: 1
219
220            required:
221              - data-lanes
222              - link-frequencies
223
224    required:
225      - port@0
226      - port@1
227      - port@2
228      - port@3
229      - port@4
230      - port@5
231
232required:
233  - compatible
234  - reg
235  - clocks
236  - clock-names
237  - ports
238
239unevaluatedProperties: false
240
241examples:
242  - |
243    #include <dt-bindings/gpio/gpio.h>
244
245    i2c {
246      clock-frequency = <400000>;
247      #address-cells = <1>;
248      #size-cells = <0>;
249
250      deser@3d {
251        compatible = "ti,ds90ub960-q1";
252        reg = <0x3d>;
253
254        clock-names = "refclk";
255        clocks = <&fixed_clock>;
256
257        powerdown-gpios = <&pca9555 7 GPIO_ACTIVE_LOW>;
258
259        i2c-alias-pool = <0x4a 0x4b 0x4c 0x4d 0x4e 0x4f>;
260
261        ports {
262          #address-cells = <1>;
263          #size-cells = <0>;
264
265          /* Port 0, Camera 0 */
266          port@0 {
267            reg = <0>;
268
269            ub960_fpd3_1_in: endpoint {
270              remote-endpoint = <&ub953_1_out>;
271            };
272          };
273
274          /* Port 1, Camera 1 */
275          port@1 {
276            reg = <1>;
277
278            ub960_fpd3_2_in: endpoint {
279              remote-endpoint = <&ub913_2_out>;
280              hsync-active = <0>;
281              vsync-active = <1>;
282            };
283          };
284
285          /* Port 2, unconnected */
286          port@2 {
287            reg = <2>;
288          };
289
290          /* Port 3, unconnected */
291          port@3 {
292            reg = <3>;
293          };
294
295          /* Port 4, CSI-2 TX */
296          port@4 {
297            reg = <4>;
298            ds90ub960_0_csi_out: endpoint {
299              data-lanes = <1 2 3 4>;
300              link-frequencies = /bits/ 64 <800000000>;
301              remote-endpoint = <&csi2_phy0>;
302            };
303          };
304
305          /* Port 5, unconnected */
306          port@5 {
307            reg = <5>;
308          };
309        };
310
311        links {
312          #address-cells = <1>;
313          #size-cells = <0>;
314
315          /* Link 0 has DS90UB953 serializer and IMX274 sensor */
316
317          link@0 {
318            #address-cells = <1>;
319            #size-cells = <0>;
320
321            reg = <0>;
322            i2c-alias = <0x44>;
323
324            ti,rx-mode = <3>;
325
326            serializer1: serializer@30 {
327              compatible = "ti,ds90ub953-q1";
328              reg = <0x30>;
329
330              gpio-controller;
331              #gpio-cells = <2>;
332
333              #clock-cells = <0>;
334
335              ports {
336                #address-cells = <1>;
337                #size-cells = <0>;
338
339                port@0 {
340                  reg = <0>;
341                  ub953_1_in: endpoint {
342                    data-lanes = <1 2 3 4>;
343                    remote-endpoint = <&sensor_1_out>;
344                  };
345                };
346
347                port@1 {
348                  reg = <1>;
349
350                  ub953_1_out: endpoint {
351                    remote-endpoint = <&ub960_fpd3_1_in>;
352                  };
353                };
354              };
355
356              i2c {
357                #address-cells = <1>;
358                #size-cells = <0>;
359
360                sensor@1a {
361                  compatible = "sony,imx274";
362                  reg = <0x1a>;
363
364                  clocks = <&serializer>;
365                  clock-names = "inck";
366
367                  reset-gpios = <&serializer1 0 GPIO_ACTIVE_LOW>;
368
369                  port {
370                    sensor_1_out: endpoint {
371                      remote-endpoint = <&ub953_1_in>;
372                    };
373                  };
374                };
375              };
376            };
377          };  /* End of link@0 */
378
379          /* Link 1 has DS90UB913 serializer and MT9V111 sensor */
380
381          link@1 {
382            reg = <1>;
383            i2c-alias = <0x45>;
384
385            ti,rx-mode = <0>;
386
387            serializer2: serializer {
388              compatible = "ti,ds90ub913a-q1";
389
390              gpio-controller;
391              #gpio-cells = <2>;
392
393              clocks = <&clk_cam_48M>;
394              clock-names = "clkin";
395
396              #clock-cells = <0>;
397
398              ports {
399                #address-cells = <1>;
400                #size-cells = <0>;
401
402                port@0 {
403                  reg = <0>;
404                  ub913_2_in: endpoint {
405                    remote-endpoint = <&sensor_2_out>;
406                    pclk-sample = <1>;
407                  };
408                };
409
410                port@1 {
411                  reg = <1>;
412
413                  ub913_2_out: endpoint {
414                    remote-endpoint = <&ub960_fpd3_2_in>;
415                  };
416                };
417              };
418
419              i2c {
420                #address-cells = <1>;
421                #size-cells = <0>;
422
423                sensor@48 {
424                  compatible = "aptina,mt9v111";
425                  reg = <0x48>;
426
427                  clocks = <&serializer2>;
428
429                  port {
430                    sensor_2_out: endpoint {
431                      remote-endpoint = <&ub913_2_in>;
432                    };
433                  };
434                };
435              };
436            };
437          }; /* End of link@1 */
438        };
439      };
440    };
441...
~/ Read-only file preview.