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,ds90ub953.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Texas Instruments DS90UB953 FPD-Link III Serializer
8
9maintainers:
10  - Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
11
12description:
13  The TI DS90UB953 is an FPD-Link III video serializer for MIPI CSI-2.
14
15properties:
16  compatible:
17    enum:
18      - ti,ds90ub953-q1
19      - ti,ds90ub971-q1
20
21  '#gpio-cells':
22    const: 2
23    description:
24      First cell is the GPIO pin number, second cell is the flags. The GPIO pin
25      number must be in range of [0, 3].
26
27  gpio-controller: true
28
29  clocks:
30    maxItems: 1
31    description:
32      Reference clock connected to the CLKIN pin.
33
34  clock-names:
35    items:
36      - const: clkin
37
38  '#clock-cells':
39    const: 0
40
41  ports:
42    $ref: /schemas/graph.yaml#/properties/ports
43
44    properties:
45      port@0:
46        $ref: /schemas/graph.yaml#/$defs/port-base
47        unevaluatedProperties: false
48        description: CSI-2 input port
49
50        properties:
51          endpoint:
52            $ref: /schemas/media/video-interfaces.yaml#
53            unevaluatedProperties: false
54
55            required:
56              - data-lanes
57
58      port@1:
59        $ref: /schemas/graph.yaml#/properties/port
60        unevaluatedProperties: false
61        description: FPD-Link III output port
62
63    required:
64      - port@0
65      - port@1
66
67  i2c:
68    $ref: /schemas/i2c/i2c-controller.yaml#
69    unevaluatedProperties: false
70
71required:
72  - compatible
73  - '#gpio-cells'
74  - gpio-controller
75  - '#clock-cells'
76  - ports
77
78additionalProperties: false
79
80examples:
81  - |
82    #include <dt-bindings/gpio/gpio.h>
83
84    serializer {
85      compatible = "ti,ds90ub953-q1";
86
87      gpio-controller;
88      #gpio-cells = <2>;
89
90      #clock-cells = <0>;
91
92      ports {
93        #address-cells = <1>;
94        #size-cells = <0>;
95
96        port@0 {
97          reg = <0>;
98          ub953_in: endpoint {
99            clock-lanes = <0>;
100            data-lanes = <1 2 3 4>;
101            remote-endpoint = <&sensor_out>;
102          };
103        };
104
105        port@1 {
106          reg = <1>;
107          endpoint {
108            remote-endpoint = <&deser_fpd_in>;
109          };
110        };
111      };
112
113      i2c {
114        #address-cells = <1>;
115        #size-cells = <0>;
116
117        sensor@1a {
118          compatible = "sony,imx274";
119          reg = <0x1a>;
120
121          reset-gpios = <&serializer 0 GPIO_ACTIVE_LOW>;
122
123          clocks = <&serializer>;
124          clock-names = "inck";
125
126          port {
127            sensor_out: endpoint {
128              remote-endpoint = <&ub953_in>;
129            };
130          };
131        };
132      };
133    };
134...
135