blob: b6928cc668d15062fe2095b0e482adf907aa285b [file] [log] [blame]
Samuel Holland26bc4e72020-10-24 10:21:55 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2016 ARM Ltd.
3// based on the Allwinner H3 dtsi:
4// Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +02005
Andre Przywara8d65e613e2017-05-24 10:34:56 +01006#include <dt-bindings/clock/sun50i-a64-ccu.h>
Andre Przywara5eb4bbe2022-09-11 00:04:41 +01007#include <dt-bindings/clock/sun6i-rtc.h>
Andre Przywara9607c052018-10-29 00:56:47 +00008#include <dt-bindings/clock/sun8i-de2.h>
Andre Przywarae187d582018-07-04 14:16:34 +01009#include <dt-bindings/clock/sun8i-r-ccu.h>
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020010#include <dt-bindings/interrupt-controller/arm-gic.h>
Andre Przywara8d65e613e2017-05-24 10:34:56 +010011#include <dt-bindings/reset/sun50i-a64-ccu.h>
Andre Przywara9607c052018-10-29 00:56:47 +000012#include <dt-bindings/reset/sun8i-de2.h>
13#include <dt-bindings/reset/sun8i-r-ccu.h>
Samuel Holland26bc4e72020-10-24 10:21:55 -050014#include <dt-bindings/thermal/thermal.h>
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020015
16/ {
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020017 interrupt-parent = <&gic>;
18 #address-cells = <1>;
19 #size-cells = <1>;
20
Andre Przywarae187d582018-07-04 14:16:34 +010021 chosen {
22 #address-cells = <1>;
23 #size-cells = <1>;
24 ranges;
25
Andre Przywarae187d582018-07-04 14:16:34 +010026 simplefb_lcd: framebuffer-lcd {
27 compatible = "allwinner,simple-framebuffer",
28 "simple-framebuffer";
29 allwinner,pipeline = "mixer0-lcd0";
30 clocks = <&ccu CLK_TCON0>,
Andre Przywara9607c052018-10-29 00:56:47 +000031 <&display_clocks CLK_MIXER0>;
Andre Przywarae187d582018-07-04 14:16:34 +010032 status = "disabled";
33 };
Andre Przywara9607c052018-10-29 00:56:47 +000034
35 simplefb_hdmi: framebuffer-hdmi {
36 compatible = "allwinner,simple-framebuffer",
37 "simple-framebuffer";
38 allwinner,pipeline = "mixer1-lcd1-hdmi";
39 clocks = <&display_clocks CLK_MIXER1>,
40 <&ccu CLK_TCON1>, <&ccu CLK_HDMI>;
41 status = "disabled";
42 };
Andre Przywarae187d582018-07-04 14:16:34 +010043 };
44
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020045 cpus {
46 #address-cells = <1>;
47 #size-cells = <0>;
48
Andre Przywara8d65e613e2017-05-24 10:34:56 +010049 cpu0: cpu@0 {
Samuel Holland26bc4e72020-10-24 10:21:55 -050050 compatible = "arm,cortex-a53";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020051 device_type = "cpu";
52 reg = <0>;
53 enable-method = "psci";
Andre Przywara9607c052018-10-29 00:56:47 +000054 next-level-cache = <&L2>;
Andre Przywarafb675472021-04-17 22:55:19 +010055 clocks = <&ccu CLK_CPUX>;
Samuel Holland26bc4e72020-10-24 10:21:55 -050056 clock-names = "cpu";
57 #cooling-cells = <2>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020058 };
59
Andre Przywara8d65e613e2017-05-24 10:34:56 +010060 cpu1: cpu@1 {
Samuel Holland26bc4e72020-10-24 10:21:55 -050061 compatible = "arm,cortex-a53";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020062 device_type = "cpu";
63 reg = <1>;
64 enable-method = "psci";
Andre Przywara9607c052018-10-29 00:56:47 +000065 next-level-cache = <&L2>;
Andre Przywarafb675472021-04-17 22:55:19 +010066 clocks = <&ccu CLK_CPUX>;
Samuel Holland26bc4e72020-10-24 10:21:55 -050067 clock-names = "cpu";
68 #cooling-cells = <2>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020069 };
70
Andre Przywara8d65e613e2017-05-24 10:34:56 +010071 cpu2: cpu@2 {
Samuel Holland26bc4e72020-10-24 10:21:55 -050072 compatible = "arm,cortex-a53";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020073 device_type = "cpu";
74 reg = <2>;
75 enable-method = "psci";
Andre Przywara9607c052018-10-29 00:56:47 +000076 next-level-cache = <&L2>;
Andre Przywarafb675472021-04-17 22:55:19 +010077 clocks = <&ccu CLK_CPUX>;
Samuel Holland26bc4e72020-10-24 10:21:55 -050078 clock-names = "cpu";
79 #cooling-cells = <2>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020080 };
81
Andre Przywara8d65e613e2017-05-24 10:34:56 +010082 cpu3: cpu@3 {
Samuel Holland26bc4e72020-10-24 10:21:55 -050083 compatible = "arm,cortex-a53";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020084 device_type = "cpu";
85 reg = <3>;
86 enable-method = "psci";
Andre Przywara9607c052018-10-29 00:56:47 +000087 next-level-cache = <&L2>;
Andre Przywarafb675472021-04-17 22:55:19 +010088 clocks = <&ccu CLK_CPUX>;
Samuel Holland26bc4e72020-10-24 10:21:55 -050089 clock-names = "cpu";
90 #cooling-cells = <2>;
Andre Przywara9607c052018-10-29 00:56:47 +000091 };
92
93 L2: l2-cache {
94 compatible = "cache";
95 cache-level = <2>;
Andre Przywara8780ada2023-10-19 15:51:39 +010096 cache-unified;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +020097 };
98 };
99
Andre Przywara9607c052018-10-29 00:56:47 +0000100 de: display-engine {
101 compatible = "allwinner,sun50i-a64-display-engine";
102 allwinner,pipelines = <&mixer0>,
103 <&mixer1>;
104 status = "disabled";
105 };
106
Samuel Holland43729b72022-04-27 15:31:30 -0500107 gpu_opp_table: opp-table-gpu {
108 compatible = "operating-points-v2";
109
Samuel Holland43729b72022-04-27 15:31:30 -0500110 opp-432000000 {
111 opp-hz = /bits/ 64 <432000000>;
112 };
113 };
114
Andre Przywara3b798212024-04-19 17:59:52 +0100115 osc24M: osc24M-clk {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100116 #clock-cells = <0>;
117 compatible = "fixed-clock";
118 clock-frequency = <24000000>;
119 clock-output-names = "osc24M";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200120 };
121
Andre Przywara3b798212024-04-19 17:59:52 +0100122 osc32k: osc32k-clk {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100123 #clock-cells = <0>;
124 compatible = "fixed-clock";
125 clock-frequency = <32768>;
Samuel Holland26bc4e72020-10-24 10:21:55 -0500126 clock-output-names = "ext-osc32k";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200127 };
128
Samuel Holland26bc4e72020-10-24 10:21:55 -0500129 pmu {
130 compatible = "arm,cortex-a53-pmu";
131 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
132 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
133 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
134 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
135 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100136 };
Andre Przywara36748112016-05-04 22:15:33 +0100137
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100138 psci {
139 compatible = "arm,psci-0.2";
140 method = "smc";
Andre Przywara36748112016-05-04 22:15:33 +0100141 };
142
Samuel Holland26bc4e72020-10-24 10:21:55 -0500143 sound: sound {
Samuel Holland43729b72022-04-27 15:31:30 -0500144 #address-cells = <1>;
145 #size-cells = <0>;
Andre Przywarae187d582018-07-04 14:16:34 +0100146 compatible = "simple-audio-card";
Samuel Holland26bc4e72020-10-24 10:21:55 -0500147 simple-audio-card,name = "sun50i-a64-audio";
Samuel Holland26bc4e72020-10-24 10:21:55 -0500148 simple-audio-card,aux-devs = <&codec_analog>;
149 simple-audio-card,routing =
Andre Przywarafb675472021-04-17 22:55:19 +0100150 "Left DAC", "DACL",
151 "Right DAC", "DACR",
152 "ADCL", "Left ADC",
153 "ADCR", "Right ADC";
Samuel Holland26bc4e72020-10-24 10:21:55 -0500154 status = "disabled";
Andre Przywarae187d582018-07-04 14:16:34 +0100155
Samuel Holland43729b72022-04-27 15:31:30 -0500156 simple-audio-card,dai-link@0 {
157 format = "i2s";
158 frame-master = <&link0_cpu>;
159 bitclock-master = <&link0_cpu>;
160 mclk-fs = <128>;
Andre Przywarae187d582018-07-04 14:16:34 +0100161
Samuel Holland43729b72022-04-27 15:31:30 -0500162 link0_cpu: cpu {
163 sound-dai = <&dai>;
164 };
165
166 link0_codec: codec {
167 sound-dai = <&codec 0>;
168 };
Andre Przywarae187d582018-07-04 14:16:34 +0100169 };
170 };
171
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200172 timer {
173 compatible = "arm,armv8-timer";
Samuel Holland26bc4e72020-10-24 10:21:55 -0500174 allwinner,erratum-unknown1;
Andre Przywarafb675472021-04-17 22:55:19 +0100175 arm,no-tick-in-suspend;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200176 interrupts = <GIC_PPI 13
177 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
178 <GIC_PPI 14
179 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
180 <GIC_PPI 11
181 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
182 <GIC_PPI 10
183 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
184 };
185
Samuel Holland26bc4e72020-10-24 10:21:55 -0500186 thermal-zones {
187 cpu_thermal: cpu0-thermal {
188 /* milliseconds */
189 polling-delay-passive = <0>;
190 polling-delay = <0>;
191 thermal-sensors = <&ths 0>;
192
193 cooling-maps {
194 map0 {
195 trip = <&cpu_alert0>;
196 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
197 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
198 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
199 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
200 };
201 map1 {
202 trip = <&cpu_alert1>;
203 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
204 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
205 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
206 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
207 };
208 };
209
210 trips {
Andre Przywara3b798212024-04-19 17:59:52 +0100211 cpu_alert0: cpu-alert0 {
Samuel Holland26bc4e72020-10-24 10:21:55 -0500212 /* milliCelsius */
213 temperature = <75000>;
214 hysteresis = <2000>;
215 type = "passive";
216 };
217
Andre Przywara3b798212024-04-19 17:59:52 +0100218 cpu_alert1: cpu-alert1 {
Samuel Holland26bc4e72020-10-24 10:21:55 -0500219 /* milliCelsius */
220 temperature = <90000>;
221 hysteresis = <2000>;
222 type = "hot";
223 };
224
Andre Przywara3b798212024-04-19 17:59:52 +0100225 cpu_crit: cpu-crit {
Samuel Holland26bc4e72020-10-24 10:21:55 -0500226 /* milliCelsius */
227 temperature = <110000>;
228 hysteresis = <2000>;
229 type = "critical";
230 };
231 };
232 };
233
234 gpu0_thermal: gpu0-thermal {
235 /* milliseconds */
236 polling-delay-passive = <0>;
237 polling-delay = <0>;
238 thermal-sensors = <&ths 1>;
239 };
240
241 gpu1_thermal: gpu1-thermal {
242 /* milliseconds */
243 polling-delay-passive = <0>;
244 polling-delay = <0>;
245 thermal-sensors = <&ths 2>;
246 };
247 };
248
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200249 soc {
250 compatible = "simple-bus";
251 #address-cells = <1>;
252 #size-cells = <1>;
253 ranges;
254
Samuel Holland26bc4e72020-10-24 10:21:55 -0500255 bus@1000000 {
Andre Przywara9607c052018-10-29 00:56:47 +0000256 compatible = "allwinner,sun50i-a64-de2";
257 reg = <0x1000000 0x400000>;
258 allwinner,sram = <&de2_sram 1>;
259 #address-cells = <1>;
260 #size-cells = <1>;
261 ranges = <0 0x1000000 0x400000>;
262
263 display_clocks: clock@0 {
264 compatible = "allwinner,sun50i-a64-de2-clk";
Samuel Holland26bc4e72020-10-24 10:21:55 -0500265 reg = <0x0 0x10000>;
266 clocks = <&ccu CLK_BUS_DE>,
267 <&ccu CLK_DE>;
268 clock-names = "bus",
269 "mod";
Andre Przywara9607c052018-10-29 00:56:47 +0000270 resets = <&ccu RST_BUS_DE>;
271 #clock-cells = <1>;
272 #reset-cells = <1>;
273 };
274
Samuel Holland26bc4e72020-10-24 10:21:55 -0500275 rotate: rotate@20000 {
276 compatible = "allwinner,sun50i-a64-de2-rotate",
277 "allwinner,sun8i-a83t-de2-rotate";
278 reg = <0x20000 0x10000>;
279 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
280 clocks = <&display_clocks CLK_BUS_ROT>,
281 <&display_clocks CLK_ROT>;
282 clock-names = "bus",
283 "mod";
284 resets = <&display_clocks RST_ROT>;
285 };
286
Andre Przywara9607c052018-10-29 00:56:47 +0000287 mixer0: mixer@100000 {
288 compatible = "allwinner,sun50i-a64-de2-mixer-0";
289 reg = <0x100000 0x100000>;
290 clocks = <&display_clocks CLK_BUS_MIXER0>,
291 <&display_clocks CLK_MIXER0>;
292 clock-names = "bus",
293 "mod";
294 resets = <&display_clocks RST_MIXER0>;
295
296 ports {
297 #address-cells = <1>;
298 #size-cells = <0>;
299
300 mixer0_out: port@1 {
Samuel Holland26bc4e72020-10-24 10:21:55 -0500301 #address-cells = <1>;
302 #size-cells = <0>;
Andre Przywara9607c052018-10-29 00:56:47 +0000303 reg = <1>;
304
Samuel Holland26bc4e72020-10-24 10:21:55 -0500305 mixer0_out_tcon0: endpoint@0 {
306 reg = <0>;
Andre Przywara9607c052018-10-29 00:56:47 +0000307 remote-endpoint = <&tcon0_in_mixer0>;
308 };
Samuel Holland26bc4e72020-10-24 10:21:55 -0500309
310 mixer0_out_tcon1: endpoint@1 {
311 reg = <1>;
312 remote-endpoint = <&tcon1_in_mixer0>;
313 };
Andre Przywara9607c052018-10-29 00:56:47 +0000314 };
315 };
316 };
317
318 mixer1: mixer@200000 {
319 compatible = "allwinner,sun50i-a64-de2-mixer-1";
320 reg = <0x200000 0x100000>;
321 clocks = <&display_clocks CLK_BUS_MIXER1>,
322 <&display_clocks CLK_MIXER1>;
323 clock-names = "bus",
324 "mod";
325 resets = <&display_clocks RST_MIXER1>;
326
327 ports {
328 #address-cells = <1>;
329 #size-cells = <0>;
330
331 mixer1_out: port@1 {
Samuel Holland26bc4e72020-10-24 10:21:55 -0500332 #address-cells = <1>;
333 #size-cells = <0>;
Andre Przywara9607c052018-10-29 00:56:47 +0000334 reg = <1>;
335
Samuel Holland26bc4e72020-10-24 10:21:55 -0500336 mixer1_out_tcon0: endpoint@0 {
337 reg = <0>;
338 remote-endpoint = <&tcon0_in_mixer1>;
339 };
340
341 mixer1_out_tcon1: endpoint@1 {
342 reg = <1>;
Andre Przywara9607c052018-10-29 00:56:47 +0000343 remote-endpoint = <&tcon1_in_mixer1>;
344 };
345 };
346 };
347 };
348 };
349
Andre Przywarae187d582018-07-04 14:16:34 +0100350 syscon: syscon@1c00000 {
Samuel Holland26bc4e72020-10-24 10:21:55 -0500351 compatible = "allwinner,sun50i-a64-system-control";
Andre Przywarae187d582018-07-04 14:16:34 +0100352 reg = <0x01c00000 0x1000>;
Andre Przywara9607c052018-10-29 00:56:47 +0000353 #address-cells = <1>;
354 #size-cells = <1>;
355 ranges;
356
357 sram_c: sram@18000 {
358 compatible = "mmio-sram";
359 reg = <0x00018000 0x28000>;
360 #address-cells = <1>;
361 #size-cells = <1>;
362 ranges = <0 0x00018000 0x28000>;
363
364 de2_sram: sram-section@0 {
365 compatible = "allwinner,sun50i-a64-sram-c";
366 reg = <0x0000 0x28000>;
367 };
368 };
Samuel Holland26bc4e72020-10-24 10:21:55 -0500369
370 sram_c1: sram@1d00000 {
371 compatible = "mmio-sram";
372 reg = <0x01d00000 0x40000>;
373 #address-cells = <1>;
374 #size-cells = <1>;
375 ranges = <0 0x01d00000 0x40000>;
376
377 ve_sram: sram-section@0 {
378 compatible = "allwinner,sun50i-a64-sram-c1",
379 "allwinner,sun4i-a10-sram-c1";
380 reg = <0x000000 0x40000>;
381 };
382 };
Andre Przywarae187d582018-07-04 14:16:34 +0100383 };
384
385 dma: dma-controller@1c02000 {
386 compatible = "allwinner,sun50i-a64-dma";
387 reg = <0x01c02000 0x1000>;
388 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
389 clocks = <&ccu CLK_BUS_DMA>;
390 dma-channels = <8>;
391 dma-requests = <27>;
392 resets = <&ccu RST_BUS_DMA>;
393 #dma-cells = <1>;
394 };
395
Andre Przywara9607c052018-10-29 00:56:47 +0000396 tcon0: lcd-controller@1c0c000 {
397 compatible = "allwinner,sun50i-a64-tcon-lcd",
398 "allwinner,sun8i-a83t-tcon-lcd";
399 reg = <0x01c0c000 0x1000>;
400 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
402 clock-names = "ahb", "tcon-ch0";
Andre Przywara8780ada2023-10-19 15:51:39 +0100403 clock-output-names = "tcon-data-clock";
Samuel Holland26bc4e72020-10-24 10:21:55 -0500404 #clock-cells = <0>;
Andre Przywara9607c052018-10-29 00:56:47 +0000405 resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
406 reset-names = "lcd", "lvds";
407
408 ports {
409 #address-cells = <1>;
410 #size-cells = <0>;
411
412 tcon0_in: port@0 {
413 #address-cells = <1>;
414 #size-cells = <0>;
415 reg = <0>;
416
417 tcon0_in_mixer0: endpoint@0 {
418 reg = <0>;
419 remote-endpoint = <&mixer0_out_tcon0>;
420 };
Samuel Holland26bc4e72020-10-24 10:21:55 -0500421
422 tcon0_in_mixer1: endpoint@1 {
423 reg = <1>;
424 remote-endpoint = <&mixer1_out_tcon0>;
425 };
Andre Przywara9607c052018-10-29 00:56:47 +0000426 };
427
428 tcon0_out: port@1 {
429 #address-cells = <1>;
430 #size-cells = <0>;
431 reg = <1>;
Samuel Holland26bc4e72020-10-24 10:21:55 -0500432
433 tcon0_out_dsi: endpoint@1 {
434 reg = <1>;
435 remote-endpoint = <&dsi_in_tcon0>;
436 allwinner,tcon-channel = <1>;
437 };
Andre Przywara9607c052018-10-29 00:56:47 +0000438 };
439 };
440 };
441
442 tcon1: lcd-controller@1c0d000 {
443 compatible = "allwinner,sun50i-a64-tcon-tv",
444 "allwinner,sun8i-a83t-tcon-tv";
445 reg = <0x01c0d000 0x1000>;
446 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>;
448 clock-names = "ahb", "tcon-ch1";
449 resets = <&ccu RST_BUS_TCON1>;
450 reset-names = "lcd";
451
452 ports {
453 #address-cells = <1>;
454 #size-cells = <0>;
455
456 tcon1_in: port@0 {
Samuel Holland26bc4e72020-10-24 10:21:55 -0500457 #address-cells = <1>;
458 #size-cells = <0>;
Andre Przywara9607c052018-10-29 00:56:47 +0000459 reg = <0>;
460
Samuel Holland26bc4e72020-10-24 10:21:55 -0500461 tcon1_in_mixer0: endpoint@0 {
462 reg = <0>;
463 remote-endpoint = <&mixer0_out_tcon1>;
464 };
465
466 tcon1_in_mixer1: endpoint@1 {
467 reg = <1>;
Andre Przywara9607c052018-10-29 00:56:47 +0000468 remote-endpoint = <&mixer1_out_tcon1>;
469 };
470 };
471
472 tcon1_out: port@1 {
473 #address-cells = <1>;
474 #size-cells = <0>;
475 reg = <1>;
476
477 tcon1_out_hdmi: endpoint@1 {
478 reg = <1>;
479 remote-endpoint = <&hdmi_in_tcon1>;
480 };
481 };
482 };
483 };
484
Samuel Holland26bc4e72020-10-24 10:21:55 -0500485 video-codec@1c0e000 {
486 compatible = "allwinner,sun50i-a64-video-engine";
487 reg = <0x01c0e000 0x1000>;
488 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
489 <&ccu CLK_DRAM_VE>;
490 clock-names = "ahb", "mod", "ram";
491 resets = <&ccu RST_BUS_VE>;
492 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
493 allwinner,sram = <&ve_sram 1>;
494 };
495
Andre Przywara36748112016-05-04 22:15:33 +0100496 mmc0: mmc@1c0f000 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100497 compatible = "allwinner,sun50i-a64-mmc";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200498 reg = <0x01c0f000 0x1000>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100499 clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
500 clock-names = "ahb", "mmc";
501 resets = <&ccu RST_BUS_MMC0>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200502 reset-names = "ahb";
503 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100504 max-frequency = <150000000>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200505 status = "disabled";
506 #address-cells = <1>;
507 #size-cells = <0>;
508 };
509
Andre Przywara36748112016-05-04 22:15:33 +0100510 mmc1: mmc@1c10000 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100511 compatible = "allwinner,sun50i-a64-mmc";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200512 reg = <0x01c10000 0x1000>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100513 clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
514 clock-names = "ahb", "mmc";
515 resets = <&ccu RST_BUS_MMC1>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200516 reset-names = "ahb";
517 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100518 max-frequency = <150000000>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200519 status = "disabled";
520 #address-cells = <1>;
521 #size-cells = <0>;
522 };
523
Andre Przywara36748112016-05-04 22:15:33 +0100524 mmc2: mmc@1c11000 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100525 compatible = "allwinner,sun50i-a64-emmc";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200526 reg = <0x01c11000 0x1000>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100527 clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
528 clock-names = "ahb", "mmc";
529 resets = <&ccu RST_BUS_MMC2>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200530 reset-names = "ahb";
531 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywarafb675472021-04-17 22:55:19 +0100532 max-frequency = <150000000>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200533 status = "disabled";
534 #address-cells = <1>;
535 #size-cells = <0>;
536 };
537
Andre Przywara9607c052018-10-29 00:56:47 +0000538 sid: eeprom@1c14000 {
539 compatible = "allwinner,sun50i-a64-sid";
540 reg = <0x1c14000 0x400>;
Samuel Holland26bc4e72020-10-24 10:21:55 -0500541 #address-cells = <1>;
542 #size-cells = <1>;
543
544 ths_calibration: thermal-sensor-calibration@34 {
545 reg = <0x34 0x8>;
546 };
547 };
548
549 crypto: crypto@1c15000 {
550 compatible = "allwinner,sun50i-a64-crypto";
551 reg = <0x01c15000 0x1000>;
552 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
553 clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
554 clock-names = "bus", "mod";
555 resets = <&ccu RST_BUS_CE>;
556 };
557
558 msgbox: mailbox@1c17000 {
559 compatible = "allwinner,sun50i-a64-msgbox",
560 "allwinner,sun6i-a31-msgbox";
561 reg = <0x01c17000 0x1000>;
562 clocks = <&ccu CLK_BUS_MSGBOX>;
563 resets = <&ccu RST_BUS_MSGBOX>;
564 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
565 #mbox-cells = <1>;
Andre Przywara9607c052018-10-29 00:56:47 +0000566 };
567
Andre Przywarae187d582018-07-04 14:16:34 +0100568 usb_otg: usb@1c19000 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100569 compatible = "allwinner,sun8i-a33-musb";
570 reg = <0x01c19000 0x0400>;
571 clocks = <&ccu CLK_BUS_OTG>;
572 resets = <&ccu RST_BUS_OTG>;
573 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
574 interrupt-names = "mc";
575 phys = <&usbphy 0>;
576 phy-names = "usb";
577 extcon = <&usbphy 0>;
Samuel Holland26bc4e72020-10-24 10:21:55 -0500578 dr_mode = "otg";
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100579 status = "disabled";
580 };
581
Andre Przywarae187d582018-07-04 14:16:34 +0100582 usbphy: phy@1c19400 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100583 compatible = "allwinner,sun50i-a64-usb-phy";
584 reg = <0x01c19400 0x14>,
585 <0x01c1a800 0x4>,
586 <0x01c1b800 0x4>;
587 reg-names = "phy_ctrl",
588 "pmu0",
589 "pmu1";
590 clocks = <&ccu CLK_USB_PHY0>,
591 <&ccu CLK_USB_PHY1>;
592 clock-names = "usb0_phy",
593 "usb1_phy";
594 resets = <&ccu RST_USB_PHY0>,
595 <&ccu RST_USB_PHY1>;
596 reset-names = "usb0_reset",
597 "usb1_reset";
598 status = "disabled";
599 #phy-cells = <1>;
600 };
601
Andre Przywarae187d582018-07-04 14:16:34 +0100602 ehci0: usb@1c1a000 {
Jagan Tekid5612de2017-06-09 17:57:58 +0530603 compatible = "allwinner,sun50i-a64-ehci", "generic-ehci";
604 reg = <0x01c1a000 0x100>;
605 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
606 clocks = <&ccu CLK_BUS_OHCI0>,
607 <&ccu CLK_BUS_EHCI0>,
608 <&ccu CLK_USB_OHCI0>;
609 resets = <&ccu RST_BUS_OHCI0>,
610 <&ccu RST_BUS_EHCI0>;
Andre Przywarafb675472021-04-17 22:55:19 +0100611 phys = <&usbphy 0>;
612 phy-names = "usb";
Jagan Tekid5612de2017-06-09 17:57:58 +0530613 status = "disabled";
614 };
615
Andre Przywarae187d582018-07-04 14:16:34 +0100616 ohci0: usb@1c1a400 {
Jagan Tekid5612de2017-06-09 17:57:58 +0530617 compatible = "allwinner,sun50i-a64-ohci", "generic-ohci";
618 reg = <0x01c1a400 0x100>;
619 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
620 clocks = <&ccu CLK_BUS_OHCI0>,
621 <&ccu CLK_USB_OHCI0>;
622 resets = <&ccu RST_BUS_OHCI0>;
Andre Przywarafb675472021-04-17 22:55:19 +0100623 phys = <&usbphy 0>;
624 phy-names = "usb";
Jagan Tekid5612de2017-06-09 17:57:58 +0530625 status = "disabled";
626 };
627
Andre Przywarae187d582018-07-04 14:16:34 +0100628 ehci1: usb@1c1b000 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100629 compatible = "allwinner,sun50i-a64-ehci", "generic-ehci";
630 reg = <0x01c1b000 0x100>;
631 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
632 clocks = <&ccu CLK_BUS_OHCI1>,
633 <&ccu CLK_BUS_EHCI1>,
634 <&ccu CLK_USB_OHCI1>;
635 resets = <&ccu RST_BUS_OHCI1>,
636 <&ccu RST_BUS_EHCI1>;
637 phys = <&usbphy 1>;
638 phy-names = "usb";
639 status = "disabled";
640 };
641
Andre Przywarae187d582018-07-04 14:16:34 +0100642 ohci1: usb@1c1b400 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100643 compatible = "allwinner,sun50i-a64-ohci", "generic-ohci";
644 reg = <0x01c1b400 0x100>;
645 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
646 clocks = <&ccu CLK_BUS_OHCI1>,
647 <&ccu CLK_USB_OHCI1>;
648 resets = <&ccu RST_BUS_OHCI1>;
649 phys = <&usbphy 1>;
650 phy-names = "usb";
651 status = "disabled";
652 };
653
Andre Przywarae187d582018-07-04 14:16:34 +0100654 ccu: clock@1c20000 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100655 compatible = "allwinner,sun50i-a64-ccu";
656 reg = <0x01c20000 0x400>;
Andre Przywara5eb4bbe2022-09-11 00:04:41 +0100657 clocks = <&osc24M>, <&rtc CLK_OSC32K>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100658 clock-names = "hosc", "losc";
659 #clock-cells = <1>;
660 #reset-cells = <1>;
661 };
662
Andre Przywara36748112016-05-04 22:15:33 +0100663 pio: pinctrl@1c20800 {
664 compatible = "allwinner,sun50i-a64-pinctrl";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200665 reg = <0x01c20800 0x400>;
666 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
667 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
668 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywara5eb4bbe2022-09-11 00:04:41 +0100669 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>,
670 <&rtc CLK_OSC32K>;
Samuel Holland26bc4e72020-10-24 10:21:55 -0500671 clock-names = "apb", "hosc", "losc";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200672 gpio-controller;
673 #gpio-cells = <3>;
674 interrupt-controller;
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100675 #interrupt-cells = <3>;
Andre Przywara36748112016-05-04 22:15:33 +0100676
Samuel Holland43729b72022-04-27 15:31:30 -0500677 /omit-if-no-ref/
678 aif2_pins: aif2-pins {
679 pins = "PB4", "PB5", "PB6", "PB7";
680 function = "aif2";
681 };
682
683 /omit-if-no-ref/
684 aif3_pins: aif3-pins {
685 pins = "PG10", "PG11", "PG12", "PG13";
686 function = "aif3";
687 };
688
Samuel Holland26bc4e72020-10-24 10:21:55 -0500689 csi_pins: csi-pins {
690 pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6",
691 "PE7", "PE8", "PE9", "PE10", "PE11";
692 function = "csi";
693 };
694
695 /omit-if-no-ref/
696 csi_mclk_pin: csi-mclk-pin {
697 pins = "PE1";
698 function = "csi";
699 };
700
701 i2c0_pins: i2c0-pins {
Andre Przywarae187d582018-07-04 14:16:34 +0100702 pins = "PH0", "PH1";
703 function = "i2c0";
704 };
705
Samuel Holland26bc4e72020-10-24 10:21:55 -0500706 i2c1_pins: i2c1-pins {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100707 pins = "PH2", "PH3";
708 function = "i2c1";
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200709 };
710
Samuel Holland26bc4e72020-10-24 10:21:55 -0500711 i2c2_pins: i2c2-pins {
712 pins = "PE14", "PE15";
713 function = "i2c2";
714 };
715
716 /omit-if-no-ref/
717 lcd_rgb666_pins: lcd-rgb666-pins {
718 pins = "PD0", "PD1", "PD2", "PD3", "PD4",
719 "PD5", "PD6", "PD7", "PD8", "PD9",
720 "PD10", "PD11", "PD12", "PD13",
721 "PD14", "PD15", "PD16", "PD17",
722 "PD18", "PD19", "PD20", "PD21";
723 function = "lcd0";
724 };
725
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100726 mmc0_pins: mmc0-pins {
727 pins = "PF0", "PF1", "PF2", "PF3",
728 "PF4", "PF5";
729 function = "mmc0";
730 drive-strength = <30>;
731 bias-pull-up;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200732 };
Andre Przywara36748112016-05-04 22:15:33 +0100733
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100734 mmc1_pins: mmc1-pins {
735 pins = "PG0", "PG1", "PG2", "PG3",
736 "PG4", "PG5";
737 function = "mmc1";
738 drive-strength = <30>;
739 bias-pull-up;
Andre Przywara36748112016-05-04 22:15:33 +0100740 };
741
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100742 mmc2_pins: mmc2-pins {
Andre Przywara9607c052018-10-29 00:56:47 +0000743 pins = "PC5", "PC6", "PC8", "PC9",
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100744 "PC10","PC11", "PC12", "PC13",
745 "PC14", "PC15", "PC16";
746 function = "mmc2";
747 drive-strength = <30>;
748 bias-pull-up;
Andre Przywara36748112016-05-04 22:15:33 +0100749 };
750
Andre Przywara9607c052018-10-29 00:56:47 +0000751 mmc2_ds_pin: mmc2-ds-pin {
752 pins = "PC1";
753 function = "mmc2";
754 drive-strength = <30>;
755 bias-pull-up;
756 };
757
Samuel Holland26bc4e72020-10-24 10:21:55 -0500758 pwm_pin: pwm-pin {
Andre Przywara9607c052018-10-29 00:56:47 +0000759 pins = "PD22";
760 function = "pwm";
761 };
762
Samuel Holland26bc4e72020-10-24 10:21:55 -0500763 rmii_pins: rmii-pins {
Andre Przywarae187d582018-07-04 14:16:34 +0100764 pins = "PD10", "PD11", "PD13", "PD14", "PD17",
765 "PD18", "PD19", "PD20", "PD22", "PD23";
766 function = "emac";
767 drive-strength = <40>;
768 };
769
Samuel Holland26bc4e72020-10-24 10:21:55 -0500770 rgmii_pins: rgmii-pins {
Andre Przywarae187d582018-07-04 14:16:34 +0100771 pins = "PD8", "PD9", "PD10", "PD11", "PD12",
772 "PD13", "PD15", "PD16", "PD17", "PD18",
773 "PD19", "PD20", "PD21", "PD22", "PD23";
774 function = "emac";
775 drive-strength = <40>;
776 };
777
Samuel Holland26bc4e72020-10-24 10:21:55 -0500778 spdif_tx_pin: spdif-tx-pin {
Andre Przywarae187d582018-07-04 14:16:34 +0100779 pins = "PH8";
780 function = "spdif";
781 };
782
Samuel Holland26bc4e72020-10-24 10:21:55 -0500783 spi0_pins: spi0-pins {
Andre Przywarae187d582018-07-04 14:16:34 +0100784 pins = "PC0", "PC1", "PC2", "PC3";
785 function = "spi0";
786 };
787
Samuel Holland26bc4e72020-10-24 10:21:55 -0500788 spi1_pins: spi1-pins {
Andre Przywarae187d582018-07-04 14:16:34 +0100789 pins = "PD0", "PD1", "PD2", "PD3";
790 function = "spi1";
791 };
792
Andre Przywara9607c052018-10-29 00:56:47 +0000793 uart0_pb_pins: uart0-pb-pins {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100794 pins = "PB8", "PB9";
795 function = "uart0";
Andre Przywara36748112016-05-04 22:15:33 +0100796 };
Amit Singh Tomard194c0e2016-07-06 17:59:44 +0530797
Samuel Holland26bc4e72020-10-24 10:21:55 -0500798 uart1_pins: uart1-pins {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100799 pins = "PG6", "PG7";
800 function = "uart1";
Amit Singh Tomard194c0e2016-07-06 17:59:44 +0530801 };
802
Samuel Holland26bc4e72020-10-24 10:21:55 -0500803 uart1_rts_cts_pins: uart1-rts-cts-pins {
Andre Przywara8d65e613e2017-05-24 10:34:56 +0100804 pins = "PG8", "PG9";
805 function = "uart1";
Amit Singh Tomard194c0e2016-07-06 17:59:44 +0530806 };
Andre Przywarae187d582018-07-04 14:16:34 +0100807
808 uart2_pins: uart2-pins {
809 pins = "PB0", "PB1";
810 function = "uart2";
811 };
812
813 uart3_pins: uart3-pins {
814 pins = "PD0", "PD1";
815 function = "uart3";
816 };
817
818 uart4_pins: uart4-pins {
819 pins = "PD2", "PD3";
820 function = "uart4";
821 };
822
823 uart4_rts_cts_pins: uart4-rts-cts-pins {
824 pins = "PD4", "PD5";
825 function = "uart4";
826 };
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200827 };
828
Samuel Holland43729b72022-04-27 15:31:30 -0500829 timer@1c20c00 {
830 compatible = "allwinner,sun50i-a64-timer",
831 "allwinner,sun8i-a23-timer";
832 reg = <0x01c20c00 0xa0>;
833 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
834 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
835 clocks = <&osc24M>;
836 };
837
838 wdt0: watchdog@1c20ca0 {
839 compatible = "allwinner,sun50i-a64-wdt",
840 "allwinner,sun6i-a31-wdt";
841 reg = <0x01c20ca0 0x20>;
842 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
843 clocks = <&osc24M>;
844 };
845
Andre Przywarae187d582018-07-04 14:16:34 +0100846 spdif: spdif@1c21000 {
847 #sound-dai-cells = <0>;
848 compatible = "allwinner,sun50i-a64-spdif",
849 "allwinner,sun8i-h3-spdif";
850 reg = <0x01c21000 0x400>;
851 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
852 clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
853 resets = <&ccu RST_BUS_SPDIF>;
854 clock-names = "apb", "spdif";
855 dmas = <&dma 2>;
856 dma-names = "tx";
857 pinctrl-names = "default";
858 pinctrl-0 = <&spdif_tx_pin>;
859 status = "disabled";
860 };
861
Samuel Holland26bc4e72020-10-24 10:21:55 -0500862 lradc: lradc@1c21800 {
863 compatible = "allwinner,sun50i-a64-lradc",
864 "allwinner,sun8i-a83t-r-lradc";
865 reg = <0x01c21800 0x400>;
866 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
867 status = "disabled";
868 };
869
Andre Przywarae187d582018-07-04 14:16:34 +0100870 i2s0: i2s@1c22000 {
871 #sound-dai-cells = <0>;
872 compatible = "allwinner,sun50i-a64-i2s",
873 "allwinner,sun8i-h3-i2s";
874 reg = <0x01c22000 0x400>;
875 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
876 clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>;
877 clock-names = "apb", "mod";
878 resets = <&ccu RST_BUS_I2S0>;
879 dma-names = "rx", "tx";
880 dmas = <&dma 3>, <&dma 3>;
881 status = "disabled";
882 };
883
884 i2s1: i2s@1c22400 {
885 #sound-dai-cells = <0>;
886 compatible = "allwinner,sun50i-a64-i2s",
887 "allwinner,sun8i-h3-i2s";
888 reg = <0x01c22400 0x400>;
889 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
890 clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
891 clock-names = "apb", "mod";
892 resets = <&ccu RST_BUS_I2S1>;
893 dma-names = "rx", "tx";
894 dmas = <&dma 4>, <&dma 4>;
895 status = "disabled";
896 };
897
Andre Przywarafb675472021-04-17 22:55:19 +0100898 i2s2: i2s@1c22800 {
899 #sound-dai-cells = <0>;
900 compatible = "allwinner,sun50i-a64-i2s",
901 "allwinner,sun8i-h3-i2s";
902 reg = <0x01c22800 0x400>;
903 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
904 clocks = <&ccu CLK_BUS_I2S2>, <&ccu CLK_I2S2>;
905 clock-names = "apb", "mod";
906 resets = <&ccu RST_BUS_I2S2>;
907 dma-names = "rx", "tx";
908 dmas = <&dma 27>, <&dma 27>;
909 status = "disabled";
910 };
911
Samuel Holland26bc4e72020-10-24 10:21:55 -0500912 dai: dai@1c22c00 {
913 #sound-dai-cells = <0>;
914 compatible = "allwinner,sun50i-a64-codec-i2s";
915 reg = <0x01c22c00 0x200>;
916 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
917 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
918 clock-names = "apb", "mod";
919 resets = <&ccu RST_BUS_CODEC>;
920 dmas = <&dma 15>, <&dma 15>;
921 dma-names = "rx", "tx";
922 status = "disabled";
923 };
924
925 codec: codec@1c22e00 {
Samuel Holland43729b72022-04-27 15:31:30 -0500926 #sound-dai-cells = <1>;
Andre Przywarafb675472021-04-17 22:55:19 +0100927 compatible = "allwinner,sun50i-a64-codec",
928 "allwinner,sun8i-a33-codec";
Samuel Holland26bc4e72020-10-24 10:21:55 -0500929 reg = <0x01c22e00 0x600>;
930 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
931 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
932 clock-names = "bus", "mod";
933 status = "disabled";
934 };
935
936 ths: thermal-sensor@1c25000 {
937 compatible = "allwinner,sun50i-a64-ths";
938 reg = <0x01c25000 0x100>;
939 clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
940 clock-names = "bus", "mod";
941 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
942 resets = <&ccu RST_BUS_THS>;
943 nvmem-cells = <&ths_calibration>;
944 nvmem-cell-names = "calibration";
945 #thermal-sensor-cells = <1>;
946 };
947
Andre Przywara36748112016-05-04 22:15:33 +0100948 uart0: serial@1c28000 {
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200949 compatible = "snps,dw-apb-uart";
950 reg = <0x01c28000 0x400>;
951 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
952 reg-shift = <2>;
953 reg-io-width = <4>;
Andre Przywarae187d582018-07-04 14:16:34 +0100954 clocks = <&ccu CLK_BUS_UART0>;
955 resets = <&ccu RST_BUS_UART0>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200956 status = "disabled";
957 };
958
Andre Przywara36748112016-05-04 22:15:33 +0100959 uart1: serial@1c28400 {
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200960 compatible = "snps,dw-apb-uart";
961 reg = <0x01c28400 0x400>;
962 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
963 reg-shift = <2>;
964 reg-io-width = <4>;
Andre Przywarae187d582018-07-04 14:16:34 +0100965 clocks = <&ccu CLK_BUS_UART1>;
966 resets = <&ccu RST_BUS_UART1>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200967 status = "disabled";
968 };
969
Andre Przywara36748112016-05-04 22:15:33 +0100970 uart2: serial@1c28800 {
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200971 compatible = "snps,dw-apb-uart";
972 reg = <0x01c28800 0x400>;
973 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
974 reg-shift = <2>;
975 reg-io-width = <4>;
Andre Przywarae187d582018-07-04 14:16:34 +0100976 clocks = <&ccu CLK_BUS_UART2>;
977 resets = <&ccu RST_BUS_UART2>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200978 status = "disabled";
979 };
980
Andre Przywara36748112016-05-04 22:15:33 +0100981 uart3: serial@1c28c00 {
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200982 compatible = "snps,dw-apb-uart";
983 reg = <0x01c28c00 0x400>;
984 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
985 reg-shift = <2>;
986 reg-io-width = <4>;
Andre Przywarae187d582018-07-04 14:16:34 +0100987 clocks = <&ccu CLK_BUS_UART3>;
988 resets = <&ccu RST_BUS_UART3>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200989 status = "disabled";
990 };
991
Andre Przywara36748112016-05-04 22:15:33 +0100992 uart4: serial@1c29000 {
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +0200993 compatible = "snps,dw-apb-uart";
994 reg = <0x01c29000 0x400>;
995 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
996 reg-shift = <2>;
997 reg-io-width = <4>;
Andre Przywarae187d582018-07-04 14:16:34 +0100998 clocks = <&ccu CLK_BUS_UART4>;
999 resets = <&ccu RST_BUS_UART4>;
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +02001000 status = "disabled";
1001 };
1002
Andre Przywara36748112016-05-04 22:15:33 +01001003 i2c0: i2c@1c2ac00 {
1004 compatible = "allwinner,sun6i-a31-i2c";
1005 reg = <0x01c2ac00 0x400>;
1006 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywarae187d582018-07-04 14:16:34 +01001007 clocks = <&ccu CLK_BUS_I2C0>;
1008 resets = <&ccu RST_BUS_I2C0>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001009 pinctrl-names = "default";
1010 pinctrl-0 = <&i2c0_pins>;
Andre Przywara36748112016-05-04 22:15:33 +01001011 status = "disabled";
1012 #address-cells = <1>;
1013 #size-cells = <0>;
1014 };
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +02001015
Andre Przywara36748112016-05-04 22:15:33 +01001016 i2c1: i2c@1c2b000 {
1017 compatible = "allwinner,sun6i-a31-i2c";
1018 reg = <0x01c2b000 0x400>;
1019 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywarae187d582018-07-04 14:16:34 +01001020 clocks = <&ccu CLK_BUS_I2C1>;
1021 resets = <&ccu RST_BUS_I2C1>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001022 pinctrl-names = "default";
1023 pinctrl-0 = <&i2c1_pins>;
Andre Przywara36748112016-05-04 22:15:33 +01001024 status = "disabled";
1025 #address-cells = <1>;
1026 #size-cells = <0>;
1027 };
1028
1029 i2c2: i2c@1c2b400 {
1030 compatible = "allwinner,sun6i-a31-i2c";
1031 reg = <0x01c2b400 0x400>;
1032 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywarae187d582018-07-04 14:16:34 +01001033 clocks = <&ccu CLK_BUS_I2C2>;
1034 resets = <&ccu RST_BUS_I2C2>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001035 pinctrl-names = "default";
1036 pinctrl-0 = <&i2c2_pins>;
Andre Przywarae187d582018-07-04 14:16:34 +01001037 status = "disabled";
1038 #address-cells = <1>;
1039 #size-cells = <0>;
1040 };
1041
Andre Przywarae187d582018-07-04 14:16:34 +01001042 spi0: spi@1c68000 {
1043 compatible = "allwinner,sun8i-h3-spi";
1044 reg = <0x01c68000 0x1000>;
1045 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
1046 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
1047 clock-names = "ahb", "mod";
1048 dmas = <&dma 23>, <&dma 23>;
1049 dma-names = "rx", "tx";
1050 pinctrl-names = "default";
1051 pinctrl-0 = <&spi0_pins>;
1052 resets = <&ccu RST_BUS_SPI0>;
1053 status = "disabled";
1054 num-cs = <1>;
1055 #address-cells = <1>;
1056 #size-cells = <0>;
1057 };
1058
1059 spi1: spi@1c69000 {
1060 compatible = "allwinner,sun8i-h3-spi";
1061 reg = <0x01c69000 0x1000>;
1062 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
1063 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
1064 clock-names = "ahb", "mod";
1065 dmas = <&dma 24>, <&dma 24>;
1066 dma-names = "rx", "tx";
1067 pinctrl-names = "default";
1068 pinctrl-0 = <&spi1_pins>;
1069 resets = <&ccu RST_BUS_SPI1>;
Andre Przywara36748112016-05-04 22:15:33 +01001070 status = "disabled";
Andre Przywarae187d582018-07-04 14:16:34 +01001071 num-cs = <1>;
Andre Przywara36748112016-05-04 22:15:33 +01001072 #address-cells = <1>;
1073 #size-cells = <0>;
1074 };
Amit Singh Tomard194c0e2016-07-06 17:59:44 +05301075
Andre Przywarae187d582018-07-04 14:16:34 +01001076 emac: ethernet@1c30000 {
1077 compatible = "allwinner,sun50i-a64-emac";
1078 syscon = <&syscon>;
1079 reg = <0x01c30000 0x10000>;
1080 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1081 interrupt-names = "macirq";
1082 resets = <&ccu RST_BUS_EMAC>;
1083 reset-names = "stmmaceth";
1084 clocks = <&ccu CLK_BUS_EMAC>;
1085 clock-names = "stmmaceth";
1086 status = "disabled";
Andre Przywarae187d582018-07-04 14:16:34 +01001087
1088 mdio: mdio {
1089 compatible = "snps,dwmac-mdio";
1090 #address-cells = <1>;
1091 #size-cells = <0>;
1092 };
1093 };
1094
Samuel Holland26bc4e72020-10-24 10:21:55 -05001095 mali: gpu@1c40000 {
1096 compatible = "allwinner,sun50i-a64-mali", "arm,mali-400";
1097 reg = <0x01c40000 0x10000>;
1098 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1099 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1100 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1101 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1102 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1103 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1104 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1105 interrupt-names = "gp",
1106 "gpmmu",
1107 "pp0",
1108 "ppmmu0",
1109 "pp1",
1110 "ppmmu1",
1111 "pmu";
1112 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
1113 clock-names = "bus", "core";
1114 resets = <&ccu RST_BUS_GPU>;
Samuel Holland43729b72022-04-27 15:31:30 -05001115 operating-points-v2 = <&gpu_opp_table>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001116 };
1117
Andre Przywara8d65e613e2017-05-24 10:34:56 +01001118 gic: interrupt-controller@1c81000 {
1119 compatible = "arm,gic-400";
1120 reg = <0x01c81000 0x1000>,
1121 <0x01c82000 0x2000>,
1122 <0x01c84000 0x2000>,
1123 <0x01c86000 0x2000>;
1124 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1125 interrupt-controller;
1126 #interrupt-cells = <3>;
Amit Singh Tomard194c0e2016-07-06 17:59:44 +05301127 };
Amit Singh Tomarbd732d02016-10-21 02:24:30 +01001128
Andre Przywara9607c052018-10-29 00:56:47 +00001129 pwm: pwm@1c21400 {
1130 compatible = "allwinner,sun50i-a64-pwm",
1131 "allwinner,sun5i-a13-pwm";
1132 reg = <0x01c21400 0x400>;
1133 clocks = <&osc24M>;
1134 pinctrl-names = "default";
1135 pinctrl-0 = <&pwm_pin>;
1136 #pwm-cells = <3>;
1137 status = "disabled";
Samuel Holland26bc4e72020-10-24 10:21:55 -05001138 };
1139
1140 mbus: dram-controller@1c62000 {
1141 compatible = "allwinner,sun50i-a64-mbus";
Samuel Holland43729b72022-04-27 15:31:30 -05001142 reg = <0x01c62000 0x1000>,
1143 <0x01c63000 0x1000>;
1144 reg-names = "mbus", "dram";
1145 clocks = <&ccu CLK_MBUS>,
1146 <&ccu CLK_DRAM>,
1147 <&ccu CLK_BUS_DRAM>;
1148 clock-names = "mbus", "dram", "bus";
1149 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001150 #address-cells = <1>;
1151 #size-cells = <1>;
1152 dma-ranges = <0x00000000 0x40000000 0xc0000000>;
1153 #interconnect-cells = <1>;
1154 };
1155
1156 csi: csi@1cb0000 {
1157 compatible = "allwinner,sun50i-a64-csi";
1158 reg = <0x01cb0000 0x1000>;
1159 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
1160 clocks = <&ccu CLK_BUS_CSI>,
1161 <&ccu CLK_CSI_SCLK>,
1162 <&ccu CLK_DRAM_CSI>;
1163 clock-names = "bus", "mod", "ram";
1164 resets = <&ccu RST_BUS_CSI>;
1165 pinctrl-names = "default";
1166 pinctrl-0 = <&csi_pins>;
1167 status = "disabled";
1168 };
1169
1170 dsi: dsi@1ca0000 {
1171 compatible = "allwinner,sun50i-a64-mipi-dsi";
1172 reg = <0x01ca0000 0x1000>;
1173 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
1174 clocks = <&ccu CLK_BUS_MIPI_DSI>;
1175 resets = <&ccu RST_BUS_MIPI_DSI>;
1176 phys = <&dphy>;
1177 phy-names = "dphy";
1178 status = "disabled";
1179 #address-cells = <1>;
1180 #size-cells = <0>;
1181
1182 port {
1183 dsi_in_tcon0: endpoint {
1184 remote-endpoint = <&tcon0_out_dsi>;
1185 };
1186 };
Andre Przywara9607c052018-10-29 00:56:47 +00001187 };
1188
Samuel Holland26bc4e72020-10-24 10:21:55 -05001189 dphy: d-phy@1ca1000 {
1190 compatible = "allwinner,sun50i-a64-mipi-dphy",
1191 "allwinner,sun6i-a31-mipi-dphy";
1192 reg = <0x01ca1000 0x1000>;
Andre Przywara3e435d12023-04-02 01:17:07 +01001193 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001194 clocks = <&ccu CLK_BUS_MIPI_DSI>,
1195 <&ccu CLK_DSI_DPHY>;
1196 clock-names = "bus", "mod";
1197 resets = <&ccu RST_BUS_MIPI_DSI>;
1198 status = "disabled";
1199 #phy-cells = <0>;
1200 };
1201
1202 deinterlace: deinterlace@1e00000 {
1203 compatible = "allwinner,sun50i-a64-deinterlace",
1204 "allwinner,sun8i-h3-deinterlace";
1205 reg = <0x01e00000 0x20000>;
1206 clocks = <&ccu CLK_BUS_DEINTERLACE>,
1207 <&ccu CLK_DEINTERLACE>,
1208 <&ccu CLK_DRAM_DEINTERLACE>;
1209 clock-names = "bus", "mod", "ram";
1210 resets = <&ccu RST_BUS_DEINTERLACE>;
1211 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
1212 interconnects = <&mbus 9>;
1213 interconnect-names = "dma-mem";
1214 };
1215
Andre Przywara9607c052018-10-29 00:56:47 +00001216 hdmi: hdmi@1ee0000 {
1217 compatible = "allwinner,sun50i-a64-dw-hdmi",
1218 "allwinner,sun8i-a83t-dw-hdmi";
1219 reg = <0x01ee0000 0x10000>;
1220 reg-io-width = <1>;
1221 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
1222 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
Andre Przywara5eb4bbe2022-09-11 00:04:41 +01001223 <&ccu CLK_HDMI>, <&rtc CLK_OSC32K>;
Samuel Holland43729b72022-04-27 15:31:30 -05001224 clock-names = "iahb", "isfr", "tmds", "cec";
Andre Przywara9607c052018-10-29 00:56:47 +00001225 resets = <&ccu RST_BUS_HDMI1>;
1226 reset-names = "ctrl";
1227 phys = <&hdmi_phy>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001228 phy-names = "phy";
Andre Przywara9607c052018-10-29 00:56:47 +00001229 status = "disabled";
1230
1231 ports {
1232 #address-cells = <1>;
1233 #size-cells = <0>;
1234
1235 hdmi_in: port@0 {
1236 reg = <0>;
1237
1238 hdmi_in_tcon1: endpoint {
1239 remote-endpoint = <&tcon1_out_hdmi>;
1240 };
1241 };
1242
1243 hdmi_out: port@1 {
1244 reg = <1>;
1245 };
1246 };
1247 };
1248
1249 hdmi_phy: hdmi-phy@1ef0000 {
1250 compatible = "allwinner,sun50i-a64-hdmi-phy";
1251 reg = <0x01ef0000 0x10000>;
1252 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
Samuel Holland26bc4e72020-10-24 10:21:55 -05001253 <&ccu CLK_PLL_VIDEO0>;
Andre Przywara9607c052018-10-29 00:56:47 +00001254 clock-names = "bus", "mod", "pll-0";
1255 resets = <&ccu RST_BUS_HDMI0>;
1256 reset-names = "phy";
1257 #phy-cells = <0>;
1258 };
1259
Andre Przywara8d65e613e2017-05-24 10:34:56 +01001260 rtc: rtc@1f00000 {
Samuel Holland26bc4e72020-10-24 10:21:55 -05001261 compatible = "allwinner,sun50i-a64-rtc",
1262 "allwinner,sun8i-h3-rtc";
1263 reg = <0x01f00000 0x400>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +01001264 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
1265 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
Samuel Holland26bc4e72020-10-24 10:21:55 -05001266 clock-output-names = "osc32k", "osc32k-out", "iosc";
Andre Przywara9607c052018-10-29 00:56:47 +00001267 clocks = <&osc32k>;
1268 #clock-cells = <1>;
Amit Singh Tomarbd732d02016-10-21 02:24:30 +01001269 };
1270
Andre Przywarae187d582018-07-04 14:16:34 +01001271 r_intc: interrupt-controller@1f00c00 {
1272 compatible = "allwinner,sun50i-a64-r-intc",
1273 "allwinner,sun6i-a31-r-intc";
1274 interrupt-controller;
1275 #interrupt-cells = <2>;
1276 reg = <0x01f00c00 0x400>;
1277 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1278 };
1279
Andre Przywara8d65e613e2017-05-24 10:34:56 +01001280 r_ccu: clock@1f01400 {
1281 compatible = "allwinner,sun50i-a64-r-ccu";
1282 reg = <0x01f01400 0x100>;
Andre Przywara5eb4bbe2022-09-11 00:04:41 +01001283 clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
Samuel Holland26bc4e72020-10-24 10:21:55 -05001284 <&ccu CLK_PLL_PERIPH0>;
Andre Przywarae187d582018-07-04 14:16:34 +01001285 clock-names = "hosc", "losc", "iosc", "pll-periph";
Andre Przywara8d65e613e2017-05-24 10:34:56 +01001286 #clock-cells = <1>;
1287 #reset-cells = <1>;
Amit Singh Tomarbd732d02016-10-21 02:24:30 +01001288 };
1289
Samuel Holland26bc4e72020-10-24 10:21:55 -05001290 codec_analog: codec-analog@1f015c0 {
1291 compatible = "allwinner,sun50i-a64-codec-analog";
1292 reg = <0x01f015c0 0x4>;
1293 status = "disabled";
1294 };
1295
Andre Przywara9607c052018-10-29 00:56:47 +00001296 r_i2c: i2c@1f02400 {
1297 compatible = "allwinner,sun50i-a64-i2c",
1298 "allwinner,sun6i-a31-i2c";
1299 reg = <0x01f02400 0x400>;
1300 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1301 clocks = <&r_ccu CLK_APB0_I2C>;
1302 resets = <&r_ccu RST_APB0_I2C>;
1303 status = "disabled";
1304 #address-cells = <1>;
1305 #size-cells = <0>;
1306 };
1307
Samuel Holland26bc4e72020-10-24 10:21:55 -05001308 r_ir: ir@1f02000 {
1309 compatible = "allwinner,sun50i-a64-ir",
1310 "allwinner,sun6i-a31-ir";
1311 reg = <0x01f02000 0x400>;
1312 clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>;
1313 clock-names = "apb", "ir";
1314 resets = <&r_ccu RST_APB0_IR>;
1315 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1316 pinctrl-names = "default";
1317 pinctrl-0 = <&r_ir_rx_pin>;
1318 status = "disabled";
1319 };
1320
Andre Przywara9607c052018-10-29 00:56:47 +00001321 r_pwm: pwm@1f03800 {
1322 compatible = "allwinner,sun50i-a64-pwm",
1323 "allwinner,sun5i-a13-pwm";
1324 reg = <0x01f03800 0x400>;
1325 clocks = <&osc24M>;
1326 pinctrl-names = "default";
1327 pinctrl-0 = <&r_pwm_pin>;
1328 #pwm-cells = <3>;
1329 status = "disabled";
1330 };
1331
Andre Przywarae187d582018-07-04 14:16:34 +01001332 r_pio: pinctrl@1f02c00 {
Andre Przywara8d65e613e2017-05-24 10:34:56 +01001333 compatible = "allwinner,sun50i-a64-r-pinctrl";
1334 reg = <0x01f02c00 0x400>;
1335 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywarae187d582018-07-04 14:16:34 +01001336 clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;
Andre Przywara8d65e613e2017-05-24 10:34:56 +01001337 clock-names = "apb", "hosc", "losc";
1338 gpio-controller;
1339 #gpio-cells = <3>;
1340 interrupt-controller;
1341 #interrupt-cells = <3>;
Andre Przywarae187d582018-07-04 14:16:34 +01001342
Andre Przywara9607c052018-10-29 00:56:47 +00001343 r_i2c_pl89_pins: r-i2c-pl89-pins {
1344 pins = "PL8", "PL9";
1345 function = "s_i2c";
1346 };
1347
Samuel Holland26bc4e72020-10-24 10:21:55 -05001348 r_ir_rx_pin: r-ir-rx-pin {
1349 pins = "PL11";
1350 function = "s_cir_rx";
1351 };
1352
1353 r_pwm_pin: r-pwm-pin {
Andre Przywara9607c052018-10-29 00:56:47 +00001354 pins = "PL10";
1355 function = "s_pwm";
1356 };
1357
Samuel Holland26bc4e72020-10-24 10:21:55 -05001358 r_rsb_pins: r-rsb-pins {
Andre Przywarae187d582018-07-04 14:16:34 +01001359 pins = "PL0", "PL1";
1360 function = "s_rsb";
1361 };
1362 };
1363
1364 r_rsb: rsb@1f03400 {
1365 compatible = "allwinner,sun8i-a23-rsb";
1366 reg = <0x01f03400 0x400>;
1367 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
1368 clocks = <&r_ccu 6>;
1369 clock-frequency = <3000000>;
1370 resets = <&r_ccu 2>;
1371 pinctrl-names = "default";
1372 pinctrl-0 = <&r_rsb_pins>;
1373 status = "disabled";
1374 #address-cells = <1>;
1375 #size-cells = <0>;
1376 };
Siarhei Siamashka26c50fb2016-03-29 17:29:10 +02001377 };
1378};