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