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