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