blob: d6353081402bed849467e2cd003d80fe0e9d2734 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/i2c/adv748x.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Analog Devices ADV748X video decoder with HDMI receiver
8
9maintainers:
10 - Kieran Bingham <kieran.bingham@ideasonboard.com>
11 - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12
13description:
14 The ADV7481 and ADV7482 are multi format video decoders with an integrated
15 HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
16 from three input sources HDMI, analog and TTL.
17
18properties:
19 compatible:
20 items:
21 - enum:
22 - adi,adv7481
23 - adi,adv7482
24
25 reg:
26 minItems: 1
27 maxItems: 12
28 description:
29 The ADV748x has up to twelve 256-byte maps that can be accessed via the
30 main I2C ports. Each map has it own I2C address and acts as a standard
31 slave device on the I2C bus. The main address is mandatory, others are
32 optional and remain at default values if not specified.
33
34 reg-names:
35 minItems: 1
36 items:
37 - const: main
38 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
39 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
40 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
41 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
42 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
43 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
44 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
45 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
46 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
47 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
48 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
49
50 interrupts: true
51
52 interrupt-names: true
53
54 ports:
55 $ref: /schemas/graph.yaml#/properties/ports
56
57 patternProperties:
58 "^port@[0-7]$":
59 $ref: /schemas/graph.yaml#/properties/port
60 description: Input port nodes for analog inputs AIN[0-7].
61
62 properties:
63 port@8:
64 $ref: /schemas/graph.yaml#/properties/port
65 description: Input port node for HDMI.
66
67 port@9:
68 $ref: /schemas/graph.yaml#/properties/port
69 description: Input port node for TTL.
70
71 port@a:
72 $ref: /schemas/graph.yaml#/$defs/port-base
73 unevaluatedProperties: false
74 description:
75 Output port node, single endpoint describing the CSI-2 transmitter TXA.
76
77 properties:
78 endpoint:
79 $ref: /schemas/media/video-interfaces.yaml#
80 unevaluatedProperties: false
81
82 properties:
83 clock-lanes:
84 maxItems: 1
85
86 data-lanes:
87 minItems: 1
88 maxItems: 4
89
90 required:
91 - clock-lanes
92 - data-lanes
93
94 port@b:
95 $ref: /schemas/graph.yaml#/$defs/port-base
96 unevaluatedProperties: false
97 description:
98 Output port node, single endpoint describing the CSI-2 transmitter TXB.
99
100 properties:
101 endpoint:
102 $ref: /schemas/media/video-interfaces.yaml#
103 unevaluatedProperties: false
104
105 properties:
106 clock-lanes:
107 maxItems: 1
108
109 data-lanes:
110 maxItems: 1
111
112 required:
113 - clock-lanes
114 - data-lanes
115
116allOf:
117 - if:
118 properties:
119 compatible:
120 contains:
121 const: adi,adv7481
122 then:
123 properties:
124 interrupts:
125 minItems: 1
126 maxItems: 3
127
128 interrupt-names:
129 minItems: 1
130 maxItems: 3
131 items:
132 enum: [ intrq1, intrq2, intrq3 ]
133 else:
134 properties:
135 interrupts:
136 minItems: 1
137 maxItems: 2
138
139 interrupt-names:
140 minItems: 1
141 maxItems: 2
142 items:
143 enum: [ intrq1, intrq2 ]
144
145additionalProperties: false
146
147required:
148 - compatible
149 - reg
150 - ports
151
152examples:
153 - |
154 #include <dt-bindings/interrupt-controller/irq.h>
155
156 i2c {
157 #address-cells = <1>;
158 #size-cells = <0>;
159
160 video-receiver@70 {
161 compatible = "adi,adv7482";
162 reg = <0x70 0x71 0x72 0x73 0x74 0x75
163 0x60 0x61 0x62 0x63 0x64 0x65>;
164 reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
165 "infoframe", "cbus", "cec", "sdp", "txa", "txb";
166
167 interrupt-parent = <&gpio6>;
168 interrupts = <30 IRQ_TYPE_LEVEL_LOW>, <31 IRQ_TYPE_LEVEL_LOW>;
169 interrupt-names = "intrq1", "intrq2";
170
171 ports {
172 #address-cells = <1>;
173 #size-cells = <0>;
174
175 port@7 {
176 reg = <7>;
177
178 adv7482_ain7: endpoint {
179 remote-endpoint = <&cvbs_in>;
180 };
181 };
182
183 port@8 {
184 reg = <8>;
185
186 adv7482_hdmi: endpoint {
187 remote-endpoint = <&hdmi_in>;
188 };
189 };
190
191 port@a {
192 reg = <10>;
193
194 adv7482_txa: endpoint {
195 clock-lanes = <0>;
196 data-lanes = <1 2 3 4>;
197 remote-endpoint = <&csi40_in>;
198 };
199 };
200
201 port@b {
202 reg = <11>;
203
204 adv7482_txb: endpoint {
205 clock-lanes = <0>;
206 data-lanes = <1>;
207 remote-endpoint = <&csi20_in>;
208 };
209 };
210 };
211 };
212 };