Merge tag 'regulator-fix-v6.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / display / bridge / adi,adv7511.yaml
1 # 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
7 title: Analog Devices ADV7511/11W/13 HDMI Encoders
8
9 maintainers:
10   - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11
12 description: |
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
18 properties:
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.
139 if:
140   not:
141     properties:
142       adi,input-colorspace:
143         contains:
144           enum: [ rgb, yuv444 ]
145       adi,input-clock:
146         contains:
147           const: 1x
148
149 then:
150   required:
151     - adi,input-style
152     - adi,input-justification
153
154 else:
155   properties:
156     adi,input-style: false
157     adi,input-justification: false
158
159
160 required:
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
173 additionalProperties: false
174
175 examples:
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 ...