xref: /linux/Documentation/devicetree/bindings/media/i2c/adv7180.yaml (revision fcc79e1714e8c2b8e216dc3149812edd37884eef)
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/adv7180.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Analog Devices ADV7180 analog video decoder family
8
9maintainers:
10  - Lars-Peter Clausen <lars@metafoo.de>
11
12description:
13  The adv7180 family devices are used to capture analog video to different
14  digital interfaces like MIPI CSI-2 or parallel video.
15
16properties:
17  compatible:
18    items:
19      - enum:
20          - adi,adv7180
21          - adi,adv7180cp
22          - adi,adv7180st
23          - adi,adv7182
24          - adi,adv7280
25          - adi,adv7280-m
26          - adi,adv7281
27          - adi,adv7281-m
28          - adi,adv7281-ma
29          - adi,adv7282
30          - adi,adv7282-m
31
32  reg:
33    maxItems: 1
34
35  powerdown-gpios:
36    maxItems: 1
37
38  reset-gpios:
39    maxItems: 1
40
41  adv,force-bt656-4:
42    deprecated: true
43    description:
44      Indicates that the output is a BT.656-4 compatible stream.
45    type: boolean
46
47  adi,force-bt656-4:
48    description:
49      Indicates that the output is a BT.656-4 compatible stream.
50    type: boolean
51
52  port:
53    $ref: /schemas/graph.yaml#/$defs/port-base
54    unevaluatedProperties: false
55
56    properties:
57      endpoint:
58        $ref: /schemas/media/video-interfaces.yaml#
59        unevaluatedProperties: false
60
61  ports: true
62
63additionalProperties: false
64
65required:
66  - compatible
67  - reg
68
69allOf:
70  - if:
71      properties:
72        compatible:
73          enum:
74            - adi,adv7180
75            - adi,adv7182
76            - adi,adv7280
77            - adi,adv7280-m
78            - adi,adv7281
79            - adi,adv7281-m
80            - adi,adv7281-ma
81            - adi,adv7282
82            - adi,adv7282-m
83    then:
84      required:
85        - port
86
87  - if:
88      properties:
89        compatible:
90          contains:
91            const: adi,adv7180cp
92    then:
93      properties:
94        ports:
95          $ref: /schemas/graph.yaml#/properties/ports
96          properties:
97            port@3:
98              $ref: /schemas/graph.yaml#/properties/port
99              description: Output port
100
101          patternProperties:
102            "^port@[0-2]$":
103              $ref: /schemas/graph.yaml#/properties/port
104              description: Input port
105
106          required:
107            - port@3
108
109      required:
110        - ports
111
112  - if:
113      properties:
114        compatible:
115          contains:
116            const: adi,adv7180st
117    then:
118      properties:
119        ports:
120          $ref: /schemas/graph.yaml#/properties/ports
121          properties:
122            port@6:
123              $ref: /schemas/graph.yaml#/properties/port
124              description: Output port
125
126          patternProperties:
127            "^port@[0-5]$":
128              $ref: /schemas/graph.yaml#/properties/port
129              description: Input port
130
131          required:
132            - port@6
133
134      required:
135        - ports
136
137examples:
138  - |
139    i2c {
140            #address-cells = <1>;
141            #size-cells = <0>;
142
143            composite-in@20 {
144                    compatible = "adi,adv7180";
145                    reg = <0x20>;
146
147                    port {
148                            adv7180: endpoint {
149                                    bus-width = <8>;
150                                    remote-endpoint = <&vin1ep>;
151                            };
152                    };
153            };
154
155    };
156
157  - |
158    i2c {
159            #address-cells = <1>;
160            #size-cells = <0>;
161
162            composite-in@20 {
163                    compatible = "adi,adv7180cp";
164                    reg = <0x20>;
165
166                    ports {
167                            #address-cells = <1>;
168                            #size-cells = <0>;
169
170                            port@0 {
171                                    reg = <0>;
172                                    adv7180_in: endpoint {
173                                            remote-endpoint = <&composite_con_in>;
174                                    };
175                            };
176
177                            port@3 {
178                                    reg = <3>;
179                                    adv7180_out: endpoint {
180                                            remote-endpoint = <&vin4_in>;
181                                    };
182                            };
183                    };
184            };
185    };
186