xref: /linux/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi (revision 0d17c865118881609ea7e381c7cadbb7979cc596)
1*0d17c865SAndre Przywara// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*0d17c865SAndre Przywara// Copyright (C) 2020 Arm Ltd.
3*0d17c865SAndre Przywara// based on the H6 dtsi, which is:
4*0d17c865SAndre Przywara//   Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
5*0d17c865SAndre Przywara
6*0d17c865SAndre Przywara#include <dt-bindings/interrupt-controller/arm-gic.h>
7*0d17c865SAndre Przywara#include <dt-bindings/clock/sun50i-h616-ccu.h>
8*0d17c865SAndre Przywara#include <dt-bindings/clock/sun50i-h6-r-ccu.h>
9*0d17c865SAndre Przywara#include <dt-bindings/clock/sun6i-rtc.h>
10*0d17c865SAndre Przywara#include <dt-bindings/reset/sun50i-h616-ccu.h>
11*0d17c865SAndre Przywara#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
12*0d17c865SAndre Przywara
13*0d17c865SAndre Przywara/ {
14*0d17c865SAndre Przywara	interrupt-parent = <&gic>;
15*0d17c865SAndre Przywara	#address-cells = <2>;
16*0d17c865SAndre Przywara	#size-cells = <2>;
17*0d17c865SAndre Przywara
18*0d17c865SAndre Przywara	cpus {
19*0d17c865SAndre Przywara		#address-cells = <1>;
20*0d17c865SAndre Przywara		#size-cells = <0>;
21*0d17c865SAndre Przywara
22*0d17c865SAndre Przywara		cpu0: cpu@0 {
23*0d17c865SAndre Przywara			compatible = "arm,cortex-a53";
24*0d17c865SAndre Przywara			device_type = "cpu";
25*0d17c865SAndre Przywara			reg = <0>;
26*0d17c865SAndre Przywara			enable-method = "psci";
27*0d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
28*0d17c865SAndre Przywara		};
29*0d17c865SAndre Przywara
30*0d17c865SAndre Przywara		cpu1: cpu@1 {
31*0d17c865SAndre Przywara			compatible = "arm,cortex-a53";
32*0d17c865SAndre Przywara			device_type = "cpu";
33*0d17c865SAndre Przywara			reg = <1>;
34*0d17c865SAndre Przywara			enable-method = "psci";
35*0d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
36*0d17c865SAndre Przywara		};
37*0d17c865SAndre Przywara
38*0d17c865SAndre Przywara		cpu2: cpu@2 {
39*0d17c865SAndre Przywara			compatible = "arm,cortex-a53";
40*0d17c865SAndre Przywara			device_type = "cpu";
41*0d17c865SAndre Przywara			reg = <2>;
42*0d17c865SAndre Przywara			enable-method = "psci";
43*0d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
44*0d17c865SAndre Przywara		};
45*0d17c865SAndre Przywara
46*0d17c865SAndre Przywara		cpu3: cpu@3 {
47*0d17c865SAndre Przywara			compatible = "arm,cortex-a53";
48*0d17c865SAndre Przywara			device_type = "cpu";
49*0d17c865SAndre Przywara			reg = <3>;
50*0d17c865SAndre Przywara			enable-method = "psci";
51*0d17c865SAndre Przywara			clocks = <&ccu CLK_CPUX>;
52*0d17c865SAndre Przywara		};
53*0d17c865SAndre Przywara	};
54*0d17c865SAndre Przywara
55*0d17c865SAndre Przywara	reserved-memory {
56*0d17c865SAndre Przywara		#address-cells = <2>;
57*0d17c865SAndre Przywara		#size-cells = <2>;
58*0d17c865SAndre Przywara		ranges;
59*0d17c865SAndre Przywara
60*0d17c865SAndre Przywara		/*
61*0d17c865SAndre Przywara		 * 256 KiB reserved for Trusted Firmware-A (BL31).
62*0d17c865SAndre Przywara		 * This is added by BL31 itself, but some bootloaders fail
63*0d17c865SAndre Przywara		 * to propagate this into the DTB handed to kernels.
64*0d17c865SAndre Przywara		 */
65*0d17c865SAndre Przywara		secmon@40000000 {
66*0d17c865SAndre Przywara			reg = <0x0 0x40000000 0x0 0x40000>;
67*0d17c865SAndre Przywara			no-map;
68*0d17c865SAndre Przywara		};
69*0d17c865SAndre Przywara	};
70*0d17c865SAndre Przywara
71*0d17c865SAndre Przywara	osc24M: osc24M-clk {
72*0d17c865SAndre Przywara		#clock-cells = <0>;
73*0d17c865SAndre Przywara		compatible = "fixed-clock";
74*0d17c865SAndre Przywara		clock-frequency = <24000000>;
75*0d17c865SAndre Przywara		clock-output-names = "osc24M";
76*0d17c865SAndre Przywara	};
77*0d17c865SAndre Przywara
78*0d17c865SAndre Przywara	pmu {
79*0d17c865SAndre Przywara		compatible = "arm,cortex-a53-pmu";
80*0d17c865SAndre Przywara		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
81*0d17c865SAndre Przywara			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
82*0d17c865SAndre Przywara			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
83*0d17c865SAndre Przywara			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
84*0d17c865SAndre Przywara		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
85*0d17c865SAndre Przywara	};
86*0d17c865SAndre Przywara
87*0d17c865SAndre Przywara	psci {
88*0d17c865SAndre Przywara		compatible = "arm,psci-0.2";
89*0d17c865SAndre Przywara		method = "smc";
90*0d17c865SAndre Przywara	};
91*0d17c865SAndre Przywara
92*0d17c865SAndre Przywara	timer {
93*0d17c865SAndre Przywara		compatible = "arm,armv8-timer";
94*0d17c865SAndre Przywara		arm,no-tick-in-suspend;
95*0d17c865SAndre Przywara		interrupts = <GIC_PPI 13
96*0d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
97*0d17c865SAndre Przywara			     <GIC_PPI 14
98*0d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
99*0d17c865SAndre Przywara			     <GIC_PPI 11
100*0d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
101*0d17c865SAndre Przywara			     <GIC_PPI 10
102*0d17c865SAndre Przywara			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
103*0d17c865SAndre Przywara	};
104*0d17c865SAndre Przywara
105*0d17c865SAndre Przywara	soc {
106*0d17c865SAndre Przywara		compatible = "simple-bus";
107*0d17c865SAndre Przywara		#address-cells = <1>;
108*0d17c865SAndre Przywara		#size-cells = <1>;
109*0d17c865SAndre Przywara		ranges = <0x0 0x0 0x0 0x40000000>;
110*0d17c865SAndre Przywara
111*0d17c865SAndre Przywara		syscon: syscon@3000000 {
112*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-system-control";
113*0d17c865SAndre Przywara			reg = <0x03000000 0x1000>;
114*0d17c865SAndre Przywara			#address-cells = <1>;
115*0d17c865SAndre Przywara			#size-cells = <1>;
116*0d17c865SAndre Przywara			ranges;
117*0d17c865SAndre Przywara
118*0d17c865SAndre Przywara			sram_c: sram@28000 {
119*0d17c865SAndre Przywara				compatible = "mmio-sram";
120*0d17c865SAndre Przywara				reg = <0x00028000 0x30000>;
121*0d17c865SAndre Przywara				#address-cells = <1>;
122*0d17c865SAndre Przywara				#size-cells = <1>;
123*0d17c865SAndre Przywara				ranges = <0 0x00028000 0x30000>;
124*0d17c865SAndre Przywara			};
125*0d17c865SAndre Przywara		};
126*0d17c865SAndre Przywara
127*0d17c865SAndre Przywara		ccu: clock@3001000 {
128*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-ccu";
129*0d17c865SAndre Przywara			reg = <0x03001000 0x1000>;
130*0d17c865SAndre Przywara			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
131*0d17c865SAndre Przywara			clock-names = "hosc", "losc", "iosc";
132*0d17c865SAndre Przywara			#clock-cells = <1>;
133*0d17c865SAndre Przywara			#reset-cells = <1>;
134*0d17c865SAndre Przywara		};
135*0d17c865SAndre Przywara
136*0d17c865SAndre Przywara		watchdog: watchdog@30090a0 {
137*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-wdt",
138*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-wdt";
139*0d17c865SAndre Przywara			reg = <0x030090a0 0x20>;
140*0d17c865SAndre Przywara			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
141*0d17c865SAndre Przywara			clocks = <&osc24M>;
142*0d17c865SAndre Przywara		};
143*0d17c865SAndre Przywara
144*0d17c865SAndre Przywara		pio: pinctrl@300b000 {
145*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-pinctrl";
146*0d17c865SAndre Przywara			reg = <0x0300b000 0x400>;
147*0d17c865SAndre Przywara			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
148*0d17c865SAndre Przywara				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
149*0d17c865SAndre Przywara				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
150*0d17c865SAndre Przywara				     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
151*0d17c865SAndre Przywara				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
152*0d17c865SAndre Przywara				     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
153*0d17c865SAndre Przywara				     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
154*0d17c865SAndre Przywara				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
155*0d17c865SAndre Przywara			clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
156*0d17c865SAndre Przywara			clock-names = "apb", "hosc", "losc";
157*0d17c865SAndre Przywara			gpio-controller;
158*0d17c865SAndre Przywara			#gpio-cells = <3>;
159*0d17c865SAndre Przywara			interrupt-controller;
160*0d17c865SAndre Przywara			#interrupt-cells = <3>;
161*0d17c865SAndre Przywara
162*0d17c865SAndre Przywara			ext_rgmii_pins: rgmii-pins {
163*0d17c865SAndre Przywara				pins = "PI0", "PI1", "PI2", "PI3", "PI4",
164*0d17c865SAndre Przywara				       "PI5", "PI7", "PI8", "PI9", "PI10",
165*0d17c865SAndre Przywara				       "PI11", "PI12", "PI13", "PI14", "PI15",
166*0d17c865SAndre Przywara				       "PI16";
167*0d17c865SAndre Przywara				function = "emac0";
168*0d17c865SAndre Przywara				drive-strength = <40>;
169*0d17c865SAndre Przywara			};
170*0d17c865SAndre Przywara
171*0d17c865SAndre Przywara			i2c0_pins: i2c0-pins {
172*0d17c865SAndre Przywara				pins = "PI6", "PI7";
173*0d17c865SAndre Przywara				function = "i2c0";
174*0d17c865SAndre Przywara			};
175*0d17c865SAndre Przywara
176*0d17c865SAndre Przywara			i2c3_ph_pins: i2c3-ph-pins {
177*0d17c865SAndre Przywara				pins = "PH4", "PH5";
178*0d17c865SAndre Przywara				function = "i2c3";
179*0d17c865SAndre Przywara			};
180*0d17c865SAndre Przywara
181*0d17c865SAndre Przywara			ir_rx_pin: ir-rx-pin {
182*0d17c865SAndre Przywara				pins = "PH10";
183*0d17c865SAndre Przywara				function = "ir_rx";
184*0d17c865SAndre Przywara			};
185*0d17c865SAndre Przywara
186*0d17c865SAndre Przywara			mmc0_pins: mmc0-pins {
187*0d17c865SAndre Przywara				pins = "PF0", "PF1", "PF2", "PF3",
188*0d17c865SAndre Przywara				       "PF4", "PF5";
189*0d17c865SAndre Przywara				function = "mmc0";
190*0d17c865SAndre Przywara				drive-strength = <30>;
191*0d17c865SAndre Przywara				bias-pull-up;
192*0d17c865SAndre Przywara			};
193*0d17c865SAndre Przywara
194*0d17c865SAndre Przywara			/omit-if-no-ref/
195*0d17c865SAndre Przywara			mmc1_pins: mmc1-pins {
196*0d17c865SAndre Przywara				pins = "PG0", "PG1", "PG2", "PG3",
197*0d17c865SAndre Przywara				       "PG4", "PG5";
198*0d17c865SAndre Przywara				function = "mmc1";
199*0d17c865SAndre Przywara				drive-strength = <30>;
200*0d17c865SAndre Przywara				bias-pull-up;
201*0d17c865SAndre Przywara			};
202*0d17c865SAndre Przywara
203*0d17c865SAndre Przywara			mmc2_pins: mmc2-pins {
204*0d17c865SAndre Przywara				pins = "PC0", "PC1", "PC5", "PC6",
205*0d17c865SAndre Przywara				       "PC8", "PC9", "PC10", "PC11",
206*0d17c865SAndre Przywara				       "PC13", "PC14", "PC15", "PC16";
207*0d17c865SAndre Przywara				function = "mmc2";
208*0d17c865SAndre Przywara				drive-strength = <30>;
209*0d17c865SAndre Przywara				bias-pull-up;
210*0d17c865SAndre Przywara			};
211*0d17c865SAndre Przywara
212*0d17c865SAndre Przywara			/omit-if-no-ref/
213*0d17c865SAndre Przywara			spi0_pins: spi0-pins {
214*0d17c865SAndre Przywara				pins = "PC0", "PC2", "PC4";
215*0d17c865SAndre Przywara				function = "spi0";
216*0d17c865SAndre Przywara			};
217*0d17c865SAndre Przywara
218*0d17c865SAndre Przywara			/omit-if-no-ref/
219*0d17c865SAndre Przywara			spi0_cs0_pin: spi0-cs0-pin {
220*0d17c865SAndre Przywara				pins = "PC3";
221*0d17c865SAndre Przywara				function = "spi0";
222*0d17c865SAndre Przywara			};
223*0d17c865SAndre Przywara
224*0d17c865SAndre Przywara			/omit-if-no-ref/
225*0d17c865SAndre Przywara			spi1_pins: spi1-pins {
226*0d17c865SAndre Przywara				pins = "PH6", "PH7", "PH8";
227*0d17c865SAndre Przywara				function = "spi1";
228*0d17c865SAndre Przywara			};
229*0d17c865SAndre Przywara
230*0d17c865SAndre Przywara			/omit-if-no-ref/
231*0d17c865SAndre Przywara			spi1_cs0_pin: spi1-cs0-pin {
232*0d17c865SAndre Przywara				pins = "PH5";
233*0d17c865SAndre Przywara				function = "spi1";
234*0d17c865SAndre Przywara			};
235*0d17c865SAndre Przywara
236*0d17c865SAndre Przywara			uart0_ph_pins: uart0-ph-pins {
237*0d17c865SAndre Przywara				pins = "PH0", "PH1";
238*0d17c865SAndre Przywara				function = "uart0";
239*0d17c865SAndre Przywara			};
240*0d17c865SAndre Przywara
241*0d17c865SAndre Przywara			/omit-if-no-ref/
242*0d17c865SAndre Przywara			uart1_pins: uart1-pins {
243*0d17c865SAndre Przywara				pins = "PG6", "PG7";
244*0d17c865SAndre Przywara				function = "uart1";
245*0d17c865SAndre Przywara			};
246*0d17c865SAndre Przywara
247*0d17c865SAndre Przywara			/omit-if-no-ref/
248*0d17c865SAndre Przywara			uart1_rts_cts_pins: uart1-rts-cts-pins {
249*0d17c865SAndre Przywara				pins = "PG8", "PG9";
250*0d17c865SAndre Przywara				function = "uart1";
251*0d17c865SAndre Przywara			};
252*0d17c865SAndre Przywara		};
253*0d17c865SAndre Przywara
254*0d17c865SAndre Przywara		gic: interrupt-controller@3021000 {
255*0d17c865SAndre Przywara			compatible = "arm,gic-400";
256*0d17c865SAndre Przywara			reg = <0x03021000 0x1000>,
257*0d17c865SAndre Przywara			      <0x03022000 0x2000>,
258*0d17c865SAndre Przywara			      <0x03024000 0x2000>,
259*0d17c865SAndre Przywara			      <0x03026000 0x2000>;
260*0d17c865SAndre Przywara			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
261*0d17c865SAndre Przywara			interrupt-controller;
262*0d17c865SAndre Przywara			#interrupt-cells = <3>;
263*0d17c865SAndre Przywara		};
264*0d17c865SAndre Przywara
265*0d17c865SAndre Przywara		mmc0: mmc@4020000 {
266*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-mmc",
267*0d17c865SAndre Przywara				     "allwinner,sun50i-a100-mmc";
268*0d17c865SAndre Przywara			reg = <0x04020000 0x1000>;
269*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
270*0d17c865SAndre Przywara			clock-names = "ahb", "mmc";
271*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_MMC0>;
272*0d17c865SAndre Przywara			reset-names = "ahb";
273*0d17c865SAndre Przywara			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
274*0d17c865SAndre Przywara			pinctrl-names = "default";
275*0d17c865SAndre Przywara			pinctrl-0 = <&mmc0_pins>;
276*0d17c865SAndre Przywara			status = "disabled";
277*0d17c865SAndre Przywara			max-frequency = <150000000>;
278*0d17c865SAndre Przywara			cap-sd-highspeed;
279*0d17c865SAndre Przywara			cap-mmc-highspeed;
280*0d17c865SAndre Przywara			mmc-ddr-3_3v;
281*0d17c865SAndre Przywara			cap-sdio-irq;
282*0d17c865SAndre Przywara			#address-cells = <1>;
283*0d17c865SAndre Przywara			#size-cells = <0>;
284*0d17c865SAndre Przywara		};
285*0d17c865SAndre Przywara
286*0d17c865SAndre Przywara		mmc1: mmc@4021000 {
287*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-mmc",
288*0d17c865SAndre Przywara				     "allwinner,sun50i-a100-mmc";
289*0d17c865SAndre Przywara			reg = <0x04021000 0x1000>;
290*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
291*0d17c865SAndre Przywara			clock-names = "ahb", "mmc";
292*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_MMC1>;
293*0d17c865SAndre Przywara			reset-names = "ahb";
294*0d17c865SAndre Przywara			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
295*0d17c865SAndre Przywara			pinctrl-names = "default";
296*0d17c865SAndre Przywara			pinctrl-0 = <&mmc1_pins>;
297*0d17c865SAndre Przywara			status = "disabled";
298*0d17c865SAndre Przywara			max-frequency = <150000000>;
299*0d17c865SAndre Przywara			cap-sd-highspeed;
300*0d17c865SAndre Przywara			cap-mmc-highspeed;
301*0d17c865SAndre Przywara			mmc-ddr-3_3v;
302*0d17c865SAndre Przywara			cap-sdio-irq;
303*0d17c865SAndre Przywara			#address-cells = <1>;
304*0d17c865SAndre Przywara			#size-cells = <0>;
305*0d17c865SAndre Przywara		};
306*0d17c865SAndre Przywara
307*0d17c865SAndre Przywara		mmc2: mmc@4022000 {
308*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-emmc",
309*0d17c865SAndre Przywara				     "allwinner,sun50i-a100-emmc";
310*0d17c865SAndre Przywara			reg = <0x04022000 0x1000>;
311*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
312*0d17c865SAndre Przywara			clock-names = "ahb", "mmc";
313*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_MMC2>;
314*0d17c865SAndre Przywara			reset-names = "ahb";
315*0d17c865SAndre Przywara			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
316*0d17c865SAndre Przywara			pinctrl-names = "default";
317*0d17c865SAndre Przywara			pinctrl-0 = <&mmc2_pins>;
318*0d17c865SAndre Przywara			status = "disabled";
319*0d17c865SAndre Przywara			max-frequency = <150000000>;
320*0d17c865SAndre Przywara			cap-sd-highspeed;
321*0d17c865SAndre Przywara			cap-mmc-highspeed;
322*0d17c865SAndre Przywara			mmc-ddr-3_3v;
323*0d17c865SAndre Przywara			cap-sdio-irq;
324*0d17c865SAndre Przywara			#address-cells = <1>;
325*0d17c865SAndre Przywara			#size-cells = <0>;
326*0d17c865SAndre Przywara		};
327*0d17c865SAndre Przywara
328*0d17c865SAndre Przywara		uart0: serial@5000000 {
329*0d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
330*0d17c865SAndre Przywara			reg = <0x05000000 0x400>;
331*0d17c865SAndre Przywara			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
332*0d17c865SAndre Przywara			reg-shift = <2>;
333*0d17c865SAndre Przywara			reg-io-width = <4>;
334*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART0>;
335*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART0>;
336*0d17c865SAndre Przywara			status = "disabled";
337*0d17c865SAndre Przywara		};
338*0d17c865SAndre Przywara
339*0d17c865SAndre Przywara		uart1: serial@5000400 {
340*0d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
341*0d17c865SAndre Przywara			reg = <0x05000400 0x400>;
342*0d17c865SAndre Przywara			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
343*0d17c865SAndre Przywara			reg-shift = <2>;
344*0d17c865SAndre Przywara			reg-io-width = <4>;
345*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART1>;
346*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART1>;
347*0d17c865SAndre Przywara			status = "disabled";
348*0d17c865SAndre Przywara		};
349*0d17c865SAndre Przywara
350*0d17c865SAndre Przywara		uart2: serial@5000800 {
351*0d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
352*0d17c865SAndre Przywara			reg = <0x05000800 0x400>;
353*0d17c865SAndre Przywara			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
354*0d17c865SAndre Przywara			reg-shift = <2>;
355*0d17c865SAndre Przywara			reg-io-width = <4>;
356*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART2>;
357*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART2>;
358*0d17c865SAndre Przywara			status = "disabled";
359*0d17c865SAndre Przywara		};
360*0d17c865SAndre Przywara
361*0d17c865SAndre Przywara		uart3: serial@5000c00 {
362*0d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
363*0d17c865SAndre Przywara			reg = <0x05000c00 0x400>;
364*0d17c865SAndre Przywara			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
365*0d17c865SAndre Przywara			reg-shift = <2>;
366*0d17c865SAndre Przywara			reg-io-width = <4>;
367*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART3>;
368*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART3>;
369*0d17c865SAndre Przywara			status = "disabled";
370*0d17c865SAndre Przywara		};
371*0d17c865SAndre Przywara
372*0d17c865SAndre Przywara		uart4: serial@5001000 {
373*0d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
374*0d17c865SAndre Przywara			reg = <0x05001000 0x400>;
375*0d17c865SAndre Przywara			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
376*0d17c865SAndre Przywara			reg-shift = <2>;
377*0d17c865SAndre Przywara			reg-io-width = <4>;
378*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART4>;
379*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART4>;
380*0d17c865SAndre Przywara			status = "disabled";
381*0d17c865SAndre Przywara		};
382*0d17c865SAndre Przywara
383*0d17c865SAndre Przywara		uart5: serial@5001400 {
384*0d17c865SAndre Przywara			compatible = "snps,dw-apb-uart";
385*0d17c865SAndre Przywara			reg = <0x05001400 0x400>;
386*0d17c865SAndre Przywara			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
387*0d17c865SAndre Przywara			reg-shift = <2>;
388*0d17c865SAndre Przywara			reg-io-width = <4>;
389*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_UART5>;
390*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_UART5>;
391*0d17c865SAndre Przywara			status = "disabled";
392*0d17c865SAndre Przywara		};
393*0d17c865SAndre Przywara
394*0d17c865SAndre Przywara		i2c0: i2c@5002000 {
395*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
396*0d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
397*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
398*0d17c865SAndre Przywara			reg = <0x05002000 0x400>;
399*0d17c865SAndre Przywara			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
400*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C0>;
401*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C0>;
402*0d17c865SAndre Przywara			pinctrl-names = "default";
403*0d17c865SAndre Przywara			pinctrl-0 = <&i2c0_pins>;
404*0d17c865SAndre Przywara			status = "disabled";
405*0d17c865SAndre Przywara			#address-cells = <1>;
406*0d17c865SAndre Przywara			#size-cells = <0>;
407*0d17c865SAndre Przywara		};
408*0d17c865SAndre Przywara
409*0d17c865SAndre Przywara		i2c1: i2c@5002400 {
410*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
411*0d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
412*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
413*0d17c865SAndre Przywara			reg = <0x05002400 0x400>;
414*0d17c865SAndre Przywara			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
415*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C1>;
416*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C1>;
417*0d17c865SAndre Przywara			status = "disabled";
418*0d17c865SAndre Przywara			#address-cells = <1>;
419*0d17c865SAndre Przywara			#size-cells = <0>;
420*0d17c865SAndre Przywara		};
421*0d17c865SAndre Przywara
422*0d17c865SAndre Przywara		i2c2: i2c@5002800 {
423*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
424*0d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
425*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
426*0d17c865SAndre Przywara			reg = <0x05002800 0x400>;
427*0d17c865SAndre Przywara			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
428*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C2>;
429*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C2>;
430*0d17c865SAndre Przywara			status = "disabled";
431*0d17c865SAndre Przywara			#address-cells = <1>;
432*0d17c865SAndre Przywara			#size-cells = <0>;
433*0d17c865SAndre Przywara		};
434*0d17c865SAndre Przywara
435*0d17c865SAndre Przywara		i2c3: i2c@5002c00 {
436*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
437*0d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
438*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
439*0d17c865SAndre Przywara			reg = <0x05002c00 0x400>;
440*0d17c865SAndre Przywara			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
441*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C3>;
442*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C3>;
443*0d17c865SAndre Przywara			status = "disabled";
444*0d17c865SAndre Przywara			#address-cells = <1>;
445*0d17c865SAndre Przywara			#size-cells = <0>;
446*0d17c865SAndre Przywara		};
447*0d17c865SAndre Przywara
448*0d17c865SAndre Przywara		i2c4: i2c@5003000 {
449*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
450*0d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
451*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
452*0d17c865SAndre Przywara			reg = <0x05003000 0x400>;
453*0d17c865SAndre Przywara			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
454*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_I2C4>;
455*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_I2C4>;
456*0d17c865SAndre Przywara			status = "disabled";
457*0d17c865SAndre Przywara			#address-cells = <1>;
458*0d17c865SAndre Przywara			#size-cells = <0>;
459*0d17c865SAndre Przywara		};
460*0d17c865SAndre Przywara
461*0d17c865SAndre Przywara		spi0: spi@5010000 {
462*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-spi",
463*0d17c865SAndre Przywara				     "allwinner,sun8i-h3-spi";
464*0d17c865SAndre Przywara			reg = <0x05010000 0x1000>;
465*0d17c865SAndre Przywara			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
466*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
467*0d17c865SAndre Przywara			clock-names = "ahb", "mod";
468*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_SPI0>;
469*0d17c865SAndre Przywara			status = "disabled";
470*0d17c865SAndre Przywara			#address-cells = <1>;
471*0d17c865SAndre Przywara			#size-cells = <0>;
472*0d17c865SAndre Przywara		};
473*0d17c865SAndre Przywara
474*0d17c865SAndre Przywara		spi1: spi@5011000 {
475*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-spi",
476*0d17c865SAndre Przywara				     "allwinner,sun8i-h3-spi";
477*0d17c865SAndre Przywara			reg = <0x05011000 0x1000>;
478*0d17c865SAndre Przywara			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
479*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
480*0d17c865SAndre Przywara			clock-names = "ahb", "mod";
481*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_SPI1>;
482*0d17c865SAndre Przywara			status = "disabled";
483*0d17c865SAndre Przywara			#address-cells = <1>;
484*0d17c865SAndre Przywara			#size-cells = <0>;
485*0d17c865SAndre Przywara		};
486*0d17c865SAndre Przywara
487*0d17c865SAndre Przywara		emac0: ethernet@5020000 {
488*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-emac0",
489*0d17c865SAndre Przywara				     "allwinner,sun50i-a64-emac";
490*0d17c865SAndre Przywara			reg = <0x05020000 0x10000>;
491*0d17c865SAndre Przywara			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
492*0d17c865SAndre Przywara			interrupt-names = "macirq";
493*0d17c865SAndre Przywara			clocks = <&ccu CLK_BUS_EMAC0>;
494*0d17c865SAndre Przywara			clock-names = "stmmaceth";
495*0d17c865SAndre Przywara			resets = <&ccu RST_BUS_EMAC0>;
496*0d17c865SAndre Przywara			reset-names = "stmmaceth";
497*0d17c865SAndre Przywara			syscon = <&syscon>;
498*0d17c865SAndre Przywara			status = "disabled";
499*0d17c865SAndre Przywara
500*0d17c865SAndre Przywara			mdio0: mdio {
501*0d17c865SAndre Przywara				compatible = "snps,dwmac-mdio";
502*0d17c865SAndre Przywara				#address-cells = <1>;
503*0d17c865SAndre Przywara				#size-cells = <0>;
504*0d17c865SAndre Przywara			};
505*0d17c865SAndre Przywara		};
506*0d17c865SAndre Przywara
507*0d17c865SAndre Przywara		rtc: rtc@7000000 {
508*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-rtc";
509*0d17c865SAndre Przywara			reg = <0x07000000 0x400>;
510*0d17c865SAndre Przywara			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
511*0d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB1_RTC>, <&osc24M>,
512*0d17c865SAndre Przywara				 <&ccu CLK_PLL_SYSTEM_32K>;
513*0d17c865SAndre Przywara			clock-names = "bus", "hosc",
514*0d17c865SAndre Przywara				      "pll-32k";
515*0d17c865SAndre Przywara			#clock-cells = <1>;
516*0d17c865SAndre Przywara		};
517*0d17c865SAndre Przywara
518*0d17c865SAndre Przywara		r_ccu: clock@7010000 {
519*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-r-ccu";
520*0d17c865SAndre Przywara			reg = <0x07010000 0x210>;
521*0d17c865SAndre Przywara			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
522*0d17c865SAndre Przywara				 <&ccu CLK_PLL_PERIPH0>;
523*0d17c865SAndre Przywara			clock-names = "hosc", "losc", "iosc", "pll-periph";
524*0d17c865SAndre Przywara			#clock-cells = <1>;
525*0d17c865SAndre Przywara			#reset-cells = <1>;
526*0d17c865SAndre Przywara		};
527*0d17c865SAndre Przywara
528*0d17c865SAndre Przywara		r_pio: pinctrl@7022000 {
529*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-r-pinctrl";
530*0d17c865SAndre Przywara			reg = <0x07022000 0x400>;
531*0d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
532*0d17c865SAndre Przywara				 <&rtc CLK_OSC32K>;
533*0d17c865SAndre Przywara			clock-names = "apb", "hosc", "losc";
534*0d17c865SAndre Przywara			gpio-controller;
535*0d17c865SAndre Przywara			#gpio-cells = <3>;
536*0d17c865SAndre Przywara
537*0d17c865SAndre Przywara			/omit-if-no-ref/
538*0d17c865SAndre Przywara			r_i2c_pins: r-i2c-pins {
539*0d17c865SAndre Przywara				pins = "PL0", "PL1";
540*0d17c865SAndre Przywara				function = "s_i2c";
541*0d17c865SAndre Przywara			};
542*0d17c865SAndre Przywara
543*0d17c865SAndre Przywara			r_rsb_pins: r-rsb-pins {
544*0d17c865SAndre Przywara				pins = "PL0", "PL1";
545*0d17c865SAndre Przywara				function = "s_rsb";
546*0d17c865SAndre Przywara			};
547*0d17c865SAndre Przywara		};
548*0d17c865SAndre Przywara
549*0d17c865SAndre Przywara		ir: ir@7040000 {
550*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-ir",
551*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-ir";
552*0d17c865SAndre Przywara			reg = <0x07040000 0x400>;
553*0d17c865SAndre Przywara			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
554*0d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB1_IR>,
555*0d17c865SAndre Przywara				 <&r_ccu CLK_IR>;
556*0d17c865SAndre Przywara			clock-names = "apb", "ir";
557*0d17c865SAndre Przywara			resets = <&r_ccu RST_R_APB1_IR>;
558*0d17c865SAndre Przywara			pinctrl-names = "default";
559*0d17c865SAndre Przywara			pinctrl-0 = <&ir_rx_pin>;
560*0d17c865SAndre Przywara			status = "disabled";
561*0d17c865SAndre Przywara		};
562*0d17c865SAndre Przywara
563*0d17c865SAndre Przywara		r_i2c: i2c@7081400 {
564*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-i2c",
565*0d17c865SAndre Przywara				     "allwinner,sun8i-v536-i2c",
566*0d17c865SAndre Przywara				     "allwinner,sun6i-a31-i2c";
567*0d17c865SAndre Przywara			reg = <0x07081400 0x400>;
568*0d17c865SAndre Przywara			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
569*0d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB2_I2C>;
570*0d17c865SAndre Przywara			resets = <&r_ccu RST_R_APB2_I2C>;
571*0d17c865SAndre Przywara			status = "disabled";
572*0d17c865SAndre Przywara			#address-cells = <1>;
573*0d17c865SAndre Przywara			#size-cells = <0>;
574*0d17c865SAndre Przywara		};
575*0d17c865SAndre Przywara
576*0d17c865SAndre Przywara		r_rsb: rsb@7083000 {
577*0d17c865SAndre Przywara			compatible = "allwinner,sun50i-h616-rsb",
578*0d17c865SAndre Przywara				     "allwinner,sun8i-a23-rsb";
579*0d17c865SAndre Przywara			reg = <0x07083000 0x400>;
580*0d17c865SAndre Przywara			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
581*0d17c865SAndre Przywara			clocks = <&r_ccu CLK_R_APB2_RSB>;
582*0d17c865SAndre Przywara			clock-frequency = <3000000>;
583*0d17c865SAndre Przywara			resets = <&r_ccu RST_R_APB2_RSB>;
584*0d17c865SAndre Przywara			pinctrl-names = "default";
585*0d17c865SAndre Przywara			pinctrl-0 = <&r_rsb_pins>;
586*0d17c865SAndre Przywara			status = "disabled";
587*0d17c865SAndre Przywara			#address-cells = <1>;
588*0d17c865SAndre Przywara			#size-cells = <0>;
589*0d17c865SAndre Przywara		};
590*0d17c865SAndre Przywara	};
591*0d17c865SAndre Przywara};
592