1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
3c66ec88fSEmmanuel Vadot
4c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
5c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/sun50i-h6-ccu.h>
6c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/sun50i-h6-r-ccu.h>
7b97ee269SEmmanuel Vadot#include <dt-bindings/clock/sun6i-rtc.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/sun8i-de2.h>
9c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/sun8i-tcon-top.h>
10c66ec88fSEmmanuel Vadot#include <dt-bindings/reset/sun50i-h6-ccu.h>
11c66ec88fSEmmanuel Vadot#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
12c66ec88fSEmmanuel Vadot#include <dt-bindings/reset/sun8i-de2.h>
13c66ec88fSEmmanuel Vadot#include <dt-bindings/thermal/thermal.h>
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel Vadot/ {
16c66ec88fSEmmanuel Vadot	interrupt-parent = <&gic>;
17c66ec88fSEmmanuel Vadot	#address-cells = <1>;
18c66ec88fSEmmanuel Vadot	#size-cells = <1>;
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot	cpus {
21c66ec88fSEmmanuel Vadot		#address-cells = <1>;
22c66ec88fSEmmanuel Vadot		#size-cells = <0>;
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadot		cpu0: cpu@0 {
25c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
26c66ec88fSEmmanuel Vadot			device_type = "cpu";
27c66ec88fSEmmanuel Vadot			reg = <0>;
28c66ec88fSEmmanuel Vadot			enable-method = "psci";
29c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_CPUX>;
30c66ec88fSEmmanuel Vadot			clock-latency-ns = <244144>; /* 8 32k periods */
31c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
32c66ec88fSEmmanuel Vadot		};
33c66ec88fSEmmanuel Vadot
34c66ec88fSEmmanuel Vadot		cpu1: cpu@1 {
35c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
36c66ec88fSEmmanuel Vadot			device_type = "cpu";
37c66ec88fSEmmanuel Vadot			reg = <1>;
38c66ec88fSEmmanuel Vadot			enable-method = "psci";
39c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_CPUX>;
40c66ec88fSEmmanuel Vadot			clock-latency-ns = <244144>; /* 8 32k periods */
41c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
42c66ec88fSEmmanuel Vadot		};
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot		cpu2: cpu@2 {
45c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
46c66ec88fSEmmanuel Vadot			device_type = "cpu";
47c66ec88fSEmmanuel Vadot			reg = <2>;
48c66ec88fSEmmanuel Vadot			enable-method = "psci";
49c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_CPUX>;
50c66ec88fSEmmanuel Vadot			clock-latency-ns = <244144>; /* 8 32k periods */
51c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
52c66ec88fSEmmanuel Vadot		};
53c66ec88fSEmmanuel Vadot
54c66ec88fSEmmanuel Vadot		cpu3: cpu@3 {
55c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a53";
56c66ec88fSEmmanuel Vadot			device_type = "cpu";
57c66ec88fSEmmanuel Vadot			reg = <3>;
58c66ec88fSEmmanuel Vadot			enable-method = "psci";
59c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_CPUX>;
60c66ec88fSEmmanuel Vadot			clock-latency-ns = <244144>; /* 8 32k periods */
61c66ec88fSEmmanuel Vadot			#cooling-cells = <2>;
62c66ec88fSEmmanuel Vadot		};
63c66ec88fSEmmanuel Vadot	};
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot	de: display-engine {
66c66ec88fSEmmanuel Vadot		compatible = "allwinner,sun50i-h6-display-engine";
67c66ec88fSEmmanuel Vadot		allwinner,pipelines = <&mixer0>;
68c66ec88fSEmmanuel Vadot		status = "disabled";
69c66ec88fSEmmanuel Vadot	};
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot	osc24M: osc24M_clk {
72c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
73c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
74c66ec88fSEmmanuel Vadot		clock-frequency = <24000000>;
75c66ec88fSEmmanuel Vadot		clock-output-names = "osc24M";
76c66ec88fSEmmanuel Vadot	};
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot	pmu {
79c66ec88fSEmmanuel Vadot		compatible = "arm,cortex-a53-pmu";
80c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
81c66ec88fSEmmanuel Vadot			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
82c66ec88fSEmmanuel Vadot			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
83c66ec88fSEmmanuel Vadot			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
84c66ec88fSEmmanuel Vadot		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
85c66ec88fSEmmanuel Vadot	};
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot	psci {
88c66ec88fSEmmanuel Vadot		compatible = "arm,psci-0.2";
89c66ec88fSEmmanuel Vadot		method = "smc";
90c66ec88fSEmmanuel Vadot	};
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot	timer {
93c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
946be33864SEmmanuel Vadot		arm,no-tick-in-suspend;
95c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 13
96c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
97c66ec88fSEmmanuel Vadot			     <GIC_PPI 14
98c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
99c66ec88fSEmmanuel Vadot			     <GIC_PPI 11
100c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
101c66ec88fSEmmanuel Vadot			     <GIC_PPI 10
102c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
103c66ec88fSEmmanuel Vadot	};
104c66ec88fSEmmanuel Vadot
105c66ec88fSEmmanuel Vadot	soc {
106c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
107c66ec88fSEmmanuel Vadot		#address-cells = <1>;
108c66ec88fSEmmanuel Vadot		#size-cells = <1>;
109c66ec88fSEmmanuel Vadot		ranges;
110c66ec88fSEmmanuel Vadot
111c66ec88fSEmmanuel Vadot		bus@1000000 {
112c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-de3",
113c66ec88fSEmmanuel Vadot				     "allwinner,sun50i-a64-de2";
114c66ec88fSEmmanuel Vadot			reg = <0x1000000 0x400000>;
115c66ec88fSEmmanuel Vadot			allwinner,sram = <&de2_sram 1>;
116c66ec88fSEmmanuel Vadot			#address-cells = <1>;
117c66ec88fSEmmanuel Vadot			#size-cells = <1>;
118c66ec88fSEmmanuel Vadot			ranges = <0 0x1000000 0x400000>;
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel Vadot			display_clocks: clock@0 {
121c66ec88fSEmmanuel Vadot				compatible = "allwinner,sun50i-h6-de3-clk";
122c66ec88fSEmmanuel Vadot				reg = <0x0 0x10000>;
1238cc087a1SEmmanuel Vadot				clocks = <&ccu CLK_BUS_DE>,
1248cc087a1SEmmanuel Vadot					 <&ccu CLK_DE>;
1258cc087a1SEmmanuel Vadot				clock-names = "bus",
1268cc087a1SEmmanuel Vadot					      "mod";
127c66ec88fSEmmanuel Vadot				resets = <&ccu RST_BUS_DE>;
128c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
129c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
130c66ec88fSEmmanuel Vadot			};
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot			mixer0: mixer@100000 {
133c66ec88fSEmmanuel Vadot				compatible = "allwinner,sun50i-h6-de3-mixer-0";
134c66ec88fSEmmanuel Vadot				reg = <0x100000 0x100000>;
135c66ec88fSEmmanuel Vadot				clocks = <&display_clocks CLK_BUS_MIXER0>,
136c66ec88fSEmmanuel Vadot					 <&display_clocks CLK_MIXER0>;
137c66ec88fSEmmanuel Vadot				clock-names = "bus",
138c66ec88fSEmmanuel Vadot					      "mod";
139c66ec88fSEmmanuel Vadot				resets = <&display_clocks RST_MIXER0>;
140c66ec88fSEmmanuel Vadot				iommus = <&iommu 0>;
141c66ec88fSEmmanuel Vadot
142c66ec88fSEmmanuel Vadot				ports {
143c66ec88fSEmmanuel Vadot					#address-cells = <1>;
144c66ec88fSEmmanuel Vadot					#size-cells = <0>;
145c66ec88fSEmmanuel Vadot
146c66ec88fSEmmanuel Vadot					mixer0_out: port@1 {
147c66ec88fSEmmanuel Vadot						reg = <1>;
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel Vadot						mixer0_out_tcon_top_mixer0: endpoint {
150c66ec88fSEmmanuel Vadot							remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
151c66ec88fSEmmanuel Vadot						};
152c66ec88fSEmmanuel Vadot					};
153c66ec88fSEmmanuel Vadot				};
154c66ec88fSEmmanuel Vadot			};
155c66ec88fSEmmanuel Vadot		};
156c66ec88fSEmmanuel Vadot
157e67e8565SEmmanuel Vadot		video-codec-g2@1c00000 {
158e67e8565SEmmanuel Vadot			compatible = "allwinner,sun50i-h6-vpu-g2";
159e67e8565SEmmanuel Vadot			reg = <0x01c00000 0x1000>;
160e67e8565SEmmanuel Vadot			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
161e67e8565SEmmanuel Vadot			clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
162e67e8565SEmmanuel Vadot			clock-names = "bus", "mod";
163e67e8565SEmmanuel Vadot			resets = <&ccu RST_BUS_VP9>;
164*7ef62cebSEmmanuel Vadot			iommus = <&iommu 5>;
165e67e8565SEmmanuel Vadot		};
166e67e8565SEmmanuel Vadot
167c66ec88fSEmmanuel Vadot		video-codec@1c0e000 {
168c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-video-engine";
169c66ec88fSEmmanuel Vadot			reg = <0x01c0e000 0x2000>;
170c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
171c66ec88fSEmmanuel Vadot				 <&ccu CLK_MBUS_VE>;
172c66ec88fSEmmanuel Vadot			clock-names = "ahb", "mod", "ram";
173c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_VE>;
174c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
175c66ec88fSEmmanuel Vadot			allwinner,sram = <&ve_sram 1>;
176c66ec88fSEmmanuel Vadot			iommus = <&iommu 3>;
177c66ec88fSEmmanuel Vadot		};
178c66ec88fSEmmanuel Vadot
179c66ec88fSEmmanuel Vadot		gpu: gpu@1800000 {
180c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-mali",
181c66ec88fSEmmanuel Vadot				     "arm,mali-t720";
182c66ec88fSEmmanuel Vadot			reg = <0x01800000 0x4000>;
183c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
184c66ec88fSEmmanuel Vadot				     <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
185c66ec88fSEmmanuel Vadot				     <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
186c66ec88fSEmmanuel Vadot			interrupt-names = "job", "mmu", "gpu";
187c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_GPU>, <&ccu CLK_BUS_GPU>;
188c66ec88fSEmmanuel Vadot			clock-names = "core", "bus";
189c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_GPU>;
190*7ef62cebSEmmanuel Vadot			#cooling-cells = <2>;
191c66ec88fSEmmanuel Vadot			status = "disabled";
192c66ec88fSEmmanuel Vadot		};
193c66ec88fSEmmanuel Vadot
194c66ec88fSEmmanuel Vadot		crypto: crypto@1904000 {
195c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-crypto";
196c66ec88fSEmmanuel Vadot			reg = <0x01904000 0x1000>;
197c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
198c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>, <&ccu CLK_MBUS_CE>;
199c66ec88fSEmmanuel Vadot			clock-names = "bus", "mod", "ram";
200c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_CE>;
201c66ec88fSEmmanuel Vadot		};
202c66ec88fSEmmanuel Vadot
203c66ec88fSEmmanuel Vadot		syscon: syscon@3000000 {
204c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-system-control",
205c66ec88fSEmmanuel Vadot				     "allwinner,sun50i-a64-system-control";
206c66ec88fSEmmanuel Vadot			reg = <0x03000000 0x1000>;
207c66ec88fSEmmanuel Vadot			#address-cells = <1>;
208c66ec88fSEmmanuel Vadot			#size-cells = <1>;
209c66ec88fSEmmanuel Vadot			ranges;
210c66ec88fSEmmanuel Vadot
211c66ec88fSEmmanuel Vadot			sram_c: sram@28000 {
212c66ec88fSEmmanuel Vadot				compatible = "mmio-sram";
213c66ec88fSEmmanuel Vadot				reg = <0x00028000 0x1e000>;
214c66ec88fSEmmanuel Vadot				#address-cells = <1>;
215c66ec88fSEmmanuel Vadot				#size-cells = <1>;
216c66ec88fSEmmanuel Vadot				ranges = <0 0x00028000 0x1e000>;
217c66ec88fSEmmanuel Vadot
218c66ec88fSEmmanuel Vadot				de2_sram: sram-section@0 {
219c66ec88fSEmmanuel Vadot					compatible = "allwinner,sun50i-h6-sram-c",
220c66ec88fSEmmanuel Vadot						     "allwinner,sun50i-a64-sram-c";
221c66ec88fSEmmanuel Vadot					reg = <0x0000 0x1e000>;
222c66ec88fSEmmanuel Vadot				};
223c66ec88fSEmmanuel Vadot			};
224c66ec88fSEmmanuel Vadot
225c66ec88fSEmmanuel Vadot			sram_c1: sram@1a00000 {
226c66ec88fSEmmanuel Vadot				compatible = "mmio-sram";
227c66ec88fSEmmanuel Vadot				reg = <0x01a00000 0x200000>;
228c66ec88fSEmmanuel Vadot				#address-cells = <1>;
229c66ec88fSEmmanuel Vadot				#size-cells = <1>;
230c66ec88fSEmmanuel Vadot				ranges = <0 0x01a00000 0x200000>;
231c66ec88fSEmmanuel Vadot
232c66ec88fSEmmanuel Vadot				ve_sram: sram-section@0 {
233c66ec88fSEmmanuel Vadot					compatible = "allwinner,sun50i-h6-sram-c1",
234c66ec88fSEmmanuel Vadot						     "allwinner,sun4i-a10-sram-c1";
235c66ec88fSEmmanuel Vadot					reg = <0x000000 0x200000>;
236c66ec88fSEmmanuel Vadot				};
237c66ec88fSEmmanuel Vadot			};
238c66ec88fSEmmanuel Vadot		};
239c66ec88fSEmmanuel Vadot
240c66ec88fSEmmanuel Vadot		ccu: clock@3001000 {
241c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-ccu";
242c66ec88fSEmmanuel Vadot			reg = <0x03001000 0x1000>;
243b97ee269SEmmanuel Vadot			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
244c66ec88fSEmmanuel Vadot			clock-names = "hosc", "losc", "iosc";
245c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
246c66ec88fSEmmanuel Vadot			#reset-cells = <1>;
247c66ec88fSEmmanuel Vadot		};
248c66ec88fSEmmanuel Vadot
249c66ec88fSEmmanuel Vadot		dma: dma-controller@3002000 {
250c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-dma";
251c66ec88fSEmmanuel Vadot			reg = <0x03002000 0x1000>;
252c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
253c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
254c66ec88fSEmmanuel Vadot			clock-names = "bus", "mbus";
255c66ec88fSEmmanuel Vadot			dma-channels = <16>;
256c66ec88fSEmmanuel Vadot			dma-requests = <46>;
257c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_DMA>;
258c66ec88fSEmmanuel Vadot			#dma-cells = <1>;
259c66ec88fSEmmanuel Vadot		};
260c66ec88fSEmmanuel Vadot
261c66ec88fSEmmanuel Vadot		msgbox: mailbox@3003000 {
262c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-msgbox",
263c66ec88fSEmmanuel Vadot				     "allwinner,sun6i-a31-msgbox";
264c66ec88fSEmmanuel Vadot			reg = <0x03003000 0x1000>;
265c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_MSGBOX>;
266c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_MSGBOX>;
267c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
268c66ec88fSEmmanuel Vadot			#mbox-cells = <1>;
269c66ec88fSEmmanuel Vadot		};
270c66ec88fSEmmanuel Vadot
271c66ec88fSEmmanuel Vadot		sid: efuse@3006000 {
272c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-sid";
273c66ec88fSEmmanuel Vadot			reg = <0x03006000 0x400>;
274c66ec88fSEmmanuel Vadot			#address-cells = <1>;
275c66ec88fSEmmanuel Vadot			#size-cells = <1>;
276c66ec88fSEmmanuel Vadot
277c66ec88fSEmmanuel Vadot			ths_calibration: thermal-sensor-calibration@14 {
278c66ec88fSEmmanuel Vadot				reg = <0x14 0x8>;
279c66ec88fSEmmanuel Vadot			};
280c66ec88fSEmmanuel Vadot
281c66ec88fSEmmanuel Vadot			cpu_speed_grade: cpu-speed-grade@1c {
282c66ec88fSEmmanuel Vadot				reg = <0x1c 0x4>;
283c66ec88fSEmmanuel Vadot			};
284c66ec88fSEmmanuel Vadot		};
285c66ec88fSEmmanuel Vadot
2865956d97fSEmmanuel Vadot		timer@3009000 {
2875956d97fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-timer",
2885956d97fSEmmanuel Vadot				     "allwinner,sun8i-a23-timer";
2895956d97fSEmmanuel Vadot			reg = <0x03009000 0xa0>;
2905956d97fSEmmanuel Vadot			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
2915956d97fSEmmanuel Vadot				     <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
2925956d97fSEmmanuel Vadot			clocks = <&osc24M>;
2935956d97fSEmmanuel Vadot		};
2945956d97fSEmmanuel Vadot
295c66ec88fSEmmanuel Vadot		watchdog: watchdog@30090a0 {
296c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-wdt",
297c66ec88fSEmmanuel Vadot				     "allwinner,sun6i-a31-wdt";
298c66ec88fSEmmanuel Vadot			reg = <0x030090a0 0x20>;
299c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
300c66ec88fSEmmanuel Vadot			clocks = <&osc24M>;
301c66ec88fSEmmanuel Vadot			/* Broken on some H6 boards */
302c66ec88fSEmmanuel Vadot			status = "disabled";
303c66ec88fSEmmanuel Vadot		};
304c66ec88fSEmmanuel Vadot
305c66ec88fSEmmanuel Vadot		pwm: pwm@300a000 {
306c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-pwm";
307c66ec88fSEmmanuel Vadot			reg = <0x0300a000 0x400>;
308c66ec88fSEmmanuel Vadot			clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
309c66ec88fSEmmanuel Vadot			clock-names = "mod", "bus";
310c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_PWM>;
311c66ec88fSEmmanuel Vadot			#pwm-cells = <3>;
312c66ec88fSEmmanuel Vadot			status = "disabled";
313c66ec88fSEmmanuel Vadot		};
314c66ec88fSEmmanuel Vadot
315c66ec88fSEmmanuel Vadot		pio: pinctrl@300b000 {
316c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-pinctrl";
317c66ec88fSEmmanuel Vadot			reg = <0x0300b000 0x400>;
3182eb4d8dcSEmmanuel Vadot			interrupt-parent = <&r_intc>;
319c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
320c66ec88fSEmmanuel Vadot				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
321c66ec88fSEmmanuel Vadot				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
322c66ec88fSEmmanuel Vadot				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
323b97ee269SEmmanuel Vadot			clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
324c66ec88fSEmmanuel Vadot			clock-names = "apb", "hosc", "losc";
325c66ec88fSEmmanuel Vadot			gpio-controller;
326c66ec88fSEmmanuel Vadot			#gpio-cells = <3>;
327c66ec88fSEmmanuel Vadot			interrupt-controller;
328c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
329c66ec88fSEmmanuel Vadot
330c66ec88fSEmmanuel Vadot			ext_rgmii_pins: rgmii-pins {
331c66ec88fSEmmanuel Vadot				pins = "PD0", "PD1", "PD2", "PD3", "PD4",
332c66ec88fSEmmanuel Vadot				       "PD5", "PD7", "PD8", "PD9", "PD10",
333c66ec88fSEmmanuel Vadot				       "PD11", "PD12", "PD13", "PD19", "PD20";
334c66ec88fSEmmanuel Vadot				function = "emac";
335c66ec88fSEmmanuel Vadot				drive-strength = <40>;
336c66ec88fSEmmanuel Vadot			};
337c66ec88fSEmmanuel Vadot
338c66ec88fSEmmanuel Vadot			hdmi_pins: hdmi-pins {
339c66ec88fSEmmanuel Vadot				pins = "PH8", "PH9", "PH10";
340c66ec88fSEmmanuel Vadot				function = "hdmi";
341c66ec88fSEmmanuel Vadot			};
342c66ec88fSEmmanuel Vadot
343c66ec88fSEmmanuel Vadot			i2c0_pins: i2c0-pins {
344c66ec88fSEmmanuel Vadot				pins = "PD25", "PD26";
345c66ec88fSEmmanuel Vadot				function = "i2c0";
346c66ec88fSEmmanuel Vadot			};
347c66ec88fSEmmanuel Vadot
348c66ec88fSEmmanuel Vadot			i2c1_pins: i2c1-pins {
349c66ec88fSEmmanuel Vadot				pins = "PH5", "PH6";
350c66ec88fSEmmanuel Vadot				function = "i2c1";
351c66ec88fSEmmanuel Vadot			};
352c66ec88fSEmmanuel Vadot
353c66ec88fSEmmanuel Vadot			i2c2_pins: i2c2-pins {
354c66ec88fSEmmanuel Vadot				pins = "PD23", "PD24";
355c66ec88fSEmmanuel Vadot				function = "i2c2";
356c66ec88fSEmmanuel Vadot			};
357c66ec88fSEmmanuel Vadot
358c66ec88fSEmmanuel Vadot			mmc0_pins: mmc0-pins {
359c66ec88fSEmmanuel Vadot				pins = "PF0", "PF1", "PF2", "PF3",
360c66ec88fSEmmanuel Vadot				       "PF4", "PF5";
361c66ec88fSEmmanuel Vadot				function = "mmc0";
362c66ec88fSEmmanuel Vadot				drive-strength = <30>;
363c66ec88fSEmmanuel Vadot				bias-pull-up;
364c66ec88fSEmmanuel Vadot			};
365c66ec88fSEmmanuel Vadot
366c66ec88fSEmmanuel Vadot			/omit-if-no-ref/
367c66ec88fSEmmanuel Vadot			mmc1_pins: mmc1-pins {
368c66ec88fSEmmanuel Vadot				pins = "PG0", "PG1", "PG2", "PG3",
369c66ec88fSEmmanuel Vadot				       "PG4", "PG5";
370c66ec88fSEmmanuel Vadot				function = "mmc1";
371c66ec88fSEmmanuel Vadot				drive-strength = <30>;
372c66ec88fSEmmanuel Vadot				bias-pull-up;
373c66ec88fSEmmanuel Vadot			};
374c66ec88fSEmmanuel Vadot
375c66ec88fSEmmanuel Vadot			mmc2_pins: mmc2-pins {
376c66ec88fSEmmanuel Vadot				pins = "PC1", "PC4", "PC5", "PC6",
377c66ec88fSEmmanuel Vadot				       "PC7", "PC8", "PC9", "PC10",
378c66ec88fSEmmanuel Vadot				       "PC11", "PC12", "PC13", "PC14";
379c66ec88fSEmmanuel Vadot				function = "mmc2";
380c66ec88fSEmmanuel Vadot				drive-strength = <30>;
381c66ec88fSEmmanuel Vadot				bias-pull-up;
382c66ec88fSEmmanuel Vadot			};
383c66ec88fSEmmanuel Vadot
384c66ec88fSEmmanuel Vadot			/omit-if-no-ref/
385c66ec88fSEmmanuel Vadot			spi0_pins: spi0-pins {
386c66ec88fSEmmanuel Vadot				pins = "PC0", "PC2", "PC3";
387c66ec88fSEmmanuel Vadot				function = "spi0";
388c66ec88fSEmmanuel Vadot			};
389c66ec88fSEmmanuel Vadot
390c66ec88fSEmmanuel Vadot			/* pin shared with MMC2-CMD (eMMC) */
391c66ec88fSEmmanuel Vadot			/omit-if-no-ref/
392c66ec88fSEmmanuel Vadot			spi0_cs_pin: spi0-cs-pin {
393c66ec88fSEmmanuel Vadot				pins = "PC5";
394c66ec88fSEmmanuel Vadot				function = "spi0";
395c66ec88fSEmmanuel Vadot			};
396c66ec88fSEmmanuel Vadot
397c66ec88fSEmmanuel Vadot			/omit-if-no-ref/
398c66ec88fSEmmanuel Vadot			spi1_pins: spi1-pins {
399c66ec88fSEmmanuel Vadot				pins = "PH4", "PH5", "PH6";
400c66ec88fSEmmanuel Vadot				function = "spi1";
401c66ec88fSEmmanuel Vadot			};
402c66ec88fSEmmanuel Vadot
403c66ec88fSEmmanuel Vadot			/omit-if-no-ref/
404c66ec88fSEmmanuel Vadot			spi1_cs_pin: spi1-cs-pin {
405c66ec88fSEmmanuel Vadot				pins = "PH3";
406c66ec88fSEmmanuel Vadot				function = "spi1";
407c66ec88fSEmmanuel Vadot			};
408c66ec88fSEmmanuel Vadot
409c66ec88fSEmmanuel Vadot			spdif_tx_pin: spdif-tx-pin {
410c66ec88fSEmmanuel Vadot				pins = "PH7";
411c66ec88fSEmmanuel Vadot				function = "spdif";
412c66ec88fSEmmanuel Vadot			};
413c66ec88fSEmmanuel Vadot
414c66ec88fSEmmanuel Vadot			uart0_ph_pins: uart0-ph-pins {
415c66ec88fSEmmanuel Vadot				pins = "PH0", "PH1";
416c66ec88fSEmmanuel Vadot				function = "uart0";
417c66ec88fSEmmanuel Vadot			};
418c66ec88fSEmmanuel Vadot
419c66ec88fSEmmanuel Vadot			uart1_pins: uart1-pins {
420c66ec88fSEmmanuel Vadot				pins = "PG6", "PG7";
421c66ec88fSEmmanuel Vadot				function = "uart1";
422c66ec88fSEmmanuel Vadot			};
423c66ec88fSEmmanuel Vadot
424c66ec88fSEmmanuel Vadot			uart1_rts_cts_pins: uart1-rts-cts-pins {
425c66ec88fSEmmanuel Vadot				pins = "PG8", "PG9";
426c66ec88fSEmmanuel Vadot				function = "uart1";
427c66ec88fSEmmanuel Vadot			};
428c66ec88fSEmmanuel Vadot		};
429c66ec88fSEmmanuel Vadot
430c66ec88fSEmmanuel Vadot		gic: interrupt-controller@3021000 {
431c66ec88fSEmmanuel Vadot			compatible = "arm,gic-400";
432c66ec88fSEmmanuel Vadot			reg = <0x03021000 0x1000>,
433c66ec88fSEmmanuel Vadot			      <0x03022000 0x2000>,
434c66ec88fSEmmanuel Vadot			      <0x03024000 0x2000>,
435c66ec88fSEmmanuel Vadot			      <0x03026000 0x2000>;
436c66ec88fSEmmanuel Vadot			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
437c66ec88fSEmmanuel Vadot			interrupt-controller;
438c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
439c66ec88fSEmmanuel Vadot		};
440c66ec88fSEmmanuel Vadot
441c66ec88fSEmmanuel Vadot		iommu: iommu@30f0000 {
442c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-iommu";
443c66ec88fSEmmanuel Vadot			reg = <0x030f0000 0x10000>;
444c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
445c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_IOMMU>;
446c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_IOMMU>;
447c66ec88fSEmmanuel Vadot			#iommu-cells = <1>;
448c66ec88fSEmmanuel Vadot		};
449c66ec88fSEmmanuel Vadot
450c66ec88fSEmmanuel Vadot		mmc0: mmc@4020000 {
451c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-mmc",
452c66ec88fSEmmanuel Vadot				     "allwinner,sun50i-a64-mmc";
453c66ec88fSEmmanuel Vadot			reg = <0x04020000 0x1000>;
454c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
455c66ec88fSEmmanuel Vadot			clock-names = "ahb", "mmc";
456c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_MMC0>;
457c66ec88fSEmmanuel Vadot			reset-names = "ahb";
458c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
459c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
460c66ec88fSEmmanuel Vadot			pinctrl-0 = <&mmc0_pins>;
4615def4c47SEmmanuel Vadot			max-frequency = <150000000>;
462c66ec88fSEmmanuel Vadot			status = "disabled";
463c66ec88fSEmmanuel Vadot			#address-cells = <1>;
464c66ec88fSEmmanuel Vadot			#size-cells = <0>;
465c66ec88fSEmmanuel Vadot		};
466c66ec88fSEmmanuel Vadot
467c66ec88fSEmmanuel Vadot		mmc1: mmc@4021000 {
468c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-mmc",
469c66ec88fSEmmanuel Vadot				     "allwinner,sun50i-a64-mmc";
470c66ec88fSEmmanuel Vadot			reg = <0x04021000 0x1000>;
471c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
472c66ec88fSEmmanuel Vadot			clock-names = "ahb", "mmc";
473c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_MMC1>;
474c66ec88fSEmmanuel Vadot			reset-names = "ahb";
475c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
476c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
477c66ec88fSEmmanuel Vadot			pinctrl-0 = <&mmc1_pins>;
4785def4c47SEmmanuel Vadot			max-frequency = <150000000>;
479c66ec88fSEmmanuel Vadot			status = "disabled";
480c66ec88fSEmmanuel Vadot			#address-cells = <1>;
481c66ec88fSEmmanuel Vadot			#size-cells = <0>;
482c66ec88fSEmmanuel Vadot		};
483c66ec88fSEmmanuel Vadot
484c66ec88fSEmmanuel Vadot		mmc2: mmc@4022000 {
485c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-emmc",
486c66ec88fSEmmanuel Vadot				     "allwinner,sun50i-a64-emmc";
487c66ec88fSEmmanuel Vadot			reg = <0x04022000 0x1000>;
488c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
489c66ec88fSEmmanuel Vadot			clock-names = "ahb", "mmc";
490c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_MMC2>;
491c66ec88fSEmmanuel Vadot			reset-names = "ahb";
492c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
493c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
494c66ec88fSEmmanuel Vadot			pinctrl-0 = <&mmc2_pins>;
4955def4c47SEmmanuel Vadot			max-frequency = <150000000>;
496c66ec88fSEmmanuel Vadot			status = "disabled";
497c66ec88fSEmmanuel Vadot			#address-cells = <1>;
498c66ec88fSEmmanuel Vadot			#size-cells = <0>;
499c66ec88fSEmmanuel Vadot		};
500c66ec88fSEmmanuel Vadot
501c66ec88fSEmmanuel Vadot		uart0: serial@5000000 {
502c66ec88fSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
503c66ec88fSEmmanuel Vadot			reg = <0x05000000 0x400>;
504c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
505c66ec88fSEmmanuel Vadot			reg-shift = <2>;
506c66ec88fSEmmanuel Vadot			reg-io-width = <4>;
507c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART0>;
508c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_UART0>;
509c66ec88fSEmmanuel Vadot			status = "disabled";
510c66ec88fSEmmanuel Vadot		};
511c66ec88fSEmmanuel Vadot
512c66ec88fSEmmanuel Vadot		uart1: serial@5000400 {
513c66ec88fSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
514c66ec88fSEmmanuel Vadot			reg = <0x05000400 0x400>;
515c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
516c66ec88fSEmmanuel Vadot			reg-shift = <2>;
517c66ec88fSEmmanuel Vadot			reg-io-width = <4>;
518c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART1>;
519c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_UART1>;
520c66ec88fSEmmanuel Vadot			status = "disabled";
521c66ec88fSEmmanuel Vadot		};
522c66ec88fSEmmanuel Vadot
523c66ec88fSEmmanuel Vadot		uart2: serial@5000800 {
524c66ec88fSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
525c66ec88fSEmmanuel Vadot			reg = <0x05000800 0x400>;
526c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
527c66ec88fSEmmanuel Vadot			reg-shift = <2>;
528c66ec88fSEmmanuel Vadot			reg-io-width = <4>;
529c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART2>;
530c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_UART2>;
531c66ec88fSEmmanuel Vadot			status = "disabled";
532c66ec88fSEmmanuel Vadot		};
533c66ec88fSEmmanuel Vadot
534c66ec88fSEmmanuel Vadot		uart3: serial@5000c00 {
535c66ec88fSEmmanuel Vadot			compatible = "snps,dw-apb-uart";
536c66ec88fSEmmanuel Vadot			reg = <0x05000c00 0x400>;
537c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
538c66ec88fSEmmanuel Vadot			reg-shift = <2>;
539c66ec88fSEmmanuel Vadot			reg-io-width = <4>;
540c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_UART3>;
541c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_UART3>;
542c66ec88fSEmmanuel Vadot			status = "disabled";
543c66ec88fSEmmanuel Vadot		};
544c66ec88fSEmmanuel Vadot
545c66ec88fSEmmanuel Vadot		i2c0: i2c@5002000 {
546c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-i2c",
547c66ec88fSEmmanuel Vadot				     "allwinner,sun6i-a31-i2c";
548c66ec88fSEmmanuel Vadot			reg = <0x05002000 0x400>;
549c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
550c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_I2C0>;
551c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_I2C0>;
552c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
553c66ec88fSEmmanuel Vadot			pinctrl-0 = <&i2c0_pins>;
554c66ec88fSEmmanuel Vadot			status = "disabled";
555c66ec88fSEmmanuel Vadot			#address-cells = <1>;
556c66ec88fSEmmanuel Vadot			#size-cells = <0>;
557c66ec88fSEmmanuel Vadot		};
558c66ec88fSEmmanuel Vadot
559c66ec88fSEmmanuel Vadot		i2c1: i2c@5002400 {
560c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-i2c",
561c66ec88fSEmmanuel Vadot				     "allwinner,sun6i-a31-i2c";
562c66ec88fSEmmanuel Vadot			reg = <0x05002400 0x400>;
563c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
564c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_I2C1>;
565c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_I2C1>;
566c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
567c66ec88fSEmmanuel Vadot			pinctrl-0 = <&i2c1_pins>;
568c66ec88fSEmmanuel Vadot			status = "disabled";
569c66ec88fSEmmanuel Vadot			#address-cells = <1>;
570c66ec88fSEmmanuel Vadot			#size-cells = <0>;
571c66ec88fSEmmanuel Vadot		};
572c66ec88fSEmmanuel Vadot
573c66ec88fSEmmanuel Vadot		i2c2: i2c@5002800 {
574c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-i2c",
575c66ec88fSEmmanuel Vadot				     "allwinner,sun6i-a31-i2c";
576c66ec88fSEmmanuel Vadot			reg = <0x05002800 0x400>;
577c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
578c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_I2C2>;
579c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_I2C2>;
580c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
581c66ec88fSEmmanuel Vadot			pinctrl-0 = <&i2c2_pins>;
582c66ec88fSEmmanuel Vadot			status = "disabled";
583c66ec88fSEmmanuel Vadot			#address-cells = <1>;
584c66ec88fSEmmanuel Vadot			#size-cells = <0>;
585c66ec88fSEmmanuel Vadot		};
586c66ec88fSEmmanuel Vadot
587c66ec88fSEmmanuel Vadot		spi0: spi@5010000 {
588c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-spi",
589c66ec88fSEmmanuel Vadot				     "allwinner,sun8i-h3-spi";
590c66ec88fSEmmanuel Vadot			reg = <0x05010000 0x1000>;
591c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
592c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
593c66ec88fSEmmanuel Vadot			clock-names = "ahb", "mod";
594c66ec88fSEmmanuel Vadot			dmas = <&dma 22>, <&dma 22>;
595c66ec88fSEmmanuel Vadot			dma-names = "rx", "tx";
596c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_SPI0>;
597c66ec88fSEmmanuel Vadot			status = "disabled";
598c66ec88fSEmmanuel Vadot			#address-cells = <1>;
599c66ec88fSEmmanuel Vadot			#size-cells = <0>;
600c66ec88fSEmmanuel Vadot		};
601c66ec88fSEmmanuel Vadot
602c66ec88fSEmmanuel Vadot		spi1: spi@5011000 {
603c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-spi",
604c66ec88fSEmmanuel Vadot				     "allwinner,sun8i-h3-spi";
605c66ec88fSEmmanuel Vadot			reg = <0x05011000 0x1000>;
606c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
607c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
608c66ec88fSEmmanuel Vadot			clock-names = "ahb", "mod";
609c66ec88fSEmmanuel Vadot			dmas = <&dma 23>, <&dma 23>;
610c66ec88fSEmmanuel Vadot			dma-names = "rx", "tx";
611c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_SPI1>;
612c66ec88fSEmmanuel Vadot			status = "disabled";
613c66ec88fSEmmanuel Vadot			#address-cells = <1>;
614c66ec88fSEmmanuel Vadot			#size-cells = <0>;
615c66ec88fSEmmanuel Vadot		};
616c66ec88fSEmmanuel Vadot
617c66ec88fSEmmanuel Vadot		emac: ethernet@5020000 {
618c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-emac",
619c66ec88fSEmmanuel Vadot				     "allwinner,sun50i-a64-emac";
620c66ec88fSEmmanuel Vadot			syscon = <&syscon>;
621c66ec88fSEmmanuel Vadot			reg = <0x05020000 0x10000>;
622c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
623c66ec88fSEmmanuel Vadot			interrupt-names = "macirq";
624c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_EMAC>;
625c66ec88fSEmmanuel Vadot			reset-names = "stmmaceth";
626c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_EMAC>;
627c66ec88fSEmmanuel Vadot			clock-names = "stmmaceth";
628c66ec88fSEmmanuel Vadot			status = "disabled";
629c66ec88fSEmmanuel Vadot
630c66ec88fSEmmanuel Vadot			mdio: mdio {
631c66ec88fSEmmanuel Vadot				compatible = "snps,dwmac-mdio";
632c66ec88fSEmmanuel Vadot				#address-cells = <1>;
633c66ec88fSEmmanuel Vadot				#size-cells = <0>;
634c66ec88fSEmmanuel Vadot			};
635c66ec88fSEmmanuel Vadot		};
636c66ec88fSEmmanuel Vadot
6375def4c47SEmmanuel Vadot		i2s1: i2s@5091000 {
6385def4c47SEmmanuel Vadot			#sound-dai-cells = <0>;
6395def4c47SEmmanuel Vadot			compatible = "allwinner,sun50i-h6-i2s";
6405def4c47SEmmanuel Vadot			reg = <0x05091000 0x1000>;
6415def4c47SEmmanuel Vadot			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
6425def4c47SEmmanuel Vadot			clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>;
6435def4c47SEmmanuel Vadot			clock-names = "apb", "mod";
6445def4c47SEmmanuel Vadot			dmas = <&dma 4>, <&dma 4>;
6455def4c47SEmmanuel Vadot			resets = <&ccu RST_BUS_I2S1>;
6465def4c47SEmmanuel Vadot			dma-names = "rx", "tx";
6475def4c47SEmmanuel Vadot			status = "disabled";
6485def4c47SEmmanuel Vadot		};
6495def4c47SEmmanuel Vadot
650c66ec88fSEmmanuel Vadot		spdif: spdif@5093000 {
651c66ec88fSEmmanuel Vadot			#sound-dai-cells = <0>;
652c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-spdif";
653c66ec88fSEmmanuel Vadot			reg = <0x05093000 0x400>;
654c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
655c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
656c66ec88fSEmmanuel Vadot			clock-names = "apb", "spdif";
657c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_SPDIF>;
658c66ec88fSEmmanuel Vadot			dmas = <&dma 2>;
659c66ec88fSEmmanuel Vadot			dma-names = "tx";
660c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
661c66ec88fSEmmanuel Vadot			pinctrl-0 = <&spdif_tx_pin>;
662c66ec88fSEmmanuel Vadot			status = "disabled";
663c66ec88fSEmmanuel Vadot		};
664c66ec88fSEmmanuel Vadot
665c66ec88fSEmmanuel Vadot		usb2otg: usb@5100000 {
666c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-musb",
667c66ec88fSEmmanuel Vadot				     "allwinner,sun8i-a33-musb";
668c66ec88fSEmmanuel Vadot			reg = <0x05100000 0x0400>;
669c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_OTG>;
670c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_OTG>;
671c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
672c66ec88fSEmmanuel Vadot			interrupt-names = "mc";
673c66ec88fSEmmanuel Vadot			phys = <&usb2phy 0>;
674c66ec88fSEmmanuel Vadot			phy-names = "usb";
675c66ec88fSEmmanuel Vadot			extcon = <&usb2phy 0>;
676c66ec88fSEmmanuel Vadot			status = "disabled";
677c66ec88fSEmmanuel Vadot		};
678c66ec88fSEmmanuel Vadot
679c66ec88fSEmmanuel Vadot		usb2phy: phy@5100400 {
680c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-usb-phy";
681c66ec88fSEmmanuel Vadot			reg = <0x05100400 0x24>,
682c66ec88fSEmmanuel Vadot			      <0x05101800 0x4>,
683c66ec88fSEmmanuel Vadot			      <0x05311800 0x4>;
684c66ec88fSEmmanuel Vadot			reg-names = "phy_ctrl",
685c66ec88fSEmmanuel Vadot				    "pmu0",
686c66ec88fSEmmanuel Vadot				    "pmu3";
687c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_USB_PHY0>,
688c66ec88fSEmmanuel Vadot				 <&ccu CLK_USB_PHY3>;
689c66ec88fSEmmanuel Vadot			clock-names = "usb0_phy",
690c66ec88fSEmmanuel Vadot				      "usb3_phy";
691c66ec88fSEmmanuel Vadot			resets = <&ccu RST_USB_PHY0>,
692c66ec88fSEmmanuel Vadot				 <&ccu RST_USB_PHY3>;
693c66ec88fSEmmanuel Vadot			reset-names = "usb0_reset",
694c66ec88fSEmmanuel Vadot				      "usb3_reset";
695c66ec88fSEmmanuel Vadot			status = "disabled";
696c66ec88fSEmmanuel Vadot			#phy-cells = <1>;
697c66ec88fSEmmanuel Vadot		};
698c66ec88fSEmmanuel Vadot
699c66ec88fSEmmanuel Vadot		ehci0: usb@5101000 {
700c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
701c66ec88fSEmmanuel Vadot			reg = <0x05101000 0x100>;
702c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
703c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_OHCI0>,
704c66ec88fSEmmanuel Vadot				 <&ccu CLK_BUS_EHCI0>,
705c66ec88fSEmmanuel Vadot				 <&ccu CLK_USB_OHCI0>;
706c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_OHCI0>,
707c66ec88fSEmmanuel Vadot				 <&ccu RST_BUS_EHCI0>;
7085def4c47SEmmanuel Vadot			phys = <&usb2phy 0>;
7095def4c47SEmmanuel Vadot			phy-names = "usb";
710c66ec88fSEmmanuel Vadot			status = "disabled";
711c66ec88fSEmmanuel Vadot		};
712c66ec88fSEmmanuel Vadot
713c66ec88fSEmmanuel Vadot		ohci0: usb@5101400 {
714c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
715c66ec88fSEmmanuel Vadot			reg = <0x05101400 0x100>;
716c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
717c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_OHCI0>,
718c66ec88fSEmmanuel Vadot				 <&ccu CLK_USB_OHCI0>;
719c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_OHCI0>;
7205def4c47SEmmanuel Vadot			phys = <&usb2phy 0>;
7215def4c47SEmmanuel Vadot			phy-names = "usb";
722c66ec88fSEmmanuel Vadot			status = "disabled";
723c66ec88fSEmmanuel Vadot		};
724c66ec88fSEmmanuel Vadot
7255def4c47SEmmanuel Vadot		dwc3: usb@5200000 {
726c66ec88fSEmmanuel Vadot			compatible = "snps,dwc3";
727c66ec88fSEmmanuel Vadot			reg = <0x05200000 0x10000>;
728c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
729c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_XHCI>,
730c66ec88fSEmmanuel Vadot				 <&ccu CLK_BUS_XHCI>,
731b97ee269SEmmanuel Vadot				 <&rtc CLK_OSC32K>;
732c66ec88fSEmmanuel Vadot			clock-names = "ref", "bus_early", "suspend";
733c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_XHCI>;
734c66ec88fSEmmanuel Vadot			/*
735c66ec88fSEmmanuel Vadot			 * The datasheet of the chip doesn't declare the
736c66ec88fSEmmanuel Vadot			 * peripheral function, and there's no boards known
737c66ec88fSEmmanuel Vadot			 * to have a USB Type-B port routed to the port.
738c66ec88fSEmmanuel Vadot			 * In addition, no one has tested the peripheral
739c66ec88fSEmmanuel Vadot			 * function yet.
740c66ec88fSEmmanuel Vadot			 * So set the dr_mode to "host" in the DTSI file.
741c66ec88fSEmmanuel Vadot			 */
742c66ec88fSEmmanuel Vadot			dr_mode = "host";
743c66ec88fSEmmanuel Vadot			phys = <&usb3phy>;
744c66ec88fSEmmanuel Vadot			phy-names = "usb3-phy";
745c66ec88fSEmmanuel Vadot			status = "disabled";
746c66ec88fSEmmanuel Vadot		};
747c66ec88fSEmmanuel Vadot
748c66ec88fSEmmanuel Vadot		usb3phy: phy@5210000 {
749c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-usb3-phy";
750c66ec88fSEmmanuel Vadot			reg = <0x5210000 0x10000>;
751c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_USB_PHY1>;
752c66ec88fSEmmanuel Vadot			resets = <&ccu RST_USB_PHY1>;
753c66ec88fSEmmanuel Vadot			#phy-cells = <0>;
754c66ec88fSEmmanuel Vadot			status = "disabled";
755c66ec88fSEmmanuel Vadot		};
756c66ec88fSEmmanuel Vadot
757c66ec88fSEmmanuel Vadot		ehci3: usb@5311000 {
758c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
759c66ec88fSEmmanuel Vadot			reg = <0x05311000 0x100>;
760c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
761c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_OHCI3>,
762c66ec88fSEmmanuel Vadot				 <&ccu CLK_BUS_EHCI3>,
763c66ec88fSEmmanuel Vadot				 <&ccu CLK_USB_OHCI3>;
764c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_OHCI3>,
765c66ec88fSEmmanuel Vadot				 <&ccu RST_BUS_EHCI3>;
766c66ec88fSEmmanuel Vadot			phys = <&usb2phy 3>;
767c66ec88fSEmmanuel Vadot			phy-names = "usb";
768c66ec88fSEmmanuel Vadot			status = "disabled";
769c66ec88fSEmmanuel Vadot		};
770c66ec88fSEmmanuel Vadot
771c66ec88fSEmmanuel Vadot		ohci3: usb@5311400 {
772c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
773c66ec88fSEmmanuel Vadot			reg = <0x05311400 0x100>;
774c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
775c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_OHCI3>,
776c66ec88fSEmmanuel Vadot				 <&ccu CLK_USB_OHCI3>;
777c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_OHCI3>;
778c66ec88fSEmmanuel Vadot			phys = <&usb2phy 3>;
779c66ec88fSEmmanuel Vadot			phy-names = "usb";
780c66ec88fSEmmanuel Vadot			status = "disabled";
781c66ec88fSEmmanuel Vadot		};
782c66ec88fSEmmanuel Vadot
783c66ec88fSEmmanuel Vadot		hdmi: hdmi@6000000 {
784c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-dw-hdmi";
785c66ec88fSEmmanuel Vadot			reg = <0x06000000 0x10000>;
786c66ec88fSEmmanuel Vadot			reg-io-width = <1>;
787c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
788c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
789c66ec88fSEmmanuel Vadot				 <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>,
790c66ec88fSEmmanuel Vadot				 <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>;
791c66ec88fSEmmanuel Vadot			clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
792c66ec88fSEmmanuel Vadot				      "hdcp-bus";
793c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>;
794c66ec88fSEmmanuel Vadot			reset-names = "ctrl", "hdcp";
795c66ec88fSEmmanuel Vadot			phys = <&hdmi_phy>;
796c66ec88fSEmmanuel Vadot			phy-names = "phy";
797c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
798c66ec88fSEmmanuel Vadot			pinctrl-0 = <&hdmi_pins>;
799c66ec88fSEmmanuel Vadot			status = "disabled";
800c66ec88fSEmmanuel Vadot
801c66ec88fSEmmanuel Vadot			ports {
802c66ec88fSEmmanuel Vadot				#address-cells = <1>;
803c66ec88fSEmmanuel Vadot				#size-cells = <0>;
804c66ec88fSEmmanuel Vadot
805c66ec88fSEmmanuel Vadot				hdmi_in: port@0 {
806c66ec88fSEmmanuel Vadot					reg = <0>;
807c66ec88fSEmmanuel Vadot
808c66ec88fSEmmanuel Vadot					hdmi_in_tcon_top: endpoint {
809c66ec88fSEmmanuel Vadot						remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
810c66ec88fSEmmanuel Vadot					};
811c66ec88fSEmmanuel Vadot				};
812c66ec88fSEmmanuel Vadot
813c66ec88fSEmmanuel Vadot				hdmi_out: port@1 {
814c66ec88fSEmmanuel Vadot					reg = <1>;
815c66ec88fSEmmanuel Vadot				};
816c66ec88fSEmmanuel Vadot			};
817c66ec88fSEmmanuel Vadot		};
818c66ec88fSEmmanuel Vadot
819c66ec88fSEmmanuel Vadot		hdmi_phy: hdmi-phy@6010000 {
820c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-hdmi-phy";
821c66ec88fSEmmanuel Vadot			reg = <0x06010000 0x10000>;
822c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>;
823c66ec88fSEmmanuel Vadot			clock-names = "bus", "mod";
824c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_HDMI>;
825c66ec88fSEmmanuel Vadot			reset-names = "phy";
826c66ec88fSEmmanuel Vadot			#phy-cells = <0>;
827c66ec88fSEmmanuel Vadot		};
828c66ec88fSEmmanuel Vadot
829c66ec88fSEmmanuel Vadot		tcon_top: tcon-top@6510000 {
830c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-tcon-top";
831c66ec88fSEmmanuel Vadot			reg = <0x06510000 0x1000>;
832c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_TCON_TOP>,
833c66ec88fSEmmanuel Vadot				 <&ccu CLK_TCON_TV0>;
834c66ec88fSEmmanuel Vadot			clock-names = "bus",
835c66ec88fSEmmanuel Vadot				      "tcon-tv0";
836c66ec88fSEmmanuel Vadot			clock-output-names = "tcon-top-tv0";
837c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_TCON_TOP>;
838c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
839c66ec88fSEmmanuel Vadot
840c66ec88fSEmmanuel Vadot			ports {
841c66ec88fSEmmanuel Vadot				#address-cells = <1>;
842c66ec88fSEmmanuel Vadot				#size-cells = <0>;
843c66ec88fSEmmanuel Vadot
844c66ec88fSEmmanuel Vadot				tcon_top_mixer0_in: port@0 {
845c66ec88fSEmmanuel Vadot					#address-cells = <1>;
846c66ec88fSEmmanuel Vadot					#size-cells = <0>;
847c66ec88fSEmmanuel Vadot					reg = <0>;
848c66ec88fSEmmanuel Vadot
849c66ec88fSEmmanuel Vadot					tcon_top_mixer0_in_mixer0: endpoint@0 {
850c66ec88fSEmmanuel Vadot						reg = <0>;
851c66ec88fSEmmanuel Vadot						remote-endpoint = <&mixer0_out_tcon_top_mixer0>;
852c66ec88fSEmmanuel Vadot					};
853c66ec88fSEmmanuel Vadot				};
854c66ec88fSEmmanuel Vadot
855c66ec88fSEmmanuel Vadot				tcon_top_mixer0_out: port@1 {
856c66ec88fSEmmanuel Vadot					#address-cells = <1>;
857c66ec88fSEmmanuel Vadot					#size-cells = <0>;
858c66ec88fSEmmanuel Vadot					reg = <1>;
859c66ec88fSEmmanuel Vadot
860c66ec88fSEmmanuel Vadot					tcon_top_mixer0_out_tcon_tv: endpoint@2 {
861c66ec88fSEmmanuel Vadot						reg = <2>;
862c66ec88fSEmmanuel Vadot						remote-endpoint = <&tcon_tv_in_tcon_top_mixer0>;
863c66ec88fSEmmanuel Vadot					};
864c66ec88fSEmmanuel Vadot				};
865c66ec88fSEmmanuel Vadot
866c66ec88fSEmmanuel Vadot				tcon_top_hdmi_in: port@4 {
867c66ec88fSEmmanuel Vadot					#address-cells = <1>;
868c66ec88fSEmmanuel Vadot					#size-cells = <0>;
869c66ec88fSEmmanuel Vadot					reg = <4>;
870c66ec88fSEmmanuel Vadot
871c66ec88fSEmmanuel Vadot					tcon_top_hdmi_in_tcon_tv: endpoint@0 {
872c66ec88fSEmmanuel Vadot						reg = <0>;
873c66ec88fSEmmanuel Vadot						remote-endpoint = <&tcon_tv_out_tcon_top>;
874c66ec88fSEmmanuel Vadot					};
875c66ec88fSEmmanuel Vadot				};
876c66ec88fSEmmanuel Vadot
877c66ec88fSEmmanuel Vadot				tcon_top_hdmi_out: port@5 {
878c66ec88fSEmmanuel Vadot					reg = <5>;
879c66ec88fSEmmanuel Vadot
880c66ec88fSEmmanuel Vadot					tcon_top_hdmi_out_hdmi: endpoint {
881c66ec88fSEmmanuel Vadot						remote-endpoint = <&hdmi_in_tcon_top>;
882c66ec88fSEmmanuel Vadot					};
883c66ec88fSEmmanuel Vadot				};
884c66ec88fSEmmanuel Vadot			};
885c66ec88fSEmmanuel Vadot		};
886c66ec88fSEmmanuel Vadot
887c66ec88fSEmmanuel Vadot		tcon_tv: lcd-controller@6515000 {
888c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-tcon-tv",
889c66ec88fSEmmanuel Vadot				     "allwinner,sun8i-r40-tcon-tv";
890c66ec88fSEmmanuel Vadot			reg = <0x06515000 0x1000>;
891c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
892c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_TCON_TV0>,
893c66ec88fSEmmanuel Vadot				 <&tcon_top CLK_TCON_TOP_TV0>;
894c66ec88fSEmmanuel Vadot			clock-names = "ahb",
895c66ec88fSEmmanuel Vadot				      "tcon-ch1";
896c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_TCON_TV0>;
897c66ec88fSEmmanuel Vadot			reset-names = "lcd";
898c66ec88fSEmmanuel Vadot
899c66ec88fSEmmanuel Vadot			ports {
900c66ec88fSEmmanuel Vadot				#address-cells = <1>;
901c66ec88fSEmmanuel Vadot				#size-cells = <0>;
902c66ec88fSEmmanuel Vadot
903c66ec88fSEmmanuel Vadot				tcon_tv_in: port@0 {
904c66ec88fSEmmanuel Vadot					reg = <0>;
905c66ec88fSEmmanuel Vadot
906c66ec88fSEmmanuel Vadot					tcon_tv_in_tcon_top_mixer0: endpoint {
907c66ec88fSEmmanuel Vadot						remote-endpoint = <&tcon_top_mixer0_out_tcon_tv>;
908c66ec88fSEmmanuel Vadot					};
909c66ec88fSEmmanuel Vadot				};
910c66ec88fSEmmanuel Vadot
911c66ec88fSEmmanuel Vadot				tcon_tv_out: port@1 {
912c66ec88fSEmmanuel Vadot					#address-cells = <1>;
913c66ec88fSEmmanuel Vadot					#size-cells = <0>;
914c66ec88fSEmmanuel Vadot					reg = <1>;
915c66ec88fSEmmanuel Vadot
916c66ec88fSEmmanuel Vadot					tcon_tv_out_tcon_top: endpoint@1 {
917c66ec88fSEmmanuel Vadot						reg = <1>;
918c66ec88fSEmmanuel Vadot						remote-endpoint = <&tcon_top_hdmi_in_tcon_tv>;
919c66ec88fSEmmanuel Vadot					};
920c66ec88fSEmmanuel Vadot				};
921c66ec88fSEmmanuel Vadot			};
922c66ec88fSEmmanuel Vadot		};
923c66ec88fSEmmanuel Vadot
924c66ec88fSEmmanuel Vadot		rtc: rtc@7000000 {
925c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-rtc";
926c66ec88fSEmmanuel Vadot			reg = <0x07000000 0x400>;
9272eb4d8dcSEmmanuel Vadot			interrupt-parent = <&r_intc>;
928c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
929c66ec88fSEmmanuel Vadot				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
930c66ec88fSEmmanuel Vadot			clock-output-names = "osc32k", "osc32k-out", "iosc";
931c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
932c66ec88fSEmmanuel Vadot		};
933c66ec88fSEmmanuel Vadot
934c66ec88fSEmmanuel Vadot		r_ccu: clock@7010000 {
935c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-r-ccu";
936c66ec88fSEmmanuel Vadot			reg = <0x07010000 0x400>;
937b97ee269SEmmanuel Vadot			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
938c66ec88fSEmmanuel Vadot				 <&ccu CLK_PLL_PERIPH0>;
939c66ec88fSEmmanuel Vadot			clock-names = "hosc", "losc", "iosc", "pll-periph";
940c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
941c66ec88fSEmmanuel Vadot			#reset-cells = <1>;
942c66ec88fSEmmanuel Vadot		};
943c66ec88fSEmmanuel Vadot
944c66ec88fSEmmanuel Vadot		r_watchdog: watchdog@7020400 {
945c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-wdt",
946c66ec88fSEmmanuel Vadot				     "allwinner,sun6i-a31-wdt";
947c66ec88fSEmmanuel Vadot			reg = <0x07020400 0x20>;
948c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
949c66ec88fSEmmanuel Vadot			clocks = <&osc24M>;
950c66ec88fSEmmanuel Vadot		};
951c66ec88fSEmmanuel Vadot
952c66ec88fSEmmanuel Vadot		r_intc: interrupt-controller@7021000 {
9532eb4d8dcSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-r-intc";
954c66ec88fSEmmanuel Vadot			interrupt-controller;
9552eb4d8dcSEmmanuel Vadot			#interrupt-cells = <3>;
956c66ec88fSEmmanuel Vadot			reg = <0x07021000 0x400>;
957c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
958c66ec88fSEmmanuel Vadot		};
959c66ec88fSEmmanuel Vadot
960c66ec88fSEmmanuel Vadot		r_pio: pinctrl@7022000 {
961c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-r-pinctrl";
962c66ec88fSEmmanuel Vadot			reg = <0x07022000 0x400>;
9632eb4d8dcSEmmanuel Vadot			interrupt-parent = <&r_intc>;
964c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
965c66ec88fSEmmanuel Vadot				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
966b97ee269SEmmanuel Vadot			clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
967b97ee269SEmmanuel Vadot				 <&rtc CLK_OSC32K>;
968c66ec88fSEmmanuel Vadot			clock-names = "apb", "hosc", "losc";
969c66ec88fSEmmanuel Vadot			gpio-controller;
970c66ec88fSEmmanuel Vadot			#gpio-cells = <3>;
971c66ec88fSEmmanuel Vadot			interrupt-controller;
972c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
973c66ec88fSEmmanuel Vadot
974c66ec88fSEmmanuel Vadot			r_i2c_pins: r-i2c-pins {
975c66ec88fSEmmanuel Vadot				pins = "PL0", "PL1";
976c66ec88fSEmmanuel Vadot				function = "s_i2c";
977c66ec88fSEmmanuel Vadot			};
978c66ec88fSEmmanuel Vadot
979c66ec88fSEmmanuel Vadot			r_ir_rx_pin: r-ir-rx-pin {
980c66ec88fSEmmanuel Vadot				pins = "PL9";
981c66ec88fSEmmanuel Vadot				function = "s_cir_rx";
982c66ec88fSEmmanuel Vadot			};
9835def4c47SEmmanuel Vadot
9845def4c47SEmmanuel Vadot			r_rsb_pins: r-rsb-pins {
9855def4c47SEmmanuel Vadot				pins = "PL0", "PL1";
9865def4c47SEmmanuel Vadot				function = "s_rsb";
9875def4c47SEmmanuel Vadot			};
988c66ec88fSEmmanuel Vadot		};
989c66ec88fSEmmanuel Vadot
990c66ec88fSEmmanuel Vadot		r_ir: ir@7040000 {
991c66ec88fSEmmanuel Vadot				compatible = "allwinner,sun50i-h6-ir",
992c66ec88fSEmmanuel Vadot					     "allwinner,sun6i-a31-ir";
993c66ec88fSEmmanuel Vadot				reg = <0x07040000 0x400>;
994c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
995c66ec88fSEmmanuel Vadot				clocks = <&r_ccu CLK_R_APB1_IR>,
996c66ec88fSEmmanuel Vadot					 <&r_ccu CLK_IR>;
997c66ec88fSEmmanuel Vadot				clock-names = "apb", "ir";
998c66ec88fSEmmanuel Vadot				resets = <&r_ccu RST_R_APB1_IR>;
999c66ec88fSEmmanuel Vadot				pinctrl-names = "default";
1000c66ec88fSEmmanuel Vadot				pinctrl-0 = <&r_ir_rx_pin>;
1001c66ec88fSEmmanuel Vadot				status = "disabled";
1002c66ec88fSEmmanuel Vadot		};
1003c66ec88fSEmmanuel Vadot
1004c66ec88fSEmmanuel Vadot		r_i2c: i2c@7081400 {
1005c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-i2c",
1006c66ec88fSEmmanuel Vadot				     "allwinner,sun6i-a31-i2c";
1007c66ec88fSEmmanuel Vadot			reg = <0x07081400 0x400>;
1008c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1009c66ec88fSEmmanuel Vadot			clocks = <&r_ccu CLK_R_APB2_I2C>;
1010c66ec88fSEmmanuel Vadot			resets = <&r_ccu RST_R_APB2_I2C>;
1011c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
1012c66ec88fSEmmanuel Vadot			pinctrl-0 = <&r_i2c_pins>;
1013c66ec88fSEmmanuel Vadot			status = "disabled";
1014c66ec88fSEmmanuel Vadot			#address-cells = <1>;
1015c66ec88fSEmmanuel Vadot			#size-cells = <0>;
1016c66ec88fSEmmanuel Vadot		};
1017c66ec88fSEmmanuel Vadot
10185def4c47SEmmanuel Vadot		r_rsb: rsb@7083000 {
10195def4c47SEmmanuel Vadot			compatible = "allwinner,sun8i-a23-rsb";
10205def4c47SEmmanuel Vadot			reg = <0x07083000 0x400>;
10215def4c47SEmmanuel Vadot			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
102282ea1a07SEmmanuel Vadot			clocks = <&r_ccu CLK_R_APB2_RSB>;
10235def4c47SEmmanuel Vadot			clock-frequency = <3000000>;
102482ea1a07SEmmanuel Vadot			resets = <&r_ccu RST_R_APB2_RSB>;
10255def4c47SEmmanuel Vadot			pinctrl-names = "default";
10265def4c47SEmmanuel Vadot			pinctrl-0 = <&r_rsb_pins>;
10275def4c47SEmmanuel Vadot			status = "disabled";
10285def4c47SEmmanuel Vadot			#address-cells = <1>;
10295def4c47SEmmanuel Vadot			#size-cells = <0>;
10305def4c47SEmmanuel Vadot		};
10315def4c47SEmmanuel Vadot
1032c66ec88fSEmmanuel Vadot		ths: thermal-sensor@5070400 {
1033c66ec88fSEmmanuel Vadot			compatible = "allwinner,sun50i-h6-ths";
1034c66ec88fSEmmanuel Vadot			reg = <0x05070400 0x100>;
1035c66ec88fSEmmanuel Vadot			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1036c66ec88fSEmmanuel Vadot			clocks = <&ccu CLK_BUS_THS>;
1037c66ec88fSEmmanuel Vadot			clock-names = "bus";
1038c66ec88fSEmmanuel Vadot			resets = <&ccu RST_BUS_THS>;
1039c66ec88fSEmmanuel Vadot			nvmem-cells = <&ths_calibration>;
1040c66ec88fSEmmanuel Vadot			nvmem-cell-names = "calibration";
1041c66ec88fSEmmanuel Vadot			#thermal-sensor-cells = <1>;
1042c66ec88fSEmmanuel Vadot		};
1043c66ec88fSEmmanuel Vadot	};
1044c66ec88fSEmmanuel Vadot
1045c66ec88fSEmmanuel Vadot	thermal-zones {
1046c66ec88fSEmmanuel Vadot		cpu-thermal {
1047c66ec88fSEmmanuel Vadot			polling-delay-passive = <0>;
1048c66ec88fSEmmanuel Vadot			polling-delay = <0>;
1049c66ec88fSEmmanuel Vadot			thermal-sensors = <&ths 0>;
1050c66ec88fSEmmanuel Vadot
1051c66ec88fSEmmanuel Vadot			trips {
1052c66ec88fSEmmanuel Vadot				cpu_alert: cpu-alert {
1053c66ec88fSEmmanuel Vadot					temperature = <85000>;
1054c66ec88fSEmmanuel Vadot					hysteresis = <2000>;
1055c66ec88fSEmmanuel Vadot					type = "passive";
1056c66ec88fSEmmanuel Vadot				};
1057c66ec88fSEmmanuel Vadot
1058c66ec88fSEmmanuel Vadot				cpu-crit {
1059c66ec88fSEmmanuel Vadot					temperature = <100000>;
1060c66ec88fSEmmanuel Vadot					hysteresis = <0>;
1061c66ec88fSEmmanuel Vadot					type = "critical";
1062c66ec88fSEmmanuel Vadot				};
1063c66ec88fSEmmanuel Vadot			};
1064c66ec88fSEmmanuel Vadot
1065c66ec88fSEmmanuel Vadot			cooling-maps {
1066c66ec88fSEmmanuel Vadot				map0 {
1067c66ec88fSEmmanuel Vadot					trip = <&cpu_alert>;
1068c66ec88fSEmmanuel Vadot					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1069c66ec88fSEmmanuel Vadot							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1070c66ec88fSEmmanuel Vadot							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1071c66ec88fSEmmanuel Vadot							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1072c66ec88fSEmmanuel Vadot				};
1073c66ec88fSEmmanuel Vadot			};
1074c66ec88fSEmmanuel Vadot		};
1075c66ec88fSEmmanuel Vadot
1076c66ec88fSEmmanuel Vadot		gpu-thermal {
1077*7ef62cebSEmmanuel Vadot			polling-delay-passive = <1000>;
1078*7ef62cebSEmmanuel Vadot			polling-delay = <2000>;
1079c66ec88fSEmmanuel Vadot			thermal-sensors = <&ths 1>;
1080*7ef62cebSEmmanuel Vadot
1081*7ef62cebSEmmanuel Vadot			trips {
1082*7ef62cebSEmmanuel Vadot				gpu_alert0: gpu-alert-0 {
1083*7ef62cebSEmmanuel Vadot					temperature = <95000>;
1084*7ef62cebSEmmanuel Vadot					hysteresis = <2000>;
1085*7ef62cebSEmmanuel Vadot					type = "passive";
1086*7ef62cebSEmmanuel Vadot				};
1087*7ef62cebSEmmanuel Vadot
1088*7ef62cebSEmmanuel Vadot				gpu_alert1: gpu-alert-1 {
1089*7ef62cebSEmmanuel Vadot					temperature = <100000>;
1090*7ef62cebSEmmanuel Vadot					hysteresis = <2000>;
1091*7ef62cebSEmmanuel Vadot					type = "passive";
1092*7ef62cebSEmmanuel Vadot				};
1093*7ef62cebSEmmanuel Vadot
1094*7ef62cebSEmmanuel Vadot				gpu_alert2: gpu-alert-2 {
1095*7ef62cebSEmmanuel Vadot					temperature = <105000>;
1096*7ef62cebSEmmanuel Vadot					hysteresis = <2000>;
1097*7ef62cebSEmmanuel Vadot					type = "passive";
1098*7ef62cebSEmmanuel Vadot				};
1099*7ef62cebSEmmanuel Vadot
1100*7ef62cebSEmmanuel Vadot				gpu-crit {
1101*7ef62cebSEmmanuel Vadot					temperature = <115000>;
1102*7ef62cebSEmmanuel Vadot					hysteresis = <0>;
1103*7ef62cebSEmmanuel Vadot					type = "critical";
1104*7ef62cebSEmmanuel Vadot				};
1105*7ef62cebSEmmanuel Vadot			};
1106*7ef62cebSEmmanuel Vadot
1107*7ef62cebSEmmanuel Vadot			cooling-maps {
1108*7ef62cebSEmmanuel Vadot				// Forbid the GPU to go over 756MHz
1109*7ef62cebSEmmanuel Vadot				map0 {
1110*7ef62cebSEmmanuel Vadot					trip = <&gpu_alert0>;
1111*7ef62cebSEmmanuel Vadot					cooling-device = <&gpu 1 THERMAL_NO_LIMIT>;
1112*7ef62cebSEmmanuel Vadot				};
1113*7ef62cebSEmmanuel Vadot
1114*7ef62cebSEmmanuel Vadot				// Forbid the GPU to go over 624MHz
1115*7ef62cebSEmmanuel Vadot				map1 {
1116*7ef62cebSEmmanuel Vadot					trip = <&gpu_alert1>;
1117*7ef62cebSEmmanuel Vadot					cooling-device = <&gpu 2 THERMAL_NO_LIMIT>;
1118*7ef62cebSEmmanuel Vadot				};
1119*7ef62cebSEmmanuel Vadot
1120*7ef62cebSEmmanuel Vadot				// Forbid the GPU to go over 576MHz
1121*7ef62cebSEmmanuel Vadot				map2 {
1122*7ef62cebSEmmanuel Vadot					trip = <&gpu_alert2>;
1123*7ef62cebSEmmanuel Vadot					cooling-device = <&gpu 3 THERMAL_NO_LIMIT>;
1124*7ef62cebSEmmanuel Vadot				};
1125*7ef62cebSEmmanuel Vadot			};
1126c66ec88fSEmmanuel Vadot		};
1127c66ec88fSEmmanuel Vadot	};
1128c66ec88fSEmmanuel Vadot};
1129