19d59b708SYixun Lan/*
29d59b708SYixun Lan * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
39d59b708SYixun Lan *
49d59b708SYixun Lan * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
59d59b708SYixun Lan */
69d59b708SYixun Lan
79d59b708SYixun Lan#include <dt-bindings/gpio/gpio.h>
89d59b708SYixun Lan#include <dt-bindings/interrupt-controller/irq.h>
99d59b708SYixun Lan#include <dt-bindings/interrupt-controller/arm-gic.h>
109d59b708SYixun Lan
119d59b708SYixun Lan/ {
129d59b708SYixun Lan	compatible = "amlogic,meson-axg";
139d59b708SYixun Lan
149d59b708SYixun Lan	interrupt-parent = <&gic>;
159d59b708SYixun Lan	#address-cells = <2>;
169d59b708SYixun Lan	#size-cells = <2>;
179d59b708SYixun Lan
189d59b708SYixun Lan	reserved-memory {
199d59b708SYixun Lan		#address-cells = <2>;
209d59b708SYixun Lan		#size-cells = <2>;
219d59b708SYixun Lan		ranges;
229d59b708SYixun Lan
239d59b708SYixun Lan		/* 16 MiB reserved for Hardware ROM Firmware */
249d59b708SYixun Lan		hwrom_reserved: hwrom@0 {
259d59b708SYixun Lan			reg = <0x0 0x0 0x0 0x1000000>;
269d59b708SYixun Lan			no-map;
279d59b708SYixun Lan		};
289d59b708SYixun Lan
299d59b708SYixun Lan		/* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
30a5494aedSArnd Bergmann		secmon_reserved: secmon@5000000 {
319d59b708SYixun Lan			reg = <0x0 0x05000000 0x0 0x300000>;
329d59b708SYixun Lan			no-map;
339d59b708SYixun Lan		};
349d59b708SYixun Lan	};
359d59b708SYixun Lan
369d59b708SYixun Lan	cpus {
379d59b708SYixun Lan		#address-cells = <0x2>;
389d59b708SYixun Lan		#size-cells = <0x0>;
399d59b708SYixun Lan
409d59b708SYixun Lan		cpu0: cpu@0 {
419d59b708SYixun Lan			device_type = "cpu";
429d59b708SYixun Lan			compatible = "arm,cortex-a53", "arm,armv8";
439d59b708SYixun Lan			reg = <0x0 0x0>;
449d59b708SYixun Lan			enable-method = "psci";
459d59b708SYixun Lan			next-level-cache = <&l2>;
469d59b708SYixun Lan		};
479d59b708SYixun Lan
489d59b708SYixun Lan		cpu1: cpu@1 {
499d59b708SYixun Lan			device_type = "cpu";
509d59b708SYixun Lan			compatible = "arm,cortex-a53", "arm,armv8";
519d59b708SYixun Lan			reg = <0x0 0x1>;
529d59b708SYixun Lan			enable-method = "psci";
539d59b708SYixun Lan			next-level-cache = <&l2>;
549d59b708SYixun Lan		};
559d59b708SYixun Lan
569d59b708SYixun Lan		cpu2: cpu@2 {
579d59b708SYixun Lan			device_type = "cpu";
589d59b708SYixun Lan			compatible = "arm,cortex-a53", "arm,armv8";
599d59b708SYixun Lan			reg = <0x0 0x2>;
609d59b708SYixun Lan			enable-method = "psci";
619d59b708SYixun Lan			next-level-cache = <&l2>;
629d59b708SYixun Lan		};
639d59b708SYixun Lan
649d59b708SYixun Lan		cpu3: cpu@3 {
659d59b708SYixun Lan			device_type = "cpu";
669d59b708SYixun Lan			compatible = "arm,cortex-a53", "arm,armv8";
679d59b708SYixun Lan			reg = <0x0 0x3>;
689d59b708SYixun Lan			enable-method = "psci";
699d59b708SYixun Lan			next-level-cache = <&l2>;
709d59b708SYixun Lan		};
719d59b708SYixun Lan
729d59b708SYixun Lan		l2: l2-cache0 {
739d59b708SYixun Lan			compatible = "cache";
749d59b708SYixun Lan		};
759d59b708SYixun Lan	};
769d59b708SYixun Lan
779d59b708SYixun Lan	arm-pmu {
789d59b708SYixun Lan		compatible = "arm,cortex-a53-pmu";
799d59b708SYixun Lan		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
809d59b708SYixun Lan			     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
819d59b708SYixun Lan			     <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
829d59b708SYixun Lan			     <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
839d59b708SYixun Lan		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
849d59b708SYixun Lan	};
859d59b708SYixun Lan
869d59b708SYixun Lan	psci {
879d59b708SYixun Lan		compatible = "arm,psci-1.0";
889d59b708SYixun Lan		method = "smc";
899d59b708SYixun Lan	};
909d59b708SYixun Lan
919d59b708SYixun Lan	timer {
929d59b708SYixun Lan		compatible = "arm,armv8-timer";
939d59b708SYixun Lan		interrupts = <GIC_PPI 13
949d59b708SYixun Lan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
959d59b708SYixun Lan			     <GIC_PPI 14
969d59b708SYixun Lan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
979d59b708SYixun Lan			     <GIC_PPI 11
989d59b708SYixun Lan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
999d59b708SYixun Lan			     <GIC_PPI 10
1009d59b708SYixun Lan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
1019d59b708SYixun Lan	};
1029d59b708SYixun Lan
1039d59b708SYixun Lan	xtal: xtal-clk {
1049d59b708SYixun Lan		compatible = "fixed-clock";
1059d59b708SYixun Lan		clock-frequency = <24000000>;
1069d59b708SYixun Lan		clock-output-names = "xtal";
1079d59b708SYixun Lan		#clock-cells = <0>;
1089d59b708SYixun Lan	};
1099d59b708SYixun Lan
1109d59b708SYixun Lan	soc {
1119d59b708SYixun Lan		compatible = "simple-bus";
1129d59b708SYixun Lan		#address-cells = <2>;
1139d59b708SYixun Lan		#size-cells = <2>;
1149d59b708SYixun Lan		ranges;
1159d59b708SYixun Lan
1160cb6c604SKevin Hilman		cbus: bus@ffd00000 {
1179d59b708SYixun Lan			compatible = "simple-bus";
1189d59b708SYixun Lan			reg = <0x0 0xffd00000 0x0 0x25000>;
1199d59b708SYixun Lan			#address-cells = <2>;
1209d59b708SYixun Lan			#size-cells = <2>;
1219d59b708SYixun Lan			ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
1229d59b708SYixun Lan
1239d59b708SYixun Lan			uart_A: serial@24000 {
1249d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
1259d59b708SYixun Lan				reg = <0x0 0x24000 0x0 0x14>;
1269d59b708SYixun Lan				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1279d59b708SYixun Lan				status = "disabled";
1289d59b708SYixun Lan			};
1299d59b708SYixun Lan
1309d59b708SYixun Lan			uart_B: serial@23000 {
1319d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
1329d59b708SYixun Lan				reg = <0x0 0x23000 0x0 0x14>;
1339d59b708SYixun Lan				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1349d59b708SYixun Lan				status = "disabled";
1359d59b708SYixun Lan			};
1369d59b708SYixun Lan		};
1379d59b708SYixun Lan
1389d59b708SYixun Lan		gic: interrupt-controller@ffc01000 {
1399d59b708SYixun Lan			compatible = "arm,gic-400";
1409d59b708SYixun Lan			reg = <0x0 0xffc01000 0 0x1000>,
1419d59b708SYixun Lan			      <0x0 0xffc02000 0 0x2000>,
1429d59b708SYixun Lan			      <0x0 0xffc04000 0 0x2000>,
1439d59b708SYixun Lan			      <0x0 0xffc06000 0 0x2000>;
1449d59b708SYixun Lan			interrupt-controller;
1459d59b708SYixun Lan			interrupts = <GIC_PPI 9
1469d59b708SYixun Lan				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
1479d59b708SYixun Lan			#interrupt-cells = <3>;
1489d59b708SYixun Lan			#address-cells = <0>;
1499d59b708SYixun Lan		};
1509d59b708SYixun Lan
151abfc18f9SQiufang Dai		hiubus: bus@ff63c000 {
152abfc18f9SQiufang Dai			compatible = "simple-bus";
153abfc18f9SQiufang Dai			reg = <0x0 0xff63c000 0x0 0x1c00>;
154abfc18f9SQiufang Dai			#address-cells = <2>;
155abfc18f9SQiufang Dai			#size-cells = <2>;
156abfc18f9SQiufang Dai			ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
157abfc18f9SQiufang Dai
158abfc18f9SQiufang Dai			clkc: clock-controller@0 {
159abfc18f9SQiufang Dai				compatible = "amlogic,axg-clkc";
160abfc18f9SQiufang Dai				#clock-cells = <1>;
161abfc18f9SQiufang Dai				reg = <0x0 0x0 0x0 0x320>;
162abfc18f9SQiufang Dai			};
163abfc18f9SQiufang Dai		};
164abfc18f9SQiufang Dai
1659d59b708SYixun Lan		mailbox: mailbox@ff63dc00 {
1669d59b708SYixun Lan			compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
1679d59b708SYixun Lan			reg = <0 0xff63dc00 0 0x400>;
1689d59b708SYixun Lan			interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
1699d59b708SYixun Lan				     <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
1709d59b708SYixun Lan				     <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
1719d59b708SYixun Lan			#mbox-cells = <1>;
1729d59b708SYixun Lan		};
1739d59b708SYixun Lan
174de05ded6SXingyu Chen		periphs: periphs@ff634000 {
175de05ded6SXingyu Chen			compatible = "simple-bus";
176de05ded6SXingyu Chen			reg = <0x0 0xff634000 0x0 0x2000>;
177de05ded6SXingyu Chen			#address-cells = <2>;
178de05ded6SXingyu Chen			#size-cells = <2>;
179de05ded6SXingyu Chen			ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
180de05ded6SXingyu Chen
181de05ded6SXingyu Chen			pinctrl_periphs: pinctrl@480 {
182de05ded6SXingyu Chen				compatible = "amlogic,meson-axg-periphs-pinctrl";
183de05ded6SXingyu Chen				#address-cells = <2>;
184de05ded6SXingyu Chen				#size-cells = <2>;
185de05ded6SXingyu Chen				ranges;
186de05ded6SXingyu Chen
187de05ded6SXingyu Chen				gpio: bank@480 {
188de05ded6SXingyu Chen					reg = <0x0 0x00480 0x0 0x40>,
189de05ded6SXingyu Chen						<0x0 0x004e8 0x0 0x14>,
190de05ded6SXingyu Chen						<0x0 0x00520 0x0 0x14>,
191de05ded6SXingyu Chen						<0x0 0x00430 0x0 0x3c>;
192de05ded6SXingyu Chen					reg-names = "mux", "pull", "pull-enable", "gpio";
193de05ded6SXingyu Chen					gpio-controller;
194de05ded6SXingyu Chen					#gpio-cells = <2>;
195de05ded6SXingyu Chen					gpio-ranges = <&pinctrl_periphs 0 0 86>;
196de05ded6SXingyu Chen				};
197de05ded6SXingyu Chen			};
198de05ded6SXingyu Chen		};
199de05ded6SXingyu Chen
2009d59b708SYixun Lan		sram: sram@fffc0000 {
2019d59b708SYixun Lan			compatible = "amlogic,meson-axg-sram", "mmio-sram";
2029d59b708SYixun Lan			reg = <0x0 0xfffc0000 0x0 0x20000>;
2039d59b708SYixun Lan			#address-cells = <1>;
2049d59b708SYixun Lan			#size-cells = <1>;
2059d59b708SYixun Lan			ranges = <0 0x0 0xfffc0000 0x20000>;
2069d59b708SYixun Lan
2079d59b708SYixun Lan			cpu_scp_lpri: scp-shmem@0 {
2089d59b708SYixun Lan				compatible = "amlogic,meson-axg-scp-shmem";
2099d59b708SYixun Lan				reg = <0x13000 0x400>;
2109d59b708SYixun Lan			};
2119d59b708SYixun Lan
2129d59b708SYixun Lan			cpu_scp_hpri: scp-shmem@200 {
2139d59b708SYixun Lan				compatible = "amlogic,meson-axg-scp-shmem";
2149d59b708SYixun Lan				reg = <0x13400 0x400>;
2159d59b708SYixun Lan			};
2169d59b708SYixun Lan		};
2179d59b708SYixun Lan
2180cb6c604SKevin Hilman		aobus: bus@ff800000 {
2199d59b708SYixun Lan			compatible = "simple-bus";
2209d59b708SYixun Lan			reg = <0x0 0xff800000 0x0 0x100000>;
2219d59b708SYixun Lan			#address-cells = <2>;
2229d59b708SYixun Lan			#size-cells = <2>;
2239d59b708SYixun Lan			ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
2249d59b708SYixun Lan
225de05ded6SXingyu Chen			pinctrl_aobus: pinctrl@14 {
226de05ded6SXingyu Chen				compatible = "amlogic,meson-axg-aobus-pinctrl";
227de05ded6SXingyu Chen				#address-cells = <2>;
228de05ded6SXingyu Chen				#size-cells = <2>;
229de05ded6SXingyu Chen				ranges;
230de05ded6SXingyu Chen
231de05ded6SXingyu Chen				gpio_ao: bank@14 {
232de05ded6SXingyu Chen					reg = <0x0 0x00014 0x0 0x8>,
233de05ded6SXingyu Chen						<0x0 0x0002c 0x0 0x4>,
234de05ded6SXingyu Chen						<0x0 0x00024 0x0 0x8>;
235de05ded6SXingyu Chen					reg-names = "mux", "pull", "gpio";
236de05ded6SXingyu Chen					gpio-controller;
237de05ded6SXingyu Chen					#gpio-cells = <2>;
238de05ded6SXingyu Chen					gpio-ranges = <&pinctrl_aobus 0 0 15>;
239de05ded6SXingyu Chen				};
240de05ded6SXingyu Chen			};
241de05ded6SXingyu Chen
2429d59b708SYixun Lan			uart_AO: serial@3000 {
2439d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
2449d59b708SYixun Lan				reg = <0x0 0x3000 0x0 0x18>;
2459d59b708SYixun Lan				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
2469d59b708SYixun Lan				clocks = <&xtal>, <&xtal>, <&xtal>;
2479d59b708SYixun Lan				clock-names = "xtal", "pclk", "baud";
2489d59b708SYixun Lan				status = "disabled";
2499d59b708SYixun Lan			};
2509d59b708SYixun Lan
2519d59b708SYixun Lan			uart_AO_B: serial@4000 {
2529d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
2539d59b708SYixun Lan				reg = <0x0 0x4000 0x0 0x18>;
2549d59b708SYixun Lan				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
2559d59b708SYixun Lan				clocks = <&xtal>, <&xtal>, <&xtal>;
2569d59b708SYixun Lan				clock-names = "xtal", "pclk", "baud";
2579d59b708SYixun Lan				status = "disabled";
2589d59b708SYixun Lan			};
2599d59b708SYixun Lan		};
2609d59b708SYixun Lan	};
2619d59b708SYixun Lan};
262