blob: 71a45a624da9fe248196256525cd75880f5be294 [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>
Jagan Teki7d412cd2019-04-14 22:22:21 +05307#include <dt-bindings/clock/sun8i-de2.h>
8#include <dt-bindings/clock/sun8i-tcon-top.h>
Icenowy Zheng0c01b962018-07-21 16:20:31 +08009#include <dt-bindings/reset/sun50i-h6-ccu.h>
10#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
Jagan Teki7d412cd2019-04-14 22:22:21 +053011#include <dt-bindings/reset/sun8i-de2.h>
Jernej Skrabec463304d2021-01-06 18:02:56 +010012#include <dt-bindings/thermal/thermal.h>
Icenowy Zheng0c01b962018-07-21 16:20:31 +080013
14/ {
15 interrupt-parent = <&gic>;
16 #address-cells = <1>;
17 #size-cells = <1>;
18
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 cpu0: cpu@0 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053024 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080025 device_type = "cpu";
26 reg = <0>;
27 enable-method = "psci";
Jernej Skrabec463304d2021-01-06 18:02:56 +010028 clocks = <&ccu CLK_CPUX>;
29 clock-latency-ns = <244144>; /* 8 32k periods */
30 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080031 };
32
33 cpu1: cpu@1 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053034 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080035 device_type = "cpu";
36 reg = <1>;
37 enable-method = "psci";
Jernej Skrabec463304d2021-01-06 18:02:56 +010038 clocks = <&ccu CLK_CPUX>;
39 clock-latency-ns = <244144>; /* 8 32k periods */
40 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080041 };
42
43 cpu2: cpu@2 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053044 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080045 device_type = "cpu";
46 reg = <2>;
47 enable-method = "psci";
Jernej Skrabec463304d2021-01-06 18:02:56 +010048 clocks = <&ccu CLK_CPUX>;
49 clock-latency-ns = <244144>; /* 8 32k periods */
50 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080051 };
52
53 cpu3: cpu@3 {
Jagan Teki7d412cd2019-04-14 22:22:21 +053054 compatible = "arm,cortex-a53";
Icenowy Zheng0c01b962018-07-21 16:20:31 +080055 device_type = "cpu";
56 reg = <3>;
57 enable-method = "psci";
Jernej Skrabec463304d2021-01-06 18:02:56 +010058 clocks = <&ccu CLK_CPUX>;
59 clock-latency-ns = <244144>; /* 8 32k periods */
60 #cooling-cells = <2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080061 };
62 };
63
Jagan Teki7d412cd2019-04-14 22:22:21 +053064 de: display-engine {
65 compatible = "allwinner,sun50i-h6-display-engine";
66 allwinner,pipelines = <&mixer0>;
67 status = "disabled";
68 };
69
Icenowy Zheng0c01b962018-07-21 16:20:31 +080070 osc24M: osc24M_clk {
71 #clock-cells = <0>;
72 compatible = "fixed-clock";
73 clock-frequency = <24000000>;
74 clock-output-names = "osc24M";
75 };
76
Jernej Skrabec463304d2021-01-06 18:02:56 +010077 pmu {
78 compatible = "arm,cortex-a53-pmu";
79 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
80 <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
81 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
82 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
83 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080084 };
85
86 psci {
87 compatible = "arm,psci-0.2";
88 method = "smc";
89 };
90
91 timer {
92 compatible = "arm,armv8-timer";
Jernej Skrabec463304d2021-01-06 18:02:56 +010093 arm,no-tick-in-suspend;
Icenowy Zheng0c01b962018-07-21 16:20:31 +080094 interrupts = <GIC_PPI 13
95 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
96 <GIC_PPI 14
97 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
98 <GIC_PPI 11
99 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
100 <GIC_PPI 10
101 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
102 };
103
104 soc {
105 compatible = "simple-bus";
106 #address-cells = <1>;
107 #size-cells = <1>;
108 ranges;
109
Clément Péron725089c2019-08-25 18:04:18 +0200110 bus@1000000 {
Jagan Teki7d412cd2019-04-14 22:22:21 +0530111 compatible = "allwinner,sun50i-h6-de3",
112 "allwinner,sun50i-a64-de2";
113 reg = <0x1000000 0x400000>;
114 allwinner,sram = <&de2_sram 1>;
115 #address-cells = <1>;
116 #size-cells = <1>;
117 ranges = <0 0x1000000 0x400000>;
118
119 display_clocks: clock@0 {
120 compatible = "allwinner,sun50i-h6-de3-clk";
121 reg = <0x0 0x10000>;
Samuel Holland399a01f2022-04-27 15:31:31 -0500122 clocks = <&ccu CLK_BUS_DE>,
123 <&ccu CLK_DE>;
124 clock-names = "bus",
125 "mod";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530126 resets = <&ccu RST_BUS_DE>;
127 #clock-cells = <1>;
128 #reset-cells = <1>;
129 };
130
131 mixer0: mixer@100000 {
132 compatible = "allwinner,sun50i-h6-de3-mixer-0";
133 reg = <0x100000 0x100000>;
134 clocks = <&display_clocks CLK_BUS_MIXER0>,
135 <&display_clocks CLK_MIXER0>;
136 clock-names = "bus",
137 "mod";
138 resets = <&display_clocks RST_MIXER0>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100139 iommus = <&iommu 0>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530140
141 ports {
142 #address-cells = <1>;
143 #size-cells = <0>;
144
145 mixer0_out: port@1 {
146 reg = <1>;
147
148 mixer0_out_tcon_top_mixer0: endpoint {
149 remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
150 };
151 };
152 };
153 };
154 };
155
Samuel Holland399a01f2022-04-27 15:31:31 -0500156 video-codec-g2@1c00000 {
157 compatible = "allwinner,sun50i-h6-vpu-g2";
158 reg = <0x01c00000 0x1000>;
159 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
160 clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
161 clock-names = "bus", "mod";
162 resets = <&ccu RST_BUS_VP9>;
163 };
164
Jagan Teki7d412cd2019-04-14 22:22:21 +0530165 video-codec@1c0e000 {
166 compatible = "allwinner,sun50i-h6-video-engine";
167 reg = <0x01c0e000 0x2000>;
168 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
169 <&ccu CLK_MBUS_VE>;
170 clock-names = "ahb", "mod", "ram";
171 resets = <&ccu RST_BUS_VE>;
172 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
173 allwinner,sram = <&ve_sram 1>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100174 iommus = <&iommu 3>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530175 };
176
Jernej Skrabec463304d2021-01-06 18:02:56 +0100177 gpu: gpu@1800000 {
178 compatible = "allwinner,sun50i-h6-mali",
179 "arm,mali-t720";
180 reg = <0x01800000 0x4000>;
181 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
182 <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
183 <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
184 interrupt-names = "job", "mmu", "gpu";
185 clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>;
186 clock-names = "core", "bus";
187 resets = <&ccu RST_BUS_GPU>;
188 status = "disabled";
189 };
190
191 crypto: crypto@1904000 {
192 compatible = "allwinner,sun50i-h6-crypto";
193 reg = <0x01904000 0x1000>;
194 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
195 clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>, <&ccu CLK_MBUS_CE>;
196 clock-names = "bus", "mod", "ram";
197 resets = <&ccu RST_BUS_CE>;
198 };
199
Jagan Teki7d412cd2019-04-14 22:22:21 +0530200 syscon: syscon@3000000 {
201 compatible = "allwinner,sun50i-h6-system-control",
202 "allwinner,sun50i-a64-system-control";
203 reg = <0x03000000 0x1000>;
204 #address-cells = <1>;
205 #size-cells = <1>;
206 ranges;
207
208 sram_c: sram@28000 {
209 compatible = "mmio-sram";
210 reg = <0x00028000 0x1e000>;
211 #address-cells = <1>;
212 #size-cells = <1>;
213 ranges = <0 0x00028000 0x1e000>;
214
215 de2_sram: sram-section@0 {
216 compatible = "allwinner,sun50i-h6-sram-c",
217 "allwinner,sun50i-a64-sram-c";
218 reg = <0x0000 0x1e000>;
219 };
220 };
221
222 sram_c1: sram@1a00000 {
223 compatible = "mmio-sram";
224 reg = <0x01a00000 0x200000>;
225 #address-cells = <1>;
226 #size-cells = <1>;
227 ranges = <0 0x01a00000 0x200000>;
228
229 ve_sram: sram-section@0 {
230 compatible = "allwinner,sun50i-h6-sram-c1",
231 "allwinner,sun4i-a10-sram-c1";
232 reg = <0x000000 0x200000>;
233 };
234 };
235 };
236
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800237 ccu: clock@3001000 {
238 compatible = "allwinner,sun50i-h6-ccu";
239 reg = <0x03001000 0x1000>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100240 clocks = <&osc24M>, <&rtc 0>, <&rtc 2>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800241 clock-names = "hosc", "losc", "iosc";
242 #clock-cells = <1>;
243 #reset-cells = <1>;
244 };
245
Clément Péron725089c2019-08-25 18:04:18 +0200246 dma: dma-controller@3002000 {
247 compatible = "allwinner,sun50i-h6-dma";
248 reg = <0x03002000 0x1000>;
249 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
250 clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
251 clock-names = "bus", "mbus";
252 dma-channels = <16>;
253 dma-requests = <46>;
254 resets = <&ccu RST_BUS_DMA>;
255 #dma-cells = <1>;
256 };
257
Jernej Skrabec463304d2021-01-06 18:02:56 +0100258 msgbox: mailbox@3003000 {
259 compatible = "allwinner,sun50i-h6-msgbox",
260 "allwinner,sun6i-a31-msgbox";
261 reg = <0x03003000 0x1000>;
262 clocks = <&ccu CLK_BUS_MSGBOX>;
263 resets = <&ccu RST_BUS_MSGBOX>;
264 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
265 #mbox-cells = <1>;
266 };
267
268 sid: efuse@3006000 {
Jagan Teki7d412cd2019-04-14 22:22:21 +0530269 compatible = "allwinner,sun50i-h6-sid";
270 reg = <0x03006000 0x400>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100271 #address-cells = <1>;
272 #size-cells = <1>;
273
274 ths_calibration: thermal-sensor-calibration@14 {
275 reg = <0x14 0x8>;
276 };
277
278 cpu_speed_grade: cpu-speed-grade@1c {
279 reg = <0x1c 0x4>;
280 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800281 };
282
Samuel Holland399a01f2022-04-27 15:31:31 -0500283 timer@3009000 {
284 compatible = "allwinner,sun50i-h6-timer",
285 "allwinner,sun8i-a23-timer";
286 reg = <0x03009000 0xa0>;
287 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
288 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
289 clocks = <&osc24M>;
290 };
291
Clément Péron725089c2019-08-25 18:04:18 +0200292 watchdog: watchdog@30090a0 {
293 compatible = "allwinner,sun50i-h6-wdt",
294 "allwinner,sun6i-a31-wdt";
295 reg = <0x030090a0 0x20>;
296 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100297 clocks = <&osc24M>;
Clément Péron725089c2019-08-25 18:04:18 +0200298 /* Broken on some H6 boards */
299 status = "disabled";
300 };
301
Jernej Skrabec463304d2021-01-06 18:02:56 +0100302 pwm: pwm@300a000 {
303 compatible = "allwinner,sun50i-h6-pwm";
304 reg = <0x0300a000 0x400>;
305 clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
306 clock-names = "mod", "bus";
307 resets = <&ccu RST_BUS_PWM>;
308 #pwm-cells = <3>;
309 status = "disabled";
310 };
311
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800312 pio: pinctrl@300b000 {
313 compatible = "allwinner,sun50i-h6-pinctrl";
314 reg = <0x0300b000 0x400>;
315 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
316 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
317 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
318 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100319 clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc 0>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800320 clock-names = "apb", "hosc", "losc";
321 gpio-controller;
322 #gpio-cells = <3>;
323 interrupt-controller;
324 #interrupt-cells = <3>;
325
Jagan Teki7d412cd2019-04-14 22:22:21 +0530326 ext_rgmii_pins: rgmii-pins {
327 pins = "PD0", "PD1", "PD2", "PD3", "PD4",
328 "PD5", "PD7", "PD8", "PD9", "PD10",
329 "PD11", "PD12", "PD13", "PD19", "PD20";
330 function = "emac";
331 drive-strength = <40>;
332 };
333
334 hdmi_pins: hdmi-pins {
335 pins = "PH8", "PH9", "PH10";
336 function = "hdmi";
337 };
338
Jernej Skrabec463304d2021-01-06 18:02:56 +0100339 i2c0_pins: i2c0-pins {
340 pins = "PD25", "PD26";
341 function = "i2c0";
342 };
343
344 i2c1_pins: i2c1-pins {
345 pins = "PH5", "PH6";
346 function = "i2c1";
347 };
348
349 i2c2_pins: i2c2-pins {
350 pins = "PD23", "PD24";
351 function = "i2c2";
352 };
353
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800354 mmc0_pins: mmc0-pins {
355 pins = "PF0", "PF1", "PF2", "PF3",
356 "PF4", "PF5";
357 function = "mmc0";
358 drive-strength = <30>;
359 bias-pull-up;
360 };
361
Jernej Skrabec463304d2021-01-06 18:02:56 +0100362 /omit-if-no-ref/
Clément Péron725089c2019-08-25 18:04:18 +0200363 mmc1_pins: mmc1-pins {
364 pins = "PG0", "PG1", "PG2", "PG3",
365 "PG4", "PG5";
366 function = "mmc1";
367 drive-strength = <30>;
368 bias-pull-up;
369 };
370
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800371 mmc2_pins: mmc2-pins {
372 pins = "PC1", "PC4", "PC5", "PC6",
373 "PC7", "PC8", "PC9", "PC10",
374 "PC11", "PC12", "PC13", "PC14";
375 function = "mmc2";
376 drive-strength = <30>;
377 bias-pull-up;
378 };
379
Jernej Skrabec463304d2021-01-06 18:02:56 +0100380 /omit-if-no-ref/
381 spi0_pins: spi0-pins {
382 pins = "PC0", "PC2", "PC3";
383 function = "spi0";
384 };
385
386 /* pin shared with MMC2-CMD (eMMC) */
387 /omit-if-no-ref/
388 spi0_cs_pin: spi0-cs-pin {
389 pins = "PC5";
390 function = "spi0";
391 };
392
393 /omit-if-no-ref/
394 spi1_pins: spi1-pins {
395 pins = "PH4", "PH5", "PH6";
396 function = "spi1";
397 };
398
399 /omit-if-no-ref/
400 spi1_cs_pin: spi1-cs-pin {
401 pins = "PH3";
402 function = "spi1";
403 };
404
405 spdif_tx_pin: spdif-tx-pin {
406 pins = "PH7";
407 function = "spdif";
408 };
409
Jagan Teki7d412cd2019-04-14 22:22:21 +0530410 uart0_ph_pins: uart0-ph-pins {
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800411 pins = "PH0", "PH1";
412 function = "uart0";
413 };
Jernej Skrabec463304d2021-01-06 18:02:56 +0100414
415 uart1_pins: uart1-pins {
416 pins = "PG6", "PG7";
417 function = "uart1";
418 };
419
420 uart1_rts_cts_pins: uart1-rts-cts-pins {
421 pins = "PG8", "PG9";
422 function = "uart1";
423 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800424 };
425
Jagan Teki7d412cd2019-04-14 22:22:21 +0530426 gic: interrupt-controller@3021000 {
427 compatible = "arm,gic-400";
428 reg = <0x03021000 0x1000>,
429 <0x03022000 0x2000>,
430 <0x03024000 0x2000>,
431 <0x03026000 0x2000>;
432 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
433 interrupt-controller;
434 #interrupt-cells = <3>;
435 };
436
Jernej Skrabec463304d2021-01-06 18:02:56 +0100437 iommu: iommu@30f0000 {
438 compatible = "allwinner,sun50i-h6-iommu";
439 reg = <0x030f0000 0x10000>;
440 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
441 clocks = <&ccu CLK_BUS_IOMMU>;
442 resets = <&ccu RST_BUS_IOMMU>;
443 #iommu-cells = <1>;
444 };
445
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800446 mmc0: mmc@4020000 {
447 compatible = "allwinner,sun50i-h6-mmc",
448 "allwinner,sun50i-a64-mmc";
449 reg = <0x04020000 0x1000>;
450 clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
451 clock-names = "ahb", "mmc";
452 resets = <&ccu RST_BUS_MMC0>;
453 reset-names = "ahb";
454 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530455 pinctrl-names = "default";
456 pinctrl-0 = <&mmc0_pins>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100457 max-frequency = <150000000>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800458 status = "disabled";
459 #address-cells = <1>;
460 #size-cells = <0>;
461 };
462
463 mmc1: mmc@4021000 {
464 compatible = "allwinner,sun50i-h6-mmc",
465 "allwinner,sun50i-a64-mmc";
466 reg = <0x04021000 0x1000>;
467 clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
468 clock-names = "ahb", "mmc";
469 resets = <&ccu RST_BUS_MMC1>;
470 reset-names = "ahb";
471 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
Clément Péron725089c2019-08-25 18:04:18 +0200472 pinctrl-names = "default";
473 pinctrl-0 = <&mmc1_pins>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100474 max-frequency = <150000000>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800475 status = "disabled";
476 #address-cells = <1>;
477 #size-cells = <0>;
478 };
479
480 mmc2: mmc@4022000 {
481 compatible = "allwinner,sun50i-h6-emmc",
482 "allwinner,sun50i-a64-emmc";
483 reg = <0x04022000 0x1000>;
484 clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
485 clock-names = "ahb", "mmc";
486 resets = <&ccu RST_BUS_MMC2>;
487 reset-names = "ahb";
488 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530489 pinctrl-names = "default";
490 pinctrl-0 = <&mmc2_pins>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100491 max-frequency = <150000000>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800492 status = "disabled";
493 #address-cells = <1>;
494 #size-cells = <0>;
495 };
496
497 uart0: serial@5000000 {
498 compatible = "snps,dw-apb-uart";
499 reg = <0x05000000 0x400>;
500 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
501 reg-shift = <2>;
502 reg-io-width = <4>;
503 clocks = <&ccu CLK_BUS_UART0>;
504 resets = <&ccu RST_BUS_UART0>;
505 status = "disabled";
506 };
507
508 uart1: serial@5000400 {
509 compatible = "snps,dw-apb-uart";
510 reg = <0x05000400 0x400>;
511 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
512 reg-shift = <2>;
513 reg-io-width = <4>;
514 clocks = <&ccu CLK_BUS_UART1>;
515 resets = <&ccu RST_BUS_UART1>;
516 status = "disabled";
517 };
518
519 uart2: serial@5000800 {
520 compatible = "snps,dw-apb-uart";
521 reg = <0x05000800 0x400>;
522 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
523 reg-shift = <2>;
524 reg-io-width = <4>;
525 clocks = <&ccu CLK_BUS_UART2>;
526 resets = <&ccu RST_BUS_UART2>;
527 status = "disabled";
528 };
529
530 uart3: serial@5000c00 {
531 compatible = "snps,dw-apb-uart";
532 reg = <0x05000c00 0x400>;
533 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
534 reg-shift = <2>;
535 reg-io-width = <4>;
536 clocks = <&ccu CLK_BUS_UART3>;
537 resets = <&ccu RST_BUS_UART3>;
538 status = "disabled";
Jernej Skrabec463304d2021-01-06 18:02:56 +0100539 };
540
541 i2c0: i2c@5002000 {
542 compatible = "allwinner,sun50i-h6-i2c",
543 "allwinner,sun6i-a31-i2c";
544 reg = <0x05002000 0x400>;
545 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
546 clocks = <&ccu CLK_BUS_I2C0>;
547 resets = <&ccu RST_BUS_I2C0>;
548 pinctrl-names = "default";
549 pinctrl-0 = <&i2c0_pins>;
550 status = "disabled";
551 #address-cells = <1>;
552 #size-cells = <0>;
553 };
554
555 i2c1: i2c@5002400 {
556 compatible = "allwinner,sun50i-h6-i2c",
557 "allwinner,sun6i-a31-i2c";
558 reg = <0x05002400 0x400>;
559 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
560 clocks = <&ccu CLK_BUS_I2C1>;
561 resets = <&ccu RST_BUS_I2C1>;
562 pinctrl-names = "default";
563 pinctrl-0 = <&i2c1_pins>;
564 status = "disabled";
565 #address-cells = <1>;
566 #size-cells = <0>;
567 };
568
569 i2c2: i2c@5002800 {
570 compatible = "allwinner,sun50i-h6-i2c",
571 "allwinner,sun6i-a31-i2c";
572 reg = <0x05002800 0x400>;
573 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
574 clocks = <&ccu CLK_BUS_I2C2>;
575 resets = <&ccu RST_BUS_I2C2>;
576 pinctrl-names = "default";
577 pinctrl-0 = <&i2c2_pins>;
578 status = "disabled";
579 #address-cells = <1>;
580 #size-cells = <0>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530581 };
582
Jernej Skrabec463304d2021-01-06 18:02:56 +0100583 spi0: spi@5010000 {
584 compatible = "allwinner,sun50i-h6-spi",
585 "allwinner,sun8i-h3-spi";
586 reg = <0x05010000 0x1000>;
587 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
588 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
589 clock-names = "ahb", "mod";
590 dmas = <&dma 22>, <&dma 22>;
591 dma-names = "rx", "tx";
592 resets = <&ccu RST_BUS_SPI0>;
593 status = "disabled";
594 #address-cells = <1>;
595 #size-cells = <0>;
596 };
597
598 spi1: spi@5011000 {
599 compatible = "allwinner,sun50i-h6-spi",
600 "allwinner,sun8i-h3-spi";
601 reg = <0x05011000 0x1000>;
602 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
603 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
604 clock-names = "ahb", "mod";
605 dmas = <&dma 23>, <&dma 23>;
606 dma-names = "rx", "tx";
607 resets = <&ccu RST_BUS_SPI1>;
608 status = "disabled";
609 #address-cells = <1>;
610 #size-cells = <0>;
611 };
612
Jagan Teki7d412cd2019-04-14 22:22:21 +0530613 emac: ethernet@5020000 {
614 compatible = "allwinner,sun50i-h6-emac",
615 "allwinner,sun50i-a64-emac";
616 syscon = <&syscon>;
617 reg = <0x05020000 0x10000>;
618 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
619 interrupt-names = "macirq";
620 resets = <&ccu RST_BUS_EMAC>;
621 reset-names = "stmmaceth";
622 clocks = <&ccu CLK_BUS_EMAC>;
623 clock-names = "stmmaceth";
624 status = "disabled";
625
626 mdio: mdio {
627 compatible = "snps,dwmac-mdio";
628 #address-cells = <1>;
629 #size-cells = <0>;
630 };
631 };
632
Jernej Skrabec463304d2021-01-06 18:02:56 +0100633 i2s1: i2s@5091000 {
634 #sound-dai-cells = <0>;
635 compatible = "allwinner,sun50i-h6-i2s";
636 reg = <0x05091000 0x1000>;
637 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
638 clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
639 clock-names = "apb", "mod";
640 dmas = <&dma 4>, <&dma 4>;
641 resets = <&ccu RST_BUS_I2S1>;
642 dma-names = "rx", "tx";
643 status = "disabled";
644 };
645
646 spdif: spdif@5093000 {
647 #sound-dai-cells = <0>;
648 compatible = "allwinner,sun50i-h6-spdif";
649 reg = <0x05093000 0x400>;
650 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
651 clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
652 clock-names = "apb", "spdif";
653 resets = <&ccu RST_BUS_SPDIF>;
654 dmas = <&dma 2>;
655 dma-names = "tx";
656 pinctrl-names = "default";
657 pinctrl-0 = <&spdif_tx_pin>;
658 status = "disabled";
659 };
660
Jagan Teki7d412cd2019-04-14 22:22:21 +0530661 usb2otg: usb@5100000 {
662 compatible = "allwinner,sun50i-h6-musb",
663 "allwinner,sun8i-a33-musb";
664 reg = <0x05100000 0x0400>;
665 clocks = <&ccu CLK_BUS_OTG>;
666 resets = <&ccu RST_BUS_OTG>;
667 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
668 interrupt-names = "mc";
669 phys = <&usb2phy 0>;
670 phy-names = "usb";
671 extcon = <&usb2phy 0>;
672 status = "disabled";
673 };
674
675 usb2phy: phy@5100400 {
676 compatible = "allwinner,sun50i-h6-usb-phy";
677 reg = <0x05100400 0x24>,
678 <0x05101800 0x4>,
679 <0x05311800 0x4>;
680 reg-names = "phy_ctrl",
681 "pmu0",
682 "pmu3";
683 clocks = <&ccu CLK_USB_PHY0>,
684 <&ccu CLK_USB_PHY3>;
685 clock-names = "usb0_phy",
686 "usb3_phy";
687 resets = <&ccu RST_USB_PHY0>,
688 <&ccu RST_USB_PHY3>;
689 reset-names = "usb0_reset",
690 "usb3_reset";
691 status = "disabled";
692 #phy-cells = <1>;
693 };
694
695 ehci0: usb@5101000 {
696 compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
697 reg = <0x05101000 0x100>;
698 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
699 clocks = <&ccu CLK_BUS_OHCI0>,
700 <&ccu CLK_BUS_EHCI0>,
701 <&ccu CLK_USB_OHCI0>;
702 resets = <&ccu RST_BUS_OHCI0>,
703 <&ccu RST_BUS_EHCI0>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100704 phys = <&usb2phy 0>;
705 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530706 status = "disabled";
707 };
708
709 ohci0: usb@5101400 {
710 compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
711 reg = <0x05101400 0x100>;
712 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
713 clocks = <&ccu CLK_BUS_OHCI0>,
714 <&ccu CLK_USB_OHCI0>;
715 resets = <&ccu RST_BUS_OHCI0>;
Andre Przywara787f5a02021-05-25 01:20:25 +0100716 phys = <&usb2phy 0>;
717 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530718 status = "disabled";
719 };
720
Jernej Skrabec463304d2021-01-06 18:02:56 +0100721 dwc3: usb@5200000 {
722 compatible = "snps,dwc3";
723 reg = <0x05200000 0x10000>;
724 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
725 clocks = <&ccu CLK_BUS_XHCI>,
726 <&ccu CLK_BUS_XHCI>,
727 <&rtc 0>;
728 clock-names = "ref", "bus_early", "suspend";
729 resets = <&ccu RST_BUS_XHCI>;
730 /*
731 * The datasheet of the chip doesn't declare the
732 * peripheral function, and there's no boards known
733 * to have a USB Type-B port routed to the port.
734 * In addition, no one has tested the peripheral
735 * function yet.
736 * So set the dr_mode to "host" in the DTSI file.
737 */
738 dr_mode = "host";
739 phys = <&usb3phy>;
740 phy-names = "usb3-phy";
741 status = "disabled";
742 };
743
744 usb3phy: phy@5210000 {
745 compatible = "allwinner,sun50i-h6-usb3-phy";
746 reg = <0x5210000 0x10000>;
747 clocks = <&ccu CLK_USB_PHY1>;
748 resets = <&ccu RST_USB_PHY1>;
749 #phy-cells = <0>;
750 status = "disabled";
751 };
752
Jagan Teki7d412cd2019-04-14 22:22:21 +0530753 ehci3: usb@5311000 {
754 compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
755 reg = <0x05311000 0x100>;
756 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
757 clocks = <&ccu CLK_BUS_OHCI3>,
758 <&ccu CLK_BUS_EHCI3>,
759 <&ccu CLK_USB_OHCI3>;
760 resets = <&ccu RST_BUS_OHCI3>,
761 <&ccu RST_BUS_EHCI3>;
762 phys = <&usb2phy 3>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100763 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530764 status = "disabled";
765 };
766
767 ohci3: usb@5311400 {
768 compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
769 reg = <0x05311400 0x100>;
770 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
771 clocks = <&ccu CLK_BUS_OHCI3>,
772 <&ccu CLK_USB_OHCI3>;
773 resets = <&ccu RST_BUS_OHCI3>;
774 phys = <&usb2phy 3>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100775 phy-names = "usb";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530776 status = "disabled";
777 };
778
779 hdmi: hdmi@6000000 {
780 compatible = "allwinner,sun50i-h6-dw-hdmi";
781 reg = <0x06000000 0x10000>;
782 reg-io-width = <1>;
783 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
784 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
785 <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>,
786 <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>;
787 clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
788 "hdcp-bus";
789 resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>;
790 reset-names = "ctrl", "hdcp";
791 phys = <&hdmi_phy>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100792 phy-names = "phy";
Jagan Teki7d412cd2019-04-14 22:22:21 +0530793 pinctrl-names = "default";
794 pinctrl-0 = <&hdmi_pins>;
795 status = "disabled";
796
797 ports {
798 #address-cells = <1>;
799 #size-cells = <0>;
800
801 hdmi_in: port@0 {
802 reg = <0>;
803
804 hdmi_in_tcon_top: endpoint {
805 remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
806 };
807 };
808
809 hdmi_out: port@1 {
810 reg = <1>;
811 };
812 };
813 };
814
815 hdmi_phy: hdmi-phy@6010000 {
816 compatible = "allwinner,sun50i-h6-hdmi-phy";
817 reg = <0x06010000 0x10000>;
818 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>;
819 clock-names = "bus", "mod";
820 resets = <&ccu RST_BUS_HDMI>;
821 reset-names = "phy";
822 #phy-cells = <0>;
823 };
824
825 tcon_top: tcon-top@6510000 {
826 compatible = "allwinner,sun50i-h6-tcon-top";
827 reg = <0x06510000 0x1000>;
828 clocks = <&ccu CLK_BUS_TCON_TOP>,
829 <&ccu CLK_TCON_TV0>;
830 clock-names = "bus",
831 "tcon-tv0";
832 clock-output-names = "tcon-top-tv0";
833 resets = <&ccu RST_BUS_TCON_TOP>;
Jagan Teki7d412cd2019-04-14 22:22:21 +0530834 #clock-cells = <1>;
835
836 ports {
837 #address-cells = <1>;
838 #size-cells = <0>;
839
840 tcon_top_mixer0_in: port@0 {
841 #address-cells = <1>;
842 #size-cells = <0>;
843 reg = <0>;
844
845 tcon_top_mixer0_in_mixer0: endpoint@0 {
846 reg = <0>;
847 remote-endpoint = <&mixer0_out_tcon_top_mixer0>;
848 };
849 };
850
851 tcon_top_mixer0_out: port@1 {
852 #address-cells = <1>;
853 #size-cells = <0>;
854 reg = <1>;
855
856 tcon_top_mixer0_out_tcon_tv: endpoint@2 {
857 reg = <2>;
858 remote-endpoint = <&tcon_tv_in_tcon_top_mixer0>;
859 };
860 };
861
862 tcon_top_hdmi_in: port@4 {
863 #address-cells = <1>;
864 #size-cells = <0>;
865 reg = <4>;
866
867 tcon_top_hdmi_in_tcon_tv: endpoint@0 {
868 reg = <0>;
869 remote-endpoint = <&tcon_tv_out_tcon_top>;
870 };
871 };
872
873 tcon_top_hdmi_out: port@5 {
874 reg = <5>;
875
876 tcon_top_hdmi_out_hdmi: endpoint {
877 remote-endpoint = <&hdmi_in_tcon_top>;
878 };
879 };
880 };
881 };
882
883 tcon_tv: lcd-controller@6515000 {
884 compatible = "allwinner,sun50i-h6-tcon-tv",
885 "allwinner,sun8i-r40-tcon-tv";
886 reg = <0x06515000 0x1000>;
887 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
888 clocks = <&ccu CLK_BUS_TCON_TV0>,
889 <&tcon_top CLK_TCON_TOP_TV0>;
890 clock-names = "ahb",
891 "tcon-ch1";
892 resets = <&ccu RST_BUS_TCON_TV0>;
893 reset-names = "lcd";
894
895 ports {
896 #address-cells = <1>;
897 #size-cells = <0>;
898
899 tcon_tv_in: port@0 {
900 reg = <0>;
901
902 tcon_tv_in_tcon_top_mixer0: endpoint {
903 remote-endpoint = <&tcon_top_mixer0_out_tcon_tv>;
904 };
905 };
906
907 tcon_tv_out: port@1 {
908 #address-cells = <1>;
909 #size-cells = <0>;
910 reg = <1>;
911
912 tcon_tv_out_tcon_top: endpoint@1 {
913 reg = <1>;
914 remote-endpoint = <&tcon_top_hdmi_in_tcon_tv>;
915 };
916 };
917 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800918 };
919
Jernej Skrabec463304d2021-01-06 18:02:56 +0100920 rtc: rtc@7000000 {
921 compatible = "allwinner,sun50i-h6-rtc";
922 reg = <0x07000000 0x400>;
923 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
924 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
925 clock-output-names = "osc32k", "osc32k-out", "iosc";
926 #clock-cells = <1>;
927 };
928
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800929 r_ccu: clock@7010000 {
930 compatible = "allwinner,sun50i-h6-r-ccu";
931 reg = <0x07010000 0x400>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100932 clocks = <&osc24M>, <&rtc 0>, <&rtc 2>,
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800933 <&ccu CLK_PLL_PERIPH0>;
934 clock-names = "hosc", "losc", "iosc", "pll-periph";
935 #clock-cells = <1>;
936 #reset-cells = <1>;
937 };
938
Clément Péron725089c2019-08-25 18:04:18 +0200939 r_watchdog: watchdog@7020400 {
940 compatible = "allwinner,sun50i-h6-wdt",
941 "allwinner,sun6i-a31-wdt";
942 reg = <0x07020400 0x20>;
943 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100944 clocks = <&osc24M>;
Clément Péron725089c2019-08-25 18:04:18 +0200945 };
946
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800947 r_intc: interrupt-controller@7021000 {
948 compatible = "allwinner,sun50i-h6-r-intc",
949 "allwinner,sun6i-a31-r-intc";
950 interrupt-controller;
951 #interrupt-cells = <2>;
952 reg = <0x07021000 0x400>;
953 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
954 };
955
956 r_pio: pinctrl@7022000 {
957 compatible = "allwinner,sun50i-h6-r-pinctrl";
958 reg = <0x07022000 0x400>;
959 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
960 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100961 clocks = <&r_ccu CLK_R_APB1>, <&osc24M>, <&rtc 0>;
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800962 clock-names = "apb", "hosc", "losc";
963 gpio-controller;
964 #gpio-cells = <3>;
965 interrupt-controller;
966 #interrupt-cells = <3>;
967
Jagan Teki7d412cd2019-04-14 22:22:21 +0530968 r_i2c_pins: r-i2c-pins {
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800969 pins = "PL0", "PL1";
970 function = "s_i2c";
971 };
Jernej Skrabec463304d2021-01-06 18:02:56 +0100972
973 r_ir_rx_pin: r-ir-rx-pin {
974 pins = "PL9";
975 function = "s_cir_rx";
976 };
Andre Przywara787f5a02021-05-25 01:20:25 +0100977
978 r_rsb_pins: r-rsb-pins {
979 pins = "PL0", "PL1";
980 function = "s_rsb";
981 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800982 };
983
Jernej Skrabec463304d2021-01-06 18:02:56 +0100984 r_ir: ir@7040000 {
985 compatible = "allwinner,sun50i-h6-ir",
986 "allwinner,sun6i-a31-ir";
987 reg = <0x07040000 0x400>;
988 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
989 clocks = <&r_ccu CLK_R_APB1_IR>,
990 <&r_ccu CLK_IR>;
991 clock-names = "apb", "ir";
992 resets = <&r_ccu RST_R_APB1_IR>;
993 pinctrl-names = "default";
994 pinctrl-0 = <&r_ir_rx_pin>;
995 status = "disabled";
996 };
997
Icenowy Zheng0c01b962018-07-21 16:20:31 +0800998 r_i2c: i2c@7081400 {
Jernej Skrabec463304d2021-01-06 18:02:56 +0100999 compatible = "allwinner,sun50i-h6-i2c",
1000 "allwinner,sun6i-a31-i2c";
Icenowy Zheng0c01b962018-07-21 16:20:31 +08001001 reg = <0x07081400 0x400>;
1002 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1003 clocks = <&r_ccu CLK_R_APB2_I2C>;
1004 resets = <&r_ccu RST_R_APB2_I2C>;
1005 pinctrl-names = "default";
1006 pinctrl-0 = <&r_i2c_pins>;
1007 status = "disabled";
1008 #address-cells = <1>;
1009 #size-cells = <0>;
1010 };
Jernej Skrabec463304d2021-01-06 18:02:56 +01001011
Andre Przywara787f5a02021-05-25 01:20:25 +01001012 r_rsb: rsb@7083000 {
1013 compatible = "allwinner,sun8i-a23-rsb";
1014 reg = <0x07083000 0x400>;
1015 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1016 clocks = <&r_ccu CLK_R_APB2_RSB>;
1017 clock-frequency = <3000000>;
1018 resets = <&r_ccu RST_R_APB2_RSB>;
1019 pinctrl-names = "default";
1020 pinctrl-0 = <&r_rsb_pins>;
1021 status = "disabled";
1022 #address-cells = <1>;
1023 #size-cells = <0>;
1024 };
1025
Jernej Skrabec463304d2021-01-06 18:02:56 +01001026 ths: thermal-sensor@5070400 {
1027 compatible = "allwinner,sun50i-h6-ths";
1028 reg = <0x05070400 0x100>;
1029 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1030 clocks = <&ccu CLK_BUS_THS>;
1031 clock-names = "bus";
1032 resets = <&ccu RST_BUS_THS>;
1033 nvmem-cells = <&ths_calibration>;
1034 nvmem-cell-names = "calibration";
1035 #thermal-sensor-cells = <1>;
1036 };
1037 };
1038
1039 thermal-zones {
1040 cpu-thermal {
1041 polling-delay-passive = <0>;
1042 polling-delay = <0>;
1043 thermal-sensors = <&ths 0>;
1044
1045 trips {
1046 cpu_alert: cpu-alert {
1047 temperature = <85000>;
1048 hysteresis = <2000>;
1049 type = "passive";
1050 };
1051
1052 cpu-crit {
1053 temperature = <100000>;
1054 hysteresis = <0>;
1055 type = "critical";
1056 };
1057 };
1058
1059 cooling-maps {
1060 map0 {
1061 trip = <&cpu_alert>;
1062 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1063 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1064 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1065 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1066 };
1067 };
1068 };
1069
1070 gpu-thermal {
1071 polling-delay-passive = <0>;
1072 polling-delay = <0>;
1073 thermal-sensors = <&ths 1>;
1074 };
Icenowy Zheng0c01b962018-07-21 16:20:31 +08001075 };
1076};