# SPDX-License-Identifier: GPL-2.0 %YAML 1.2 --- $id: http://devicetree.org/schemas/display/brcm,bcm2835-hdmi.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Broadcom VC4 (VideoCore4) HDMI Controller maintainers: - Eric Anholt properties: compatible: enum: - brcm,bcm2835-hdmi - brcm,bcm2711-hdmi0 - brcm,bcm2711-hdmi1 reg: oneOf: - items: - description: HDMI register range - description: HD register range - items: - description: HDMI controller register range - description: DVP register range - description: HDMI PHY register range - description: Rate Manager register range - description: Packet RAM register range - description: Metadata RAM register range - description: CSC register range - description: CEC register range - description: HD register range reg-names: items: - const: hdmi - const: dvp - const: phy - const: rm - const: packet - const: metadata - const: csc - const: cec - const: hd interrupts: minItems: 2 clocks: oneOf: - items: - description: The pixel clock - description: The HDMI state machine clock - items: - description: The HDMI state machine clock clock-names: oneOf: - items: - const: pixel - const: hdmi - const: hdmi ddc: $ref: /schemas/types.yaml#/definitions/phandle description: > Phandle of the I2C controller used for DDC EDID probing hpd-gpios: maxItems: 1 description: > The GPIO pin for the HDMI hotplug detect (if it doesn't appear as an interrupt/status bit in the HDMI controller itself) dmas: maxItems: 1 description: > Should contain one entry pointing to the DMA channel used to transfer audio data. dma-names: const: audio-rx resets: maxItems: 1 required: - compatible - reg - clocks - ddc additionalProperties: false if: properties: compatible: contains: enum: - brcm,bcm2711-hdmi0 - brcm,bcm2711-hdmi1 then: properties: reg: minItems: 9 clocks: maxItems: 1 clock-names: maxItems: 1 required: - reg-names - resets else: properties: reg: maxItems: 2 clocks: minItems: 2 clock-names: minItems: 2 required: - interrupts examples: - | #include #include hdmi: hdmi@7e902000 { compatible = "brcm,bcm2835-hdmi"; reg = <0x7e902000 0x600>, <0x7e808000 0x100>; interrupts = <2 8>, <2 9>; ddc = <&i2c2>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; clocks = <&clocks BCM2835_PLLH_PIX>, <&clocks BCM2835_CLOCK_HSM>; clock-names = "pixel", "hdmi"; }; - | hdmi0: hdmi@7ef00700 { compatible = "brcm,bcm2711-hdmi0"; reg = <0x7ef00700 0x300>, <0x7ef00300 0x200>, <0x7ef00f00 0x80>, <0x7ef00f80 0x80>, <0x7ef01b00 0x200>, <0x7ef01f00 0x400>, <0x7ef00200 0x80>, <0x7ef04300 0x100>, <0x7ef20000 0x100>; reg-names = "hdmi", "dvp", "phy", "rm", "packet", "metadata", "csc", "cec", "hd"; clocks = <&firmware_clocks 13>; clock-names = "hdmi"; resets = <&dvp 0>; ddc = <&ddc0>; }; ...