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