1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/allwinner,sun8i-a83t-dw-hdmi.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7*7ef62cebSEmmanuel Vadottitle: Allwinner A83t DWC HDMI TX Encoder 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotdescription: | 10c66ec88fSEmmanuel Vadot The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller 11c66ec88fSEmmanuel Vadot IP with Allwinner\'s own PHY IP. It supports audio and video outputs 12c66ec88fSEmmanuel Vadot and CEC. 13c66ec88fSEmmanuel Vadot 14c66ec88fSEmmanuel Vadot These DT bindings follow the Synopsys DWC HDMI TX bindings defined 152eb4d8dcSEmmanuel Vadot in bridge/synopsys,dw-hdmi.yaml with the following device-specific 162eb4d8dcSEmmanuel Vadot properties. 17c66ec88fSEmmanuel Vadot 18c66ec88fSEmmanuel Vadotmaintainers: 19c66ec88fSEmmanuel Vadot - Chen-Yu Tsai <wens@csie.org> 20c66ec88fSEmmanuel Vadot - Maxime Ripard <mripard@kernel.org> 21c66ec88fSEmmanuel Vadot 22c66ec88fSEmmanuel Vadotproperties: 23c66ec88fSEmmanuel Vadot "#phy-cells": 24c66ec88fSEmmanuel Vadot const: 0 25c66ec88fSEmmanuel Vadot 26c66ec88fSEmmanuel Vadot compatible: 27c66ec88fSEmmanuel Vadot oneOf: 28c66ec88fSEmmanuel Vadot - const: allwinner,sun8i-a83t-dw-hdmi 29c66ec88fSEmmanuel Vadot - const: allwinner,sun50i-h6-dw-hdmi 30c66ec88fSEmmanuel Vadot 31c66ec88fSEmmanuel Vadot - items: 32c66ec88fSEmmanuel Vadot - enum: 33c66ec88fSEmmanuel Vadot - allwinner,sun8i-h3-dw-hdmi 34c66ec88fSEmmanuel Vadot - allwinner,sun8i-r40-dw-hdmi 35c66ec88fSEmmanuel Vadot - allwinner,sun50i-a64-dw-hdmi 36c66ec88fSEmmanuel Vadot - const: allwinner,sun8i-a83t-dw-hdmi 37c66ec88fSEmmanuel Vadot 38c66ec88fSEmmanuel Vadot reg: 39c66ec88fSEmmanuel Vadot maxItems: 1 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot reg-io-width: 42c66ec88fSEmmanuel Vadot const: 1 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot interrupts: 45c66ec88fSEmmanuel Vadot maxItems: 1 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot clocks: 48c66ec88fSEmmanuel Vadot minItems: 3 49c66ec88fSEmmanuel Vadot items: 50c66ec88fSEmmanuel Vadot - description: Bus Clock 51c66ec88fSEmmanuel Vadot - description: Register Clock 52c66ec88fSEmmanuel Vadot - description: TMDS Clock 53c66ec88fSEmmanuel Vadot - description: HDMI CEC Clock 54c66ec88fSEmmanuel Vadot - description: HDCP Clock 55c66ec88fSEmmanuel Vadot - description: HDCP Bus Clock 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot clock-names: 58c66ec88fSEmmanuel Vadot minItems: 3 59c66ec88fSEmmanuel Vadot items: 60c66ec88fSEmmanuel Vadot - const: iahb 61c66ec88fSEmmanuel Vadot - const: isfr 62c66ec88fSEmmanuel Vadot - const: tmds 63c66ec88fSEmmanuel Vadot - const: cec 64c66ec88fSEmmanuel Vadot - const: hdcp 65c66ec88fSEmmanuel Vadot - const: hdcp-bus 66c66ec88fSEmmanuel Vadot 67c66ec88fSEmmanuel Vadot resets: 68c66ec88fSEmmanuel Vadot minItems: 1 69c66ec88fSEmmanuel Vadot items: 70c66ec88fSEmmanuel Vadot - description: HDMI Controller Reset 71c66ec88fSEmmanuel Vadot - description: HDCP Reset 72c66ec88fSEmmanuel Vadot 73c66ec88fSEmmanuel Vadot reset-names: 74c66ec88fSEmmanuel Vadot minItems: 1 75c66ec88fSEmmanuel Vadot items: 76c66ec88fSEmmanuel Vadot - const: ctrl 77c66ec88fSEmmanuel Vadot - const: hdcp 78c66ec88fSEmmanuel Vadot 79c66ec88fSEmmanuel Vadot phys: 80c66ec88fSEmmanuel Vadot maxItems: 1 81c66ec88fSEmmanuel Vadot description: 82c66ec88fSEmmanuel Vadot Phandle to the DWC HDMI PHY. 83c66ec88fSEmmanuel Vadot 84c66ec88fSEmmanuel Vadot phy-names: 85c66ec88fSEmmanuel Vadot const: phy 86c66ec88fSEmmanuel Vadot 87c66ec88fSEmmanuel Vadot hvcc-supply: 88c66ec88fSEmmanuel Vadot description: 89c66ec88fSEmmanuel Vadot The VCC power supply of the controller 90c66ec88fSEmmanuel Vadot 91c66ec88fSEmmanuel Vadot ports: 925def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot properties: 95c66ec88fSEmmanuel Vadot port@0: 965def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 97c66ec88fSEmmanuel Vadot description: | 98c66ec88fSEmmanuel Vadot Input endpoints of the controller. Usually the associated 99c66ec88fSEmmanuel Vadot TCON. 100c66ec88fSEmmanuel Vadot 101c66ec88fSEmmanuel Vadot port@1: 1025def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 103c66ec88fSEmmanuel Vadot description: | 104c66ec88fSEmmanuel Vadot Output endpoints of the controller. Usually an HDMI 105c66ec88fSEmmanuel Vadot connector. 106c66ec88fSEmmanuel Vadot 107c66ec88fSEmmanuel Vadot required: 108c66ec88fSEmmanuel Vadot - port@0 109c66ec88fSEmmanuel Vadot - port@1 110c66ec88fSEmmanuel Vadot 111c66ec88fSEmmanuel Vadotrequired: 112c66ec88fSEmmanuel Vadot - compatible 113c66ec88fSEmmanuel Vadot - reg 114c66ec88fSEmmanuel Vadot - reg-io-width 115c66ec88fSEmmanuel Vadot - interrupts 116c66ec88fSEmmanuel Vadot - clocks 117c66ec88fSEmmanuel Vadot - clock-names 118c66ec88fSEmmanuel Vadot - resets 119c66ec88fSEmmanuel Vadot - reset-names 120c66ec88fSEmmanuel Vadot - phys 121c66ec88fSEmmanuel Vadot - phy-names 122c66ec88fSEmmanuel Vadot - ports 123c66ec88fSEmmanuel Vadot 124c66ec88fSEmmanuel Vadotif: 125c66ec88fSEmmanuel Vadot properties: 126c66ec88fSEmmanuel Vadot compatible: 127c66ec88fSEmmanuel Vadot contains: 128c66ec88fSEmmanuel Vadot enum: 129c66ec88fSEmmanuel Vadot - allwinner,sun50i-h6-dw-hdmi 130c66ec88fSEmmanuel Vadot 131c66ec88fSEmmanuel Vadotthen: 132c66ec88fSEmmanuel Vadot properties: 133c66ec88fSEmmanuel Vadot clocks: 134c66ec88fSEmmanuel Vadot minItems: 6 135c66ec88fSEmmanuel Vadot 136c66ec88fSEmmanuel Vadot clock-names: 137c66ec88fSEmmanuel Vadot minItems: 6 138c66ec88fSEmmanuel Vadot 139c66ec88fSEmmanuel Vadot resets: 140c66ec88fSEmmanuel Vadot minItems: 2 141c66ec88fSEmmanuel Vadot 142c66ec88fSEmmanuel Vadot reset-names: 143c66ec88fSEmmanuel Vadot minItems: 2 144c66ec88fSEmmanuel Vadot 145c66ec88fSEmmanuel Vadot 146c66ec88fSEmmanuel VadotadditionalProperties: false 147c66ec88fSEmmanuel Vadot 148c66ec88fSEmmanuel Vadotexamples: 149c66ec88fSEmmanuel Vadot - | 150c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 151c66ec88fSEmmanuel Vadot 152c66ec88fSEmmanuel Vadot /* 153c66ec88fSEmmanuel Vadot * This comes from the clock/sun8i-a83t-ccu.h and 154c66ec88fSEmmanuel Vadot * reset/sun8i-a83t-ccu.h headers, but we can't include them since 155c66ec88fSEmmanuel Vadot * it would trigger a bunch of warnings for redefinitions of 156c66ec88fSEmmanuel Vadot * symbols with the other example. 157c66ec88fSEmmanuel Vadot */ 158c66ec88fSEmmanuel Vadot #define CLK_BUS_HDMI 39 159c66ec88fSEmmanuel Vadot #define CLK_HDMI 93 160c66ec88fSEmmanuel Vadot #define CLK_HDMI_SLOW 94 161c66ec88fSEmmanuel Vadot #define RST_BUS_HDMI1 26 162c66ec88fSEmmanuel Vadot 163c66ec88fSEmmanuel Vadot hdmi@1ee0000 { 164c66ec88fSEmmanuel Vadot compatible = "allwinner,sun8i-a83t-dw-hdmi"; 165c66ec88fSEmmanuel Vadot reg = <0x01ee0000 0x10000>; 166c66ec88fSEmmanuel Vadot reg-io-width = <1>; 167c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 168c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>, 169c66ec88fSEmmanuel Vadot <&ccu CLK_HDMI>; 170c66ec88fSEmmanuel Vadot clock-names = "iahb", "isfr", "tmds"; 171c66ec88fSEmmanuel Vadot resets = <&ccu RST_BUS_HDMI1>; 172c66ec88fSEmmanuel Vadot reset-names = "ctrl"; 173c66ec88fSEmmanuel Vadot phys = <&hdmi_phy>; 174c66ec88fSEmmanuel Vadot phy-names = "phy"; 175c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 176c66ec88fSEmmanuel Vadot pinctrl-0 = <&hdmi_pins>; 177c66ec88fSEmmanuel Vadot 178c66ec88fSEmmanuel Vadot ports { 179c66ec88fSEmmanuel Vadot #address-cells = <1>; 180c66ec88fSEmmanuel Vadot #size-cells = <0>; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot port@0 { 183c66ec88fSEmmanuel Vadot reg = <0>; 184c66ec88fSEmmanuel Vadot 185c66ec88fSEmmanuel Vadot endpoint { 186c66ec88fSEmmanuel Vadot remote-endpoint = <&tcon1_out_hdmi>; 187c66ec88fSEmmanuel Vadot }; 188c66ec88fSEmmanuel Vadot }; 189c66ec88fSEmmanuel Vadot 190c66ec88fSEmmanuel Vadot port@1 { 191c66ec88fSEmmanuel Vadot reg = <1>; 192c66ec88fSEmmanuel Vadot }; 193c66ec88fSEmmanuel Vadot }; 194c66ec88fSEmmanuel Vadot }; 195c66ec88fSEmmanuel Vadot 196c66ec88fSEmmanuel Vadot /* Cleanup after ourselves */ 197c66ec88fSEmmanuel Vadot #undef CLK_BUS_HDMI 198c66ec88fSEmmanuel Vadot #undef CLK_HDMI 199c66ec88fSEmmanuel Vadot #undef CLK_HDMI_SLOW 200c66ec88fSEmmanuel Vadot 201c66ec88fSEmmanuel Vadot - | 202c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 203c66ec88fSEmmanuel Vadot 204c66ec88fSEmmanuel Vadot /* 205c66ec88fSEmmanuel Vadot * This comes from the clock/sun50i-h6-ccu.h and 206c66ec88fSEmmanuel Vadot * reset/sun50i-h6-ccu.h headers, but we can't include them since 207c66ec88fSEmmanuel Vadot * it would trigger a bunch of warnings for redefinitions of 208c66ec88fSEmmanuel Vadot * symbols with the other example. 209c66ec88fSEmmanuel Vadot */ 210c66ec88fSEmmanuel Vadot #define CLK_BUS_HDMI 126 211c66ec88fSEmmanuel Vadot #define CLK_BUS_HDCP 137 212c66ec88fSEmmanuel Vadot #define CLK_HDMI 123 213c66ec88fSEmmanuel Vadot #define CLK_HDMI_SLOW 124 214c66ec88fSEmmanuel Vadot #define CLK_HDMI_CEC 125 215c66ec88fSEmmanuel Vadot #define CLK_HDCP 136 216c66ec88fSEmmanuel Vadot #define RST_BUS_HDMI_SUB 57 217c66ec88fSEmmanuel Vadot #define RST_BUS_HDCP 62 218c66ec88fSEmmanuel Vadot 219c66ec88fSEmmanuel Vadot hdmi@6000000 { 220c66ec88fSEmmanuel Vadot compatible = "allwinner,sun50i-h6-dw-hdmi"; 221c66ec88fSEmmanuel Vadot reg = <0x06000000 0x10000>; 222c66ec88fSEmmanuel Vadot reg-io-width = <1>; 223c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 224c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>, 225c66ec88fSEmmanuel Vadot <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>, 226c66ec88fSEmmanuel Vadot <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>; 227c66ec88fSEmmanuel Vadot clock-names = "iahb", "isfr", "tmds", "cec", "hdcp", 228c66ec88fSEmmanuel Vadot "hdcp-bus"; 229c66ec88fSEmmanuel Vadot resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>; 230c66ec88fSEmmanuel Vadot reset-names = "ctrl", "hdcp"; 231c66ec88fSEmmanuel Vadot phys = <&hdmi_phy>; 232c66ec88fSEmmanuel Vadot phy-names = "phy"; 233c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 234c66ec88fSEmmanuel Vadot pinctrl-0 = <&hdmi_pins>; 235c66ec88fSEmmanuel Vadot 236c66ec88fSEmmanuel Vadot ports { 237c66ec88fSEmmanuel Vadot #address-cells = <1>; 238c66ec88fSEmmanuel Vadot #size-cells = <0>; 239c66ec88fSEmmanuel Vadot 240c66ec88fSEmmanuel Vadot port@0 { 241c66ec88fSEmmanuel Vadot reg = <0>; 242c66ec88fSEmmanuel Vadot 243c66ec88fSEmmanuel Vadot endpoint { 244c66ec88fSEmmanuel Vadot remote-endpoint = <&tcon_top_hdmi_out_hdmi>; 245c66ec88fSEmmanuel Vadot }; 246c66ec88fSEmmanuel Vadot }; 247c66ec88fSEmmanuel Vadot 248c66ec88fSEmmanuel Vadot port@1 { 249c66ec88fSEmmanuel Vadot reg = <1>; 250c66ec88fSEmmanuel Vadot }; 251c66ec88fSEmmanuel Vadot }; 252c66ec88fSEmmanuel Vadot }; 253c66ec88fSEmmanuel Vadot 254c66ec88fSEmmanuel Vadot... 255