xref: /linux/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
10d17c865SAndre Przywara// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
20d17c865SAndre Przywara// Copyright (C) 2020 Arm Ltd.
30d17c865SAndre Przywara// based on the H6 dtsi, which is:
40d17c865SAndre Przywara//   Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
50d17c865SAndre Przywara
60d17c865SAndre Przywara#include <dt-bindings/interrupt-controller/arm-gic.h>
70d17c865SAndre Przywara#include <dt-bindings/clock/sun50i-h616-ccu.h>
80d17c865SAndre Przywara#include <dt-bindings/clock/sun50i-h6-r-ccu.h>
90d17c865SAndre Przywara#include <dt-bindings/clock/sun6i-rtc.h>
100d17c865SAndre Przywara#include <dt-bindings/reset/sun50i-h616-ccu.h>
110d17c865SAndre Przywara#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
12f4318af4SMartin Botka#include <dt-bindings/thermal/thermal.h>
130d17c865SAndre Przywara
140d17c865SAndre Przywara/ {
150d17c865SAndre Przywara	interrupt-parent = <&gic>;
160d17c865SAndre Przywara	#address-cells = <2>;
170d17c865SAndre Przywara	#size-cells = <2>;
180d17c865SAndre Przywara
190d17c865SAndre Przywara	cpus {
200d17c865SAndre Przywara		#address-cells = <1>;
210d17c865SAndre Przywara		#size-cells = <0>;
220d17c865SAndre Przywara
230d17c865SAndre Przywara		cpu0: cpu@0 {
240d17c865SAndre Przywara			compatible = "arm,cortex-a53";
250d17c865SAndre Przywara			device_type = "cpu";
260d17c865SAndre Przywara			reg = <0>;
270d17c865SAndre Przywara			enable-method = "psci";
280d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
293e057e05SMartin Botka			#cooling-cells = <2>;
30d4ec229eSDragan Simic			i-cache-size = <0x8000>;
31d4ec229eSDragan Simic			i-cache-line-size = <64>;
32d4ec229eSDragan Simic			i-cache-sets = <256>;
33d4ec229eSDragan Simic			d-cache-size = <0x8000>;
34d4ec229eSDragan Simic			d-cache-line-size = <64>;
35d4ec229eSDragan Simic			d-cache-sets = <128>;
36d4ec229eSDragan Simic			next-level-cache = <&l2_cache>;
370d17c865SAndre Przywara		};
380d17c865SAndre Przywara
390d17c865SAndre Przywara		cpu1: cpu@1 {
400d17c865SAndre Przywara			compatible = "arm,cortex-a53";
410d17c865SAndre Przywara			device_type = "cpu";
420d17c865SAndre Przywara			reg = <1>;
430d17c865SAndre Przywara			enable-method = "psci";
440d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
453e057e05SMartin Botka			#cooling-cells = <2>;
46d4ec229eSDragan Simic			i-cache-size = <0x8000>;
47d4ec229eSDragan Simic			i-cache-line-size = <64>;
48d4ec229eSDragan Simic			i-cache-sets = <256>;
49d4ec229eSDragan Simic			d-cache-size = <0x8000>;
50d4ec229eSDragan Simic			d-cache-line-size = <64>;
51d4ec229eSDragan Simic			d-cache-sets = <128>;
52d4ec229eSDragan Simic			next-level-cache = <&l2_cache>;
530d17c865SAndre Przywara		};
540d17c865SAndre Przywara
550d17c865SAndre Przywara		cpu2: cpu@2 {
560d17c865SAndre Przywara			compatible = "arm,cortex-a53";
570d17c865SAndre Przywara			device_type = "cpu";
580d17c865SAndre Przywara			reg = <2>;
590d17c865SAndre Przywara			enable-method = "psci";
600d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
613e057e05SMartin Botka			#cooling-cells = <2>;
62d4ec229eSDragan Simic			i-cache-size = <0x8000>;
63d4ec229eSDragan Simic			i-cache-line-size = <64>;
64d4ec229eSDragan Simic			i-cache-sets = <256>;
65d4ec229eSDragan Simic			d-cache-size = <0x8000>;
66d4ec229eSDragan Simic			d-cache-line-size = <64>;
67d4ec229eSDragan Simic			d-cache-sets = <128>;
68d4ec229eSDragan Simic			next-level-cache = <&l2_cache>;
690d17c865SAndre Przywara		};
700d17c865SAndre Przywara
710d17c865SAndre Przywara		cpu3: cpu@3 {
720d17c865SAndre Przywara			compatible = "arm,cortex-a53";
730d17c865SAndre Przywara			device_type = "cpu";
740d17c865SAndre Przywara			reg = <3>;
750d17c865SAndre Przywara			enable-method = "psci";
760d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
773e057e05SMartin Botka			#cooling-cells = <2>;
78d4ec229eSDragan Simic			i-cache-size = <0x8000>;
79d4ec229eSDragan Simic			i-cache-line-size = <64>;
80d4ec229eSDragan Simic			i-cache-sets = <256>;
81d4ec229eSDragan Simic			d-cache-size = <0x8000>;
82d4ec229eSDragan Simic			d-cache-line-size = <64>;
83d4ec229eSDragan Simic			d-cache-sets = <128>;
84d4ec229eSDragan Simic			next-level-cache = <&l2_cache>;
85d4ec229eSDragan Simic		};
86d4ec229eSDragan Simic
87d4ec229eSDragan Simic		l2_cache: l2-cache {
88d4ec229eSDragan Simic			compatible = "cache";
89d4ec229eSDragan Simic			cache-level = <2>;
90d4ec229eSDragan Simic			cache-unified;
91d4ec229eSDragan Simic			cache-size = <0x40000>;
92d4ec229eSDragan Simic			cache-line-size = <64>;
93d4ec229eSDragan Simic			cache-sets = <256>;
940d17c865SAndre Przywara		};
950d17c865SAndre Przywara	};
960d17c865SAndre Przywara
970d17c865SAndre Przywara	reserved-memory {
980d17c865SAndre Przywara		#address-cells = <2>;
990d17c865SAndre Przywara		#size-cells = <2>;
1000d17c865SAndre Przywara		ranges;
1010d17c865SAndre Przywara
1020d17c865SAndre Przywara		/*
1030d17c865SAndre Przywara		 * 256 KiB reserved for Trusted Firmware-A (BL31).
1040d17c865SAndre Przywara		 * This is added by BL31 itself, but some bootloaders fail
1050d17c865SAndre Przywara		 * to propagate this into the DTB handed to kernels.
1060d17c865SAndre Przywara		 */
1070d17c865SAndre Przywara		secmon@40000000 {
1080d17c865SAndre Przywara			reg = <0x0 0x40000000 0x0 0x40000>;
1090d17c865SAndre Przywara			no-map;
1100d17c865SAndre Przywara		};
1110d17c865SAndre Przywara	};
1120d17c865SAndre Przywara
1130d17c865SAndre Przywara	osc24M: osc24M-clk {
1140d17c865SAndre Przywara		#clock-cells = <0>;
1150d17c865SAndre Przywara		compatible = "fixed-clock";
1160d17c865SAndre Przywara		clock-frequency = <24000000>;
1170d17c865SAndre Przywara		clock-output-names = "osc24M";
1180d17c865SAndre Przywara	};
1190d17c865SAndre Przywara
1200d17c865SAndre Przywara	pmu {
1210d17c865SAndre Przywara		compatible = "arm,cortex-a53-pmu";
1220d17c865SAndre Przywara		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
1230d17c865SAndre Przywara			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
1240d17c865SAndre Przywara			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
1250d17c865SAndre Przywara			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
1260d17c865SAndre Przywara		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
1270d17c865SAndre Przywara	};
1280d17c865SAndre Przywara
1290d17c865SAndre Przywara	psci {
1300d17c865SAndre Przywara		compatible = "arm,psci-0.2";
1310d17c865SAndre Przywara		method = "smc";
1320d17c865SAndre Przywara	};
1330d17c865SAndre Przywara
1340d17c865SAndre Przywara	timer {
1350d17c865SAndre Przywara		compatible = "arm,armv8-timer";
1360d17c865SAndre Przywara		arm,no-tick-in-suspend;
1370d17c865SAndre Przywara		interrupts = <GIC_PPI 13
1380d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1390d17c865SAndre Przywara			     <GIC_PPI 14
1400d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1410d17c865SAndre Przywara			     <GIC_PPI 11
1420d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1430d17c865SAndre Przywara			     <GIC_PPI 10
1440d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1450d17c865SAndre Przywara	};
1460d17c865SAndre Przywara
1470d17c865SAndre Przywara	soc {
1480d17c865SAndre Przywara		compatible = "simple-bus";
1490d17c865SAndre Przywara		#address-cells = <1>;
1500d17c865SAndre Przywara		#size-cells = <1>;
1510d17c865SAndre Przywara		ranges = <0x0 0x0 0x0 0x40000000>;
1520d17c865SAndre Przywara
1536ed9a85fSAndre Przywara		crypto: crypto@1904000 {
1546ed9a85fSAndre Przywara			compatible = "allwinner,sun50i-h616-crypto";
1556ed9a85fSAndre Przywara			reg = <0x01904000 0x800>;
1566ed9a85fSAndre Przywara			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
1576ed9a85fSAndre Przywara			clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>,
1586ed9a85fSAndre Przywara				 <&ccu CLK_MBUS_CE>, <&rtc CLK_IOSC>;
1596ed9a85fSAndre Przywara			clock-names = "bus", "mod", "ram", "trng";
1606ed9a85fSAndre Przywara			resets = <&ccu RST_BUS_CE>;
1616ed9a85fSAndre Przywara		};
1626ed9a85fSAndre Przywara
1630d17c865SAndre Przywara		syscon: syscon@3000000 {
1640d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-system-control";
1650d17c865SAndre Przywara			reg = <0x03000000 0x1000>;
1660d17c865SAndre Przywara			#address-cells = <1>;
1670d17c865SAndre Przywara			#size-cells = <1>;
1680d17c865SAndre Przywara			ranges;
1690d17c865SAndre Przywara
1700d17c865SAndre Przywara			sram_c: sram@28000 {
1710d17c865SAndre Przywara				compatible = "mmio-sram";
1720d17c865SAndre Przywara				reg = <0x00028000 0x30000>;
1730d17c865SAndre Przywara				#address-cells = <1>;
1740d17c865SAndre Przywara				#size-cells = <1>;
1750d17c865SAndre Przywara				ranges = <0 0x00028000 0x30000>;
1760d17c865SAndre Przywara			};
1770d17c865SAndre Przywara		};
1780d17c865SAndre Przywara
1790d17c865SAndre Przywara		ccu: clock@3001000 {
1800d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-ccu";
1810d17c865SAndre Przywara			reg = <0x03001000 0x1000>;
1820d17c865SAndre Przywara			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
1830d17c865SAndre Przywara			clock-names = "hosc", "losc", "iosc";
1840d17c865SAndre Przywara			#clock-cells = <1>;
1850d17c865SAndre Przywara			#reset-cells = <1>;
1860d17c865SAndre Przywara		};
1870d17c865SAndre Przywara
188238f65fcSChen-Yu Tsai		dma: dma-controller@3002000 {
189238f65fcSChen-Yu Tsai			compatible = "allwinner,sun50i-h616-dma",
190238f65fcSChen-Yu Tsai				     "allwinner,sun50i-a100-dma";
191238f65fcSChen-Yu Tsai			reg = <0x03002000 0x1000>;
192238f65fcSChen-Yu Tsai			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
193238f65fcSChen-Yu Tsai			clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
194238f65fcSChen-Yu Tsai			clock-names = "bus", "mbus";
195238f65fcSChen-Yu Tsai			dma-channels = <16>;
196238f65fcSChen-Yu Tsai			dma-requests = <49>;
197238f65fcSChen-Yu Tsai			resets = <&ccu RST_BUS_DMA>;
198238f65fcSChen-Yu Tsai			#dma-cells = <1>;
199238f65fcSChen-Yu Tsai		};
200238f65fcSChen-Yu Tsai
20195199279SMartin Botka		sid: efuse@3006000 {
20295199279SMartin Botka			compatible = "allwinner,sun50i-h616-sid", "allwinner,sun50i-a64-sid";
20395199279SMartin Botka			reg = <0x03006000 0x1000>;
20495199279SMartin Botka			#address-cells = <1>;
20595199279SMartin Botka			#size-cells = <1>;
206f4318af4SMartin Botka
207f4318af4SMartin Botka			ths_calibration: thermal-sensor-calibration@14 {
208f4318af4SMartin Botka				reg = <0x14 0x8>;
209f4318af4SMartin Botka			};
2103e057e05SMartin Botka
2113e057e05SMartin Botka			cpu_speed_grade: cpu-speed-grade@0 {
2123e057e05SMartin Botka				reg = <0x0 2>;
2133e057e05SMartin Botka			};
21495199279SMartin Botka		};
21595199279SMartin Botka
2160d17c865SAndre Przywara		watchdog: watchdog@30090a0 {
2170d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-wdt",
2180d17c865SAndre Przywara				     "allwinner,sun6i-a31-wdt";
2190d17c865SAndre Przywara			reg = <0x030090a0 0x20>;
2200d17c865SAndre Przywara			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
2210d17c865SAndre Przywara			clocks = <&osc24M>;
2220d17c865SAndre Przywara		};
2230d17c865SAndre Przywara
2240d17c865SAndre Przywara		pio: pinctrl@300b000 {
2250d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-pinctrl";
2260d17c865SAndre Przywara			reg = <0x0300b000 0x400>;
2270d17c865SAndre Przywara			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
2280d17c865SAndre Przywara				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
2290d17c865SAndre Przywara				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
2300d17c865SAndre Przywara				     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
2310d17c865SAndre Przywara				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
2320d17c865SAndre Przywara				     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
2330d17c865SAndre Przywara				     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
2340d17c865SAndre Przywara				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
2350d17c865SAndre Przywara			clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
2360d17c865SAndre Przywara			clock-names = "apb", "hosc", "losc";
2370d17c865SAndre Przywara			gpio-controller;
2380d17c865SAndre Przywara			#gpio-cells = <3>;
2390d17c865SAndre Przywara			interrupt-controller;
2400d17c865SAndre Przywara			#interrupt-cells = <3>;
2410d17c865SAndre Przywara
2420d17c865SAndre Przywara			ext_rgmii_pins: rgmii-pins {
2430d17c865SAndre Przywara				pins = "PI0", "PI1", "PI2", "PI3", "PI4",
2440d17c865SAndre Przywara				       "PI5", "PI7", "PI8", "PI9", "PI10",
2450d17c865SAndre Przywara				       "PI11", "PI12", "PI13", "PI14", "PI15",
2460d17c865SAndre Przywara				       "PI16";
2470d17c865SAndre Przywara				function = "emac0";
2480d17c865SAndre Przywara				drive-strength = <40>;
2490d17c865SAndre Przywara			};
2500d17c865SAndre Przywara
2510d17c865SAndre Przywara			i2c0_pins: i2c0-pins {
2525bdeb3d2SAndre Przywara				pins = "PI5", "PI6";
2530d17c865SAndre Przywara				function = "i2c0";
2540d17c865SAndre Przywara			};
2550d17c865SAndre Przywara
2560d17c865SAndre Przywara			i2c3_ph_pins: i2c3-ph-pins {
2570d17c865SAndre Przywara				pins = "PH4", "PH5";
2580d17c865SAndre Przywara				function = "i2c3";
2590d17c865SAndre Przywara			};
2600d17c865SAndre Przywara
2610d17c865SAndre Przywara			ir_rx_pin: ir-rx-pin {
2620d17c865SAndre Przywara				pins = "PH10";
2630d17c865SAndre Przywara				function = "ir_rx";
2640d17c865SAndre Przywara			};
2650d17c865SAndre Przywara
2660d17c865SAndre Przywara			mmc0_pins: mmc0-pins {
2670d17c865SAndre Przywara				pins = "PF0", "PF1", "PF2", "PF3",
2680d17c865SAndre Przywara				       "PF4", "PF5";
2690d17c865SAndre Przywara				function = "mmc0";
2700d17c865SAndre Przywara				drive-strength = <30>;
2710d17c865SAndre Przywara				bias-pull-up;
2720d17c865SAndre Przywara			};
2730d17c865SAndre Przywara
2740d17c865SAndre Przywara			/omit-if-no-ref/
2750d17c865SAndre Przywara			mmc1_pins: mmc1-pins {
2760d17c865SAndre Przywara				pins = "PG0", "PG1", "PG2", "PG3",
2770d17c865SAndre Przywara				       "PG4", "PG5";
2780d17c865SAndre Przywara				function = "mmc1";
2790d17c865SAndre Przywara				drive-strength = <30>;
2800d17c865SAndre Przywara				bias-pull-up;
2810d17c865SAndre Przywara			};
2820d17c865SAndre Przywara
2830d17c865SAndre Przywara			mmc2_pins: mmc2-pins {
2840d17c865SAndre Przywara				pins = "PC0", "PC1", "PC5", "PC6",
2850d17c865SAndre Przywara				       "PC8", "PC9", "PC10", "PC11",
2860d17c865SAndre Przywara				       "PC13", "PC14", "PC15", "PC16";
2870d17c865SAndre Przywara				function = "mmc2";
2880d17c865SAndre Przywara				drive-strength = <30>;
2890d17c865SAndre Przywara				bias-pull-up;
2900d17c865SAndre Przywara			};
2910d17c865SAndre Przywara
2920d17c865SAndre Przywara			/omit-if-no-ref/
2930d17c865SAndre Przywara			spi0_pins: spi0-pins {
2940d17c865SAndre Przywara				pins = "PC0", "PC2", "PC4";
2950d17c865SAndre Przywara				function = "spi0";
2960d17c865SAndre Przywara			};
2970d17c865SAndre Przywara
2980d17c865SAndre Przywara			/omit-if-no-ref/
2990d17c865SAndre Przywara			spi0_cs0_pin: spi0-cs0-pin {
3000d17c865SAndre Przywara				pins = "PC3";
3010d17c865SAndre Przywara				function = "spi0";
3020d17c865SAndre Przywara			};
3030d17c865SAndre Przywara
3040d17c865SAndre Przywara			/omit-if-no-ref/
3050d17c865SAndre Przywara			spi1_pins: spi1-pins {
3060d17c865SAndre Przywara				pins = "PH6", "PH7", "PH8";
3070d17c865SAndre Przywara				function = "spi1";
3080d17c865SAndre Przywara			};
3090d17c865SAndre Przywara
3100d17c865SAndre Przywara			/omit-if-no-ref/
3110d17c865SAndre Przywara			spi1_cs0_pin: spi1-cs0-pin {
3120d17c865SAndre Przywara				pins = "PH5";
3130d17c865SAndre Przywara				function = "spi1";
3140d17c865SAndre Przywara			};
3150d17c865SAndre Przywara
316fe5128a1SChen-Yu Tsai			spdif_tx_pin: spdif-tx-pin {
317fe5128a1SChen-Yu Tsai				pins = "PH4";
318fe5128a1SChen-Yu Tsai				function = "spdif";
319fe5128a1SChen-Yu Tsai			};
320fe5128a1SChen-Yu Tsai
3210d17c865SAndre Przywara			uart0_ph_pins: uart0-ph-pins {
3220d17c865SAndre Przywara				pins = "PH0", "PH1";
3230d17c865SAndre Przywara				function = "uart0";
3240d17c865SAndre Przywara			};
3250d17c865SAndre Przywara
3260d17c865SAndre Przywara			/omit-if-no-ref/
3270d17c865SAndre Przywara			uart1_pins: uart1-pins {
3280d17c865SAndre Przywara				pins = "PG6", "PG7";
3290d17c865SAndre Przywara				function = "uart1";
3300d17c865SAndre Przywara			};
3310d17c865SAndre Przywara
3320d17c865SAndre Przywara			/omit-if-no-ref/
3330d17c865SAndre Przywara			uart1_rts_cts_pins: uart1-rts-cts-pins {
3340d17c865SAndre Przywara				pins = "PG8", "PG9";
3350d17c865SAndre Przywara				function = "uart1";
3360d17c865SAndre Przywara			};
3379583c8d9SAndre Przywara
3389583c8d9SAndre Przywara			/omit-if-no-ref/
3399583c8d9SAndre Przywara			x32clk_fanout_pin: x32clk-fanout-pin {
3409583c8d9SAndre Przywara				pins = "PG10";
3419583c8d9SAndre Przywara				function = "clock";
3429583c8d9SAndre Przywara			};
3430d17c865SAndre Przywara		};
3440d17c865SAndre Przywara
3450d17c865SAndre Przywara		gic: interrupt-controller@3021000 {
3460d17c865SAndre Przywara			compatible = "arm,gic-400";
3470d17c865SAndre Przywara			reg = <0x03021000 0x1000>,
3480d17c865SAndre Przywara			      <0x03022000 0x2000>,
3490d17c865SAndre Przywara			      <0x03024000 0x2000>,
3500d17c865SAndre Przywara			      <0x03026000 0x2000>;
3510d17c865SAndre Przywara			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
3520d17c865SAndre Przywara			interrupt-controller;
3530d17c865SAndre Przywara			#interrupt-cells = <3>;
3540d17c865SAndre Przywara		};
3550d17c865SAndre Przywara
3560c85e2e3SAndre Przywara		iommu: iommu@30f0000 {
3570c85e2e3SAndre Przywara			compatible = "allwinner,sun50i-h616-iommu";
3580c85e2e3SAndre Przywara			reg = <0x030f0000 0x10000>;
3590c85e2e3SAndre Przywara			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
3600c85e2e3SAndre Przywara			clocks = <&ccu CLK_BUS_IOMMU>;
3610c85e2e3SAndre Przywara			resets = <&ccu RST_BUS_IOMMU>;
3620c85e2e3SAndre Przywara			#iommu-cells = <1>;
3630c85e2e3SAndre Przywara		};
3640c85e2e3SAndre Przywara
3650d17c865SAndre Przywara		mmc0: mmc@4020000 {
3660d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-mmc",
3670d17c865SAndre Przywara				     "allwinner,sun50i-a100-mmc";
3680d17c865SAndre Przywara			reg = <0x04020000 0x1000>;
3690d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
3700d17c865SAndre Przywara			clock-names = "ahb", "mmc";
3710d17c865SAndre Przywara			resets = <&ccu RST_BUS_MMC0>;
3720d17c865SAndre Przywara			reset-names = "ahb";
3730d17c865SAndre Przywara			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
3740d17c865SAndre Przywara			pinctrl-names = "default";
3750d17c865SAndre Przywara			pinctrl-0 = <&mmc0_pins>;
3760d17c865SAndre Przywara			status = "disabled";
3770d17c865SAndre Przywara			max-frequency = <150000000>;
3780d17c865SAndre Przywara			cap-sd-highspeed;
3790d17c865SAndre Przywara			cap-mmc-highspeed;
3800d17c865SAndre Przywara			mmc-ddr-3_3v;
3810d17c865SAndre Przywara			cap-sdio-irq;
3820d17c865SAndre Przywara			#address-cells = <1>;
3830d17c865SAndre Przywara			#size-cells = <0>;
3840d17c865SAndre Przywara		};
3850d17c865SAndre Przywara
3860d17c865SAndre Przywara		mmc1: mmc@4021000 {
3870d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-mmc",
3880d17c865SAndre Przywara				     "allwinner,sun50i-a100-mmc";
3890d17c865SAndre Przywara			reg = <0x04021000 0x1000>;
3900d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
3910d17c865SAndre Przywara			clock-names = "ahb", "mmc";
3920d17c865SAndre Przywara			resets = <&ccu RST_BUS_MMC1>;
3930d17c865SAndre Przywara			reset-names = "ahb";
3940d17c865SAndre Przywara			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
3950d17c865SAndre Przywara			pinctrl-names = "default";
3960d17c865SAndre Przywara			pinctrl-0 = <&mmc1_pins>;
3970d17c865SAndre Przywara			status = "disabled";
3980d17c865SAndre Przywara			max-frequency = <150000000>;
3990d17c865SAndre Przywara			cap-sd-highspeed;
4000d17c865SAndre Przywara			cap-mmc-highspeed;
4010d17c865SAndre Przywara			mmc-ddr-3_3v;
4020d17c865SAndre Przywara			cap-sdio-irq;
4030d17c865SAndre Przywara			#address-cells = <1>;
4040d17c865SAndre Przywara			#size-cells = <0>;
4050d17c865SAndre Przywara		};
4060d17c865SAndre Przywara
4070d17c865SAndre Przywara		mmc2: mmc@4022000 {
4080d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-emmc",
4090d17c865SAndre Przywara				     "allwinner,sun50i-a100-emmc";
4100d17c865SAndre Przywara			reg = <0x04022000 0x1000>;
4110d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
4120d17c865SAndre Przywara			clock-names = "ahb", "mmc";
4130d17c865SAndre Przywara			resets = <&ccu RST_BUS_MMC2>;
4140d17c865SAndre Przywara			reset-names = "ahb";
4150d17c865SAndre Przywara			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
4160d17c865SAndre Przywara			pinctrl-names = "default";
4170d17c865SAndre Przywara			pinctrl-0 = <&mmc2_pins>;
4180d17c865SAndre Przywara			status = "disabled";
4190d17c865SAndre Przywara			max-frequency = <150000000>;
4200d17c865SAndre Przywara			cap-sd-highspeed;
4210d17c865SAndre Przywara			cap-mmc-highspeed;
4220d17c865SAndre Przywara			mmc-ddr-3_3v;
4230d17c865SAndre Przywara			cap-sdio-irq;
4240d17c865SAndre Przywara			#address-cells = <1>;
4250d17c865SAndre Przywara			#size-cells = <0>;
4260d17c865SAndre Przywara		};
4270d17c865SAndre Przywara
4280d17c865SAndre Przywara		uart0: serial@5000000 {
4290d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
4300d17c865SAndre Przywara			reg = <0x05000000 0x400>;
4310d17c865SAndre Przywara			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
4320d17c865SAndre Przywara			reg-shift = <2>;
4330d17c865SAndre Przywara			reg-io-width = <4>;
4340d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART0>;
435238f65fcSChen-Yu Tsai			dmas = <&dma 14>, <&dma 14>;
436238f65fcSChen-Yu Tsai			dma-names = "tx", "rx";
4370d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART0>;
4380d17c865SAndre Przywara			status = "disabled";
4390d17c865SAndre Przywara		};
4400d17c865SAndre Przywara
4410d17c865SAndre Przywara		uart1: serial@5000400 {
4420d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
4430d17c865SAndre Przywara			reg = <0x05000400 0x400>;
4440d17c865SAndre Przywara			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
4450d17c865SAndre Przywara			reg-shift = <2>;
4460d17c865SAndre Przywara			reg-io-width = <4>;
4470d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART1>;
448238f65fcSChen-Yu Tsai			dmas = <&dma 15>, <&dma 15>;
449238f65fcSChen-Yu Tsai			dma-names = "tx", "rx";
4500d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART1>;
4510d17c865SAndre Przywara			status = "disabled";
4520d17c865SAndre Przywara		};
4530d17c865SAndre Przywara
4540d17c865SAndre Przywara		uart2: serial@5000800 {
4550d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
4560d17c865SAndre Przywara			reg = <0x05000800 0x400>;
4570d17c865SAndre Przywara			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
4580d17c865SAndre Przywara			reg-shift = <2>;
4590d17c865SAndre Przywara			reg-io-width = <4>;
4600d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART2>;
461238f65fcSChen-Yu Tsai			dmas = <&dma 16>, <&dma 16>;
462238f65fcSChen-Yu Tsai			dma-names = "tx", "rx";
4630d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART2>;
4640d17c865SAndre Przywara			status = "disabled";
4650d17c865SAndre Przywara		};
4660d17c865SAndre Przywara
4670d17c865SAndre Przywara		uart3: serial@5000c00 {
4680d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
4690d17c865SAndre Przywara			reg = <0x05000c00 0x400>;
4700d17c865SAndre Przywara			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
4710d17c865SAndre Przywara			reg-shift = <2>;
4720d17c865SAndre Przywara			reg-io-width = <4>;
4730d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART3>;
474238f65fcSChen-Yu Tsai			dmas = <&dma 17>, <&dma 17>;
475238f65fcSChen-Yu Tsai			dma-names = "tx", "rx";
4760d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART3>;
4770d17c865SAndre Przywara			status = "disabled";
4780d17c865SAndre Przywara		};
4790d17c865SAndre Przywara
4800d17c865SAndre Przywara		uart4: serial@5001000 {
4810d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
4820d17c865SAndre Przywara			reg = <0x05001000 0x400>;
4830d17c865SAndre Przywara			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
4840d17c865SAndre Przywara			reg-shift = <2>;
4850d17c865SAndre Przywara			reg-io-width = <4>;
4860d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART4>;
487238f65fcSChen-Yu Tsai			dmas = <&dma 18>, <&dma 18>;
488238f65fcSChen-Yu Tsai			dma-names = "tx", "rx";
4890d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART4>;
4900d17c865SAndre Przywara			status = "disabled";
4910d17c865SAndre Przywara		};
4920d17c865SAndre Przywara
4930d17c865SAndre Przywara		uart5: serial@5001400 {
4940d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
4950d17c865SAndre Przywara			reg = <0x05001400 0x400>;
4960d17c865SAndre Przywara			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
4970d17c865SAndre Przywara			reg-shift = <2>;
4980d17c865SAndre Przywara			reg-io-width = <4>;
4990d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART5>;
500238f65fcSChen-Yu Tsai			dmas = <&dma 19>, <&dma 19>;
501238f65fcSChen-Yu Tsai			dma-names = "tx", "rx";
5020d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART5>;
5030d17c865SAndre Przywara			status = "disabled";
5040d17c865SAndre Przywara		};
5050d17c865SAndre Przywara
5060d17c865SAndre Przywara		i2c0: i2c@5002000 {
5070d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
5080d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
5090d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
5100d17c865SAndre Przywara			reg = <0x05002000 0x400>;
5110d17c865SAndre Przywara			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
5120d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C0>;
513238f65fcSChen-Yu Tsai			dmas = <&dma 43>, <&dma 43>;
514238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
5150d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C0>;
5160d17c865SAndre Przywara			pinctrl-names = "default";
5170d17c865SAndre Przywara			pinctrl-0 = <&i2c0_pins>;
5180d17c865SAndre Przywara			status = "disabled";
5190d17c865SAndre Przywara			#address-cells = <1>;
5200d17c865SAndre Przywara			#size-cells = <0>;
5210d17c865SAndre Przywara		};
5220d17c865SAndre Przywara
5230d17c865SAndre Przywara		i2c1: i2c@5002400 {
5240d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
5250d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
5260d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
5270d17c865SAndre Przywara			reg = <0x05002400 0x400>;
5280d17c865SAndre Przywara			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
5290d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C1>;
530238f65fcSChen-Yu Tsai			dmas = <&dma 44>, <&dma 44>;
531238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
5320d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C1>;
5330d17c865SAndre Przywara			status = "disabled";
5340d17c865SAndre Przywara			#address-cells = <1>;
5350d17c865SAndre Przywara			#size-cells = <0>;
5360d17c865SAndre Przywara		};
5370d17c865SAndre Przywara
5380d17c865SAndre Przywara		i2c2: i2c@5002800 {
5390d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
5400d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
5410d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
5420d17c865SAndre Przywara			reg = <0x05002800 0x400>;
5430d17c865SAndre Przywara			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
5440d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C2>;
545238f65fcSChen-Yu Tsai			dmas = <&dma 45>, <&dma 45>;
546238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
5470d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C2>;
5480d17c865SAndre Przywara			status = "disabled";
5490d17c865SAndre Przywara			#address-cells = <1>;
5500d17c865SAndre Przywara			#size-cells = <0>;
5510d17c865SAndre Przywara		};
5520d17c865SAndre Przywara
5530d17c865SAndre Przywara		i2c3: i2c@5002c00 {
5540d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
5550d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
5560d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
5570d17c865SAndre Przywara			reg = <0x05002c00 0x400>;
5580d17c865SAndre Przywara			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
5590d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C3>;
560238f65fcSChen-Yu Tsai			dmas = <&dma 46>, <&dma 46>;
561238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
5620d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C3>;
5630d17c865SAndre Przywara			status = "disabled";
5640d17c865SAndre Przywara			#address-cells = <1>;
5650d17c865SAndre Przywara			#size-cells = <0>;
5660d17c865SAndre Przywara		};
5670d17c865SAndre Przywara
5680d17c865SAndre Przywara		i2c4: i2c@5003000 {
5690d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
5700d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
5710d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
5720d17c865SAndre Przywara			reg = <0x05003000 0x400>;
5730d17c865SAndre Przywara			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
5740d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C4>;
575238f65fcSChen-Yu Tsai			dmas = <&dma 47>, <&dma 47>;
576238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
5770d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C4>;
5780d17c865SAndre Przywara			status = "disabled";
5790d17c865SAndre Przywara			#address-cells = <1>;
5800d17c865SAndre Przywara			#size-cells = <0>;
5810d17c865SAndre Przywara		};
5820d17c865SAndre Przywara
5830d17c865SAndre Przywara		spi0: spi@5010000 {
5840d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-spi",
5850d17c865SAndre Przywara				     "allwinner,sun8i-h3-spi";
5860d17c865SAndre Przywara			reg = <0x05010000 0x1000>;
5870d17c865SAndre Przywara			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
5880d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
5890d17c865SAndre Przywara			clock-names = "ahb", "mod";
590238f65fcSChen-Yu Tsai			dmas = <&dma 22>, <&dma 22>;
591238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
5920d17c865SAndre Przywara			resets = <&ccu RST_BUS_SPI0>;
5930d17c865SAndre Przywara			status = "disabled";
5940d17c865SAndre Przywara			#address-cells = <1>;
5950d17c865SAndre Przywara			#size-cells = <0>;
5960d17c865SAndre Przywara		};
5970d17c865SAndre Przywara
5980d17c865SAndre Przywara		spi1: spi@5011000 {
5990d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-spi",
6000d17c865SAndre Przywara				     "allwinner,sun8i-h3-spi";
6010d17c865SAndre Przywara			reg = <0x05011000 0x1000>;
6020d17c865SAndre Przywara			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
6030d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
6040d17c865SAndre Przywara			clock-names = "ahb", "mod";
605238f65fcSChen-Yu Tsai			dmas = <&dma 23>, <&dma 23>;
606238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
6070d17c865SAndre Przywara			resets = <&ccu RST_BUS_SPI1>;
6080d17c865SAndre Przywara			status = "disabled";
6090d17c865SAndre Przywara			#address-cells = <1>;
6100d17c865SAndre Przywara			#size-cells = <0>;
6110d17c865SAndre Przywara		};
6120d17c865SAndre Przywara
6130d17c865SAndre Przywara		emac0: ethernet@5020000 {
6140d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-emac0",
6150d17c865SAndre Przywara				     "allwinner,sun50i-a64-emac";
6160d17c865SAndre Przywara			reg = <0x05020000 0x10000>;
6170d17c865SAndre Przywara			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
6180d17c865SAndre Przywara			interrupt-names = "macirq";
6190d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_EMAC0>;
6200d17c865SAndre Przywara			clock-names = "stmmaceth";
6210d17c865SAndre Przywara			resets = <&ccu RST_BUS_EMAC0>;
6220d17c865SAndre Przywara			reset-names = "stmmaceth";
6230d17c865SAndre Przywara			syscon = <&syscon>;
6240d17c865SAndre Przywara			status = "disabled";
6250d17c865SAndre Przywara
6260d17c865SAndre Przywara			mdio0: mdio {
6270d17c865SAndre Przywara				compatible = "snps,dwmac-mdio";
6280d17c865SAndre Przywara				#address-cells = <1>;
6290d17c865SAndre Przywara				#size-cells = <0>;
6300d17c865SAndre Przywara			};
6310d17c865SAndre Przywara		};
6320d17c865SAndre Przywara
633fe5128a1SChen-Yu Tsai		spdif: spdif@5093000 {
634fe5128a1SChen-Yu Tsai			compatible = "allwinner,sun50i-h616-spdif";
635fe5128a1SChen-Yu Tsai			reg = <0x05093000 0x400>;
636fe5128a1SChen-Yu Tsai			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
637fe5128a1SChen-Yu Tsai			clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
638fe5128a1SChen-Yu Tsai			clock-names = "apb", "spdif";
639fe5128a1SChen-Yu Tsai			resets = <&ccu RST_BUS_SPDIF>;
640fe5128a1SChen-Yu Tsai			dmas = <&dma 2>;
641fe5128a1SChen-Yu Tsai			dma-names = "tx";
642fe5128a1SChen-Yu Tsai			pinctrl-names = "default";
643fe5128a1SChen-Yu Tsai			pinctrl-0 = <&spdif_tx_pin>;
644fe5128a1SChen-Yu Tsai			#sound-dai-cells = <0>;
645fe5128a1SChen-Yu Tsai			status = "disabled";
646fe5128a1SChen-Yu Tsai		};
647fe5128a1SChen-Yu Tsai
64859678cc9SChris Morgan		gpadc: adc@5070000 {
64959678cc9SChris Morgan			compatible = "allwinner,sun50i-h616-gpadc",
65059678cc9SChris Morgan				     "allwinner,sun20i-d1-gpadc";
65159678cc9SChris Morgan			reg = <0x05070000 0x400>;
65259678cc9SChris Morgan			clocks = <&ccu CLK_BUS_GPADC>;
65359678cc9SChris Morgan			resets = <&ccu RST_BUS_GPADC>;
65459678cc9SChris Morgan			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
65559678cc9SChris Morgan			status = "disabled";
65659678cc9SChris Morgan			#io-channel-cells = <1>;
65759678cc9SChris Morgan		};
65859678cc9SChris Morgan
659f4318af4SMartin Botka		ths: thermal-sensor@5070400 {
660f4318af4SMartin Botka			compatible = "allwinner,sun50i-h616-ths";
661f4318af4SMartin Botka			reg = <0x05070400 0x400>;
662f4318af4SMartin Botka			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
663f4318af4SMartin Botka			clocks = <&ccu CLK_BUS_THS>;
664f4318af4SMartin Botka			clock-names = "bus";
665f4318af4SMartin Botka			resets = <&ccu RST_BUS_THS>;
666f4318af4SMartin Botka			nvmem-cells = <&ths_calibration>;
667f4318af4SMartin Botka			nvmem-cell-names = "calibration";
668f4318af4SMartin Botka			allwinner,sram = <&syscon>;
669f4318af4SMartin Botka			#thermal-sensor-cells = <1>;
670f4318af4SMartin Botka		};
671f4318af4SMartin Botka
672048ed5efSJames McGregor		lradc: lradc@5070800 {
673048ed5efSJames McGregor			compatible = "allwinner,sun50i-h616-lradc",
674048ed5efSJames McGregor				     "allwinner,sun50i-r329-lradc";
675048ed5efSJames McGregor			reg = <0x05070800 0x400>;
676048ed5efSJames McGregor			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
677048ed5efSJames McGregor			clocks = <&ccu CLK_BUS_KEYADC>;
678048ed5efSJames McGregor			resets = <&ccu RST_BUS_KEYADC>;
679048ed5efSJames McGregor			status = "disabled";
680048ed5efSJames McGregor		};
681048ed5efSJames McGregor
682f40cf244SAndre Przywara		usbotg: usb@5100000 {
683f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-musb",
684f40cf244SAndre Przywara				     "allwinner,sun8i-h3-musb";
685f40cf244SAndre Przywara			reg = <0x05100000 0x0400>;
686f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OTG>;
687f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OTG>;
688f40cf244SAndre Przywara			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
689f40cf244SAndre Przywara			interrupt-names = "mc";
690f40cf244SAndre Przywara			phys = <&usbphy 0>;
691f40cf244SAndre Przywara			phy-names = "usb";
692f40cf244SAndre Przywara			extcon = <&usbphy 0>;
693f40cf244SAndre Przywara			status = "disabled";
694f40cf244SAndre Przywara		};
695f40cf244SAndre Przywara
696f40cf244SAndre Przywara		usbphy: phy@5100400 {
697f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-usb-phy";
698f40cf244SAndre Przywara			reg = <0x05100400 0x24>,
699f40cf244SAndre Przywara			      <0x05101800 0x14>,
700f40cf244SAndre Przywara			      <0x05200800 0x14>,
701f40cf244SAndre Przywara			      <0x05310800 0x14>,
702f40cf244SAndre Przywara			      <0x05311800 0x14>;
703f40cf244SAndre Przywara			reg-names = "phy_ctrl",
704f40cf244SAndre Przywara				    "pmu0",
705f40cf244SAndre Przywara				    "pmu1",
706f40cf244SAndre Przywara				    "pmu2",
707f40cf244SAndre Przywara				    "pmu3";
708f40cf244SAndre Przywara			clocks = <&ccu CLK_USB_PHY0>,
709f40cf244SAndre Przywara				 <&ccu CLK_USB_PHY1>,
710f40cf244SAndre Przywara				 <&ccu CLK_USB_PHY2>,
711f40cf244SAndre Przywara				 <&ccu CLK_USB_PHY3>,
712f40cf244SAndre Przywara				 <&ccu CLK_BUS_EHCI2>;
713f40cf244SAndre Przywara			clock-names = "usb0_phy",
714f40cf244SAndre Przywara				      "usb1_phy",
715f40cf244SAndre Przywara				      "usb2_phy",
716f40cf244SAndre Przywara				      "usb3_phy",
717f40cf244SAndre Przywara				      "pmu2_clk";
718f40cf244SAndre Przywara			resets = <&ccu RST_USB_PHY0>,
719f40cf244SAndre Przywara				 <&ccu RST_USB_PHY1>,
720f40cf244SAndre Przywara				 <&ccu RST_USB_PHY2>,
721f40cf244SAndre Przywara				 <&ccu RST_USB_PHY3>;
722f40cf244SAndre Przywara			reset-names = "usb0_reset",
723f40cf244SAndre Przywara				      "usb1_reset",
724f40cf244SAndre Przywara				      "usb2_reset",
725f40cf244SAndre Przywara				      "usb3_reset";
726f40cf244SAndre Przywara			status = "disabled";
727f40cf244SAndre Przywara			#phy-cells = <1>;
728f40cf244SAndre Przywara		};
729f40cf244SAndre Przywara
730f40cf244SAndre Przywara		ehci0: usb@5101000 {
731f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ehci",
732f40cf244SAndre Przywara				     "generic-ehci";
733f40cf244SAndre Przywara			reg = <0x05101000 0x100>;
734f40cf244SAndre Przywara			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
735f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI0>,
736f40cf244SAndre Przywara				 <&ccu CLK_BUS_EHCI0>,
737f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI0>;
738f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI0>,
739f40cf244SAndre Przywara				 <&ccu RST_BUS_EHCI0>;
740f40cf244SAndre Przywara			phys = <&usbphy 0>;
741f40cf244SAndre Przywara			phy-names = "usb";
742f40cf244SAndre Przywara			status = "disabled";
743f40cf244SAndre Przywara		};
744f40cf244SAndre Przywara
745f40cf244SAndre Przywara		ohci0: usb@5101400 {
746f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ohci",
747f40cf244SAndre Przywara				     "generic-ohci";
748f40cf244SAndre Przywara			reg = <0x05101400 0x100>;
749f40cf244SAndre Przywara			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
750f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI0>,
751f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI0>;
752f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI0>;
753f40cf244SAndre Przywara			phys = <&usbphy 0>;
754f40cf244SAndre Przywara			phy-names = "usb";
755f40cf244SAndre Przywara			status = "disabled";
756f40cf244SAndre Przywara		};
757f40cf244SAndre Przywara
758f40cf244SAndre Przywara		ehci1: usb@5200000 {
759f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ehci",
760f40cf244SAndre Przywara				     "generic-ehci";
761f40cf244SAndre Przywara			reg = <0x05200000 0x100>;
762f40cf244SAndre Przywara			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
763f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI1>,
764f40cf244SAndre Przywara				 <&ccu CLK_BUS_EHCI1>,
765f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI1>;
766f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI1>,
767f40cf244SAndre Przywara				 <&ccu RST_BUS_EHCI1>;
768f40cf244SAndre Przywara			phys = <&usbphy 1>;
769f40cf244SAndre Przywara			phy-names = "usb";
770f40cf244SAndre Przywara			status = "disabled";
771f40cf244SAndre Przywara		};
772f40cf244SAndre Przywara
773f40cf244SAndre Przywara		ohci1: usb@5200400 {
774f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ohci",
775f40cf244SAndre Przywara				     "generic-ohci";
776f40cf244SAndre Przywara			reg = <0x05200400 0x100>;
777f40cf244SAndre Przywara			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
778f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI1>,
779f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI1>;
780f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI1>;
781f40cf244SAndre Przywara			phys = <&usbphy 1>;
782f40cf244SAndre Przywara			phy-names = "usb";
783f40cf244SAndre Przywara			status = "disabled";
784f40cf244SAndre Przywara		};
785f40cf244SAndre Przywara
786f40cf244SAndre Przywara		ehci2: usb@5310000 {
787f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ehci",
788f40cf244SAndre Przywara				     "generic-ehci";
789f40cf244SAndre Przywara			reg = <0x05310000 0x100>;
790f40cf244SAndre Przywara			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
791f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI2>,
792f40cf244SAndre Przywara				 <&ccu CLK_BUS_EHCI2>,
793f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI2>;
794f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI2>,
795f40cf244SAndre Przywara				 <&ccu RST_BUS_EHCI2>;
796f40cf244SAndre Przywara			phys = <&usbphy 2>;
797f40cf244SAndre Przywara			phy-names = "usb";
798f40cf244SAndre Przywara			status = "disabled";
799f40cf244SAndre Przywara		};
800f40cf244SAndre Przywara
801f40cf244SAndre Przywara		ohci2: usb@5310400 {
802f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ohci",
803f40cf244SAndre Przywara				     "generic-ohci";
804f40cf244SAndre Przywara			reg = <0x05310400 0x100>;
805f40cf244SAndre Przywara			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
806f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI2>,
807f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI2>;
808f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI2>;
809f40cf244SAndre Przywara			phys = <&usbphy 2>;
810f40cf244SAndre Przywara			phy-names = "usb";
811f40cf244SAndre Przywara			status = "disabled";
812f40cf244SAndre Przywara		};
813f40cf244SAndre Przywara
814f40cf244SAndre Przywara		ehci3: usb@5311000 {
815f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ehci",
816f40cf244SAndre Przywara				     "generic-ehci";
817f40cf244SAndre Przywara			reg = <0x05311000 0x100>;
818f40cf244SAndre Przywara			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
819f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI3>,
820f40cf244SAndre Przywara				 <&ccu CLK_BUS_EHCI3>,
821f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI3>;
822f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI3>,
823f40cf244SAndre Przywara				 <&ccu RST_BUS_EHCI3>;
824f40cf244SAndre Przywara			phys = <&usbphy 3>;
825f40cf244SAndre Przywara			phy-names = "usb";
826f40cf244SAndre Przywara			status = "disabled";
827f40cf244SAndre Przywara		};
828f40cf244SAndre Przywara
829f40cf244SAndre Przywara		ohci3: usb@5311400 {
830f40cf244SAndre Przywara			compatible = "allwinner,sun50i-h616-ohci",
831f40cf244SAndre Przywara				     "generic-ohci";
832f40cf244SAndre Przywara			reg = <0x05311400 0x100>;
833f40cf244SAndre Przywara			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
834f40cf244SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI3>,
835f40cf244SAndre Przywara				 <&ccu CLK_USB_OHCI3>;
836f40cf244SAndre Przywara			resets = <&ccu RST_BUS_OHCI3>;
837f40cf244SAndre Przywara			phys = <&usbphy 3>;
838f40cf244SAndre Przywara			phy-names = "usb";
839f40cf244SAndre Przywara			status = "disabled";
840f40cf244SAndre Przywara		};
841f40cf244SAndre Przywara
8420d17c865SAndre Przywara		rtc: rtc@7000000 {
8430d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-rtc";
8440d17c865SAndre Przywara			reg = <0x07000000 0x400>;
8450d17c865SAndre Przywara			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
8460d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB1_RTC>, <&osc24M>,
8470d17c865SAndre Przywara				 <&ccu CLK_PLL_SYSTEM_32K>;
8480d17c865SAndre Przywara			clock-names = "bus", "hosc",
8490d17c865SAndre Przywara				      "pll-32k";
8500d17c865SAndre Przywara			#clock-cells = <1>;
8510d17c865SAndre Przywara		};
8520d17c865SAndre Przywara
8530d17c865SAndre Przywara		r_ccu: clock@7010000 {
8540d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-r-ccu";
8550d17c865SAndre Przywara			reg = <0x07010000 0x210>;
8560d17c865SAndre Przywara			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
8570d17c865SAndre Przywara				 <&ccu CLK_PLL_PERIPH0>;
8580d17c865SAndre Przywara			clock-names = "hosc", "losc", "iosc", "pll-periph";
8590d17c865SAndre Przywara			#clock-cells = <1>;
8600d17c865SAndre Przywara			#reset-cells = <1>;
8610d17c865SAndre Przywara		};
8620d17c865SAndre Przywara
863fd46e5e1SChris Morgan		nmi_intc: interrupt-controller@7010320 {
864fd46e5e1SChris Morgan			compatible = "allwinner,sun50i-h616-nmi",
865fd46e5e1SChris Morgan				     "allwinner,sun9i-a80-nmi";
866fd46e5e1SChris Morgan			reg = <0x07010320 0xc>;
867fd46e5e1SChris Morgan			interrupt-controller;
868fd46e5e1SChris Morgan			#interrupt-cells = <2>;
869fd46e5e1SChris Morgan			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
870fd46e5e1SChris Morgan		};
871fd46e5e1SChris Morgan
8720d17c865SAndre Przywara		r_pio: pinctrl@7022000 {
8730d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-r-pinctrl";
8740d17c865SAndre Przywara			reg = <0x07022000 0x400>;
8750d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
8760d17c865SAndre Przywara				 <&rtc CLK_OSC32K>;
8770d17c865SAndre Przywara			clock-names = "apb", "hosc", "losc";
8780d17c865SAndre Przywara			gpio-controller;
8790d17c865SAndre Przywara			#gpio-cells = <3>;
8800d17c865SAndre Przywara
8810d17c865SAndre Przywara			/omit-if-no-ref/
8820d17c865SAndre Przywara			r_i2c_pins: r-i2c-pins {
8830d17c865SAndre Przywara				pins = "PL0", "PL1";
8840d17c865SAndre Przywara				function = "s_i2c";
8850d17c865SAndre Przywara			};
8860d17c865SAndre Przywara
8870d17c865SAndre Przywara			r_rsb_pins: r-rsb-pins {
8880d17c865SAndre Przywara				pins = "PL0", "PL1";
8890d17c865SAndre Przywara				function = "s_rsb";
8900d17c865SAndre Przywara			};
8910d17c865SAndre Przywara		};
8920d17c865SAndre Przywara
8930d17c865SAndre Przywara		ir: ir@7040000 {
8940d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-ir",
8950d17c865SAndre Przywara				     "allwinner,sun6i-a31-ir";
8960d17c865SAndre Przywara			reg = <0x07040000 0x400>;
8970d17c865SAndre Przywara			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
8980d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB1_IR>,
8990d17c865SAndre Przywara				 <&r_ccu CLK_IR>;
9000d17c865SAndre Przywara			clock-names = "apb", "ir";
9010d17c865SAndre Przywara			resets = <&r_ccu RST_R_APB1_IR>;
9020d17c865SAndre Przywara			pinctrl-names = "default";
9030d17c865SAndre Przywara			pinctrl-0 = <&ir_rx_pin>;
9040d17c865SAndre Przywara			status = "disabled";
9050d17c865SAndre Przywara		};
9060d17c865SAndre Przywara
9070d17c865SAndre Przywara		r_i2c: i2c@7081400 {
9080d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
9090d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
9100d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
9110d17c865SAndre Przywara			reg = <0x07081400 0x400>;
9120d17c865SAndre Przywara			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
9130d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB2_I2C>;
914238f65fcSChen-Yu Tsai			dmas = <&dma 48>, <&dma 48>;
915238f65fcSChen-Yu Tsai			dma-names = "rx", "tx";
9160d17c865SAndre Przywara			resets = <&r_ccu RST_R_APB2_I2C>;
917*7c9ea4abSChris Morgan			pinctrl-names = "default";
918*7c9ea4abSChris Morgan			pinctrl-0 = <&r_i2c_pins>;
9190d17c865SAndre Przywara			status = "disabled";
9200d17c865SAndre Przywara			#address-cells = <1>;
9210d17c865SAndre Przywara			#size-cells = <0>;
9220d17c865SAndre Przywara		};
9230d17c865SAndre Przywara
9240d17c865SAndre Przywara		r_rsb: rsb@7083000 {
9250d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-rsb",
9260d17c865SAndre Przywara				     "allwinner,sun8i-a23-rsb";
9270d17c865SAndre Przywara			reg = <0x07083000 0x400>;
9280d17c865SAndre Przywara			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
9290d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB2_RSB>;
9300d17c865SAndre Przywara			clock-frequency = <3000000>;
9310d17c865SAndre Przywara			resets = <&r_ccu RST_R_APB2_RSB>;
9320d17c865SAndre Przywara			pinctrl-names = "default";
9330d17c865SAndre Przywara			pinctrl-0 = <&r_rsb_pins>;
9340d17c865SAndre Przywara			status = "disabled";
9350d17c865SAndre Przywara			#address-cells = <1>;
9360d17c865SAndre Przywara			#size-cells = <0>;
9370d17c865SAndre Przywara		};
9380d17c865SAndre Przywara	};
939f4318af4SMartin Botka
940f4318af4SMartin Botka	thermal-zones {
941f4318af4SMartin Botka		cpu-thermal {
942f4318af4SMartin Botka			polling-delay-passive = <500>;
943f4318af4SMartin Botka			polling-delay = <1000>;
944f4318af4SMartin Botka			thermal-sensors = <&ths 2>;
945f4318af4SMartin Botka			sustainable-power = <1000>;
946f4318af4SMartin Botka
947f4318af4SMartin Botka			trips {
948f4318af4SMartin Botka				cpu_threshold: cpu-trip-0 {
949f4318af4SMartin Botka					temperature = <60000>;
950f4318af4SMartin Botka					type = "passive";
951f4318af4SMartin Botka					hysteresis = <0>;
952f4318af4SMartin Botka				};
953f4318af4SMartin Botka				cpu_target: cpu-trip-1 {
954f4318af4SMartin Botka					temperature = <70000>;
955f4318af4SMartin Botka					type = "passive";
956f4318af4SMartin Botka					hysteresis = <0>;
957f4318af4SMartin Botka				};
958f4318af4SMartin Botka				cpu_critical: cpu-trip-2 {
959f4318af4SMartin Botka					temperature = <110000>;
960f4318af4SMartin Botka					type = "critical";
961f4318af4SMartin Botka					hysteresis = <0>;
962f4318af4SMartin Botka				};
963f4318af4SMartin Botka			};
964f4318af4SMartin Botka		};
965f4318af4SMartin Botka
966f4318af4SMartin Botka		gpu-thermal {
967f4318af4SMartin Botka			polling-delay-passive = <500>;
968f4318af4SMartin Botka			polling-delay = <1000>;
969f4318af4SMartin Botka			thermal-sensors = <&ths 0>;
970f4318af4SMartin Botka			sustainable-power = <1100>;
971f4318af4SMartin Botka
972f4318af4SMartin Botka			trips {
973f4318af4SMartin Botka				gpu_temp_critical: gpu-trip-0 {
974f4318af4SMartin Botka					temperature = <110000>;
975f4318af4SMartin Botka					type = "critical";
976f4318af4SMartin Botka					hysteresis = <0>;
977f4318af4SMartin Botka				};
978f4318af4SMartin Botka			};
979f4318af4SMartin Botka		};
980f4318af4SMartin Botka
981f4318af4SMartin Botka		ve-thermal {
982f4318af4SMartin Botka			polling-delay-passive = <0>;
983f4318af4SMartin Botka			polling-delay = <0>;
984f4318af4SMartin Botka			thermal-sensors = <&ths 1>;
985f4318af4SMartin Botka
986f4318af4SMartin Botka			trips {
987f4318af4SMartin Botka				ve_temp_critical: ve-trip-0 {
988f4318af4SMartin Botka					temperature = <110000>;
989f4318af4SMartin Botka					type = "critical";
990f4318af4SMartin Botka					hysteresis = <0>;
991f4318af4SMartin Botka				};
992f4318af4SMartin Botka			};
993f4318af4SMartin Botka		};
994f4318af4SMartin Botka
995f4318af4SMartin Botka		ddr-thermal {
996f4318af4SMartin Botka			polling-delay-passive = <0>;
997f4318af4SMartin Botka			polling-delay = <0>;
998f4318af4SMartin Botka			thermal-sensors = <&ths 3>;
999f4318af4SMartin Botka
1000f4318af4SMartin Botka			trips {
1001f4318af4SMartin Botka				ddr_temp_critical: ddr-trip-0 {
1002f4318af4SMartin Botka					temperature = <110000>;
1003f4318af4SMartin Botka					type = "critical";
1004f4318af4SMartin Botka					hysteresis = <0>;
1005f4318af4SMartin Botka				};
1006f4318af4SMartin Botka			};
1007f4318af4SMartin Botka		};
1008f4318af4SMartin Botka	};
10090d17c865SAndre Przywara};
1010