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--- 54334aec0SRob Herring$id: http://devicetree.org/schemas/display/amlogic,meson-dw-hdmi.yaml# 64334aec0SRob 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 74*c19f15b1SJerome Brunet power-domains: 75*c19f15b1SJerome Brunet maxItems: 1 76*c19f15b1SJerome Brunet description: phandle to the associated power domain 77*c19f15b1SJerome Brunet 78376bf52dSNeil Armstrong resets: 79376bf52dSNeil Armstrong minItems: 3 80376bf52dSNeil Armstrong 81376bf52dSNeil Armstrong reset-names: 82376bf52dSNeil Armstrong items: 83376bf52dSNeil Armstrong - const: hdmitx_apb 84376bf52dSNeil Armstrong - const: hdmitx 85376bf52dSNeil Armstrong - const: hdmitx_phy 86376bf52dSNeil Armstrong 87376bf52dSNeil Armstrong hdmi-supply: 88376bf52dSNeil Armstrong description: phandle to an external 5V regulator to power the HDMI logic 89376bf52dSNeil Armstrong 90376bf52dSNeil Armstrong port@0: 91b6755423SRob Herring $ref: /schemas/graph.yaml#/properties/port 92376bf52dSNeil Armstrong description: 93376bf52dSNeil Armstrong A port node pointing to the VENC Input port node. 94376bf52dSNeil Armstrong 95376bf52dSNeil Armstrong port@1: 96b6755423SRob Herring $ref: /schemas/graph.yaml#/properties/port 97376bf52dSNeil Armstrong description: 98376bf52dSNeil Armstrong A port node pointing to the TMDS Output port node. 99376bf52dSNeil Armstrong 100376bf52dSNeil Armstrong "#address-cells": 101376bf52dSNeil Armstrong const: 1 102376bf52dSNeil Armstrong 103376bf52dSNeil Armstrong "#size-cells": 104376bf52dSNeil Armstrong const: 0 105376bf52dSNeil Armstrong 106376bf52dSNeil Armstrong "#sound-dai-cells": 107376bf52dSNeil Armstrong const: 0 108376bf52dSNeil Armstrong 10922bf4047SAlexander Stein sound-name-prefix: true 11022bf4047SAlexander Stein 111376bf52dSNeil Armstrongrequired: 112376bf52dSNeil Armstrong - compatible 113376bf52dSNeil Armstrong - reg 114376bf52dSNeil Armstrong - interrupts 115376bf52dSNeil Armstrong - clocks 116376bf52dSNeil Armstrong - clock-names 117376bf52dSNeil Armstrong - resets 118376bf52dSNeil Armstrong - reset-names 119376bf52dSNeil Armstrong - port@0 120376bf52dSNeil Armstrong - port@1 121376bf52dSNeil Armstrong - "#address-cells" 122376bf52dSNeil Armstrong - "#size-cells" 123376bf52dSNeil Armstrong 124376bf52dSNeil ArmstrongadditionalProperties: false 125376bf52dSNeil Armstrong 126376bf52dSNeil Armstrongexamples: 127376bf52dSNeil Armstrong - | 128376bf52dSNeil Armstrong hdmi_tx: hdmi-tx@c883a000 { 129376bf52dSNeil Armstrong compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 130376bf52dSNeil Armstrong reg = <0xc883a000 0x1c>; 131376bf52dSNeil Armstrong interrupts = <57>; 132376bf52dSNeil Armstrong resets = <&reset_apb>, <&reset_hdmitx>, <&reset_hdmitx_phy>; 133376bf52dSNeil Armstrong reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 134376bf52dSNeil Armstrong clocks = <&clk_isfr>, <&clk_iahb>, <&clk_venci>; 135376bf52dSNeil Armstrong clock-names = "isfr", "iahb", "venci"; 136*c19f15b1SJerome Brunet power-domains = <&pd_vpu>; 137376bf52dSNeil Armstrong #address-cells = <1>; 138376bf52dSNeil Armstrong #size-cells = <0>; 139376bf52dSNeil Armstrong 140376bf52dSNeil Armstrong /* VPU VENC Input */ 141376bf52dSNeil Armstrong hdmi_tx_venc_port: port@0 { 142376bf52dSNeil Armstrong reg = <0>; 143376bf52dSNeil Armstrong 144376bf52dSNeil Armstrong hdmi_tx_in: endpoint { 145376bf52dSNeil Armstrong remote-endpoint = <&hdmi_tx_out>; 146376bf52dSNeil Armstrong }; 147376bf52dSNeil Armstrong }; 148376bf52dSNeil Armstrong 149376bf52dSNeil Armstrong /* TMDS Output */ 150376bf52dSNeil Armstrong hdmi_tx_tmds_port: port@1 { 151376bf52dSNeil Armstrong reg = <1>; 152376bf52dSNeil Armstrong 153376bf52dSNeil Armstrong hdmi_tx_tmds_out: endpoint { 154376bf52dSNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 155376bf52dSNeil Armstrong }; 156376bf52dSNeil Armstrong }; 157376bf52dSNeil Armstrong }; 158