# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/display/bridge/adi,adv7511.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Analog Devices ADV7511/11W/13 HDMI Encoders maintainers: - Laurent Pinchart description: | The ADV7511, ADV7511W and ADV7513 are HDMI audio and video transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space conversion, S/PDIF, CEC and HDCP. The transmitter input is parallel RGB or YUV data. properties: compatible: enum: - adi,adv7511 - adi,adv7511w - adi,adv7513 reg: description: | I2C slave addresses. The ADV7511/11W/13 internal registers are split into four pages exposed through different I2C addresses, creating four register maps. Each map has it own I2C address and acts as a standard slave device on the I2C bus. The main address is mandatory, others are optional and revert to defaults if not specified. minItems: 1 maxItems: 4 reg-names: description: Names of maps with programmable addresses. It can contain any map needing a non-default address. minItems: 1 items: - const: main - const: edid - const: cec - const: packet clocks: description: Reference to the CEC clock. maxItems: 1 clock-names: const: cec interrupts: maxItems: 1 pd-gpios: description: GPIO connected to the power down signal. maxItems: 1 avdd-supply: description: A 1.8V supply that powers up the AVDD pin. dvdd-supply: description: A 1.8V supply that powers up the DVDD pin. pvdd-supply: description: A 1.8V supply that powers up the PVDD pin. dvdd-3v-supply: description: A 3.3V supply that powers up the DVDD_3V pin. bgvdd-supply: description: A 1.8V supply that powers up the BGVDD pin. adi,input-depth: description: Number of bits per color component at the input. $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 8, 10, 12 ] adi,input-colorspace: description: Input color space. enum: [ rgb, yuv422, yuv444 ] adi,input-clock: description: | Input clock type. "1x": one clock cycle per pixel "2x": two clock cycles per pixel "dd": one clock cycle per pixel, data driven on both edges enum: [ 1x, 2x, dd ] adi,clock-delay: description: Video data clock delay relative to the pixel clock, in ps (-1200ps .. 1600 ps). $ref: /schemas/types.yaml#/definitions/uint32 default: 0 adi,embedded-sync: description: If defined, the input uses synchronization signals embedded in the data stream (similar to BT.656). type: boolean adi,input-style: description: Input components arrangement variant as listed in the input format tables in the datasheet. $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 1, 2, 3 ] adi,input-justification: description: Input bit justification. enum: [ left, evenly, right ] ports: description: The ADV7511(W)/13 has two video ports and one audio port. $ref: /schemas/graph.yaml#/properties/ports properties: port@0: description: Video port for the RGB or YUV input. $ref: /schemas/graph.yaml#/properties/port port@1: description: Video port for the HDMI output. $ref: /schemas/graph.yaml#/properties/port port@2: description: Audio port for the HDMI output. $ref: /schemas/graph.yaml#/properties/port # adi,input-colorspace and adi,input-clock are required except in # "rgb 1x" and "yuv444 1x" modes, in which case they must not be # specified. if: not: properties: adi,input-colorspace: contains: enum: [ rgb, yuv444 ] adi,input-clock: contains: const: 1x then: required: - adi,input-style - adi,input-justification else: properties: adi,input-style: false adi,input-justification: false required: - compatible - reg - ports - adi,input-depth - adi,input-colorspace - adi,input-clock - avdd-supply - dvdd-supply - pvdd-supply - dvdd-3v-supply - bgvdd-supply additionalProperties: false examples: - | #include i2c@e6500000 { #address-cells = <1>; #size-cells = <0>; reg = <0 0xe6500000>; adv7511w: hdmi@39 { compatible = "adi,adv7511w"; /* * The EDID page will be accessible on address 0x66 on the I2C * bus. All other maps continue to use their default addresses. */ reg = <0x39>, <0x66>; reg-names = "main", "edid"; interrupt-parent = <&gpio3>; interrupts = <29 IRQ_TYPE_EDGE_FALLING>; clocks = <&cec_clock>; clock-names = "cec"; avdd-supply = <&v1v8>; dvdd-supply = <&v1v8>; pvdd-supply = <&v1v8>; dvdd-3v-supply = <&v3v3>; bgvdd-supply = <&v1v8>; adi,input-depth = <8>; adi,input-colorspace = "yuv422"; adi,input-clock = "1x"; adi,input-style = <3>; adi,input-justification = "right"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; adv7511w_in: endpoint { remote-endpoint = <&dpi_out>; }; }; port@1 { reg = <1>; adv7511_out: endpoint { remote-endpoint = <&hdmi_connector_in>; }; }; port@2 { reg = <2>; codec_endpoint: endpoint { remote-endpoint = <&i2s0_cpu_endpoint>; }; }; }; }; }; ...