blob: 5bbe81862c8f981891155574b3b5705b15861e87 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/bridge/adi,adv7511.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Analog Devices ADV7511/11W/13 HDMI Encoders
8
9maintainers:
10 - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11
12description: |
13 The ADV7511, ADV7511W and ADV7513 are HDMI audio and video
14 transmitters compatible with HDMI 1.4 and DVI 1.0. They support color
15 space conversion, S/PDIF, CEC and HDCP. The transmitter input is
16 parallel RGB or YUV data.
17
18properties:
19 compatible:
20 enum:
21 - adi,adv7511
22 - adi,adv7511w
23 - adi,adv7513
24
25 reg:
26 description: |
27 I2C slave addresses.
28
29 The ADV7511/11W/13 internal registers are split into four pages
30 exposed through different I2C addresses, creating four register
31 maps. Each map has it own I2C address and acts as a standard slave
32 device on the I2C bus. The main address is mandatory, others are
33 optional and revert to defaults if not specified.
34 minItems: 1
35 maxItems: 4
36
37 reg-names:
38 description:
39 Names of maps with programmable addresses. It can contain any map
40 needing a non-default address.
41 minItems: 1
42 items:
43 - const: main
44 - const: edid
45 - const: cec
46 - const: packet
47
48 clocks:
49 description: Reference to the CEC clock.
50 maxItems: 1
51
52 clock-names:
53 const: cec
54
55 interrupts:
56 maxItems: 1
57
58 pd-gpios:
59 description: GPIO connected to the power down signal.
60 maxItems: 1
61
62 avdd-supply:
63 description: A 1.8V supply that powers up the AVDD pin.
64
65 dvdd-supply:
66 description: A 1.8V supply that powers up the DVDD pin.
67
68 pvdd-supply:
69 description: A 1.8V supply that powers up the PVDD pin.
70
71 dvdd-3v-supply:
72 description: A 3.3V supply that powers up the DVDD_3V pin.
73
74 bgvdd-supply:
75 description: A 1.8V supply that powers up the BGVDD pin.
76
77 adi,input-depth:
78 description: Number of bits per color component at the input.
79 $ref: /schemas/types.yaml#/definitions/uint32
80 enum: [ 8, 10, 12 ]
81
82 adi,input-colorspace:
83 description: Input color space.
84 enum: [ rgb, yuv422, yuv444 ]
85
86 adi,input-clock:
87 description: |
88 Input clock type.
89 "1x": one clock cycle per pixel
90 "2x": two clock cycles per pixel
91 "dd": one clock cycle per pixel, data driven on both edges
92 enum: [ 1x, 2x, dd ]
93
94 adi,clock-delay:
95 description:
96 Video data clock delay relative to the pixel clock, in ps
97 (-1200ps .. 1600 ps).
98 $ref: /schemas/types.yaml#/definitions/uint32
99 default: 0
100
101 adi,embedded-sync:
102 description:
103 If defined, the input uses synchronization signals embedded in the
104 data stream (similar to BT.656).
105 type: boolean
106
107 adi,input-style:
108 description:
109 Input components arrangement variant as listed in the input
110 format tables in the datasheet.
111 $ref: /schemas/types.yaml#/definitions/uint32
112 enum: [ 1, 2, 3 ]
113
114 adi,input-justification:
115 description: Input bit justification.
116 enum: [ left, evenly, right ]
117
118 ports:
119 description:
120 The ADV7511(W)/13 has two video ports and one audio port.
121 $ref: /schemas/graph.yaml#/properties/ports
122
123 properties:
124 port@0:
125 description: Video port for the RGB or YUV input.
126 $ref: /schemas/graph.yaml#/properties/port
127
128 port@1:
129 description: Video port for the HDMI output.
130 $ref: /schemas/graph.yaml#/properties/port
131
132 port@2:
133 description: Audio port for the HDMI output.
134 $ref: /schemas/graph.yaml#/properties/port
135
136# adi,input-colorspace and adi,input-clock are required except in
137# "rgb 1x" and "yuv444 1x" modes, in which case they must not be
138# specified.
139if:
140 not:
141 properties:
142 adi,input-colorspace:
143 contains:
144 enum: [ rgb, yuv444 ]
145 adi,input-clock:
146 contains:
147 const: 1x
148
149then:
150 required:
151 - adi,input-style
152 - adi,input-justification
153
154else:
155 properties:
156 adi,input-style: false
157 adi,input-justification: false
158
159
160required:
161 - compatible
162 - reg
163 - ports
164 - adi,input-depth
165 - adi,input-colorspace
166 - adi,input-clock
167 - avdd-supply
168 - dvdd-supply
169 - pvdd-supply
170 - dvdd-3v-supply
171 - bgvdd-supply
172
173additionalProperties: false
174
175examples:
176 - |
177 #include <dt-bindings/interrupt-controller/irq.h>
178
179 i2c@e6500000 {
180 #address-cells = <1>;
181 #size-cells = <0>;
182
183 reg = <0 0xe6500000>;
184
185 adv7511w: hdmi@39 {
186 compatible = "adi,adv7511w";
187 /*
188 * The EDID page will be accessible on address 0x66 on the I2C
189 * bus. All other maps continue to use their default addresses.
190 */
191 reg = <0x39>, <0x66>;
192 reg-names = "main", "edid";
193 interrupt-parent = <&gpio3>;
194 interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
195 clocks = <&cec_clock>;
196 clock-names = "cec";
197 avdd-supply = <&v1v8>;
198 dvdd-supply = <&v1v8>;
199 pvdd-supply = <&v1v8>;
200 dvdd-3v-supply = <&v3v3>;
201 bgvdd-supply = <&v1v8>;
202
203 adi,input-depth = <8>;
204 adi,input-colorspace = "yuv422";
205 adi,input-clock = "1x";
206
207 adi,input-style = <3>;
208 adi,input-justification = "right";
209 ports {
210 #address-cells = <1>;
211 #size-cells = <0>;
212
213 port@0 {
214 reg = <0>;
215 adv7511w_in: endpoint {
216 remote-endpoint = <&dpi_out>;
217 };
218 };
219
220 port@1 {
221 reg = <1>;
222 adv7511_out: endpoint {
223 remote-endpoint = <&hdmi_connector_in>;
224 };
225 };
226
227 port@2 {
228 reg = <2>;
229 codec_endpoint: endpoint {
230 remote-endpoint = <&i2s0_cpu_endpoint>;
231 };
232 };
233 };
234 };
235 };
236
237...