18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/display/allwinner,sun8i-a83t-dw-hdmi.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Allwinner A83t DWC HDMI TX Encoder Device Tree Bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: | 108c2ecf20Sopenharmony_ci The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller 118c2ecf20Sopenharmony_ci IP with Allwinner\'s own PHY IP. It supports audio and video outputs 128c2ecf20Sopenharmony_ci and CEC. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci These DT bindings follow the Synopsys DWC HDMI TX bindings defined 158c2ecf20Sopenharmony_ci in Documentation/devicetree/bindings/display/bridge/dw_hdmi.txt with 168c2ecf20Sopenharmony_ci the following device-specific properties. 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_cimaintainers: 198c2ecf20Sopenharmony_ci - Chen-Yu Tsai <wens@csie.org> 208c2ecf20Sopenharmony_ci - Maxime Ripard <mripard@kernel.org> 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciproperties: 238c2ecf20Sopenharmony_ci "#phy-cells": 248c2ecf20Sopenharmony_ci const: 0 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci compatible: 278c2ecf20Sopenharmony_ci oneOf: 288c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a83t-dw-hdmi 298c2ecf20Sopenharmony_ci - const: allwinner,sun50i-h6-dw-hdmi 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci - items: 328c2ecf20Sopenharmony_ci - enum: 338c2ecf20Sopenharmony_ci - allwinner,sun8i-h3-dw-hdmi 348c2ecf20Sopenharmony_ci - allwinner,sun8i-r40-dw-hdmi 358c2ecf20Sopenharmony_ci - allwinner,sun50i-a64-dw-hdmi 368c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a83t-dw-hdmi 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci reg: 398c2ecf20Sopenharmony_ci maxItems: 1 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci reg-io-width: 428c2ecf20Sopenharmony_ci const: 1 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci interrupts: 458c2ecf20Sopenharmony_ci maxItems: 1 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci clocks: 488c2ecf20Sopenharmony_ci minItems: 3 498c2ecf20Sopenharmony_ci maxItems: 6 508c2ecf20Sopenharmony_ci items: 518c2ecf20Sopenharmony_ci - description: Bus Clock 528c2ecf20Sopenharmony_ci - description: Register Clock 538c2ecf20Sopenharmony_ci - description: TMDS Clock 548c2ecf20Sopenharmony_ci - description: HDMI CEC Clock 558c2ecf20Sopenharmony_ci - description: HDCP Clock 568c2ecf20Sopenharmony_ci - description: HDCP Bus Clock 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci clock-names: 598c2ecf20Sopenharmony_ci minItems: 3 608c2ecf20Sopenharmony_ci maxItems: 6 618c2ecf20Sopenharmony_ci items: 628c2ecf20Sopenharmony_ci - const: iahb 638c2ecf20Sopenharmony_ci - const: isfr 648c2ecf20Sopenharmony_ci - const: tmds 658c2ecf20Sopenharmony_ci - const: cec 668c2ecf20Sopenharmony_ci - const: hdcp 678c2ecf20Sopenharmony_ci - const: hdcp-bus 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci resets: 708c2ecf20Sopenharmony_ci minItems: 1 718c2ecf20Sopenharmony_ci maxItems: 2 728c2ecf20Sopenharmony_ci items: 738c2ecf20Sopenharmony_ci - description: HDMI Controller Reset 748c2ecf20Sopenharmony_ci - description: HDCP Reset 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci reset-names: 778c2ecf20Sopenharmony_ci minItems: 1 788c2ecf20Sopenharmony_ci maxItems: 2 798c2ecf20Sopenharmony_ci items: 808c2ecf20Sopenharmony_ci - const: ctrl 818c2ecf20Sopenharmony_ci - const: hdcp 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci phys: 848c2ecf20Sopenharmony_ci maxItems: 1 858c2ecf20Sopenharmony_ci description: 868c2ecf20Sopenharmony_ci Phandle to the DWC HDMI PHY. 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci phy-names: 898c2ecf20Sopenharmony_ci const: phy 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci hvcc-supply: 928c2ecf20Sopenharmony_ci description: 938c2ecf20Sopenharmony_ci The VCC power supply of the controller 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci ports: 968c2ecf20Sopenharmony_ci type: object 978c2ecf20Sopenharmony_ci description: | 988c2ecf20Sopenharmony_ci A ports node with endpoint definitions as defined in 998c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/media/video-interfaces.txt. 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci properties: 1028c2ecf20Sopenharmony_ci "#address-cells": 1038c2ecf20Sopenharmony_ci const: 1 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci "#size-cells": 1068c2ecf20Sopenharmony_ci const: 0 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci port@0: 1098c2ecf20Sopenharmony_ci type: object 1108c2ecf20Sopenharmony_ci description: | 1118c2ecf20Sopenharmony_ci Input endpoints of the controller. Usually the associated 1128c2ecf20Sopenharmony_ci TCON. 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci port@1: 1158c2ecf20Sopenharmony_ci type: object 1168c2ecf20Sopenharmony_ci description: | 1178c2ecf20Sopenharmony_ci Output endpoints of the controller. Usually an HDMI 1188c2ecf20Sopenharmony_ci connector. 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci required: 1218c2ecf20Sopenharmony_ci - "#address-cells" 1228c2ecf20Sopenharmony_ci - "#size-cells" 1238c2ecf20Sopenharmony_ci - port@0 1248c2ecf20Sopenharmony_ci - port@1 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci additionalProperties: false 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_cirequired: 1298c2ecf20Sopenharmony_ci - compatible 1308c2ecf20Sopenharmony_ci - reg 1318c2ecf20Sopenharmony_ci - reg-io-width 1328c2ecf20Sopenharmony_ci - interrupts 1338c2ecf20Sopenharmony_ci - clocks 1348c2ecf20Sopenharmony_ci - clock-names 1358c2ecf20Sopenharmony_ci - resets 1368c2ecf20Sopenharmony_ci - reset-names 1378c2ecf20Sopenharmony_ci - phys 1388c2ecf20Sopenharmony_ci - phy-names 1398c2ecf20Sopenharmony_ci - ports 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ciif: 1428c2ecf20Sopenharmony_ci properties: 1438c2ecf20Sopenharmony_ci compatible: 1448c2ecf20Sopenharmony_ci contains: 1458c2ecf20Sopenharmony_ci enum: 1468c2ecf20Sopenharmony_ci - allwinner,sun50i-h6-dw-hdmi 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_cithen: 1498c2ecf20Sopenharmony_ci properties: 1508c2ecf20Sopenharmony_ci clocks: 1518c2ecf20Sopenharmony_ci minItems: 6 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci clock-names: 1548c2ecf20Sopenharmony_ci minItems: 6 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci resets: 1578c2ecf20Sopenharmony_ci minItems: 2 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci reset-names: 1608c2ecf20Sopenharmony_ci minItems: 2 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ciadditionalProperties: false 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ciexamples: 1668c2ecf20Sopenharmony_ci - | 1678c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci /* 1708c2ecf20Sopenharmony_ci * This comes from the clock/sun8i-a83t-ccu.h and 1718c2ecf20Sopenharmony_ci * reset/sun8i-a83t-ccu.h headers, but we can't include them since 1728c2ecf20Sopenharmony_ci * it would trigger a bunch of warnings for redefinitions of 1738c2ecf20Sopenharmony_ci * symbols with the other example. 1748c2ecf20Sopenharmony_ci */ 1758c2ecf20Sopenharmony_ci #define CLK_BUS_HDMI 39 1768c2ecf20Sopenharmony_ci #define CLK_HDMI 93 1778c2ecf20Sopenharmony_ci #define CLK_HDMI_SLOW 94 1788c2ecf20Sopenharmony_ci #define RST_BUS_HDMI1 26 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci hdmi@1ee0000 { 1818c2ecf20Sopenharmony_ci compatible = "allwinner,sun8i-a83t-dw-hdmi"; 1828c2ecf20Sopenharmony_ci reg = <0x01ee0000 0x10000>; 1838c2ecf20Sopenharmony_ci reg-io-width = <1>; 1848c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1858c2ecf20Sopenharmony_ci clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>, 1868c2ecf20Sopenharmony_ci <&ccu CLK_HDMI>; 1878c2ecf20Sopenharmony_ci clock-names = "iahb", "isfr", "tmds"; 1888c2ecf20Sopenharmony_ci resets = <&ccu RST_BUS_HDMI1>; 1898c2ecf20Sopenharmony_ci reset-names = "ctrl"; 1908c2ecf20Sopenharmony_ci phys = <&hdmi_phy>; 1918c2ecf20Sopenharmony_ci phy-names = "phy"; 1928c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1938c2ecf20Sopenharmony_ci pinctrl-0 = <&hdmi_pins>; 1948c2ecf20Sopenharmony_ci status = "disabled"; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci ports { 1978c2ecf20Sopenharmony_ci #address-cells = <1>; 1988c2ecf20Sopenharmony_ci #size-cells = <0>; 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_ci port@0 { 2018c2ecf20Sopenharmony_ci reg = <0>; 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci endpoint { 2048c2ecf20Sopenharmony_ci remote-endpoint = <&tcon1_out_hdmi>; 2058c2ecf20Sopenharmony_ci }; 2068c2ecf20Sopenharmony_ci }; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci port@1 { 2098c2ecf20Sopenharmony_ci reg = <1>; 2108c2ecf20Sopenharmony_ci }; 2118c2ecf20Sopenharmony_ci }; 2128c2ecf20Sopenharmony_ci }; 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci /* Cleanup after ourselves */ 2158c2ecf20Sopenharmony_ci #undef CLK_BUS_HDMI 2168c2ecf20Sopenharmony_ci #undef CLK_HDMI 2178c2ecf20Sopenharmony_ci #undef CLK_HDMI_SLOW 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ci - | 2208c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci /* 2238c2ecf20Sopenharmony_ci * This comes from the clock/sun50i-h6-ccu.h and 2248c2ecf20Sopenharmony_ci * reset/sun50i-h6-ccu.h headers, but we can't include them since 2258c2ecf20Sopenharmony_ci * it would trigger a bunch of warnings for redefinitions of 2268c2ecf20Sopenharmony_ci * symbols with the other example. 2278c2ecf20Sopenharmony_ci */ 2288c2ecf20Sopenharmony_ci #define CLK_BUS_HDMI 126 2298c2ecf20Sopenharmony_ci #define CLK_BUS_HDCP 137 2308c2ecf20Sopenharmony_ci #define CLK_HDMI 123 2318c2ecf20Sopenharmony_ci #define CLK_HDMI_SLOW 124 2328c2ecf20Sopenharmony_ci #define CLK_HDMI_CEC 125 2338c2ecf20Sopenharmony_ci #define CLK_HDCP 136 2348c2ecf20Sopenharmony_ci #define RST_BUS_HDMI_SUB 57 2358c2ecf20Sopenharmony_ci #define RST_BUS_HDCP 62 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci hdmi@6000000 { 2388c2ecf20Sopenharmony_ci compatible = "allwinner,sun50i-h6-dw-hdmi"; 2398c2ecf20Sopenharmony_ci reg = <0x06000000 0x10000>; 2408c2ecf20Sopenharmony_ci reg-io-width = <1>; 2418c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 2428c2ecf20Sopenharmony_ci clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>, 2438c2ecf20Sopenharmony_ci <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>, 2448c2ecf20Sopenharmony_ci <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>; 2458c2ecf20Sopenharmony_ci clock-names = "iahb", "isfr", "tmds", "cec", "hdcp", 2468c2ecf20Sopenharmony_ci "hdcp-bus"; 2478c2ecf20Sopenharmony_ci resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>; 2488c2ecf20Sopenharmony_ci reset-names = "ctrl", "hdcp"; 2498c2ecf20Sopenharmony_ci phys = <&hdmi_phy>; 2508c2ecf20Sopenharmony_ci phy-names = "phy"; 2518c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2528c2ecf20Sopenharmony_ci pinctrl-0 = <&hdmi_pins>; 2538c2ecf20Sopenharmony_ci status = "disabled"; 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci ports { 2568c2ecf20Sopenharmony_ci #address-cells = <1>; 2578c2ecf20Sopenharmony_ci #size-cells = <0>; 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci port@0 { 2608c2ecf20Sopenharmony_ci reg = <0>; 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ci endpoint { 2638c2ecf20Sopenharmony_ci remote-endpoint = <&tcon_top_hdmi_out_hdmi>; 2648c2ecf20Sopenharmony_ci }; 2658c2ecf20Sopenharmony_ci }; 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci port@1 { 2688c2ecf20Sopenharmony_ci reg = <1>; 2698c2ecf20Sopenharmony_ci }; 2708c2ecf20Sopenharmony_ci }; 2718c2ecf20Sopenharmony_ci }; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci... 274