162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/display/bridge/adi,adv7533.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Analog Devices ADV7533/35 HDMI Encoders
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  The ADV7533 and ADV7535 are HDMI audio and video transmitters
1462306a36Sopenharmony_ci  compatible with HDMI 1.4 and DVI 1.0. They support color space
1562306a36Sopenharmony_ci  conversion, S/PDIF, CEC and HDCP. The transmitter input is MIPI DSI.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    enum:
2062306a36Sopenharmony_ci      - adi,adv7533
2162306a36Sopenharmony_ci      - adi,adv7535
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  reg:
2462306a36Sopenharmony_ci    description: |
2562306a36Sopenharmony_ci      I2C slave addresses.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci      The ADV7533/35 internal registers are split into four pages
2862306a36Sopenharmony_ci      exposed through different I2C addresses, creating four register
2962306a36Sopenharmony_ci      maps. Each map has it own I2C address and acts as a standard slave
3062306a36Sopenharmony_ci      device on the I2C bus. The main address is mandatory, others are
3162306a36Sopenharmony_ci      optional and revert to defaults if not specified.
3262306a36Sopenharmony_ci    minItems: 1
3362306a36Sopenharmony_ci    maxItems: 4
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  reg-names:
3662306a36Sopenharmony_ci    description:
3762306a36Sopenharmony_ci      Names of maps with programmable addresses. It can contain any map
3862306a36Sopenharmony_ci      needing a non-default address.
3962306a36Sopenharmony_ci    minItems: 1
4062306a36Sopenharmony_ci    items:
4162306a36Sopenharmony_ci      - const: main
4262306a36Sopenharmony_ci      - const: edid
4362306a36Sopenharmony_ci      - const: cec
4462306a36Sopenharmony_ci      - const: packet
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  clocks:
4762306a36Sopenharmony_ci    description: Reference to the CEC clock.
4862306a36Sopenharmony_ci    maxItems: 1
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  clock-names:
5162306a36Sopenharmony_ci    const: cec
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  interrupts:
5462306a36Sopenharmony_ci    maxItems: 1
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  pd-gpios:
5762306a36Sopenharmony_ci    description: GPIO connected to the power down signal.
5862306a36Sopenharmony_ci    maxItems: 1
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci  avdd-supply:
6162306a36Sopenharmony_ci    description: A 1.8V supply that powers up the AVDD pin.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci  dvdd-supply:
6462306a36Sopenharmony_ci    description: A 1.8V supply that powers up the DVDD pin.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci  pvdd-supply:
6762306a36Sopenharmony_ci    description: A 1.8V supply that powers up the PVDD pin.
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci  a2vdd-supply:
7062306a36Sopenharmony_ci    description: A 1.8V supply that powers up the A2VDD pin.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci  v3p3-supply:
7362306a36Sopenharmony_ci    description: A 3.3V supply that powers up the V3P3 pin.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci  v1p2-supply:
7662306a36Sopenharmony_ci    description:
7762306a36Sopenharmony_ci      A supply that powers up the V1P2 pin. It can be either 1.2V
7862306a36Sopenharmony_ci      or 1.8V for ADV7533 but only 1.8V for ADV7535.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  adi,disable-timing-generator:
8162306a36Sopenharmony_ci    description:
8262306a36Sopenharmony_ci      Disables the internal timing generator. The chip will rely on the
8362306a36Sopenharmony_ci      sync signals in the DSI data lanes, rather than generating its own
8462306a36Sopenharmony_ci      timings for HDMI output.
8562306a36Sopenharmony_ci    type: boolean
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci  adi,dsi-lanes:
8862306a36Sopenharmony_ci    description: Number of DSI data lanes connected to the DSI host.
8962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
9062306a36Sopenharmony_ci    enum: [ 1, 2, 3, 4 ]
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci  ports:
9362306a36Sopenharmony_ci    description:
9462306a36Sopenharmony_ci      The ADV7533/35 has two video ports and one audio port.
9562306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/properties/ports
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci    properties:
9862306a36Sopenharmony_ci      port@0:
9962306a36Sopenharmony_ci        description:
10062306a36Sopenharmony_ci          Video port for the DSI input. The remote endpoint phandle
10162306a36Sopenharmony_ci          should be a reference to a valid mipi_dsi_host_device.
10262306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci      port@1:
10562306a36Sopenharmony_ci        description: Video port for the HDMI output.
10662306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci      port@2:
10962306a36Sopenharmony_ci        description: Audio port for the HDMI output.
11062306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_cirequired:
11362306a36Sopenharmony_ci  - compatible
11462306a36Sopenharmony_ci  - reg
11562306a36Sopenharmony_ci  - ports
11662306a36Sopenharmony_ci  - adi,dsi-lanes
11762306a36Sopenharmony_ci  - avdd-supply
11862306a36Sopenharmony_ci  - dvdd-supply
11962306a36Sopenharmony_ci  - pvdd-supply
12062306a36Sopenharmony_ci  - a2vdd-supply
12162306a36Sopenharmony_ci  - v3p3-supply
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ciadditionalProperties: false
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ciexamples:
12662306a36Sopenharmony_ci  - |
12762306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci    i2c@e6500000 {
13062306a36Sopenharmony_ci        #address-cells = <1>;
13162306a36Sopenharmony_ci        #size-cells = <0>;
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci        reg = <0 0xe6500000>;
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci        adv7533: hdmi@39 {
13662306a36Sopenharmony_ci            compatible = "adi,adv7533";
13762306a36Sopenharmony_ci            /*
13862306a36Sopenharmony_ci             * The EDID page will be accessible on address 0x66 on the I2C
13962306a36Sopenharmony_ci             * bus. All other maps continue to use their default addresses.
14062306a36Sopenharmony_ci             */
14162306a36Sopenharmony_ci            reg = <0x39>, <0x66>;
14262306a36Sopenharmony_ci            reg-names = "main", "edid";
14362306a36Sopenharmony_ci            interrupt-parent = <&gpio3>;
14462306a36Sopenharmony_ci            interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
14562306a36Sopenharmony_ci            clocks = <&cec_clock>;
14662306a36Sopenharmony_ci            clock-names = "cec";
14762306a36Sopenharmony_ci            adi,dsi-lanes = <4>;
14862306a36Sopenharmony_ci            avdd-supply = <&v1v8>;
14962306a36Sopenharmony_ci            dvdd-supply = <&v1v8>;
15062306a36Sopenharmony_ci            pvdd-supply = <&v1v8>;
15162306a36Sopenharmony_ci            a2vdd-supply = <&v1v8>;
15262306a36Sopenharmony_ci            v3p3-supply = <&v3v3>;
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci            ports {
15562306a36Sopenharmony_ci                #address-cells = <1>;
15662306a36Sopenharmony_ci                #size-cells = <0>;
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci                port@0 {
15962306a36Sopenharmony_ci                    reg = <0>;
16062306a36Sopenharmony_ci                    adv7533_in: endpoint {
16162306a36Sopenharmony_ci                        remote-endpoint = <&dsi_out>;
16262306a36Sopenharmony_ci                    };
16362306a36Sopenharmony_ci                };
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci                port@1 {
16662306a36Sopenharmony_ci                    reg = <1>;
16762306a36Sopenharmony_ci                    adv7533_out: endpoint {
16862306a36Sopenharmony_ci                        remote-endpoint = <&hdmi_connector_in>;
16962306a36Sopenharmony_ci                    };
17062306a36Sopenharmony_ci                };
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci                port@2 {
17362306a36Sopenharmony_ci                    reg = <2>;
17462306a36Sopenharmony_ci                    codec_endpoint: endpoint {
17562306a36Sopenharmony_ci                        remote-endpoint = <&i2s0_cpu_endpoint>;
17662306a36Sopenharmony_ci                    };
17762306a36Sopenharmony_ci                };
17862306a36Sopenharmony_ci            };
17962306a36Sopenharmony_ci        };
18062306a36Sopenharmony_ci    };
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci...
183