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