blob: a117f479ae555ceda3468d6a76639a805e404644 [file] [log] [blame]
Icenowy Zheng0c01b962018-07-21 16:20:31 +08001// SPDX-License-Identifier: (GPL-2.0+ or MIT)
2/*
3 * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
4 */
5
6#include <dt-bindings/interrupt-controller/arm-gic.h>
7#include <dt-bindings/clock/sun50i-h6-ccu.h>
8#include <dt-bindings/clock/sun50i-h6-r-ccu.h>
Jagan Teki7d412cd2019-04-14 22:22:21 +05309#include <dt-bindings/clock/sun8i-de2.h>
10#include <dt-bindings/clock/sun8i-tcon-top.h>
Icenowy Zheng0c01b962018-07-21 16:20:31 +080011#include <dt-bindings/reset/sun50i-h6-ccu.h>
12#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
Jagan Teki7d412cd2019-04-14 22:22:21 +053013#include <dt-bindings/reset/sun8i-de2.h>
Icenowy Zheng0c01b962018-07-21 16:20:31 +080014
15/ {
16 interrupt-parent = <&gic>;
17 #address-cells = <1>;
18 #size-cells = <1>;
19
20 cpus {
21 #address-cells = <1>;
22 #size-cells = <0>;
23
24 cpu0: cpu@0 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053025 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080026 device_type = "cpu";
27 reg = <0>;
28 enable-method = "psci";
29 };
30
31 cpu1: cpu@1 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053032 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080033 device_type = "cpu";
34 reg = <1>;
35 enable-method = "psci";
36 };
37
38 cpu2: cpu@2 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053039 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080040 device_type = "cpu";
41 reg = <2>;
42 enable-method = "psci";
43 };
44
45 cpu3: cpu@3 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053046 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080047 device_type = "cpu";
48 reg = <3>;
49 enable-method = "psci";
50 };
51 };
52
Jagan Teki7d412cd2019-04-14 22:22:21 +053053 de: display-engine {
54 compatible = "allwinner,sun50i-h6-display-engine";
55 allwinner,pipelines = <&mixer0>;
56 status = "disabled";
57 };
58
Icenowy Zheng0c01b962018-07-21 16:20:31 +080059 iosc: internal-osc-clk {
60 #clock-cells = <0>;
61 compatible = "fixed-clock";
62 clock-frequency = <16000000>;
63 clock-accuracy = <300000000>;
64 clock-output-names = "iosc";
65 };
66
67 osc24M: osc24M_clk {
68 #clock-cells = <0>;
69 compatible = "fixed-clock";
70 clock-frequency = <24000000>;
71 clock-output-names = "osc24M";
72 };
73
74 osc32k: osc32k_clk {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <32768>;
78 clock-output-names = "osc32k";
79 };
80
81 psci {
82 compatible = "arm,psci-0.2";
83 method = "smc";
84 };
85
86 timer {
87 compatible = "arm,armv8-timer";
88 interrupts = <GIC_PPI 13
89 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
90 <GIC_PPI 14
91 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
92 <GIC_PPI 11
93 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
94 <GIC_PPI 10
95 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
96 };
97
98 soc {
99 compatible = "simple-bus";
100 #address-cells = <1>;
101 #size-cells = <1>;
102 ranges;
103
Clément Péron725089c2019-08-25 18:04:18 +0200104 bus@1000000 {
Jagan Teki7d412cd2019-04-14 22:22:21 +0530105 compatible = "allwinner,sun50i-h6-de3",
106 "allwinner,sun50i-a64-de2";
107 reg = <0x1000000 0x400000>;
108 allwinner,sram = <&de2_sram 1>;
109 #address-cells = <1>;
110 #size-cells = <1>;
111 ranges = <0 0x1000000 0x400000>;
112
113 display_clocks: clock@0 {
114 compatible = "allwinner,sun50i-h6-de3-clk";
115 reg = <0x0 0x10000>;
116 clocks = <&ccu CLK_DE>,
117 <&ccu CLK_BUS_DE>;
118 clock-names = "mod",
119 "bus";
120 resets = <&ccu RST_BUS_DE>;
121 #clock-cells = <1>;
122 #reset-cells = <1>;
123 };
124
125 mixer0: mixer@100000 {
126 compatible = "allwinner,sun50i-h6-de3-mixer-0";
127 reg = <0x100000 0x100000>;
128 clocks = <&display_clocks CLK_BUS_MIXER0>,
129 <&display_clocks CLK_MIXER0>;
130 clock-names = "bus",
131 "mod";
132 resets = <&display_clocks RST_MIXER0>;
133
134 ports {
135 #address-cells = <1>;
136 #size-cells = <0>;
137
138 mixer0_out: port@1 {
139 reg = <1>;
140
141 mixer0_out_tcon_top_mixer0: endpoint {
142 remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
143 };
144 };
145 };
146 };
147 };
148
149 video-codec@1c0e000 {
150 compatible = "allwinner,sun50i-h6-video-engine";
151 reg = <0x01c0e000 0x2000>;
152 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
153 <&ccu CLK_MBUS_VE>;
154 clock-names = "ahb", "mod", "ram";
155 resets = <&ccu RST_BUS_VE>;
156 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
157 allwinner,sram = <&ve_sram 1>;
158 };
159
160 syscon: syscon@3000000 {
161 compatible = "allwinner,sun50i-h6-system-control",
162 "allwinner,sun50i-a64-system-control";
163 reg = <0x03000000 0x1000>;
164 #address-cells = <1>;
165 #size-cells = <1>;
166 ranges;
167
168 sram_c: sram@28000 {
169 compatible = "mmio-sram";
170 reg = <0x00028000 0x1e000>;
171 #address-cells = <1>;
172 #size-cells = <1>;
173 ranges = <0 0x00028000 0x1e000>;
174
175 de2_sram: sram-section@0 {
176 compatible = "allwinner,sun50i-h6-sram-c",
177 "allwinner,sun50i-a64-sram-c";
178 reg = <0x0000 0x1e000>;
179 };
180 };
181
182 sram_c1: sram@1a00000 {
183 compatible = "mmio-sram";
184 reg = <0x01a00000 0x200000>;
185 #address-cells = <1>;
186 #size-cells = <1>;
187 ranges = <0 0x01a00000 0x200000>;
188
189 ve_sram: sram-section@0 {
190 compatible = "allwinner,sun50i-h6-sram-c1",
191 "allwinner,sun4i-a10-sram-c1";
192 reg = <0x000000 0x200000>;
193 };
194 };
195 };
196
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800197 ccu: clock@3001000 {
198 compatible = "allwinner,sun50i-h6-ccu";
199 reg = <0x03001000 0x1000>;
200 clocks = <&osc24M>, <&osc32k>, <&iosc>;
201 clock-names = "hosc", "losc", "iosc";
202 #clock-cells = <1>;
203 #reset-cells = <1>;
204 };
205
Clément Péron725089c2019-08-25 18:04:18 +0200206 dma: dma-controller@3002000 {
207 compatible = "allwinner,sun50i-h6-dma";
208 reg = <0x03002000 0x1000>;
209 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
210 clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
211 clock-names = "bus", "mbus";
212 dma-channels = <16>;
213 dma-requests = <46>;
214 resets = <&ccu RST_BUS_DMA>;
215 #dma-cells = <1>;
216 };
217
Jagan Teki7d412cd2019-04-14 22:22:21 +0530218 sid: sid@3006000 {
219 compatible = "allwinner,sun50i-h6-sid";
220 reg = <0x03006000 0x400>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800221 };
222
Clément Péron725089c2019-08-25 18:04:18 +0200223 watchdog: watchdog@30090a0 {
224 compatible = "allwinner,sun50i-h6-wdt",
225 "allwinner,sun6i-a31-wdt";
226 reg = <0x030090a0 0x20>;
227 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
228 /* Broken on some H6 boards */
229 status = "disabled";
230 };
231
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800232 pio: pinctrl@300b000 {
233 compatible = "allwinner,sun50i-h6-pinctrl";
234 reg = <0x0300b000 0x400>;
235 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
236 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
237 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
238 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
239 clocks = <&ccu CLK_APB1>, <&osc24M>, <&osc32k>;
240 clock-names = "apb", "hosc", "losc";
241 gpio-controller;
242 #gpio-cells = <3>;
243 interrupt-controller;
244 #interrupt-cells = <3>;
245
Jagan Teki7d412cd2019-04-14 22:22:21 +0530246 ext_rgmii_pins: rgmii-pins {
247 pins = "PD0", "PD1", "PD2", "PD3", "PD4",
248 "PD5", "PD7", "PD8", "PD9", "PD10",
249 "PD11", "PD12", "PD13", "PD19", "PD20";
250 function = "emac";
251 drive-strength = <40>;
252 };
253
254 hdmi_pins: hdmi-pins {
255 pins = "PH8", "PH9", "PH10";
256 function = "hdmi";
257 };
258
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800259 mmc0_pins: mmc0-pins {
260 pins = "PF0", "PF1", "PF2", "PF3",
261 "PF4", "PF5";
262 function = "mmc0";
263 drive-strength = <30>;
264 bias-pull-up;
265 };
266
Clément Péron725089c2019-08-25 18:04:18 +0200267 /*
268 * /omit-if-no-ref/ isn't supported by U-boot
269 * keep this comment to avoid bad sync with Linux
270 */
271 mmc1_pins: mmc1-pins {
272 pins = "PG0", "PG1", "PG2", "PG3",
273 "PG4", "PG5";
274 function = "mmc1";
275 drive-strength = <30>;
276 bias-pull-up;
277 };
278
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800279 mmc2_pins: mmc2-pins {
280 pins = "PC1", "PC4", "PC5", "PC6",
281 "PC7", "PC8", "PC9", "PC10",
282 "PC11", "PC12", "PC13", "PC14";
283 function = "mmc2";
284 drive-strength = <30>;
285 bias-pull-up;
286 };
287
Jagan Teki7d412cd2019-04-14 22:22:21 +0530288 uart0_ph_pins: uart0-ph-pins {
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800289 pins = "PH0", "PH1";
290 function = "uart0";
291 };
292 };
293
Jagan Teki7d412cd2019-04-14 22:22:21 +0530294 gic: interrupt-controller@3021000 {
295 compatible = "arm,gic-400";
296 reg = <0x03021000 0x1000>,
297 <0x03022000 0x2000>,
298 <0x03024000 0x2000>,
299 <0x03026000 0x2000>;
300 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
301 interrupt-controller;
302 #interrupt-cells = <3>;
303 };
304
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800305 mmc0: mmc@4020000 {
306 compatible = "allwinner,sun50i-h6-mmc",
307 "allwinner,sun50i-a64-mmc";
308 reg = <0x04020000 0x1000>;
309 clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
310 clock-names = "ahb", "mmc";
311 resets = <&ccu RST_BUS_MMC0>;
312 reset-names = "ahb";
313 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530314 pinctrl-names = "default";
315 pinctrl-0 = <&mmc0_pins>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800316 status = "disabled";
317 #address-cells = <1>;
318 #size-cells = <0>;
319 };
320
321 mmc1: mmc@4021000 {
322 compatible = "allwinner,sun50i-h6-mmc",
323 "allwinner,sun50i-a64-mmc";
324 reg = <0x04021000 0x1000>;
325 clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
326 clock-names = "ahb", "mmc";
327 resets = <&ccu RST_BUS_MMC1>;
328 reset-names = "ahb";
329 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
Clément Péron725089c2019-08-25 18:04:18 +0200330 pinctrl-names = "default";
331 pinctrl-0 = <&mmc1_pins>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800332 status = "disabled";
333 #address-cells = <1>;
334 #size-cells = <0>;
335 };
336
337 mmc2: mmc@4022000 {
338 compatible = "allwinner,sun50i-h6-emmc",
339 "allwinner,sun50i-a64-emmc";
340 reg = <0x04022000 0x1000>;
341 clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
342 clock-names = "ahb", "mmc";
343 resets = <&ccu RST_BUS_MMC2>;
344 reset-names = "ahb";
345 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530346 pinctrl-names = "default";
347 pinctrl-0 = <&mmc2_pins>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800348 status = "disabled";
349 #address-cells = <1>;
350 #size-cells = <0>;
351 };
352
353 uart0: serial@5000000 {
354 compatible = "snps,dw-apb-uart";
355 reg = <0x05000000 0x400>;
356 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
357 reg-shift = <2>;
358 reg-io-width = <4>;
359 clocks = <&ccu CLK_BUS_UART0>;
360 resets = <&ccu RST_BUS_UART0>;
361 status = "disabled";
362 };
363
364 uart1: serial@5000400 {
365 compatible = "snps,dw-apb-uart";
366 reg = <0x05000400 0x400>;
367 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
368 reg-shift = <2>;
369 reg-io-width = <4>;
370 clocks = <&ccu CLK_BUS_UART1>;
371 resets = <&ccu RST_BUS_UART1>;
372 status = "disabled";
373 };
374
375 uart2: serial@5000800 {
376 compatible = "snps,dw-apb-uart";
377 reg = <0x05000800 0x400>;
378 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
379 reg-shift = <2>;
380 reg-io-width = <4>;
381 clocks = <&ccu CLK_BUS_UART2>;
382 resets = <&ccu RST_BUS_UART2>;
383 status = "disabled";
384 };
385
386 uart3: serial@5000c00 {
387 compatible = "snps,dw-apb-uart";
388 reg = <0x05000c00 0x400>;
389 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
390 reg-shift = <2>;
391 reg-io-width = <4>;
392 clocks = <&ccu CLK_BUS_UART3>;
393 resets = <&ccu RST_BUS_UART3>;
394 status = "disabled";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530395 };
396
397 emac: ethernet@5020000 {
398 compatible = "allwinner,sun50i-h6-emac",
399 "allwinner,sun50i-a64-emac";
400 syscon = <&syscon>;
401 reg = <0x05020000 0x10000>;
402 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
403 interrupt-names = "macirq";
404 resets = <&ccu RST_BUS_EMAC>;
405 reset-names = "stmmaceth";
406 clocks = <&ccu CLK_BUS_EMAC>;
407 clock-names = "stmmaceth";
408 status = "disabled";
409
410 mdio: mdio {
411 compatible = "snps,dwmac-mdio";
412 #address-cells = <1>;
413 #size-cells = <0>;
414 };
415 };
416
417 usb2otg: usb@5100000 {
418 compatible = "allwinner,sun50i-h6-musb",
419 "allwinner,sun8i-a33-musb";
420 reg = <0x05100000 0x0400>;
421 clocks = <&ccu CLK_BUS_OTG>;
422 resets = <&ccu RST_BUS_OTG>;
423 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
424 interrupt-names = "mc";
425 phys = <&usb2phy 0>;
426 phy-names = "usb";
427 extcon = <&usb2phy 0>;
428 status = "disabled";
429 };
430
431 usb2phy: phy@5100400 {
432 compatible = "allwinner,sun50i-h6-usb-phy";
433 reg = <0x05100400 0x24>,
434 <0x05101800 0x4>,
435 <0x05311800 0x4>;
436 reg-names = "phy_ctrl",
437 "pmu0",
438 "pmu3";
439 clocks = <&ccu CLK_USB_PHY0>,
440 <&ccu CLK_USB_PHY3>;
441 clock-names = "usb0_phy",
442 "usb3_phy";
443 resets = <&ccu RST_USB_PHY0>,
444 <&ccu RST_USB_PHY3>;
445 reset-names = "usb0_reset",
446 "usb3_reset";
447 status = "disabled";
448 #phy-cells = <1>;
449 };
450
451 ehci0: usb@5101000 {
452 compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
453 reg = <0x05101000 0x100>;
454 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
455 clocks = <&ccu CLK_BUS_OHCI0>,
456 <&ccu CLK_BUS_EHCI0>,
457 <&ccu CLK_USB_OHCI0>;
458 resets = <&ccu RST_BUS_OHCI0>,
459 <&ccu RST_BUS_EHCI0>;
460 status = "disabled";
461 };
462
463 ohci0: usb@5101400 {
464 compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
465 reg = <0x05101400 0x100>;
466 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
467 clocks = <&ccu CLK_BUS_OHCI0>,
468 <&ccu CLK_USB_OHCI0>;
469 resets = <&ccu RST_BUS_OHCI0>;
470 status = "disabled";
471 };
472
473 ehci3: usb@5311000 {
474 compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
475 reg = <0x05311000 0x100>;
476 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
477 clocks = <&ccu CLK_BUS_OHCI3>,
478 <&ccu CLK_BUS_EHCI3>,
479 <&ccu CLK_USB_OHCI3>;
480 resets = <&ccu RST_BUS_OHCI3>,
481 <&ccu RST_BUS_EHCI3>;
482 phys = <&usb2phy 3>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530483 status = "disabled";
484 };
485
486 ohci3: usb@5311400 {
487 compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
488 reg = <0x05311400 0x100>;
489 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
490 clocks = <&ccu CLK_BUS_OHCI3>,
491 <&ccu CLK_USB_OHCI3>;
492 resets = <&ccu RST_BUS_OHCI3>;
493 phys = <&usb2phy 3>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530494 status = "disabled";
495 };
496
497 hdmi: hdmi@6000000 {
498 compatible = "allwinner,sun50i-h6-dw-hdmi";
499 reg = <0x06000000 0x10000>;
500 reg-io-width = <1>;
501 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
502 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
503 <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>,
504 <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>;
505 clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
506 "hdcp-bus";
507 resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>;
508 reset-names = "ctrl", "hdcp";
509 phys = <&hdmi_phy>;
510 phy-names = "hdmi-phy";
511 pinctrl-names = "default";
512 pinctrl-0 = <&hdmi_pins>;
513 status = "disabled";
514
515 ports {
516 #address-cells = <1>;
517 #size-cells = <0>;
518
519 hdmi_in: port@0 {
520 reg = <0>;
521
522 hdmi_in_tcon_top: endpoint {
523 remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
524 };
525 };
526
527 hdmi_out: port@1 {
528 reg = <1>;
529 };
530 };
531 };
532
533 hdmi_phy: hdmi-phy@6010000 {
534 compatible = "allwinner,sun50i-h6-hdmi-phy";
535 reg = <0x06010000 0x10000>;
536 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>;
537 clock-names = "bus", "mod";
538 resets = <&ccu RST_BUS_HDMI>;
539 reset-names = "phy";
540 #phy-cells = <0>;
541 };
542
543 tcon_top: tcon-top@6510000 {
544 compatible = "allwinner,sun50i-h6-tcon-top";
545 reg = <0x06510000 0x1000>;
546 clocks = <&ccu CLK_BUS_TCON_TOP>,
547 <&ccu CLK_TCON_TV0>;
548 clock-names = "bus",
549 "tcon-tv0";
550 clock-output-names = "tcon-top-tv0";
551 resets = <&ccu RST_BUS_TCON_TOP>;
552 reset-names = "rst";
553 #clock-cells = <1>;
554
555 ports {
556 #address-cells = <1>;
557 #size-cells = <0>;
558
559 tcon_top_mixer0_in: port@0 {
560 #address-cells = <1>;
561 #size-cells = <0>;
562 reg = <0>;
563
564 tcon_top_mixer0_in_mixer0: endpoint@0 {
565 reg = <0>;
566 remote-endpoint = <&mixer0_out_tcon_top_mixer0>;
567 };
568 };
569
570 tcon_top_mixer0_out: port@1 {
571 #address-cells = <1>;
572 #size-cells = <0>;
573 reg = <1>;
574
575 tcon_top_mixer0_out_tcon_tv: endpoint@2 {
576 reg = <2>;
577 remote-endpoint = <&tcon_tv_in_tcon_top_mixer0>;
578 };
579 };
580
581 tcon_top_hdmi_in: port@4 {
582 #address-cells = <1>;
583 #size-cells = <0>;
584 reg = <4>;
585
586 tcon_top_hdmi_in_tcon_tv: endpoint@0 {
587 reg = <0>;
588 remote-endpoint = <&tcon_tv_out_tcon_top>;
589 };
590 };
591
592 tcon_top_hdmi_out: port@5 {
593 reg = <5>;
594
595 tcon_top_hdmi_out_hdmi: endpoint {
596 remote-endpoint = <&hdmi_in_tcon_top>;
597 };
598 };
599 };
600 };
601
602 tcon_tv: lcd-controller@6515000 {
603 compatible = "allwinner,sun50i-h6-tcon-tv",
604 "allwinner,sun8i-r40-tcon-tv";
605 reg = <0x06515000 0x1000>;
606 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
607 clocks = <&ccu CLK_BUS_TCON_TV0>,
608 <&tcon_top CLK_TCON_TOP_TV0>;
609 clock-names = "ahb",
610 "tcon-ch1";
611 resets = <&ccu RST_BUS_TCON_TV0>;
612 reset-names = "lcd";
613
614 ports {
615 #address-cells = <1>;
616 #size-cells = <0>;
617
618 tcon_tv_in: port@0 {
619 reg = <0>;
620
621 tcon_tv_in_tcon_top_mixer0: endpoint {
622 remote-endpoint = <&tcon_top_mixer0_out_tcon_tv>;
623 };
624 };
625
626 tcon_tv_out: port@1 {
627 #address-cells = <1>;
628 #size-cells = <0>;
629 reg = <1>;
630
631 tcon_tv_out_tcon_top: endpoint@1 {
632 reg = <1>;
633 remote-endpoint = <&tcon_top_hdmi_in_tcon_tv>;
634 };
635 };
636 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800637 };
638
639 r_ccu: clock@7010000 {
640 compatible = "allwinner,sun50i-h6-r-ccu";
641 reg = <0x07010000 0x400>;
642 clocks = <&osc24M>, <&osc32k>, <&iosc>,
643 <&ccu CLK_PLL_PERIPH0>;
644 clock-names = "hosc", "losc", "iosc", "pll-periph";
645 #clock-cells = <1>;
646 #reset-cells = <1>;
647 };
648
Clément Péron725089c2019-08-25 18:04:18 +0200649 r_watchdog: watchdog@7020400 {
650 compatible = "allwinner,sun50i-h6-wdt",
651 "allwinner,sun6i-a31-wdt";
652 reg = <0x07020400 0x20>;
653 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
654 };
655
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800656 r_intc: interrupt-controller@7021000 {
657 compatible = "allwinner,sun50i-h6-r-intc",
658 "allwinner,sun6i-a31-r-intc";
659 interrupt-controller;
660 #interrupt-cells = <2>;
661 reg = <0x07021000 0x400>;
662 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
663 };
664
665 r_pio: pinctrl@7022000 {
666 compatible = "allwinner,sun50i-h6-r-pinctrl";
667 reg = <0x07022000 0x400>;
668 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
669 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
670 clocks = <&r_ccu CLK_R_APB1>, <&osc24M>, <&osc32k>;
671 clock-names = "apb", "hosc", "losc";
672 gpio-controller;
673 #gpio-cells = <3>;
674 interrupt-controller;
675 #interrupt-cells = <3>;
676
Jagan Teki7d412cd2019-04-14 22:22:21 +0530677 r_i2c_pins: r-i2c-pins {
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800678 pins = "PL0", "PL1";
679 function = "s_i2c";
680 };
681 };
682
683 r_i2c: i2c@7081400 {
684 compatible = "allwinner,sun6i-a31-i2c";
685 reg = <0x07081400 0x400>;
686 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
687 clocks = <&r_ccu CLK_R_APB2_I2C>;
688 resets = <&r_ccu RST_R_APB2_I2C>;
689 pinctrl-names = "default";
690 pinctrl-0 = <&r_i2c_pins>;
691 status = "disabled";
692 #address-cells = <1>;
693 #size-cells = <0>;
694 };
695 };
696};