1376bf52dSNeil Armstrong# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2376bf52dSNeil Armstrong# Copyright 2019 BayLibre, SAS 3376bf52dSNeil Armstrong%YAML 1.2 4376bf52dSNeil Armstrong--- 5*4334aec0SRob Herring$id: http://devicetree.org/schemas/display/amlogic,meson-dw-hdmi.yaml# 6*4334aec0SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 7376bf52dSNeil Armstrong 8376bf52dSNeil Armstrongtitle: Amlogic specific extensions to the Synopsys Designware HDMI Controller 9376bf52dSNeil Armstrong 10376bf52dSNeil Armstrongmaintainers: 11c6a43fb3SNeil Armstrong - Neil Armstrong <neil.armstrong@linaro.org> 12376bf52dSNeil Armstrong 1322bf4047SAlexander SteinallOf: 143fda8532SKrzysztof Kozlowski - $ref: /schemas/sound/dai-common.yaml# 1522bf4047SAlexander Stein 16376bf52dSNeil Armstrongdescription: | 17376bf52dSNeil Armstrong The Amlogic Meson Synopsys Designware Integration is composed of 18376bf52dSNeil Armstrong - A Synopsys DesignWare HDMI Controller IP 19376bf52dSNeil Armstrong - A TOP control block controlling the Clocks and PHY 20376bf52dSNeil Armstrong - A custom HDMI PHY in order to convert video to TMDS signal 21376bf52dSNeil Armstrong ___________________________________ 22376bf52dSNeil Armstrong | HDMI TOP |<= HPD 23376bf52dSNeil Armstrong |___________________________________| 24376bf52dSNeil Armstrong | | | 25376bf52dSNeil Armstrong | Synopsys HDMI | HDMI PHY |=> TMDS 26376bf52dSNeil Armstrong | Controller |________________| 27376bf52dSNeil Armstrong |___________________________________|<=> DDC 28376bf52dSNeil Armstrong 29376bf52dSNeil Armstrong The HDMI TOP block only supports HPD sensing. 30376bf52dSNeil Armstrong The Synopsys HDMI Controller interrupt is routed through the 31376bf52dSNeil Armstrong TOP Block interrupt. 32376bf52dSNeil Armstrong Communication to the TOP Block and the Synopsys HDMI Controller is done 33376bf52dSNeil Armstrong via a pair of dedicated addr+read/write registers. 34376bf52dSNeil Armstrong The HDMI PHY is configured by registers in the HHI register block. 35376bf52dSNeil Armstrong 36376bf52dSNeil Armstrong Pixel data arrives in "4:4:4" format from the VENC block and the VPU HDMI mux 37376bf52dSNeil Armstrong selects either the ENCI encoder for the 576i or 480i formats or the ENCP 38376bf52dSNeil Armstrong encoder for all the other formats including interlaced HD formats. 39376bf52dSNeil Armstrong 40376bf52dSNeil Armstrong The VENC uses a DVI encoder on top of the ENCI or ENCP encoders to generate 41376bf52dSNeil Armstrong DVI timings for the HDMI controller. 42376bf52dSNeil Armstrong 43376bf52dSNeil Armstrong Amlogic Meson GXBB, GXL and GXM SoCs families embeds the Synopsys DesignWare 44376bf52dSNeil Armstrong HDMI TX IP version 2.01a with HDCP and I2C & S/PDIF 45376bf52dSNeil Armstrong audio source interfaces. 46376bf52dSNeil Armstrong 47376bf52dSNeil Armstrongproperties: 48376bf52dSNeil Armstrong compatible: 49376bf52dSNeil Armstrong oneOf: 50376bf52dSNeil Armstrong - items: 51376bf52dSNeil Armstrong - enum: 52376bf52dSNeil Armstrong - amlogic,meson-gxbb-dw-hdmi # GXBB (S905) 53376bf52dSNeil Armstrong - amlogic,meson-gxl-dw-hdmi # GXL (S905X, S905D) 54376bf52dSNeil Armstrong - amlogic,meson-gxm-dw-hdmi # GXM (S912) 55376bf52dSNeil Armstrong - const: amlogic,meson-gx-dw-hdmi 56376bf52dSNeil Armstrong - enum: 57376bf52dSNeil Armstrong - amlogic,meson-g12a-dw-hdmi # G12A (S905X2, S905Y2, S905D2) 58376bf52dSNeil Armstrong 59376bf52dSNeil Armstrong reg: 60376bf52dSNeil Armstrong maxItems: 1 61376bf52dSNeil Armstrong 62376bf52dSNeil Armstrong interrupts: 63376bf52dSNeil Armstrong maxItems: 1 64376bf52dSNeil Armstrong 65376bf52dSNeil Armstrong clocks: 66376bf52dSNeil Armstrong minItems: 3 67376bf52dSNeil Armstrong 68376bf52dSNeil Armstrong clock-names: 69376bf52dSNeil Armstrong items: 70376bf52dSNeil Armstrong - const: isfr 71376bf52dSNeil Armstrong - const: iahb 72376bf52dSNeil Armstrong - const: venci 73376bf52dSNeil Armstrong 74376bf52dSNeil Armstrong resets: 75376bf52dSNeil Armstrong minItems: 3 76376bf52dSNeil Armstrong 77376bf52dSNeil Armstrong reset-names: 78376bf52dSNeil Armstrong items: 79376bf52dSNeil Armstrong - const: hdmitx_apb 80376bf52dSNeil Armstrong - const: hdmitx 81376bf52dSNeil Armstrong - const: hdmitx_phy 82376bf52dSNeil Armstrong 83376bf52dSNeil Armstrong hdmi-supply: 84376bf52dSNeil Armstrong description: phandle to an external 5V regulator to power the HDMI logic 85376bf52dSNeil Armstrong 86376bf52dSNeil Armstrong port@0: 87b6755423SRob Herring $ref: /schemas/graph.yaml#/properties/port 88376bf52dSNeil Armstrong description: 89376bf52dSNeil Armstrong A port node pointing to the VENC Input port node. 90376bf52dSNeil Armstrong 91376bf52dSNeil Armstrong port@1: 92b6755423SRob Herring $ref: /schemas/graph.yaml#/properties/port 93376bf52dSNeil Armstrong description: 94376bf52dSNeil Armstrong A port node pointing to the TMDS Output port node. 95376bf52dSNeil Armstrong 96376bf52dSNeil Armstrong "#address-cells": 97376bf52dSNeil Armstrong const: 1 98376bf52dSNeil Armstrong 99376bf52dSNeil Armstrong "#size-cells": 100376bf52dSNeil Armstrong const: 0 101376bf52dSNeil Armstrong 102376bf52dSNeil Armstrong "#sound-dai-cells": 103376bf52dSNeil Armstrong const: 0 104376bf52dSNeil Armstrong 10522bf4047SAlexander Stein sound-name-prefix: true 10622bf4047SAlexander Stein 107376bf52dSNeil Armstrongrequired: 108376bf52dSNeil Armstrong - compatible 109376bf52dSNeil Armstrong - reg 110376bf52dSNeil Armstrong - interrupts 111376bf52dSNeil Armstrong - clocks 112376bf52dSNeil Armstrong - clock-names 113376bf52dSNeil Armstrong - resets 114376bf52dSNeil Armstrong - reset-names 115376bf52dSNeil Armstrong - port@0 116376bf52dSNeil Armstrong - port@1 117376bf52dSNeil Armstrong - "#address-cells" 118376bf52dSNeil Armstrong - "#size-cells" 119376bf52dSNeil Armstrong 120376bf52dSNeil ArmstrongadditionalProperties: false 121376bf52dSNeil Armstrong 122376bf52dSNeil Armstrongexamples: 123376bf52dSNeil Armstrong - | 124376bf52dSNeil Armstrong hdmi_tx: hdmi-tx@c883a000 { 125376bf52dSNeil Armstrong compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 126376bf52dSNeil Armstrong reg = <0xc883a000 0x1c>; 127376bf52dSNeil Armstrong interrupts = <57>; 128376bf52dSNeil Armstrong resets = <&reset_apb>, <&reset_hdmitx>, <&reset_hdmitx_phy>; 129376bf52dSNeil Armstrong reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 130376bf52dSNeil Armstrong clocks = <&clk_isfr>, <&clk_iahb>, <&clk_venci>; 131376bf52dSNeil Armstrong clock-names = "isfr", "iahb", "venci"; 132376bf52dSNeil Armstrong #address-cells = <1>; 133376bf52dSNeil Armstrong #size-cells = <0>; 134376bf52dSNeil Armstrong 135376bf52dSNeil Armstrong /* VPU VENC Input */ 136376bf52dSNeil Armstrong hdmi_tx_venc_port: port@0 { 137376bf52dSNeil Armstrong reg = <0>; 138376bf52dSNeil Armstrong 139376bf52dSNeil Armstrong hdmi_tx_in: endpoint { 140376bf52dSNeil Armstrong remote-endpoint = <&hdmi_tx_out>; 141376bf52dSNeil Armstrong }; 142376bf52dSNeil Armstrong }; 143376bf52dSNeil Armstrong 144376bf52dSNeil Armstrong /* TMDS Output */ 145376bf52dSNeil Armstrong hdmi_tx_tmds_port: port@1 { 146376bf52dSNeil Armstrong reg = <1>; 147376bf52dSNeil Armstrong 148376bf52dSNeil Armstrong hdmi_tx_tmds_out: endpoint { 149376bf52dSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 150376bf52dSNeil Armstrong }; 151376bf52dSNeil Armstrong }; 152376bf52dSNeil Armstrong }; 153