1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2# Copyright 2019 BayLibre, SAS 3%YAML 1.2 4--- 5$id: "http://devicetree.org/schemas/display/amlogic,meson-dw-hdmi.yaml#" 6$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7 8title: Amlogic specific extensions to the Synopsys Designware HDMI Controller 9 10maintainers: 11 - Neil Armstrong <neil.armstrong@linaro.org> 12 13allOf: 14 - $ref: /schemas/sound/dai-common.yaml# 15 16description: | 17 The Amlogic Meson Synopsys Designware Integration is composed of 18 - A Synopsys DesignWare HDMI Controller IP 19 - A TOP control block controlling the Clocks and PHY 20 - A custom HDMI PHY in order to convert video to TMDS signal 21 ___________________________________ 22 | HDMI TOP |<= HPD 23 |___________________________________| 24 | | | 25 | Synopsys HDMI | HDMI PHY |=> TMDS 26 | Controller |________________| 27 |___________________________________|<=> DDC 28 29 The HDMI TOP block only supports HPD sensing. 30 The Synopsys HDMI Controller interrupt is routed through the 31 TOP Block interrupt. 32 Communication to the TOP Block and the Synopsys HDMI Controller is done 33 via a pair of dedicated addr+read/write registers. 34 The HDMI PHY is configured by registers in the HHI register block. 35 36 Pixel data arrives in "4:4:4" format from the VENC block and the VPU HDMI mux 37 selects either the ENCI encoder for the 576i or 480i formats or the ENCP 38 encoder for all the other formats including interlaced HD formats. 39 40 The VENC uses a DVI encoder on top of the ENCI or ENCP encoders to generate 41 DVI timings for the HDMI controller. 42 43 Amlogic Meson GXBB, GXL and GXM SoCs families embeds the Synopsys DesignWare 44 HDMI TX IP version 2.01a with HDCP and I2C & S/PDIF 45 audio source interfaces. 46 47properties: 48 compatible: 49 oneOf: 50 - items: 51 - enum: 52 - amlogic,meson-gxbb-dw-hdmi # GXBB (S905) 53 - amlogic,meson-gxl-dw-hdmi # GXL (S905X, S905D) 54 - amlogic,meson-gxm-dw-hdmi # GXM (S912) 55 - const: amlogic,meson-gx-dw-hdmi 56 - enum: 57 - amlogic,meson-g12a-dw-hdmi # G12A (S905X2, S905Y2, S905D2) 58 59 reg: 60 maxItems: 1 61 62 interrupts: 63 maxItems: 1 64 65 clocks: 66 minItems: 3 67 68 clock-names: 69 items: 70 - const: isfr 71 - const: iahb 72 - const: venci 73 74 resets: 75 minItems: 3 76 77 reset-names: 78 items: 79 - const: hdmitx_apb 80 - const: hdmitx 81 - const: hdmitx_phy 82 83 hdmi-supply: 84 description: phandle to an external 5V regulator to power the HDMI logic 85 86 port@0: 87 $ref: /schemas/graph.yaml#/properties/port 88 description: 89 A port node pointing to the VENC Input port node. 90 91 port@1: 92 $ref: /schemas/graph.yaml#/properties/port 93 description: 94 A port node pointing to the TMDS Output port node. 95 96 "#address-cells": 97 const: 1 98 99 "#size-cells": 100 const: 0 101 102 "#sound-dai-cells": 103 const: 0 104 105 sound-name-prefix: true 106 107required: 108 - compatible 109 - reg 110 - interrupts 111 - clocks 112 - clock-names 113 - resets 114 - reset-names 115 - port@0 116 - port@1 117 - "#address-cells" 118 - "#size-cells" 119 120additionalProperties: false 121 122examples: 123 - | 124 hdmi_tx: hdmi-tx@c883a000 { 125 compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 126 reg = <0xc883a000 0x1c>; 127 interrupts = <57>; 128 resets = <&reset_apb>, <&reset_hdmitx>, <&reset_hdmitx_phy>; 129 reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 130 clocks = <&clk_isfr>, <&clk_iahb>, <&clk_venci>; 131 clock-names = "isfr", "iahb", "venci"; 132 #address-cells = <1>; 133 #size-cells = <0>; 134 135 /* VPU VENC Input */ 136 hdmi_tx_venc_port: port@0 { 137 reg = <0>; 138 139 hdmi_tx_in: endpoint { 140 remote-endpoint = <&hdmi_tx_out>; 141 }; 142 }; 143 144 /* TMDS Output */ 145 hdmi_tx_tmds_port: port@1 { 146 reg = <1>; 147 148 hdmi_tx_tmds_out: endpoint { 149 remote-endpoint = <&hdmi_connector_in>; 150 }; 151 }; 152 }; 153