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