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