1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 2*c66ec88fSEmmanuel Vadot%YAML 1.2 3*c66ec88fSEmmanuel Vadot--- 4*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/allwinner,sun4i-a10-display-backend.yaml# 5*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel Vadottitle: Allwinner A10 Display Engine Backend Device Tree Bindings 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadotmaintainers: 10*c66ec88fSEmmanuel Vadot - Chen-Yu Tsai <wens@csie.org> 11*c66ec88fSEmmanuel Vadot - Maxime Ripard <mripard@kernel.org> 12*c66ec88fSEmmanuel Vadot 13*c66ec88fSEmmanuel Vadotdescription: | 14*c66ec88fSEmmanuel Vadot The display engine backend exposes layers and sprites to the system. 15*c66ec88fSEmmanuel Vadot 16*c66ec88fSEmmanuel Vadotproperties: 17*c66ec88fSEmmanuel Vadot compatible: 18*c66ec88fSEmmanuel Vadot enum: 19*c66ec88fSEmmanuel Vadot - allwinner,sun4i-a10-display-backend 20*c66ec88fSEmmanuel Vadot - allwinner,sun5i-a13-display-backend 21*c66ec88fSEmmanuel Vadot - allwinner,sun6i-a31-display-backend 22*c66ec88fSEmmanuel Vadot - allwinner,sun7i-a20-display-backend 23*c66ec88fSEmmanuel Vadot - allwinner,sun8i-a23-display-backend 24*c66ec88fSEmmanuel Vadot - allwinner,sun8i-a33-display-backend 25*c66ec88fSEmmanuel Vadot - allwinner,sun9i-a80-display-backend 26*c66ec88fSEmmanuel Vadot 27*c66ec88fSEmmanuel Vadot reg: 28*c66ec88fSEmmanuel Vadot minItems: 1 29*c66ec88fSEmmanuel Vadot maxItems: 2 30*c66ec88fSEmmanuel Vadot items: 31*c66ec88fSEmmanuel Vadot - description: Display Backend registers 32*c66ec88fSEmmanuel Vadot - description: SAT registers 33*c66ec88fSEmmanuel Vadot 34*c66ec88fSEmmanuel Vadot reg-names: 35*c66ec88fSEmmanuel Vadot minItems: 1 36*c66ec88fSEmmanuel Vadot maxItems: 2 37*c66ec88fSEmmanuel Vadot items: 38*c66ec88fSEmmanuel Vadot - const: be 39*c66ec88fSEmmanuel Vadot - const: sat 40*c66ec88fSEmmanuel Vadot 41*c66ec88fSEmmanuel Vadot interrupts: 42*c66ec88fSEmmanuel Vadot maxItems: 1 43*c66ec88fSEmmanuel Vadot 44*c66ec88fSEmmanuel Vadot clocks: 45*c66ec88fSEmmanuel Vadot minItems: 3 46*c66ec88fSEmmanuel Vadot maxItems: 4 47*c66ec88fSEmmanuel Vadot items: 48*c66ec88fSEmmanuel Vadot - description: The backend interface clock 49*c66ec88fSEmmanuel Vadot - description: The backend module clock 50*c66ec88fSEmmanuel Vadot - description: The backend DRAM clock 51*c66ec88fSEmmanuel Vadot - description: The SAT clock 52*c66ec88fSEmmanuel Vadot 53*c66ec88fSEmmanuel Vadot clock-names: 54*c66ec88fSEmmanuel Vadot minItems: 3 55*c66ec88fSEmmanuel Vadot maxItems: 4 56*c66ec88fSEmmanuel Vadot items: 57*c66ec88fSEmmanuel Vadot - const: ahb 58*c66ec88fSEmmanuel Vadot - const: mod 59*c66ec88fSEmmanuel Vadot - const: ram 60*c66ec88fSEmmanuel Vadot - const: sat 61*c66ec88fSEmmanuel Vadot 62*c66ec88fSEmmanuel Vadot resets: 63*c66ec88fSEmmanuel Vadot minItems: 1 64*c66ec88fSEmmanuel Vadot maxItems: 2 65*c66ec88fSEmmanuel Vadot items: 66*c66ec88fSEmmanuel Vadot - description: The Backend reset line 67*c66ec88fSEmmanuel Vadot - description: The SAT reset line 68*c66ec88fSEmmanuel Vadot 69*c66ec88fSEmmanuel Vadot reset-names: 70*c66ec88fSEmmanuel Vadot minItems: 1 71*c66ec88fSEmmanuel Vadot maxItems: 2 72*c66ec88fSEmmanuel Vadot items: 73*c66ec88fSEmmanuel Vadot - const: be 74*c66ec88fSEmmanuel Vadot - const: sat 75*c66ec88fSEmmanuel Vadot 76*c66ec88fSEmmanuel Vadot # FIXME: This should be made required eventually once every SoC will 77*c66ec88fSEmmanuel Vadot # have the MBUS declared. 78*c66ec88fSEmmanuel Vadot interconnects: 79*c66ec88fSEmmanuel Vadot maxItems: 1 80*c66ec88fSEmmanuel Vadot 81*c66ec88fSEmmanuel Vadot # FIXME: This should be made required eventually once every SoC will 82*c66ec88fSEmmanuel Vadot # have the MBUS declared. 83*c66ec88fSEmmanuel Vadot interconnect-names: 84*c66ec88fSEmmanuel Vadot const: dma-mem 85*c66ec88fSEmmanuel Vadot 86*c66ec88fSEmmanuel Vadot ports: 87*c66ec88fSEmmanuel Vadot type: object 88*c66ec88fSEmmanuel Vadot description: | 89*c66ec88fSEmmanuel Vadot A ports node with endpoint definitions as defined in 90*c66ec88fSEmmanuel Vadot Documentation/devicetree/bindings/media/video-interfaces.txt. 91*c66ec88fSEmmanuel Vadot 92*c66ec88fSEmmanuel Vadot properties: 93*c66ec88fSEmmanuel Vadot "#address-cells": 94*c66ec88fSEmmanuel Vadot const: 1 95*c66ec88fSEmmanuel Vadot 96*c66ec88fSEmmanuel Vadot "#size-cells": 97*c66ec88fSEmmanuel Vadot const: 0 98*c66ec88fSEmmanuel Vadot 99*c66ec88fSEmmanuel Vadot port@0: 100*c66ec88fSEmmanuel Vadot type: object 101*c66ec88fSEmmanuel Vadot description: | 102*c66ec88fSEmmanuel Vadot Input endpoints of the controller. 103*c66ec88fSEmmanuel Vadot 104*c66ec88fSEmmanuel Vadot port@1: 105*c66ec88fSEmmanuel Vadot type: object 106*c66ec88fSEmmanuel Vadot description: | 107*c66ec88fSEmmanuel Vadot Output endpoints of the controller. 108*c66ec88fSEmmanuel Vadot 109*c66ec88fSEmmanuel Vadot required: 110*c66ec88fSEmmanuel Vadot - "#address-cells" 111*c66ec88fSEmmanuel Vadot - "#size-cells" 112*c66ec88fSEmmanuel Vadot - port@0 113*c66ec88fSEmmanuel Vadot - port@1 114*c66ec88fSEmmanuel Vadot 115*c66ec88fSEmmanuel Vadot additionalProperties: false 116*c66ec88fSEmmanuel Vadot 117*c66ec88fSEmmanuel Vadotrequired: 118*c66ec88fSEmmanuel Vadot - compatible 119*c66ec88fSEmmanuel Vadot - reg 120*c66ec88fSEmmanuel Vadot - interrupts 121*c66ec88fSEmmanuel Vadot - clocks 122*c66ec88fSEmmanuel Vadot - clock-names 123*c66ec88fSEmmanuel Vadot - resets 124*c66ec88fSEmmanuel Vadot - ports 125*c66ec88fSEmmanuel Vadot 126*c66ec88fSEmmanuel VadotadditionalProperties: false 127*c66ec88fSEmmanuel Vadot 128*c66ec88fSEmmanuel Vadotif: 129*c66ec88fSEmmanuel Vadot properties: 130*c66ec88fSEmmanuel Vadot compatible: 131*c66ec88fSEmmanuel Vadot contains: 132*c66ec88fSEmmanuel Vadot const: allwinner,sun8i-a33-display-backend 133*c66ec88fSEmmanuel Vadot 134*c66ec88fSEmmanuel Vadotthen: 135*c66ec88fSEmmanuel Vadot properties: 136*c66ec88fSEmmanuel Vadot reg: 137*c66ec88fSEmmanuel Vadot minItems: 2 138*c66ec88fSEmmanuel Vadot 139*c66ec88fSEmmanuel Vadot reg-names: 140*c66ec88fSEmmanuel Vadot minItems: 2 141*c66ec88fSEmmanuel Vadot 142*c66ec88fSEmmanuel Vadot clocks: 143*c66ec88fSEmmanuel Vadot minItems: 4 144*c66ec88fSEmmanuel Vadot 145*c66ec88fSEmmanuel Vadot clock-names: 146*c66ec88fSEmmanuel Vadot minItems: 4 147*c66ec88fSEmmanuel Vadot 148*c66ec88fSEmmanuel Vadot resets: 149*c66ec88fSEmmanuel Vadot minItems: 2 150*c66ec88fSEmmanuel Vadot 151*c66ec88fSEmmanuel Vadot reset-names: 152*c66ec88fSEmmanuel Vadot minItems: 2 153*c66ec88fSEmmanuel Vadot 154*c66ec88fSEmmanuel Vadot required: 155*c66ec88fSEmmanuel Vadot - reg-names 156*c66ec88fSEmmanuel Vadot - reset-names 157*c66ec88fSEmmanuel Vadot 158*c66ec88fSEmmanuel Vadotelse: 159*c66ec88fSEmmanuel Vadot properties: 160*c66ec88fSEmmanuel Vadot reg: 161*c66ec88fSEmmanuel Vadot maxItems: 1 162*c66ec88fSEmmanuel Vadot 163*c66ec88fSEmmanuel Vadot reg-names: 164*c66ec88fSEmmanuel Vadot maxItems: 1 165*c66ec88fSEmmanuel Vadot 166*c66ec88fSEmmanuel Vadot clocks: 167*c66ec88fSEmmanuel Vadot maxItems: 3 168*c66ec88fSEmmanuel Vadot 169*c66ec88fSEmmanuel Vadot clock-names: 170*c66ec88fSEmmanuel Vadot maxItems: 3 171*c66ec88fSEmmanuel Vadot 172*c66ec88fSEmmanuel Vadot resets: 173*c66ec88fSEmmanuel Vadot maxItems: 1 174*c66ec88fSEmmanuel Vadot 175*c66ec88fSEmmanuel Vadot reset-names: 176*c66ec88fSEmmanuel Vadot maxItems: 1 177*c66ec88fSEmmanuel Vadot 178*c66ec88fSEmmanuel Vadotexamples: 179*c66ec88fSEmmanuel Vadot - | 180*c66ec88fSEmmanuel Vadot /* 181*c66ec88fSEmmanuel Vadot * This comes from the clock/sun4i-a10-ccu.h and 182*c66ec88fSEmmanuel Vadot * reset/sun4i-a10-ccu.h headers, but we can't include them since 183*c66ec88fSEmmanuel Vadot * it would trigger a bunch of warnings for redefinitions of 184*c66ec88fSEmmanuel Vadot * symbols with the other example. 185*c66ec88fSEmmanuel Vadot */ 186*c66ec88fSEmmanuel Vadot 187*c66ec88fSEmmanuel Vadot #define CLK_AHB_DE_BE0 42 188*c66ec88fSEmmanuel Vadot #define CLK_DRAM_DE_BE0 140 189*c66ec88fSEmmanuel Vadot #define CLK_DE_BE0 144 190*c66ec88fSEmmanuel Vadot #define RST_DE_BE0 5 191*c66ec88fSEmmanuel Vadot 192*c66ec88fSEmmanuel Vadot display-backend@1e60000 { 193*c66ec88fSEmmanuel Vadot compatible = "allwinner,sun4i-a10-display-backend"; 194*c66ec88fSEmmanuel Vadot reg = <0x01e60000 0x10000>; 195*c66ec88fSEmmanuel Vadot interrupts = <47>; 196*c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_AHB_DE_BE0>, <&ccu CLK_DE_BE0>, 197*c66ec88fSEmmanuel Vadot <&ccu CLK_DRAM_DE_BE0>; 198*c66ec88fSEmmanuel Vadot clock-names = "ahb", "mod", 199*c66ec88fSEmmanuel Vadot "ram"; 200*c66ec88fSEmmanuel Vadot resets = <&ccu RST_DE_BE0>; 201*c66ec88fSEmmanuel Vadot 202*c66ec88fSEmmanuel Vadot ports { 203*c66ec88fSEmmanuel Vadot #address-cells = <1>; 204*c66ec88fSEmmanuel Vadot #size-cells = <0>; 205*c66ec88fSEmmanuel Vadot 206*c66ec88fSEmmanuel Vadot port@0 { 207*c66ec88fSEmmanuel Vadot #address-cells = <1>; 208*c66ec88fSEmmanuel Vadot #size-cells = <0>; 209*c66ec88fSEmmanuel Vadot reg = <0>; 210*c66ec88fSEmmanuel Vadot 211*c66ec88fSEmmanuel Vadot endpoint@0 { 212*c66ec88fSEmmanuel Vadot reg = <0>; 213*c66ec88fSEmmanuel Vadot remote-endpoint = <&fe0_out_be0>; 214*c66ec88fSEmmanuel Vadot }; 215*c66ec88fSEmmanuel Vadot 216*c66ec88fSEmmanuel Vadot endpoint@1 { 217*c66ec88fSEmmanuel Vadot reg = <1>; 218*c66ec88fSEmmanuel Vadot remote-endpoint = <&fe1_out_be0>; 219*c66ec88fSEmmanuel Vadot }; 220*c66ec88fSEmmanuel Vadot }; 221*c66ec88fSEmmanuel Vadot 222*c66ec88fSEmmanuel Vadot port@1 { 223*c66ec88fSEmmanuel Vadot #address-cells = <1>; 224*c66ec88fSEmmanuel Vadot #size-cells = <0>; 225*c66ec88fSEmmanuel Vadot reg = <1>; 226*c66ec88fSEmmanuel Vadot 227*c66ec88fSEmmanuel Vadot endpoint@0 { 228*c66ec88fSEmmanuel Vadot reg = <0>; 229*c66ec88fSEmmanuel Vadot remote-endpoint = <&tcon0_in_be0>; 230*c66ec88fSEmmanuel Vadot }; 231*c66ec88fSEmmanuel Vadot 232*c66ec88fSEmmanuel Vadot endpoint@1 { 233*c66ec88fSEmmanuel Vadot reg = <1>; 234*c66ec88fSEmmanuel Vadot remote-endpoint = <&tcon1_in_be0>; 235*c66ec88fSEmmanuel Vadot }; 236*c66ec88fSEmmanuel Vadot }; 237*c66ec88fSEmmanuel Vadot }; 238*c66ec88fSEmmanuel Vadot }; 239*c66ec88fSEmmanuel Vadot 240*c66ec88fSEmmanuel Vadot - | 241*c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 242*c66ec88fSEmmanuel Vadot 243*c66ec88fSEmmanuel Vadot /* 244*c66ec88fSEmmanuel Vadot * This comes from the clock/sun8i-a23-a33-ccu.h and 245*c66ec88fSEmmanuel Vadot * reset/sun8i-a23-a33-ccu.h headers, but we can't include them 246*c66ec88fSEmmanuel Vadot * since it would trigger a bunch of warnings for redefinitions of 247*c66ec88fSEmmanuel Vadot * symbols with the other example. 248*c66ec88fSEmmanuel Vadot */ 249*c66ec88fSEmmanuel Vadot 250*c66ec88fSEmmanuel Vadot #define CLK_BUS_DE_BE 40 251*c66ec88fSEmmanuel Vadot #define CLK_BUS_SAT 46 252*c66ec88fSEmmanuel Vadot #define CLK_DRAM_DE_BE 84 253*c66ec88fSEmmanuel Vadot #define CLK_DE_BE 85 254*c66ec88fSEmmanuel Vadot #define RST_BUS_DE_BE 21 255*c66ec88fSEmmanuel Vadot #define RST_BUS_SAT 27 256*c66ec88fSEmmanuel Vadot 257*c66ec88fSEmmanuel Vadot display-backend@1e60000 { 258*c66ec88fSEmmanuel Vadot compatible = "allwinner,sun8i-a33-display-backend"; 259*c66ec88fSEmmanuel Vadot reg = <0x01e60000 0x10000>, <0x01e80000 0x1000>; 260*c66ec88fSEmmanuel Vadot reg-names = "be", "sat"; 261*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 262*c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>, 263*c66ec88fSEmmanuel Vadot <&ccu CLK_DRAM_DE_BE>, <&ccu CLK_BUS_SAT>; 264*c66ec88fSEmmanuel Vadot clock-names = "ahb", "mod", 265*c66ec88fSEmmanuel Vadot "ram", "sat"; 266*c66ec88fSEmmanuel Vadot resets = <&ccu RST_BUS_DE_BE>, <&ccu RST_BUS_SAT>; 267*c66ec88fSEmmanuel Vadot reset-names = "be", "sat"; 268*c66ec88fSEmmanuel Vadot 269*c66ec88fSEmmanuel Vadot ports { 270*c66ec88fSEmmanuel Vadot #address-cells = <1>; 271*c66ec88fSEmmanuel Vadot #size-cells = <0>; 272*c66ec88fSEmmanuel Vadot 273*c66ec88fSEmmanuel Vadot port@0 { 274*c66ec88fSEmmanuel Vadot reg = <0>; 275*c66ec88fSEmmanuel Vadot 276*c66ec88fSEmmanuel Vadot endpoint { 277*c66ec88fSEmmanuel Vadot remote-endpoint = <&fe0_out_be0>; 278*c66ec88fSEmmanuel Vadot }; 279*c66ec88fSEmmanuel Vadot }; 280*c66ec88fSEmmanuel Vadot 281*c66ec88fSEmmanuel Vadot port@1 { 282*c66ec88fSEmmanuel Vadot reg = <1>; 283*c66ec88fSEmmanuel Vadot 284*c66ec88fSEmmanuel Vadot endpoint { 285*c66ec88fSEmmanuel Vadot remote-endpoint = <&drc0_in_be0>; 286*c66ec88fSEmmanuel Vadot }; 287*c66ec88fSEmmanuel Vadot }; 288*c66ec88fSEmmanuel Vadot }; 289*c66ec88fSEmmanuel Vadot }; 290*c66ec88fSEmmanuel Vadot 291*c66ec88fSEmmanuel Vadot... 292