blob: afbbfc252697f878ddbef6880380e98abd608d98 [file] [log] [blame]
Jernej Skrabec463304d2021-01-06 18:02:56 +01001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
Icenowy Zheng0c01b962018-07-21 16:20:31 +08003
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/clock/sun50i-h6-ccu.h>
6#include <dt-bindings/clock/sun50i-h6-r-ccu.h>
Andre Przywara5eb4bbe2022-09-11 00:04:41 +01007#include <dt-bindings/clock/sun6i-rtc.h>
Jagan Teki7d412cd2019-04-14 22:22:21 +05308#include <dt-bindings/clock/sun8i-de2.h>
9#include <dt-bindings/clock/sun8i-tcon-top.h>
Icenowy Zheng0c01b962018-07-21 16:20:31 +080010#include <dt-bindings/reset/sun50i-h6-ccu.h>
11#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
Jagan Teki7d412cd2019-04-14 22:22:21 +053012#include <dt-bindings/reset/sun8i-de2.h>
Jernej Skrabec463304d2021-01-06 18:02:56 +010013#include <dt-bindings/thermal/thermal.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";
Jernej Skrabec463304d2021-01-06 18:02:56 +010029 clocks = <&ccu CLK_CPUX>;
30 clock-latency-ns = <244144>; /* 8 32k periods */
31 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080032 };
33
34 cpu1: cpu@1 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053035 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080036 device_type = "cpu";
37 reg = <1>;
38 enable-method = "psci";
Jernej Skrabec463304d2021-01-06 18:02:56 +010039 clocks = <&ccu CLK_CPUX>;
40 clock-latency-ns = <244144>; /* 8 32k periods */
41 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080042 };
43
44 cpu2: cpu@2 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053045 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080046 device_type = "cpu";
47 reg = <2>;
48 enable-method = "psci";
Jernej Skrabec463304d2021-01-06 18:02:56 +010049 clocks = <&ccu CLK_CPUX>;
50 clock-latency-ns = <244144>; /* 8 32k periods */
51 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080052 };
53
54 cpu3: cpu@3 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053055 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080056 device_type = "cpu";
57 reg = <3>;
58 enable-method = "psci";
Jernej Skrabec463304d2021-01-06 18:02:56 +010059 clocks = <&ccu CLK_CPUX>;
60 clock-latency-ns = <244144>; /* 8 32k periods */
61 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080062 };
63 };
64
Jagan Teki7d412cd2019-04-14 22:22:21 +053065 de: display-engine {
66 compatible = "allwinner,sun50i-h6-display-engine";
67 allwinner,pipelines = <&mixer0>;
68 status = "disabled";
69 };
70
Icenowy Zheng0c01b962018-07-21 16:20:31 +080071 osc24M: osc24M_clk {
72 #clock-cells = <0>;
73 compatible = "fixed-clock";
74 clock-frequency = <24000000>;
75 clock-output-names = "osc24M";
76 };
77
Jernej Skrabec463304d2021-01-06 18:02:56 +010078 pmu {
79 compatible = "arm,cortex-a53-pmu";
80 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
81 <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
82 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
83 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
84 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080085 };
86
87 psci {
88 compatible = "arm,psci-0.2";
89 method = "smc";
90 };
91
92 timer {
93 compatible = "arm,armv8-timer";
Jernej Skrabec463304d2021-01-06 18:02:56 +010094 arm,no-tick-in-suspend;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080095 interrupts = <GIC_PPI 13
96 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
97 <GIC_PPI 14
98 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
99 <GIC_PPI 11
100 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
101 <GIC_PPI 10
102 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
103 };
104
105 soc {
106 compatible = "simple-bus";
107 #address-cells = <1>;
108 #size-cells = <1>;
109 ranges;
110
Clément Péron725089c2019-08-25 18:04:18 +0200111 bus@1000000 {
Jagan Teki7d412cd2019-04-14 22:22:21 +0530112 compatible = "allwinner,sun50i-h6-de3",
113 "allwinner,sun50i-a64-de2";
114 reg = <0x1000000 0x400000>;
115 allwinner,sram = <&de2_sram 1>;
116 #address-cells = <1>;
117 #size-cells = <1>;
118 ranges = <0 0x1000000 0x400000>;
119
120 display_clocks: clock@0 {
121 compatible = "allwinner,sun50i-h6-de3-clk";
122 reg = <0x0 0x10000>;
Samuel Holland399a01f2022-04-27 15:31:31 -0500123 clocks = <&ccu CLK_BUS_DE>,
124 <&ccu CLK_DE>;
125 clock-names = "bus",
126 "mod";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530127 resets = <&ccu RST_BUS_DE>;
128 #clock-cells = <1>;
129 #reset-cells = <1>;
130 };
131
132 mixer0: mixer@100000 {
133 compatible = "allwinner,sun50i-h6-de3-mixer-0";
134 reg = <0x100000 0x100000>;
135 clocks = <&display_clocks CLK_BUS_MIXER0>,
136 <&display_clocks CLK_MIXER0>;
137 clock-names = "bus",
138 "mod";
139 resets = <&display_clocks RST_MIXER0>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100140 iommus = <&iommu 0>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530141
142 ports {
143 #address-cells = <1>;
144 #size-cells = <0>;
145
146 mixer0_out: port@1 {
147 reg = <1>;
148
149 mixer0_out_tcon_top_mixer0: endpoint {
150 remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
151 };
152 };
153 };
154 };
155 };
156
Samuel Holland399a01f2022-04-27 15:31:31 -0500157 video-codec-g2@1c00000 {
158 compatible = "allwinner,sun50i-h6-vpu-g2";
159 reg = <0x01c00000 0x1000>;
160 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
161 clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
162 clock-names = "bus", "mod";
163 resets = <&ccu RST_BUS_VP9>;
164 };
165
Jagan Teki7d412cd2019-04-14 22:22:21 +0530166 video-codec@1c0e000 {
167 compatible = "allwinner,sun50i-h6-video-engine";
168 reg = <0x01c0e000 0x2000>;
169 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
170 <&ccu CLK_MBUS_VE>;
171 clock-names = "ahb", "mod", "ram";
172 resets = <&ccu RST_BUS_VE>;
173 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
174 allwinner,sram = <&ve_sram 1>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100175 iommus = <&iommu 3>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530176 };
177
Jernej Skrabec463304d2021-01-06 18:02:56 +0100178 gpu: gpu@1800000 {
179 compatible = "allwinner,sun50i-h6-mali",
180 "arm,mali-t720";
181 reg = <0x01800000 0x4000>;
182 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
183 <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
184 <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
185 interrupt-names = "job", "mmu", "gpu";
186 clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>;
187 clock-names = "core", "bus";
188 resets = <&ccu RST_BUS_GPU>;
189 status = "disabled";
190 };
191
192 crypto: crypto@1904000 {
193 compatible = "allwinner,sun50i-h6-crypto";
194 reg = <0x01904000 0x1000>;
195 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
196 clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>, <&ccu CLK_MBUS_CE>;
197 clock-names = "bus", "mod", "ram";
198 resets = <&ccu RST_BUS_CE>;
199 };
200
Jagan Teki7d412cd2019-04-14 22:22:21 +0530201 syscon: syscon@3000000 {
202 compatible = "allwinner,sun50i-h6-system-control",
203 "allwinner,sun50i-a64-system-control";
204 reg = <0x03000000 0x1000>;
205 #address-cells = <1>;
206 #size-cells = <1>;
207 ranges;
208
209 sram_c: sram@28000 {
210 compatible = "mmio-sram";
211 reg = <0x00028000 0x1e000>;
212 #address-cells = <1>;
213 #size-cells = <1>;
214 ranges = <0 0x00028000 0x1e000>;
215
216 de2_sram: sram-section@0 {
217 compatible = "allwinner,sun50i-h6-sram-c",
218 "allwinner,sun50i-a64-sram-c";
219 reg = <0x0000 0x1e000>;
220 };
221 };
222
223 sram_c1: sram@1a00000 {
224 compatible = "mmio-sram";
225 reg = <0x01a00000 0x200000>;
226 #address-cells = <1>;
227 #size-cells = <1>;
228 ranges = <0 0x01a00000 0x200000>;
229
230 ve_sram: sram-section@0 {
231 compatible = "allwinner,sun50i-h6-sram-c1",
232 "allwinner,sun4i-a10-sram-c1";
233 reg = <0x000000 0x200000>;
234 };
235 };
236 };
237
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800238 ccu: clock@3001000 {
239 compatible = "allwinner,sun50i-h6-ccu";
240 reg = <0x03001000 0x1000>;
Andre Przywara5eb4bbe2022-09-11 00:04:41 +0100241 clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800242 clock-names = "hosc", "losc", "iosc";
243 #clock-cells = <1>;
244 #reset-cells = <1>;
245 };
246
Clément Péron725089c2019-08-25 18:04:18 +0200247 dma: dma-controller@3002000 {
248 compatible = "allwinner,sun50i-h6-dma";
249 reg = <0x03002000 0x1000>;
250 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
251 clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
252 clock-names = "bus", "mbus";
253 dma-channels = <16>;
254 dma-requests = <46>;
255 resets = <&ccu RST_BUS_DMA>;
256 #dma-cells = <1>;
257 };
258
Jernej Skrabec463304d2021-01-06 18:02:56 +0100259 msgbox: mailbox@3003000 {
260 compatible = "allwinner,sun50i-h6-msgbox",
261 "allwinner,sun6i-a31-msgbox";
262 reg = <0x03003000 0x1000>;
263 clocks = <&ccu CLK_BUS_MSGBOX>;
264 resets = <&ccu RST_BUS_MSGBOX>;
265 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
266 #mbox-cells = <1>;
267 };
268
269 sid: efuse@3006000 {
Jagan Teki7d412cd2019-04-14 22:22:21 +0530270 compatible = "allwinner,sun50i-h6-sid";
271 reg = <0x03006000 0x400>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100272 #address-cells = <1>;
273 #size-cells = <1>;
274
275 ths_calibration: thermal-sensor-calibration@14 {
276 reg = <0x14 0x8>;
277 };
278
279 cpu_speed_grade: cpu-speed-grade@1c {
280 reg = <0x1c 0x4>;
281 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800282 };
283
Samuel Holland399a01f2022-04-27 15:31:31 -0500284 timer@3009000 {
285 compatible = "allwinner,sun50i-h6-timer",
286 "allwinner,sun8i-a23-timer";
287 reg = <0x03009000 0xa0>;
288 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
289 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
290 clocks = <&osc24M>;
291 };
292
Clément Péron725089c2019-08-25 18:04:18 +0200293 watchdog: watchdog@30090a0 {
294 compatible = "allwinner,sun50i-h6-wdt",
295 "allwinner,sun6i-a31-wdt";
296 reg = <0x030090a0 0x20>;
297 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100298 clocks = <&osc24M>;
Clément Péron725089c2019-08-25 18:04:18 +0200299 /* Broken on some H6 boards */
300 status = "disabled";
301 };
302
Jernej Skrabec463304d2021-01-06 18:02:56 +0100303 pwm: pwm@300a000 {
304 compatible = "allwinner,sun50i-h6-pwm";
305 reg = <0x0300a000 0x400>;
306 clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
307 clock-names = "mod", "bus";
308 resets = <&ccu RST_BUS_PWM>;
309 #pwm-cells = <3>;
310 status = "disabled";
311 };
312
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800313 pio: pinctrl@300b000 {
314 compatible = "allwinner,sun50i-h6-pinctrl";
315 reg = <0x0300b000 0x400>;
316 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
317 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
318 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
319 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywara5eb4bbe2022-09-11 00:04:41 +0100320 clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800321 clock-names = "apb", "hosc", "losc";
322 gpio-controller;
323 #gpio-cells = <3>;
324 interrupt-controller;
325 #interrupt-cells = <3>;
326
Jagan Teki7d412cd2019-04-14 22:22:21 +0530327 ext_rgmii_pins: rgmii-pins {
328 pins = "PD0", "PD1", "PD2", "PD3", "PD4",
329 "PD5", "PD7", "PD8", "PD9", "PD10",
330 "PD11", "PD12", "PD13", "PD19", "PD20";
331 function = "emac";
332 drive-strength = <40>;
333 };
334
335 hdmi_pins: hdmi-pins {
336 pins = "PH8", "PH9", "PH10";
337 function = "hdmi";
338 };
339
Jernej Skrabec463304d2021-01-06 18:02:56 +0100340 i2c0_pins: i2c0-pins {
341 pins = "PD25", "PD26";
342 function = "i2c0";
343 };
344
345 i2c1_pins: i2c1-pins {
346 pins = "PH5", "PH6";
347 function = "i2c1";
348 };
349
350 i2c2_pins: i2c2-pins {
351 pins = "PD23", "PD24";
352 function = "i2c2";
353 };
354
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800355 mmc0_pins: mmc0-pins {
356 pins = "PF0", "PF1", "PF2", "PF3",
357 "PF4", "PF5";
358 function = "mmc0";
359 drive-strength = <30>;
360 bias-pull-up;
361 };
362
Jernej Skrabec463304d2021-01-06 18:02:56 +0100363 /omit-if-no-ref/
Clément Péron725089c2019-08-25 18:04:18 +0200364 mmc1_pins: mmc1-pins {
365 pins = "PG0", "PG1", "PG2", "PG3",
366 "PG4", "PG5";
367 function = "mmc1";
368 drive-strength = <30>;
369 bias-pull-up;
370 };
371
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800372 mmc2_pins: mmc2-pins {
373 pins = "PC1", "PC4", "PC5", "PC6",
374 "PC7", "PC8", "PC9", "PC10",
375 "PC11", "PC12", "PC13", "PC14";
376 function = "mmc2";
377 drive-strength = <30>;
378 bias-pull-up;
379 };
380
Jernej Skrabec463304d2021-01-06 18:02:56 +0100381 /omit-if-no-ref/
382 spi0_pins: spi0-pins {
383 pins = "PC0", "PC2", "PC3";
384 function = "spi0";
385 };
386
387 /* pin shared with MMC2-CMD (eMMC) */
388 /omit-if-no-ref/
389 spi0_cs_pin: spi0-cs-pin {
390 pins = "PC5";
391 function = "spi0";
392 };
393
394 /omit-if-no-ref/
395 spi1_pins: spi1-pins {
396 pins = "PH4", "PH5", "PH6";
397 function = "spi1";
398 };
399
400 /omit-if-no-ref/
401 spi1_cs_pin: spi1-cs-pin {
402 pins = "PH3";
403 function = "spi1";
404 };
405
406 spdif_tx_pin: spdif-tx-pin {
407 pins = "PH7";
408 function = "spdif";
409 };
410
Jagan Teki7d412cd2019-04-14 22:22:21 +0530411 uart0_ph_pins: uart0-ph-pins {
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800412 pins = "PH0", "PH1";
413 function = "uart0";
414 };
Jernej Skrabec463304d2021-01-06 18:02:56 +0100415
416 uart1_pins: uart1-pins {
417 pins = "PG6", "PG7";
418 function = "uart1";
419 };
420
421 uart1_rts_cts_pins: uart1-rts-cts-pins {
422 pins = "PG8", "PG9";
423 function = "uart1";
424 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800425 };
426
Jagan Teki7d412cd2019-04-14 22:22:21 +0530427 gic: interrupt-controller@3021000 {
428 compatible = "arm,gic-400";
429 reg = <0x03021000 0x1000>,
430 <0x03022000 0x2000>,
431 <0x03024000 0x2000>,
432 <0x03026000 0x2000>;
433 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
434 interrupt-controller;
435 #interrupt-cells = <3>;
436 };
437
Jernej Skrabec463304d2021-01-06 18:02:56 +0100438 iommu: iommu@30f0000 {
439 compatible = "allwinner,sun50i-h6-iommu";
440 reg = <0x030f0000 0x10000>;
441 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
442 clocks = <&ccu CLK_BUS_IOMMU>;
443 resets = <&ccu RST_BUS_IOMMU>;
444 #iommu-cells = <1>;
445 };
446
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800447 mmc0: mmc@4020000 {
448 compatible = "allwinner,sun50i-h6-mmc",
449 "allwinner,sun50i-a64-mmc";
450 reg = <0x04020000 0x1000>;
451 clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
452 clock-names = "ahb", "mmc";
453 resets = <&ccu RST_BUS_MMC0>;
454 reset-names = "ahb";
455 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530456 pinctrl-names = "default";
457 pinctrl-0 = <&mmc0_pins>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100458 max-frequency = <150000000>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800459 status = "disabled";
460 #address-cells = <1>;
461 #size-cells = <0>;
462 };
463
464 mmc1: mmc@4021000 {
465 compatible = "allwinner,sun50i-h6-mmc",
466 "allwinner,sun50i-a64-mmc";
467 reg = <0x04021000 0x1000>;
468 clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
469 clock-names = "ahb", "mmc";
470 resets = <&ccu RST_BUS_MMC1>;
471 reset-names = "ahb";
472 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
Clément Péron725089c2019-08-25 18:04:18 +0200473 pinctrl-names = "default";
474 pinctrl-0 = <&mmc1_pins>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100475 max-frequency = <150000000>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800476 status = "disabled";
477 #address-cells = <1>;
478 #size-cells = <0>;
479 };
480
481 mmc2: mmc@4022000 {
482 compatible = "allwinner,sun50i-h6-emmc",
483 "allwinner,sun50i-a64-emmc";
484 reg = <0x04022000 0x1000>;
485 clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
486 clock-names = "ahb", "mmc";
487 resets = <&ccu RST_BUS_MMC2>;
488 reset-names = "ahb";
489 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530490 pinctrl-names = "default";
491 pinctrl-0 = <&mmc2_pins>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100492 max-frequency = <150000000>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800493 status = "disabled";
494 #address-cells = <1>;
495 #size-cells = <0>;
496 };
497
498 uart0: serial@5000000 {
499 compatible = "snps,dw-apb-uart";
500 reg = <0x05000000 0x400>;
501 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
502 reg-shift = <2>;
503 reg-io-width = <4>;
504 clocks = <&ccu CLK_BUS_UART0>;
505 resets = <&ccu RST_BUS_UART0>;
506 status = "disabled";
507 };
508
509 uart1: serial@5000400 {
510 compatible = "snps,dw-apb-uart";
511 reg = <0x05000400 0x400>;
512 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
513 reg-shift = <2>;
514 reg-io-width = <4>;
515 clocks = <&ccu CLK_BUS_UART1>;
516 resets = <&ccu RST_BUS_UART1>;
517 status = "disabled";
518 };
519
520 uart2: serial@5000800 {
521 compatible = "snps,dw-apb-uart";
522 reg = <0x05000800 0x400>;
523 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
524 reg-shift = <2>;
525 reg-io-width = <4>;
526 clocks = <&ccu CLK_BUS_UART2>;
527 resets = <&ccu RST_BUS_UART2>;
528 status = "disabled";
529 };
530
531 uart3: serial@5000c00 {
532 compatible = "snps,dw-apb-uart";
533 reg = <0x05000c00 0x400>;
534 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
535 reg-shift = <2>;
536 reg-io-width = <4>;
537 clocks = <&ccu CLK_BUS_UART3>;
538 resets = <&ccu RST_BUS_UART3>;
539 status = "disabled";
Jernej Skrabec463304d2021-01-06 18:02:56 +0100540 };
541
542 i2c0: i2c@5002000 {
543 compatible = "allwinner,sun50i-h6-i2c",
544 "allwinner,sun6i-a31-i2c";
545 reg = <0x05002000 0x400>;
546 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
547 clocks = <&ccu CLK_BUS_I2C0>;
548 resets = <&ccu RST_BUS_I2C0>;
549 pinctrl-names = "default";
550 pinctrl-0 = <&i2c0_pins>;
551 status = "disabled";
552 #address-cells = <1>;
553 #size-cells = <0>;
554 };
555
556 i2c1: i2c@5002400 {
557 compatible = "allwinner,sun50i-h6-i2c",
558 "allwinner,sun6i-a31-i2c";
559 reg = <0x05002400 0x400>;
560 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
561 clocks = <&ccu CLK_BUS_I2C1>;
562 resets = <&ccu RST_BUS_I2C1>;
563 pinctrl-names = "default";
564 pinctrl-0 = <&i2c1_pins>;
565 status = "disabled";
566 #address-cells = <1>;
567 #size-cells = <0>;
568 };
569
570 i2c2: i2c@5002800 {
571 compatible = "allwinner,sun50i-h6-i2c",
572 "allwinner,sun6i-a31-i2c";
573 reg = <0x05002800 0x400>;
574 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
575 clocks = <&ccu CLK_BUS_I2C2>;
576 resets = <&ccu RST_BUS_I2C2>;
577 pinctrl-names = "default";
578 pinctrl-0 = <&i2c2_pins>;
579 status = "disabled";
580 #address-cells = <1>;
581 #size-cells = <0>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530582 };
583
Jernej Skrabec463304d2021-01-06 18:02:56 +0100584 spi0: spi@5010000 {
585 compatible = "allwinner,sun50i-h6-spi",
586 "allwinner,sun8i-h3-spi";
587 reg = <0x05010000 0x1000>;
588 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
589 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
590 clock-names = "ahb", "mod";
591 dmas = <&dma 22>, <&dma 22>;
592 dma-names = "rx", "tx";
593 resets = <&ccu RST_BUS_SPI0>;
594 status = "disabled";
595 #address-cells = <1>;
596 #size-cells = <0>;
597 };
598
599 spi1: spi@5011000 {
600 compatible = "allwinner,sun50i-h6-spi",
601 "allwinner,sun8i-h3-spi";
602 reg = <0x05011000 0x1000>;
603 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
604 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
605 clock-names = "ahb", "mod";
606 dmas = <&dma 23>, <&dma 23>;
607 dma-names = "rx", "tx";
608 resets = <&ccu RST_BUS_SPI1>;
609 status = "disabled";
610 #address-cells = <1>;
611 #size-cells = <0>;
612 };
613
Jagan Teki7d412cd2019-04-14 22:22:21 +0530614 emac: ethernet@5020000 {
615 compatible = "allwinner,sun50i-h6-emac",
616 "allwinner,sun50i-a64-emac";
617 syscon = <&syscon>;
618 reg = <0x05020000 0x10000>;
619 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
620 interrupt-names = "macirq";
621 resets = <&ccu RST_BUS_EMAC>;
622 reset-names = "stmmaceth";
623 clocks = <&ccu CLK_BUS_EMAC>;
624 clock-names = "stmmaceth";
625 status = "disabled";
626
627 mdio: mdio {
628 compatible = "snps,dwmac-mdio";
629 #address-cells = <1>;
630 #size-cells = <0>;
631 };
632 };
633
Jernej Skrabec463304d2021-01-06 18:02:56 +0100634 i2s1: i2s@5091000 {
635 #sound-dai-cells = <0>;
636 compatible = "allwinner,sun50i-h6-i2s";
637 reg = <0x05091000 0x1000>;
638 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
639 clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
640 clock-names = "apb", "mod";
641 dmas = <&dma 4>, <&dma 4>;
642 resets = <&ccu RST_BUS_I2S1>;
643 dma-names = "rx", "tx";
644 status = "disabled";
645 };
646
647 spdif: spdif@5093000 {
648 #sound-dai-cells = <0>;
649 compatible = "allwinner,sun50i-h6-spdif";
650 reg = <0x05093000 0x400>;
651 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
652 clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
653 clock-names = "apb", "spdif";
654 resets = <&ccu RST_BUS_SPDIF>;
655 dmas = <&dma 2>;
656 dma-names = "tx";
657 pinctrl-names = "default";
658 pinctrl-0 = <&spdif_tx_pin>;
659 status = "disabled";
660 };
661
Jagan Teki7d412cd2019-04-14 22:22:21 +0530662 usb2otg: usb@5100000 {
663 compatible = "allwinner,sun50i-h6-musb",
664 "allwinner,sun8i-a33-musb";
665 reg = <0x05100000 0x0400>;
666 clocks = <&ccu CLK_BUS_OTG>;
667 resets = <&ccu RST_BUS_OTG>;
668 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
669 interrupt-names = "mc";
670 phys = <&usb2phy 0>;
671 phy-names = "usb";
672 extcon = <&usb2phy 0>;
673 status = "disabled";
674 };
675
676 usb2phy: phy@5100400 {
677 compatible = "allwinner,sun50i-h6-usb-phy";
678 reg = <0x05100400 0x24>,
679 <0x05101800 0x4>,
680 <0x05311800 0x4>;
681 reg-names = "phy_ctrl",
682 "pmu0",
683 "pmu3";
684 clocks = <&ccu CLK_USB_PHY0>,
685 <&ccu CLK_USB_PHY3>;
686 clock-names = "usb0_phy",
687 "usb3_phy";
688 resets = <&ccu RST_USB_PHY0>,
689 <&ccu RST_USB_PHY3>;
690 reset-names = "usb0_reset",
691 "usb3_reset";
692 status = "disabled";
693 #phy-cells = <1>;
694 };
695
696 ehci0: usb@5101000 {
697 compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
698 reg = <0x05101000 0x100>;
699 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
700 clocks = <&ccu CLK_BUS_OHCI0>,
701 <&ccu CLK_BUS_EHCI0>,
702 <&ccu CLK_USB_OHCI0>;
703 resets = <&ccu RST_BUS_OHCI0>,
704 <&ccu RST_BUS_EHCI0>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100705 phys = <&usb2phy 0>;
706 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530707 status = "disabled";
708 };
709
710 ohci0: usb@5101400 {
711 compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
712 reg = <0x05101400 0x100>;
713 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
714 clocks = <&ccu CLK_BUS_OHCI0>,
715 <&ccu CLK_USB_OHCI0>;
716 resets = <&ccu RST_BUS_OHCI0>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100717 phys = <&usb2phy 0>;
718 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530719 status = "disabled";
720 };
721
Jernej Skrabec463304d2021-01-06 18:02:56 +0100722 dwc3: usb@5200000 {
723 compatible = "snps,dwc3";
724 reg = <0x05200000 0x10000>;
725 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
726 clocks = <&ccu CLK_BUS_XHCI>,
727 <&ccu CLK_BUS_XHCI>,
Andre Przywara5eb4bbe2022-09-11 00:04:41 +0100728 <&rtc CLK_OSC32K>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100729 clock-names = "ref", "bus_early", "suspend";
730 resets = <&ccu RST_BUS_XHCI>;
731 /*
732 * The datasheet of the chip doesn't declare the
733 * peripheral function, and there's no boards known
734 * to have a USB Type-B port routed to the port.
735 * In addition, no one has tested the peripheral
736 * function yet.
737 * So set the dr_mode to "host" in the DTSI file.
738 */
739 dr_mode = "host";
740 phys = <&usb3phy>;
741 phy-names = "usb3-phy";
742 status = "disabled";
743 };
744
745 usb3phy: phy@5210000 {
746 compatible = "allwinner,sun50i-h6-usb3-phy";
747 reg = <0x5210000 0x10000>;
748 clocks = <&ccu CLK_USB_PHY1>;
749 resets = <&ccu RST_USB_PHY1>;
750 #phy-cells = <0>;
751 status = "disabled";
752 };
753
Jagan Teki7d412cd2019-04-14 22:22:21 +0530754 ehci3: usb@5311000 {
755 compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
756 reg = <0x05311000 0x100>;
757 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
758 clocks = <&ccu CLK_BUS_OHCI3>,
759 <&ccu CLK_BUS_EHCI3>,
760 <&ccu CLK_USB_OHCI3>;
761 resets = <&ccu RST_BUS_OHCI3>,
762 <&ccu RST_BUS_EHCI3>;
763 phys = <&usb2phy 3>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100764 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530765 status = "disabled";
766 };
767
768 ohci3: usb@5311400 {
769 compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
770 reg = <0x05311400 0x100>;
771 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
772 clocks = <&ccu CLK_BUS_OHCI3>,
773 <&ccu CLK_USB_OHCI3>;
774 resets = <&ccu RST_BUS_OHCI3>;
775 phys = <&usb2phy 3>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100776 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530777 status = "disabled";
778 };
779
780 hdmi: hdmi@6000000 {
781 compatible = "allwinner,sun50i-h6-dw-hdmi";
782 reg = <0x06000000 0x10000>;
783 reg-io-width = <1>;
784 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
785 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
786 <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>,
787 <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>;
788 clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
789 "hdcp-bus";
790 resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>;
791 reset-names = "ctrl", "hdcp";
792 phys = <&hdmi_phy>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100793 phy-names = "phy";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530794 pinctrl-names = "default";
795 pinctrl-0 = <&hdmi_pins>;
796 status = "disabled";
797
798 ports {
799 #address-cells = <1>;
800 #size-cells = <0>;
801
802 hdmi_in: port@0 {
803 reg = <0>;
804
805 hdmi_in_tcon_top: endpoint {
806 remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
807 };
808 };
809
810 hdmi_out: port@1 {
811 reg = <1>;
812 };
813 };
814 };
815
816 hdmi_phy: hdmi-phy@6010000 {
817 compatible = "allwinner,sun50i-h6-hdmi-phy";
818 reg = <0x06010000 0x10000>;
819 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>;
820 clock-names = "bus", "mod";
821 resets = <&ccu RST_BUS_HDMI>;
822 reset-names = "phy";
823 #phy-cells = <0>;
824 };
825
826 tcon_top: tcon-top@6510000 {
827 compatible = "allwinner,sun50i-h6-tcon-top";
828 reg = <0x06510000 0x1000>;
829 clocks = <&ccu CLK_BUS_TCON_TOP>,
830 <&ccu CLK_TCON_TV0>;
831 clock-names = "bus",
832 "tcon-tv0";
833 clock-output-names = "tcon-top-tv0";
834 resets = <&ccu RST_BUS_TCON_TOP>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530835 #clock-cells = <1>;
836
837 ports {
838 #address-cells = <1>;
839 #size-cells = <0>;
840
841 tcon_top_mixer0_in: port@0 {
842 #address-cells = <1>;
843 #size-cells = <0>;
844 reg = <0>;
845
846 tcon_top_mixer0_in_mixer0: endpoint@0 {
847 reg = <0>;
848 remote-endpoint = <&mixer0_out_tcon_top_mixer0>;
849 };
850 };
851
852 tcon_top_mixer0_out: port@1 {
853 #address-cells = <1>;
854 #size-cells = <0>;
855 reg = <1>;
856
857 tcon_top_mixer0_out_tcon_tv: endpoint@2 {
858 reg = <2>;
859 remote-endpoint = <&tcon_tv_in_tcon_top_mixer0>;
860 };
861 };
862
863 tcon_top_hdmi_in: port@4 {
864 #address-cells = <1>;
865 #size-cells = <0>;
866 reg = <4>;
867
868 tcon_top_hdmi_in_tcon_tv: endpoint@0 {
869 reg = <0>;
870 remote-endpoint = <&tcon_tv_out_tcon_top>;
871 };
872 };
873
874 tcon_top_hdmi_out: port@5 {
875 reg = <5>;
876
877 tcon_top_hdmi_out_hdmi: endpoint {
878 remote-endpoint = <&hdmi_in_tcon_top>;
879 };
880 };
881 };
882 };
883
884 tcon_tv: lcd-controller@6515000 {
885 compatible = "allwinner,sun50i-h6-tcon-tv",
886 "allwinner,sun8i-r40-tcon-tv";
887 reg = <0x06515000 0x1000>;
888 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
889 clocks = <&ccu CLK_BUS_TCON_TV0>,
890 <&tcon_top CLK_TCON_TOP_TV0>;
891 clock-names = "ahb",
892 "tcon-ch1";
893 resets = <&ccu RST_BUS_TCON_TV0>;
894 reset-names = "lcd";
895
896 ports {
897 #address-cells = <1>;
898 #size-cells = <0>;
899
900 tcon_tv_in: port@0 {
901 reg = <0>;
902
903 tcon_tv_in_tcon_top_mixer0: endpoint {
904 remote-endpoint = <&tcon_top_mixer0_out_tcon_tv>;
905 };
906 };
907
908 tcon_tv_out: port@1 {
909 #address-cells = <1>;
910 #size-cells = <0>;
911 reg = <1>;
912
913 tcon_tv_out_tcon_top: endpoint@1 {
914 reg = <1>;
915 remote-endpoint = <&tcon_top_hdmi_in_tcon_tv>;
916 };
917 };
918 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800919 };
920
Jernej Skrabec463304d2021-01-06 18:02:56 +0100921 rtc: rtc@7000000 {
922 compatible = "allwinner,sun50i-h6-rtc";
923 reg = <0x07000000 0x400>;
924 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
925 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
926 clock-output-names = "osc32k", "osc32k-out", "iosc";
927 #clock-cells = <1>;
928 };
929
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800930 r_ccu: clock@7010000 {
931 compatible = "allwinner,sun50i-h6-r-ccu";
932 reg = <0x07010000 0x400>;
Andre Przywara5eb4bbe2022-09-11 00:04:41 +0100933 clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800934 <&ccu CLK_PLL_PERIPH0>;
935 clock-names = "hosc", "losc", "iosc", "pll-periph";
936 #clock-cells = <1>;
937 #reset-cells = <1>;
938 };
939
Clément Péron725089c2019-08-25 18:04:18 +0200940 r_watchdog: watchdog@7020400 {
941 compatible = "allwinner,sun50i-h6-wdt",
942 "allwinner,sun6i-a31-wdt";
943 reg = <0x07020400 0x20>;
944 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100945 clocks = <&osc24M>;
Clément Péron725089c2019-08-25 18:04:18 +0200946 };
947
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800948 r_intc: interrupt-controller@7021000 {
949 compatible = "allwinner,sun50i-h6-r-intc",
950 "allwinner,sun6i-a31-r-intc";
951 interrupt-controller;
952 #interrupt-cells = <2>;
953 reg = <0x07021000 0x400>;
954 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
955 };
956
957 r_pio: pinctrl@7022000 {
958 compatible = "allwinner,sun50i-h6-r-pinctrl";
959 reg = <0x07022000 0x400>;
960 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
961 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
Andre Przywara5eb4bbe2022-09-11 00:04:41 +0100962 clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
963 <&rtc CLK_OSC32K>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800964 clock-names = "apb", "hosc", "losc";
965 gpio-controller;
966 #gpio-cells = <3>;
967 interrupt-controller;
968 #interrupt-cells = <3>;
969
Jagan Teki7d412cd2019-04-14 22:22:21 +0530970 r_i2c_pins: r-i2c-pins {
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800971 pins = "PL0", "PL1";
972 function = "s_i2c";
973 };
Jernej Skrabec463304d2021-01-06 18:02:56 +0100974
975 r_ir_rx_pin: r-ir-rx-pin {
976 pins = "PL9";
977 function = "s_cir_rx";
978 };
Andre Przywara787f5a02021-05-25 01:20:25 +0100979
980 r_rsb_pins: r-rsb-pins {
981 pins = "PL0", "PL1";
982 function = "s_rsb";
983 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800984 };
985
Jernej Skrabec463304d2021-01-06 18:02:56 +0100986 r_ir: ir@7040000 {
987 compatible = "allwinner,sun50i-h6-ir",
988 "allwinner,sun6i-a31-ir";
989 reg = <0x07040000 0x400>;
990 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
991 clocks = <&r_ccu CLK_R_APB1_IR>,
992 <&r_ccu CLK_IR>;
993 clock-names = "apb", "ir";
994 resets = <&r_ccu RST_R_APB1_IR>;
995 pinctrl-names = "default";
996 pinctrl-0 = <&r_ir_rx_pin>;
997 status = "disabled";
998 };
999
Icenowy Zheng0c01b962018-07-21 16:20:31 +08001000 r_i2c: i2c@7081400 {
Jernej Skrabec463304d2021-01-06 18:02:56 +01001001 compatible = "allwinner,sun50i-h6-i2c",
1002 "allwinner,sun6i-a31-i2c";
Icenowy Zheng0c01b962018-07-21 16:20:31 +08001003 reg = <0x07081400 0x400>;
1004 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1005 clocks = <&r_ccu CLK_R_APB2_I2C>;
1006 resets = <&r_ccu RST_R_APB2_I2C>;
1007 pinctrl-names = "default";
1008 pinctrl-0 = <&r_i2c_pins>;
1009 status = "disabled";
1010 #address-cells = <1>;
1011 #size-cells = <0>;
1012 };
Jernej Skrabec463304d2021-01-06 18:02:56 +01001013
Andre Przywara787f5a02021-05-25 01:20:25 +01001014 r_rsb: rsb@7083000 {
1015 compatible = "allwinner,sun8i-a23-rsb";
1016 reg = <0x07083000 0x400>;
1017 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1018 clocks = <&r_ccu CLK_R_APB2_RSB>;
1019 clock-frequency = <3000000>;
1020 resets = <&r_ccu RST_R_APB2_RSB>;
1021 pinctrl-names = "default";
1022 pinctrl-0 = <&r_rsb_pins>;
1023 status = "disabled";
1024 #address-cells = <1>;
1025 #size-cells = <0>;
1026 };
1027
Jernej Skrabec463304d2021-01-06 18:02:56 +01001028 ths: thermal-sensor@5070400 {
1029 compatible = "allwinner,sun50i-h6-ths";
1030 reg = <0x05070400 0x100>;
1031 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1032 clocks = <&ccu CLK_BUS_THS>;
1033 clock-names = "bus";
1034 resets = <&ccu RST_BUS_THS>;
1035 nvmem-cells = <&ths_calibration>;
1036 nvmem-cell-names = "calibration";
1037 #thermal-sensor-cells = <1>;
1038 };
1039 };
1040
1041 thermal-zones {
1042 cpu-thermal {
1043 polling-delay-passive = <0>;
1044 polling-delay = <0>;
1045 thermal-sensors = <&ths 0>;
1046
1047 trips {
1048 cpu_alert: cpu-alert {
1049 temperature = <85000>;
1050 hysteresis = <2000>;
1051 type = "passive";
1052 };
1053
1054 cpu-crit {
1055 temperature = <100000>;
1056 hysteresis = <0>;
1057 type = "critical";
1058 };
1059 };
1060
1061 cooling-maps {
1062 map0 {
1063 trip = <&cpu_alert>;
1064 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1065 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1066 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1067 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1068 };
1069 };
1070 };
1071
1072 gpu-thermal {
1073 polling-delay-passive = <0>;
1074 polling-delay = <0>;
1075 thermal-sensors = <&ths 1>;
1076 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +08001077 };
1078};