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,adv7533.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Analog Devices ADV7533/35 HDMI Encoders
8
9maintainers:
10  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11
12description: |
13  The ADV7533 and ADV7535 are HDMI audio and video transmitters
14  compatible with HDMI 1.4 and DVI 1.0. They support color space
15  conversion, S/PDIF, CEC and HDCP. The transmitter input is MIPI DSI.
16
17properties:
18  compatible:
19    enum:
20      - adi,adv7533
21      - adi,adv7535
22
23  reg:
24    description: |
25      I2C slave addresses.
26
27      The ADV7533/35 internal registers are split into four pages
28      exposed through different I2C addresses, creating four register
29      maps. Each map has it own I2C address and acts as a standard slave
30      device on the I2C bus. The main address is mandatory, others are
31      optional and revert to defaults if not specified.
32    minItems: 1
33    maxItems: 4
34
35  reg-names:
36    description:
37      Names of maps with programmable addresses. It can contain any map
38      needing a non-default address.
39    minItems: 1
40    items:
41      - const: main
42      - const: edid
43      - const: cec
44      - const: packet
45
46  clocks:
47    description: Reference to the CEC clock.
48    maxItems: 1
49
50  clock-names:
51    const: cec
52
53  interrupts:
54    maxItems: 1
55
56  pd-gpios:
57    description: GPIO connected to the power down signal.
58    maxItems: 1
59
60  avdd-supply:
61    description: A 1.8V supply that powers up the AVDD pin.
62
63  dvdd-supply:
64    description: A 1.8V supply that powers up the DVDD pin.
65
66  pvdd-supply:
67    description: A 1.8V supply that powers up the PVDD pin.
68
69  a2vdd-supply:
70    description: A 1.8V supply that powers up the A2VDD pin.
71
72  v3p3-supply:
73    description: A 3.3V supply that powers up the V3P3 pin.
74
75  v1p2-supply:
76    description:
77      A supply that powers up the V1P2 pin. It can be either 1.2V
78      or 1.8V for ADV7533 but only 1.8V for ADV7535.
79
80  adi,disable-timing-generator:
81    description:
82      Disables the internal timing generator. The chip will rely on the
83      sync signals in the DSI data lanes, rather than generating its own
84      timings for HDMI output.
85    type: boolean
86
87  adi,dsi-lanes:
88    description: Number of DSI data lanes connected to the DSI host.
89    $ref: /schemas/types.yaml#/definitions/uint32
90    enum: [ 1, 2, 3, 4 ]
91
92  ports:
93    description:
94      The ADV7533/35 has two video ports and one audio port.
95    $ref: /schemas/graph.yaml#/properties/ports
96
97    properties:
98      port@0:
99        description:
100          Video port for the DSI input. The remote endpoint phandle
101          should be a reference to a valid mipi_dsi_host_device.
102        $ref: /schemas/graph.yaml#/properties/port
103
104      port@1:
105        description: Video port for the HDMI output.
106        $ref: /schemas/graph.yaml#/properties/port
107
108      port@2:
109        description: Audio port for the HDMI output.
110        $ref: /schemas/graph.yaml#/properties/port
111
112required:
113  - compatible
114  - reg
115  - ports
116  - adi,dsi-lanes
117  - avdd-supply
118  - dvdd-supply
119  - pvdd-supply
120  - a2vdd-supply
121  - v3p3-supply
122
123additionalProperties: false
124
125examples:
126  - |
127    #include <dt-bindings/interrupt-controller/irq.h>
128
129    i2c@e6500000 {
130        #address-cells = <1>;
131        #size-cells = <0>;
132
133        reg = <0 0xe6500000>;
134
135        adv7533: hdmi@39 {
136            compatible = "adi,adv7533";
137            /*
138             * The EDID page will be accessible on address 0x66 on the I2C
139             * bus. All other maps continue to use their default addresses.
140             */
141            reg = <0x39>, <0x66>;
142            reg-names = "main", "edid";
143            interrupt-parent = <&gpio3>;
144            interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
145            clocks = <&cec_clock>;
146            clock-names = "cec";
147            adi,dsi-lanes = <4>;
148            avdd-supply = <&v1v8>;
149            dvdd-supply = <&v1v8>;
150            pvdd-supply = <&v1v8>;
151            a2vdd-supply = <&v1v8>;
152            v3p3-supply = <&v3v3>;
153
154            ports {
155                #address-cells = <1>;
156                #size-cells = <0>;
157
158                port@0 {
159                    reg = <0>;
160                    adv7533_in: endpoint {
161                        remote-endpoint = <&dsi_out>;
162                    };
163                };
164
165                port@1 {
166                    reg = <1>;
167                    adv7533_out: endpoint {
168                        remote-endpoint = <&hdmi_connector_in>;
169                    };
170                };
171
172                port@2 {
173                    reg = <2>;
174                    codec_endpoint: endpoint {
175                        remote-endpoint = <&i2s0_cpu_endpoint>;
176                    };
177                };
178            };
179        };
180    };
181
182...
183