xref: /freebsd/sys/contrib/device-tree/Bindings/display/bridge/adi,adv7533.yaml (revision af23369a6deaaeb612ab266eb88b8bb8d560c322)
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. This node
95      models their connections as documented in
96      Documentation/devicetree/bindings/media/video-interfaces.txt
97      Documentation/devicetree/bindings/graph.txt
98    type: object
99    properties:
100      port@0:
101        description:
102          Video port for the DSI input. The remote endpoint phandle
103          should be a reference to a valid mipi_dsi_host_device.
104        type: object
105
106      port@1:
107        description: Video port for the HDMI output.
108        type: object
109
110      port@2:
111        description: Audio port for the HDMI output.
112        type: object
113
114required:
115  - compatible
116  - reg
117  - ports
118  - adi,dsi-lanes
119  - avdd-supply
120  - dvdd-supply
121  - pvdd-supply
122  - a2vdd-supply
123  - v3p3-supply
124
125additionalProperties: false
126
127examples:
128  - |
129    #include <dt-bindings/interrupt-controller/irq.h>
130
131    i2c@e6500000 {
132        #address-cells = <1>;
133        #size-cells = <0>;
134
135        reg = <0 0xe6500000>;
136
137        adv7533: hdmi@39 {
138            compatible = "adi,adv7533";
139            /*
140             * The EDID page will be accessible on address 0x66 on the I2C
141             * bus. All other maps continue to use their default addresses.
142             */
143            reg = <0x39>, <0x66>;
144            reg-names = "main", "edid";
145            interrupt-parent = <&gpio3>;
146            interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
147            clocks = <&cec_clock>;
148            clock-names = "cec";
149            adi,dsi-lanes = <4>;
150            avdd-supply = <&v1v8>;
151            dvdd-supply = <&v1v8>;
152            pvdd-supply = <&v1v8>;
153            a2vdd-supply = <&v1v8>;
154            v3p3-supply = <&v3v3>;
155
156            ports {
157                #address-cells = <1>;
158                #size-cells = <0>;
159
160                port@0 {
161                    reg = <0>;
162                    adv7533_in: endpoint {
163                        remote-endpoint = <&dsi_out>;
164                    };
165                };
166
167                port@1 {
168                    reg = <1>;
169                    adv7533_out: endpoint {
170                        remote-endpoint = <&hdmi_connector_in>;
171                    };
172                };
173
174                port@2 {
175                    reg = <2>;
176                    codec_endpoint: endpoint {
177                        remote-endpoint = <&i2s0_cpu_endpoint>;
178                    };
179                };
180            };
181        };
182    };
183
184...
185