xref: /linux/arch/arm64/boot/dts/allwinner/sun55i-a523.dtsi (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
135ac96f7SAndre Przywara// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
235ac96f7SAndre Przywara// Copyright (C) 2023-2024 Arm Ltd.
335ac96f7SAndre Przywara
435ac96f7SAndre Przywara#include <dt-bindings/interrupt-controller/arm-gic.h>
535ac96f7SAndre Przywara#include <dt-bindings/clock/sun6i-rtc.h>
635ac96f7SAndre Przywara#include <dt-bindings/clock/sun55i-a523-ccu.h>
735ac96f7SAndre Przywara#include <dt-bindings/clock/sun55i-a523-r-ccu.h>
835ac96f7SAndre Przywara#include <dt-bindings/reset/sun55i-a523-ccu.h>
935ac96f7SAndre Przywara#include <dt-bindings/reset/sun55i-a523-r-ccu.h>
1035ac96f7SAndre Przywara
1135ac96f7SAndre Przywara/ {
1235ac96f7SAndre Przywara	interrupt-parent = <&gic>;
1335ac96f7SAndre Przywara	#address-cells = <2>;
1435ac96f7SAndre Przywara	#size-cells = <2>;
1535ac96f7SAndre Przywara
1635ac96f7SAndre Przywara	cpus {
1735ac96f7SAndre Przywara		#address-cells = <1>;
1835ac96f7SAndre Przywara		#size-cells = <0>;
1935ac96f7SAndre Przywara
2035ac96f7SAndre Przywara		cpu0: cpu@0 {
2135ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
2235ac96f7SAndre Przywara			device_type = "cpu";
2335ac96f7SAndre Przywara			reg = <0x000>;
2435ac96f7SAndre Przywara			enable-method = "psci";
2535ac96f7SAndre Przywara		};
2635ac96f7SAndre Przywara
2735ac96f7SAndre Przywara		cpu1: cpu@100 {
2835ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
2935ac96f7SAndre Przywara			device_type = "cpu";
3035ac96f7SAndre Przywara			reg = <0x100>;
3135ac96f7SAndre Przywara			enable-method = "psci";
3235ac96f7SAndre Przywara		};
3335ac96f7SAndre Przywara
3435ac96f7SAndre Przywara		cpu2: cpu@200 {
3535ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
3635ac96f7SAndre Przywara			device_type = "cpu";
3735ac96f7SAndre Przywara			reg = <0x200>;
3835ac96f7SAndre Przywara			enable-method = "psci";
3935ac96f7SAndre Przywara		};
4035ac96f7SAndre Przywara
4135ac96f7SAndre Przywara		cpu3: cpu@300 {
4235ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
4335ac96f7SAndre Przywara			device_type = "cpu";
4435ac96f7SAndre Przywara			reg = <0x300>;
4535ac96f7SAndre Przywara			enable-method = "psci";
4635ac96f7SAndre Przywara		};
4735ac96f7SAndre Przywara
4835ac96f7SAndre Przywara		cpu4: cpu@400 {
4935ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
5035ac96f7SAndre Przywara			device_type = "cpu";
5135ac96f7SAndre Przywara			reg = <0x400>;
5235ac96f7SAndre Przywara			enable-method = "psci";
5335ac96f7SAndre Przywara		};
5435ac96f7SAndre Przywara
5535ac96f7SAndre Przywara		cpu5: cpu@500 {
5635ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
5735ac96f7SAndre Przywara			device_type = "cpu";
5835ac96f7SAndre Przywara			reg = <0x500>;
5935ac96f7SAndre Przywara			enable-method = "psci";
6035ac96f7SAndre Przywara		};
6135ac96f7SAndre Przywara
6235ac96f7SAndre Przywara		cpu6: cpu@600 {
6335ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
6435ac96f7SAndre Przywara			device_type = "cpu";
6535ac96f7SAndre Przywara			reg = <0x600>;
6635ac96f7SAndre Przywara			enable-method = "psci";
6735ac96f7SAndre Przywara		};
6835ac96f7SAndre Przywara
6935ac96f7SAndre Przywara		cpu7: cpu@700 {
7035ac96f7SAndre Przywara			compatible = "arm,cortex-a55";
7135ac96f7SAndre Przywara			device_type = "cpu";
7235ac96f7SAndre Przywara			reg = <0x700>;
7335ac96f7SAndre Przywara			enable-method = "psci";
7435ac96f7SAndre Przywara		};
7535ac96f7SAndre Przywara	};
7635ac96f7SAndre Przywara
7735ac96f7SAndre Przywara	osc24M: osc24M-clk {
7835ac96f7SAndre Przywara		#clock-cells = <0>;
7935ac96f7SAndre Przywara		compatible = "fixed-clock";
8035ac96f7SAndre Przywara		clock-frequency = <24000000>;
8135ac96f7SAndre Przywara		clock-output-names = "osc24M";
8235ac96f7SAndre Przywara	};
8335ac96f7SAndre Przywara
8435ac96f7SAndre Przywara	pmu {
8535ac96f7SAndre Przywara		compatible = "arm,cortex-a55-pmu";
8635ac96f7SAndre Przywara		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
8735ac96f7SAndre Przywara	};
8835ac96f7SAndre Przywara
8935ac96f7SAndre Przywara	psci {
9035ac96f7SAndre Przywara		compatible = "arm,psci-0.2";
9135ac96f7SAndre Przywara		method = "smc";
9235ac96f7SAndre Przywara	};
9335ac96f7SAndre Przywara
9435ac96f7SAndre Przywara	timer {
9535ac96f7SAndre Przywara		compatible = "arm,armv8-timer";
9635ac96f7SAndre Przywara		arm,no-tick-in-suspend;
9735ac96f7SAndre Przywara		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
9835ac96f7SAndre Przywara			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
9935ac96f7SAndre Przywara			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
10035ac96f7SAndre Przywara			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
10135ac96f7SAndre Przywara	};
10235ac96f7SAndre Przywara
10335ac96f7SAndre Przywara	soc {
10435ac96f7SAndre Przywara		compatible = "simple-bus";
10535ac96f7SAndre Przywara		#address-cells = <1>;
10635ac96f7SAndre Przywara		#size-cells = <1>;
10735ac96f7SAndre Przywara		ranges = <0x0 0x0 0x0 0x40000000>;
10835ac96f7SAndre Przywara
10935ac96f7SAndre Przywara		pio: pinctrl@2000000 {
11035ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-pinctrl";
11135ac96f7SAndre Przywara			reg = <0x2000000 0x800>;
11235ac96f7SAndre Przywara			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
11335ac96f7SAndre Przywara				     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
11435ac96f7SAndre Przywara				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
11535ac96f7SAndre Przywara				     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
11635ac96f7SAndre Przywara				     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
11735ac96f7SAndre Przywara				     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
11835ac96f7SAndre Przywara				     <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
11935ac96f7SAndre Przywara				     <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
12035ac96f7SAndre Przywara				     <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
12135ac96f7SAndre Przywara				     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
12235ac96f7SAndre Przywara			clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
12335ac96f7SAndre Przywara			clock-names = "apb", "hosc", "losc";
12435ac96f7SAndre Przywara			gpio-controller;
12535ac96f7SAndre Przywara			#gpio-cells = <3>;
12635ac96f7SAndre Przywara			interrupt-controller;
12735ac96f7SAndre Przywara			#interrupt-cells = <3>;
12835ac96f7SAndre Przywara
129*56766ca6SYixun Lan			rgmii0_pins: rgmii0-pins {
130*56766ca6SYixun Lan				pins = "PH0", "PH1", "PH2", "PH3", "PH4",
131*56766ca6SYixun Lan				       "PH5", "PH6", "PH7", "PH9", "PH10",
132*56766ca6SYixun Lan				       "PH14", "PH15", "PH16", "PH17", "PH18";
133*56766ca6SYixun Lan				allwinner,pinmux = <5>;
134*56766ca6SYixun Lan				function = "emac0";
135*56766ca6SYixun Lan				drive-strength = <40>;
136*56766ca6SYixun Lan				bias-disable;
137*56766ca6SYixun Lan			};
138*56766ca6SYixun Lan
13935ac96f7SAndre Przywara			mmc0_pins: mmc0-pins {
14035ac96f7SAndre Przywara				pins = "PF0" ,"PF1", "PF2", "PF3", "PF4", "PF5";
14135ac96f7SAndre Przywara				allwinner,pinmux = <2>;
14235ac96f7SAndre Przywara				function = "mmc0";
14335ac96f7SAndre Przywara				drive-strength = <30>;
14435ac96f7SAndre Przywara				bias-pull-up;
14535ac96f7SAndre Przywara			};
14635ac96f7SAndre Przywara
14735ac96f7SAndre Przywara			/omit-if-no-ref/
14835ac96f7SAndre Przywara			mmc1_pins: mmc1-pins {
14935ac96f7SAndre Przywara				pins = "PG0" ,"PG1", "PG2", "PG3", "PG4", "PG5";
15035ac96f7SAndre Przywara				allwinner,pinmux = <2>;
15135ac96f7SAndre Przywara				function = "mmc1";
15235ac96f7SAndre Przywara				drive-strength = <30>;
15335ac96f7SAndre Przywara				bias-pull-up;
15435ac96f7SAndre Przywara			};
15535ac96f7SAndre Przywara
15635ac96f7SAndre Przywara			mmc2_pins: mmc2-pins {
15735ac96f7SAndre Przywara				pins = "PC0", "PC1" ,"PC5", "PC6", "PC8",
15835ac96f7SAndre Przywara				       "PC9", "PC10", "PC11", "PC13", "PC14",
15935ac96f7SAndre Przywara				       "PC15", "PC16";
16035ac96f7SAndre Przywara				allwinner,pinmux = <3>;
16135ac96f7SAndre Przywara				function = "mmc2";
16235ac96f7SAndre Przywara				drive-strength = <30>;
16335ac96f7SAndre Przywara				bias-pull-up;
16435ac96f7SAndre Przywara			};
16535ac96f7SAndre Przywara
16635ac96f7SAndre Przywara			uart0_pb_pins: uart0-pb-pins {
16735ac96f7SAndre Przywara				pins = "PB9", "PB10";
16835ac96f7SAndre Przywara				allwinner,pinmux = <2>;
16935ac96f7SAndre Przywara				function = "uart0";
17035ac96f7SAndre Przywara			};
17135ac96f7SAndre Przywara		};
17235ac96f7SAndre Przywara
17335ac96f7SAndre Przywara		ccu: clock-controller@2001000 {
17435ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-ccu";
17535ac96f7SAndre Przywara			reg = <0x02001000 0x1000>;
17635ac96f7SAndre Przywara			clocks = <&osc24M>, <&rtc CLK_OSC32K>,
17735ac96f7SAndre Przywara				 <&rtc CLK_IOSC>, <&rtc CLK_OSC32K_FANOUT>;
17835ac96f7SAndre Przywara			clock-names = "hosc", "losc",
17935ac96f7SAndre Przywara				      "iosc", "losc-fanout";
18035ac96f7SAndre Przywara			#clock-cells = <1>;
18135ac96f7SAndre Przywara			#reset-cells = <1>;
18235ac96f7SAndre Przywara		};
18335ac96f7SAndre Przywara
18435ac96f7SAndre Przywara		mmc0: mmc@4020000 {
18535ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-mmc",
18635ac96f7SAndre Przywara				     "allwinner,sun20i-d1-mmc";
18735ac96f7SAndre Przywara			reg = <0x04020000 0x1000>;
18835ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
18935ac96f7SAndre Przywara			clock-names = "ahb", "mmc";
19035ac96f7SAndre Przywara			resets = <&ccu RST_BUS_MMC0>;
19135ac96f7SAndre Przywara			reset-names = "ahb";
19235ac96f7SAndre Przywara			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
19335ac96f7SAndre Przywara			pinctrl-names = "default";
19435ac96f7SAndre Przywara			pinctrl-0 = <&mmc0_pins>;
19535ac96f7SAndre Przywara			status = "disabled";
19635ac96f7SAndre Przywara
19735ac96f7SAndre Przywara			max-frequency = <150000000>;
19835ac96f7SAndre Przywara			cap-sd-highspeed;
19935ac96f7SAndre Przywara			cap-mmc-highspeed;
20035ac96f7SAndre Przywara			cap-sdio-irq;
20135ac96f7SAndre Przywara			#address-cells = <1>;
20235ac96f7SAndre Przywara			#size-cells = <0>;
20335ac96f7SAndre Przywara		};
20435ac96f7SAndre Przywara
20535ac96f7SAndre Przywara		mmc1: mmc@4021000 {
20635ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-mmc",
20735ac96f7SAndre Przywara				     "allwinner,sun20i-d1-mmc";
20835ac96f7SAndre Przywara			reg = <0x04021000 0x1000>;
20935ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
21035ac96f7SAndre Przywara			clock-names = "ahb", "mmc";
21135ac96f7SAndre Przywara			resets = <&ccu RST_BUS_MMC1>;
21235ac96f7SAndre Przywara			reset-names = "ahb";
21335ac96f7SAndre Przywara			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
21435ac96f7SAndre Przywara			pinctrl-names = "default";
21535ac96f7SAndre Przywara			pinctrl-0 = <&mmc1_pins>;
21635ac96f7SAndre Przywara			status = "disabled";
21735ac96f7SAndre Przywara
21835ac96f7SAndre Przywara			max-frequency = <150000000>;
21935ac96f7SAndre Przywara			cap-sd-highspeed;
22035ac96f7SAndre Przywara			cap-mmc-highspeed;
22135ac96f7SAndre Przywara			cap-sdio-irq;
22235ac96f7SAndre Przywara			#address-cells = <1>;
22335ac96f7SAndre Przywara			#size-cells = <0>;
22435ac96f7SAndre Przywara		};
22535ac96f7SAndre Przywara
22635ac96f7SAndre Przywara		mmc2: mmc@4022000 {
22735ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-mmc",
22835ac96f7SAndre Przywara				     "allwinner,sun20i-d1-mmc";
22935ac96f7SAndre Przywara			reg = <0x04022000 0x1000>;
23035ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
23135ac96f7SAndre Przywara			clock-names = "ahb", "mmc";
23235ac96f7SAndre Przywara			resets = <&ccu RST_BUS_MMC2>;
23335ac96f7SAndre Przywara			reset-names = "ahb";
23435ac96f7SAndre Przywara			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
23535ac96f7SAndre Przywara			pinctrl-names = "default";
23635ac96f7SAndre Przywara			pinctrl-0 = <&mmc2_pins>;
23735ac96f7SAndre Przywara			status = "disabled";
23835ac96f7SAndre Przywara
23935ac96f7SAndre Przywara			max-frequency = <150000000>;
24035ac96f7SAndre Przywara			cap-sd-highspeed;
24135ac96f7SAndre Przywara			cap-mmc-highspeed;
24235ac96f7SAndre Przywara			cap-sdio-irq;
24335ac96f7SAndre Przywara			#address-cells = <1>;
24435ac96f7SAndre Przywara			#size-cells = <0>;
24535ac96f7SAndre Przywara		};
24635ac96f7SAndre Przywara
24735ac96f7SAndre Przywara		wdt: watchdog@2050000 {
24835ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-wdt";
24935ac96f7SAndre Przywara			reg = <0x2050000 0x20>;
25035ac96f7SAndre Przywara			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
25135ac96f7SAndre Przywara			clocks = <&osc24M>, <&rtc CLK_OSC32K>;
25235ac96f7SAndre Przywara			clock-names = "hosc", "losc";
25335ac96f7SAndre Przywara			status = "okay";
25435ac96f7SAndre Przywara		};
25535ac96f7SAndre Przywara
25635ac96f7SAndre Przywara		uart0: serial@2500000 {
25735ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
25835ac96f7SAndre Przywara			reg = <0x02500000 0x400>;
25935ac96f7SAndre Przywara			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
26035ac96f7SAndre Przywara			reg-shift = <2>;
26135ac96f7SAndre Przywara			reg-io-width = <4>;
26235ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART0>;
26335ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART0>;
26435ac96f7SAndre Przywara			status = "disabled";
26535ac96f7SAndre Przywara		};
26635ac96f7SAndre Przywara
26735ac96f7SAndre Przywara		uart1: serial@2500400 {
26835ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
26935ac96f7SAndre Przywara			reg = <0x02500400 0x400>;
27035ac96f7SAndre Przywara			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
27135ac96f7SAndre Przywara			reg-shift = <2>;
27235ac96f7SAndre Przywara			reg-io-width = <4>;
27335ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART1>;
27435ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART1>;
27535ac96f7SAndre Przywara			status = "disabled";
27635ac96f7SAndre Przywara		};
27735ac96f7SAndre Przywara
27835ac96f7SAndre Przywara		uart2: serial@2500800 {
27935ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
28035ac96f7SAndre Przywara			reg = <0x02500800 0x400>;
28135ac96f7SAndre Przywara			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
28235ac96f7SAndre Przywara			reg-shift = <2>;
28335ac96f7SAndre Przywara			reg-io-width = <4>;
28435ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART2>;
28535ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART2>;
28635ac96f7SAndre Przywara			status = "disabled";
28735ac96f7SAndre Przywara		};
28835ac96f7SAndre Przywara
28935ac96f7SAndre Przywara		uart3: serial@2500c00 {
29035ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
29135ac96f7SAndre Przywara			reg = <0x02500c00 0x400>;
29235ac96f7SAndre Przywara			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
29335ac96f7SAndre Przywara			reg-shift = <2>;
29435ac96f7SAndre Przywara			reg-io-width = <4>;
29535ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART3>;
29635ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART3>;
29735ac96f7SAndre Przywara			status = "disabled";
29835ac96f7SAndre Przywara		};
29935ac96f7SAndre Przywara
30035ac96f7SAndre Przywara		uart4: serial@2501000 {
30135ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
30235ac96f7SAndre Przywara			reg = <0x02501000 0x400>;
30335ac96f7SAndre Przywara			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
30435ac96f7SAndre Przywara			reg-shift = <2>;
30535ac96f7SAndre Przywara			reg-io-width = <4>;
30635ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART4>;
30735ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART4>;
30835ac96f7SAndre Przywara			status = "disabled";
30935ac96f7SAndre Przywara		};
31035ac96f7SAndre Przywara
31135ac96f7SAndre Przywara		uart5: serial@2501400 {
31235ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
31335ac96f7SAndre Przywara			reg = <0x02501400 0x400>;
31435ac96f7SAndre Przywara			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
31535ac96f7SAndre Przywara			reg-shift = <2>;
31635ac96f7SAndre Przywara			reg-io-width = <4>;
31735ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART5>;
31835ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART5>;
31935ac96f7SAndre Przywara			status = "disabled";
32035ac96f7SAndre Przywara		};
32135ac96f7SAndre Przywara
32235ac96f7SAndre Przywara		uart6: serial@2501800 {
32335ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
32435ac96f7SAndre Przywara			reg = <0x02501800 0x400>;
32535ac96f7SAndre Przywara			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
32635ac96f7SAndre Przywara			reg-shift = <2>;
32735ac96f7SAndre Przywara			reg-io-width = <4>;
32835ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART6>;
32935ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART6>;
33035ac96f7SAndre Przywara			status = "disabled";
33135ac96f7SAndre Przywara		};
33235ac96f7SAndre Przywara
33335ac96f7SAndre Przywara		uart7: serial@2501c00 {
33435ac96f7SAndre Przywara			compatible = "snps,dw-apb-uart";
33535ac96f7SAndre Przywara			reg = <0x02501c00 0x400>;
33635ac96f7SAndre Przywara			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
33735ac96f7SAndre Przywara			reg-shift = <2>;
33835ac96f7SAndre Przywara			reg-io-width = <4>;
33935ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_UART7>;
34035ac96f7SAndre Przywara			resets = <&ccu RST_BUS_UART7>;
34135ac96f7SAndre Przywara			status = "disabled";
34235ac96f7SAndre Przywara		};
34335ac96f7SAndre Przywara
34435ac96f7SAndre Przywara		i2c0: i2c@2502000 {
34535ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-i2c",
34635ac96f7SAndre Przywara				     "allwinner,sun8i-v536-i2c",
34735ac96f7SAndre Przywara				     "allwinner,sun6i-a31-i2c";
34835ac96f7SAndre Przywara			reg = <0x2502000 0x400>;
34935ac96f7SAndre Przywara			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
35035ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_I2C0>;
35135ac96f7SAndre Przywara			resets = <&ccu RST_BUS_I2C0>;
35235ac96f7SAndre Przywara			status = "disabled";
35335ac96f7SAndre Przywara			#address-cells = <1>;
35435ac96f7SAndre Przywara			#size-cells = <0>;
35535ac96f7SAndre Przywara		};
35635ac96f7SAndre Przywara
35735ac96f7SAndre Przywara		i2c1: i2c@2502400 {
35835ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-i2c",
35935ac96f7SAndre Przywara				     "allwinner,sun8i-v536-i2c",
36035ac96f7SAndre Przywara				     "allwinner,sun6i-a31-i2c";
36135ac96f7SAndre Przywara			reg = <0x2502400 0x400>;
36235ac96f7SAndre Przywara			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
36335ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_I2C1>;
36435ac96f7SAndre Przywara			resets = <&ccu RST_BUS_I2C1>;
36535ac96f7SAndre Przywara			status = "disabled";
36635ac96f7SAndre Przywara			#address-cells = <1>;
36735ac96f7SAndre Przywara			#size-cells = <0>;
36835ac96f7SAndre Przywara		};
36935ac96f7SAndre Przywara
37035ac96f7SAndre Przywara		i2c2: i2c@2502800 {
37135ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-i2c",
37235ac96f7SAndre Przywara				     "allwinner,sun8i-v536-i2c",
37335ac96f7SAndre Przywara				     "allwinner,sun6i-a31-i2c";
37435ac96f7SAndre Przywara			reg = <0x2502800 0x400>;
37535ac96f7SAndre Przywara			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
37635ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_I2C2>;
37735ac96f7SAndre Przywara			resets = <&ccu RST_BUS_I2C2>;
37835ac96f7SAndre Przywara			status = "disabled";
37935ac96f7SAndre Przywara			#address-cells = <1>;
38035ac96f7SAndre Przywara			#size-cells = <0>;
38135ac96f7SAndre Przywara		};
38235ac96f7SAndre Przywara
38335ac96f7SAndre Przywara		i2c3: i2c@2502c00 {
38435ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-i2c",
38535ac96f7SAndre Przywara				     "allwinner,sun8i-v536-i2c",
38635ac96f7SAndre Przywara				     "allwinner,sun6i-a31-i2c";
38735ac96f7SAndre Przywara			reg = <0x2502c00 0x400>;
38835ac96f7SAndre Przywara			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
38935ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_I2C3>;
39035ac96f7SAndre Przywara			resets = <&ccu RST_BUS_I2C3>;
39135ac96f7SAndre Przywara			status = "disabled";
39235ac96f7SAndre Przywara			#address-cells = <1>;
39335ac96f7SAndre Przywara			#size-cells = <0>;
39435ac96f7SAndre Przywara		};
39535ac96f7SAndre Przywara
39635ac96f7SAndre Przywara		i2c4: i2c@2503000 {
39735ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-i2c",
39835ac96f7SAndre Przywara				     "allwinner,sun8i-v536-i2c",
39935ac96f7SAndre Przywara				     "allwinner,sun6i-a31-i2c";
40035ac96f7SAndre Przywara			reg = <0x2503000 0x400>;
40135ac96f7SAndre Przywara			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
40235ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_I2C4>;
40335ac96f7SAndre Przywara			resets = <&ccu RST_BUS_I2C4>;
40435ac96f7SAndre Przywara			status = "disabled";
40535ac96f7SAndre Przywara			#address-cells = <1>;
40635ac96f7SAndre Przywara			#size-cells = <0>;
40735ac96f7SAndre Przywara		};
40835ac96f7SAndre Przywara
40935ac96f7SAndre Przywara		i2c5: i2c@2503400 {
41035ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-i2c",
41135ac96f7SAndre Przywara				     "allwinner,sun8i-v536-i2c",
41235ac96f7SAndre Przywara				     "allwinner,sun6i-a31-i2c";
41335ac96f7SAndre Przywara			reg = <0x2503400 0x400>;
41435ac96f7SAndre Przywara			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
41535ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_I2C5>;
41635ac96f7SAndre Przywara			resets = <&ccu RST_BUS_I2C5>;
41735ac96f7SAndre Przywara			status = "disabled";
41835ac96f7SAndre Przywara			#address-cells = <1>;
41935ac96f7SAndre Przywara			#size-cells = <0>;
42035ac96f7SAndre Przywara		};
42135ac96f7SAndre Przywara
422*56766ca6SYixun Lan		syscon: syscon@3000000 {
423*56766ca6SYixun Lan			compatible = "allwinner,sun55i-a523-system-control",
424*56766ca6SYixun Lan				     "allwinner,sun50i-a64-system-control";
425*56766ca6SYixun Lan			reg = <0x03000000 0x1000>;
426*56766ca6SYixun Lan			#address-cells = <1>;
427*56766ca6SYixun Lan			#size-cells = <1>;
428*56766ca6SYixun Lan			ranges;
429*56766ca6SYixun Lan		};
430*56766ca6SYixun Lan
43135ac96f7SAndre Przywara		gic: interrupt-controller@3400000 {
43235ac96f7SAndre Przywara			compatible = "arm,gic-v3";
43335ac96f7SAndre Przywara			#address-cells = <1>;
43435ac96f7SAndre Przywara			#interrupt-cells = <3>;
43535ac96f7SAndre Przywara			#size-cells = <1>;
43635ac96f7SAndre Przywara			ranges;
43735ac96f7SAndre Przywara			interrupt-controller;
43835ac96f7SAndre Przywara			reg = <0x3400000 0x10000>,
43935ac96f7SAndre Przywara			      <0x3460000 0x100000>;
44035ac96f7SAndre Przywara			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
44135ac96f7SAndre Przywara			dma-noncoherent;
44235ac96f7SAndre Przywara
44335ac96f7SAndre Przywara			its: msi-controller@3440000 {
44435ac96f7SAndre Przywara				compatible = "arm,gic-v3-its";
44535ac96f7SAndre Przywara				reg = <0x3440000 0x20000>;
44635ac96f7SAndre Przywara				msi-controller;
44735ac96f7SAndre Przywara				#msi-cells = <1>;
44835ac96f7SAndre Przywara				dma-noncoherent;
44935ac96f7SAndre Przywara			};
45035ac96f7SAndre Przywara		};
45135ac96f7SAndre Przywara
45235ac96f7SAndre Przywara		usb_otg: usb@4100000 {
45335ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-musb",
45435ac96f7SAndre Przywara				     "allwinner,sun8i-a33-musb";
45535ac96f7SAndre Przywara			reg = <0x4100000 0x400>;
45635ac96f7SAndre Przywara			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
45735ac96f7SAndre Przywara			interrupt-names = "mc";
45835ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_OTG>;
45935ac96f7SAndre Przywara			resets = <&ccu RST_BUS_OTG>;
46035ac96f7SAndre Przywara			extcon = <&usbphy 0>;
46135ac96f7SAndre Przywara			phys = <&usbphy 0>;
46235ac96f7SAndre Przywara			phy-names = "usb";
46335ac96f7SAndre Przywara			status = "disabled";
46435ac96f7SAndre Przywara		};
46535ac96f7SAndre Przywara
46635ac96f7SAndre Przywara		usbphy: phy@4100400 {
46735ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-usb-phy",
46835ac96f7SAndre Przywara				     "allwinner,sun20i-d1-usb-phy";
46935ac96f7SAndre Przywara			reg = <0x4100400 0x100>,
47035ac96f7SAndre Przywara			      <0x4101800 0x100>,
47135ac96f7SAndre Przywara			      <0x4200800 0x100>;
47235ac96f7SAndre Przywara			reg-names = "phy_ctrl",
47335ac96f7SAndre Przywara				    "pmu0",
47435ac96f7SAndre Przywara				    "pmu1";
47535ac96f7SAndre Przywara			clocks = <&osc24M>,
47635ac96f7SAndre Przywara				 <&osc24M>;
47735ac96f7SAndre Przywara			clock-names = "usb0_phy",
47835ac96f7SAndre Przywara				      "usb1_phy";
47935ac96f7SAndre Przywara			resets = <&ccu RST_USB_PHY0>,
48035ac96f7SAndre Przywara				 <&ccu RST_USB_PHY1>;
48135ac96f7SAndre Przywara			reset-names = "usb0_reset",
48235ac96f7SAndre Przywara				      "usb1_reset";
48335ac96f7SAndre Przywara			status = "disabled";
48435ac96f7SAndre Przywara			#phy-cells = <1>;
48535ac96f7SAndre Przywara		};
48635ac96f7SAndre Przywara
48735ac96f7SAndre Przywara		ehci0: usb@4101000 {
48835ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-ehci",
48935ac96f7SAndre Przywara				     "generic-ehci";
49035ac96f7SAndre Przywara			reg = <0x4101000 0x100>;
49135ac96f7SAndre Przywara			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
49235ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI0>,
49335ac96f7SAndre Przywara				 <&ccu CLK_BUS_EHCI0>,
49435ac96f7SAndre Przywara				 <&ccu CLK_USB_OHCI0>;
49535ac96f7SAndre Przywara			resets = <&ccu RST_BUS_OHCI0>,
49635ac96f7SAndre Przywara				 <&ccu RST_BUS_EHCI0>;
49735ac96f7SAndre Przywara			phys = <&usbphy 0>;
49835ac96f7SAndre Przywara			phy-names = "usb";
49935ac96f7SAndre Przywara			status = "disabled";
50035ac96f7SAndre Przywara		};
50135ac96f7SAndre Przywara
50235ac96f7SAndre Przywara		ohci0: usb@4101400 {
50335ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-ohci",
50435ac96f7SAndre Przywara				     "generic-ohci";
50535ac96f7SAndre Przywara			reg = <0x4101400 0x100>;
50635ac96f7SAndre Przywara			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
50735ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI0>,
50835ac96f7SAndre Przywara				 <&ccu CLK_USB_OHCI0>;
50935ac96f7SAndre Przywara			resets = <&ccu RST_BUS_OHCI0>;
51035ac96f7SAndre Przywara			phys = <&usbphy 0>;
51135ac96f7SAndre Przywara			phy-names = "usb";
51235ac96f7SAndre Przywara			status = "disabled";
51335ac96f7SAndre Przywara		};
51435ac96f7SAndre Przywara
51535ac96f7SAndre Przywara		ehci1: usb@4200000 {
51635ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-ehci",
51735ac96f7SAndre Przywara				     "generic-ehci";
51835ac96f7SAndre Przywara			reg = <0x4200000 0x100>;
51935ac96f7SAndre Przywara			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
52035ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI1>,
52135ac96f7SAndre Przywara				 <&ccu CLK_BUS_EHCI1>,
52235ac96f7SAndre Przywara				 <&ccu CLK_USB_OHCI1>;
52335ac96f7SAndre Przywara			resets = <&ccu RST_BUS_OHCI1>,
52435ac96f7SAndre Przywara				 <&ccu RST_BUS_EHCI1>;
52535ac96f7SAndre Przywara			phys = <&usbphy 1>;
52635ac96f7SAndre Przywara			phy-names = "usb";
52735ac96f7SAndre Przywara			status = "disabled";
52835ac96f7SAndre Przywara		};
52935ac96f7SAndre Przywara
53035ac96f7SAndre Przywara		ohci1: usb@4200400 {
53135ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-ohci",
53235ac96f7SAndre Przywara				     "generic-ohci";
53335ac96f7SAndre Przywara			reg = <0x4200400 0x100>;
53435ac96f7SAndre Przywara			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
53535ac96f7SAndre Przywara			clocks = <&ccu CLK_BUS_OHCI1>,
53635ac96f7SAndre Przywara				 <&ccu CLK_USB_OHCI1>;
53735ac96f7SAndre Przywara			resets = <&ccu RST_BUS_OHCI1>;
53835ac96f7SAndre Przywara			phys = <&usbphy 1>;
53935ac96f7SAndre Przywara			phy-names = "usb";
54035ac96f7SAndre Przywara			status = "disabled";
54135ac96f7SAndre Przywara		};
54235ac96f7SAndre Przywara
543*56766ca6SYixun Lan		emac0: ethernet@4500000 {
544*56766ca6SYixun Lan			compatible = "allwinner,sun55i-a523-emac0",
545*56766ca6SYixun Lan				     "allwinner,sun50i-a64-emac";
546*56766ca6SYixun Lan			reg = <0x04500000 0x10000>;
547*56766ca6SYixun Lan			clocks = <&ccu CLK_BUS_EMAC0>;
548*56766ca6SYixun Lan			clock-names = "stmmaceth";
549*56766ca6SYixun Lan			resets = <&ccu RST_BUS_EMAC0>;
550*56766ca6SYixun Lan			reset-names = "stmmaceth";
551*56766ca6SYixun Lan			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
552*56766ca6SYixun Lan			interrupt-names = "macirq";
553*56766ca6SYixun Lan			pinctrl-names = "default";
554*56766ca6SYixun Lan			pinctrl-0 = <&rgmii0_pins>;
555*56766ca6SYixun Lan			syscon = <&syscon>;
556*56766ca6SYixun Lan			status = "disabled";
557*56766ca6SYixun Lan
558*56766ca6SYixun Lan			mdio0: mdio {
559*56766ca6SYixun Lan				compatible = "snps,dwmac-mdio";
560*56766ca6SYixun Lan				#address-cells = <1>;
561*56766ca6SYixun Lan				#size-cells = <0>;
562*56766ca6SYixun Lan			};
563*56766ca6SYixun Lan		};
564*56766ca6SYixun Lan
56535ac96f7SAndre Przywara		r_ccu: clock-controller@7010000 {
56635ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-r-ccu";
56735ac96f7SAndre Przywara			reg = <0x7010000 0x250>;
56835ac96f7SAndre Przywara			clocks = <&osc24M>,
56935ac96f7SAndre Przywara				 <&rtc CLK_OSC32K>,
57035ac96f7SAndre Przywara				 <&rtc CLK_IOSC>,
57135ac96f7SAndre Przywara				 <&ccu CLK_PLL_PERIPH0_200M>,
57235ac96f7SAndre Przywara				 <&ccu CLK_PLL_AUDIO0_4X>;
57335ac96f7SAndre Przywara			clock-names = "hosc",
57435ac96f7SAndre Przywara				      "losc",
57535ac96f7SAndre Przywara				      "iosc",
57635ac96f7SAndre Przywara				      "pll-periph",
57735ac96f7SAndre Przywara				      "pll-audio";
57835ac96f7SAndre Przywara			#clock-cells = <1>;
57935ac96f7SAndre Przywara			#reset-cells = <1>;
58035ac96f7SAndre Przywara		};
58135ac96f7SAndre Przywara
58235ac96f7SAndre Przywara		nmi_intc: interrupt-controller@7010320 {
58335ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-nmi";
58435ac96f7SAndre Przywara			reg = <0x07010320 0xc>;
58535ac96f7SAndre Przywara			interrupt-controller;
58635ac96f7SAndre Przywara			#interrupt-cells = <2>;
58735ac96f7SAndre Przywara			interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
58835ac96f7SAndre Przywara		};
58935ac96f7SAndre Przywara
59035ac96f7SAndre Przywara		r_pio: pinctrl@7022000 {
59135ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-r-pinctrl";
59235ac96f7SAndre Przywara			reg = <0x7022000 0x800>;
59335ac96f7SAndre Przywara			interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
59435ac96f7SAndre Przywara				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
59535ac96f7SAndre Przywara			clocks = <&r_ccu CLK_R_APB0>,
59635ac96f7SAndre Przywara				 <&osc24M>,
59735ac96f7SAndre Przywara				 <&rtc CLK_OSC32K>;
59835ac96f7SAndre Przywara			clock-names = "apb", "hosc", "losc";
59935ac96f7SAndre Przywara			gpio-controller;
60035ac96f7SAndre Przywara			#gpio-cells = <3>;
60135ac96f7SAndre Przywara			interrupt-controller;
60235ac96f7SAndre Przywara			#interrupt-cells = <3>;
60335ac96f7SAndre Przywara
60435ac96f7SAndre Przywara			r_i2c_pins: r-i2c-pins {
60535ac96f7SAndre Przywara				pins = "PL0" ,"PL1";
60635ac96f7SAndre Przywara				allwinner,pinmux = <2>;
60735ac96f7SAndre Przywara				function = "r_i2c0";
60835ac96f7SAndre Przywara			};
60935ac96f7SAndre Przywara		};
61035ac96f7SAndre Przywara
61135ac96f7SAndre Przywara		r_i2c0: i2c@7081400 {
61235ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-i2c",
61335ac96f7SAndre Przywara				     "allwinner,sun8i-v536-i2c",
61435ac96f7SAndre Przywara				     "allwinner,sun6i-a31-i2c";
61535ac96f7SAndre Przywara			reg = <0x07081400 0x400>;
61635ac96f7SAndre Przywara			interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
61735ac96f7SAndre Przywara			clocks = <&r_ccu CLK_BUS_R_I2C0>;
61835ac96f7SAndre Przywara			resets = <&r_ccu RST_BUS_R_I2C0>;
61935ac96f7SAndre Przywara			pinctrl-names = "default";
62035ac96f7SAndre Przywara			pinctrl-0 = <&r_i2c_pins>;
62135ac96f7SAndre Przywara			status = "disabled";
62235ac96f7SAndre Przywara
62335ac96f7SAndre Przywara			#address-cells = <1>;
62435ac96f7SAndre Przywara			#size-cells = <0>;
62535ac96f7SAndre Przywara		};
62635ac96f7SAndre Przywara
62735ac96f7SAndre Przywara		rtc: rtc@7090000 {
62835ac96f7SAndre Przywara			compatible = "allwinner,sun55i-a523-rtc",
62935ac96f7SAndre Przywara				     "allwinner,sun50i-r329-rtc";
63035ac96f7SAndre Przywara			reg = <0x7090000 0x400>;
63135ac96f7SAndre Przywara			interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
63235ac96f7SAndre Przywara			clocks = <&r_ccu CLK_BUS_R_RTC>,
63335ac96f7SAndre Przywara				 <&osc24M>,
63435ac96f7SAndre Przywara				 <&r_ccu CLK_R_AHB>;
63535ac96f7SAndre Przywara			clock-names = "bus", "hosc", "ahb";
63635ac96f7SAndre Przywara			#clock-cells = <1>;
63735ac96f7SAndre Przywara		};
63835ac96f7SAndre Przywara	};
63935ac96f7SAndre Przywara};
640