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
1234a81e5ddSJian Hu			pwm_ab: pwm@1b000 {
1244a81e5ddSJian Hu				compatible = "amlogic,meson-axg-ee-pwm";
1254a81e5ddSJian Hu				reg = <0x0 0x1b000 0x0 0x20>;
1264a81e5ddSJian Hu				#pwm-cells = <3>;
1274a81e5ddSJian Hu				status = "disabled";
1284a81e5ddSJian Hu			};
1294a81e5ddSJian Hu
1304a81e5ddSJian Hu			pwm_cd: pwm@1a000 {
1314a81e5ddSJian Hu				compatible = "amlogic,meson-axg-ee-pwm";
1324a81e5ddSJian Hu				reg = <0x0 0x1a000 0x0 0x20>;
1334a81e5ddSJian Hu				#pwm-cells = <3>;
1344a81e5ddSJian Hu				status = "disabled";
1354a81e5ddSJian Hu			};
1364a81e5ddSJian Hu
13743b9f617SYixun Lan			reset: reset-controller@1004 {
13843b9f617SYixun Lan				compatible = "amlogic,meson-axg-reset";
13943b9f617SYixun Lan				reg = <0x0 0x01004 0x0 0x9c>;
14043b9f617SYixun Lan				#reset-cells = <1>;
14143b9f617SYixun Lan			};
14243b9f617SYixun Lan
1439d59b708SYixun Lan			uart_A: serial@24000 {
1449d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
1459d59b708SYixun Lan				reg = <0x0 0x24000 0x0 0x14>;
1469d59b708SYixun Lan				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1479d59b708SYixun Lan				status = "disabled";
1489d59b708SYixun Lan			};
1499d59b708SYixun Lan
1509d59b708SYixun Lan			uart_B: serial@23000 {
1519d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
1529d59b708SYixun Lan				reg = <0x0 0x23000 0x0 0x14>;
1539d59b708SYixun Lan				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1549d59b708SYixun Lan				status = "disabled";
1559d59b708SYixun Lan			};
1569d59b708SYixun Lan		};
1579d59b708SYixun Lan
1589d59b708SYixun Lan		gic: interrupt-controller@ffc01000 {
1599d59b708SYixun Lan			compatible = "arm,gic-400";
1609d59b708SYixun Lan			reg = <0x0 0xffc01000 0 0x1000>,
1619d59b708SYixun Lan			      <0x0 0xffc02000 0 0x2000>,
1629d59b708SYixun Lan			      <0x0 0xffc04000 0 0x2000>,
1639d59b708SYixun Lan			      <0x0 0xffc06000 0 0x2000>;
1649d59b708SYixun Lan			interrupt-controller;
1659d59b708SYixun Lan			interrupts = <GIC_PPI 9
1669d59b708SYixun Lan				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
1679d59b708SYixun Lan			#interrupt-cells = <3>;
1689d59b708SYixun Lan			#address-cells = <0>;
1699d59b708SYixun Lan		};
1709d59b708SYixun Lan
171abfc18f9SQiufang Dai		hiubus: bus@ff63c000 {
172abfc18f9SQiufang Dai			compatible = "simple-bus";
173abfc18f9SQiufang Dai			reg = <0x0 0xff63c000 0x0 0x1c00>;
174abfc18f9SQiufang Dai			#address-cells = <2>;
175abfc18f9SQiufang Dai			#size-cells = <2>;
176abfc18f9SQiufang Dai			ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
177abfc18f9SQiufang Dai
178abfc18f9SQiufang Dai			clkc: clock-controller@0 {
179abfc18f9SQiufang Dai				compatible = "amlogic,axg-clkc";
180abfc18f9SQiufang Dai				#clock-cells = <1>;
181abfc18f9SQiufang Dai				reg = <0x0 0x0 0x0 0x320>;
182abfc18f9SQiufang Dai			};
183abfc18f9SQiufang Dai		};
184abfc18f9SQiufang Dai
1859d59b708SYixun Lan		mailbox: mailbox@ff63dc00 {
1869d59b708SYixun Lan			compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
1879d59b708SYixun Lan			reg = <0 0xff63dc00 0 0x400>;
1889d59b708SYixun Lan			interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
1899d59b708SYixun Lan				     <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
1909d59b708SYixun Lan				     <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
1919d59b708SYixun Lan			#mbox-cells = <1>;
1929d59b708SYixun Lan		};
1939d59b708SYixun Lan
194de05ded6SXingyu Chen		periphs: periphs@ff634000 {
195de05ded6SXingyu Chen			compatible = "simple-bus";
196de05ded6SXingyu Chen			reg = <0x0 0xff634000 0x0 0x2000>;
197de05ded6SXingyu Chen			#address-cells = <2>;
198de05ded6SXingyu Chen			#size-cells = <2>;
199de05ded6SXingyu Chen			ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
200de05ded6SXingyu Chen
201de05ded6SXingyu Chen			pinctrl_periphs: pinctrl@480 {
202de05ded6SXingyu Chen				compatible = "amlogic,meson-axg-periphs-pinctrl";
203de05ded6SXingyu Chen				#address-cells = <2>;
204de05ded6SXingyu Chen				#size-cells = <2>;
205de05ded6SXingyu Chen				ranges;
206de05ded6SXingyu Chen
207de05ded6SXingyu Chen				gpio: bank@480 {
208de05ded6SXingyu Chen					reg = <0x0 0x00480 0x0 0x40>,
209de05ded6SXingyu Chen						<0x0 0x004e8 0x0 0x14>,
210de05ded6SXingyu Chen						<0x0 0x00520 0x0 0x14>,
211de05ded6SXingyu Chen						<0x0 0x00430 0x0 0x3c>;
212de05ded6SXingyu Chen					reg-names = "mux", "pull", "pull-enable", "gpio";
213de05ded6SXingyu Chen					gpio-controller;
214de05ded6SXingyu Chen					#gpio-cells = <2>;
215de05ded6SXingyu Chen					gpio-ranges = <&pinctrl_periphs 0 0 86>;
216de05ded6SXingyu Chen				};
2174a81e5ddSJian Hu
2184a81e5ddSJian Hu				pwm_a_a_pins: pwm_a_a {
2194a81e5ddSJian Hu					mux {
2204a81e5ddSJian Hu						groups = "pwm_a_a";
2214a81e5ddSJian Hu						function = "pwm_a";
2224a81e5ddSJian Hu					};
2234a81e5ddSJian Hu				};
2244a81e5ddSJian Hu
2254a81e5ddSJian Hu				pwm_a_x18_pins: pwm_a_x18 {
2264a81e5ddSJian Hu					mux {
2274a81e5ddSJian Hu						groups = "pwm_a_x18";
2284a81e5ddSJian Hu						function = "pwm_a";
2294a81e5ddSJian Hu					};
2304a81e5ddSJian Hu				};
2314a81e5ddSJian Hu
2324a81e5ddSJian Hu				pwm_a_x20_pins: pwm_a_x20 {
2334a81e5ddSJian Hu					mux {
2344a81e5ddSJian Hu						groups = "pwm_a_x20";
2354a81e5ddSJian Hu						function = "pwm_a";
2364a81e5ddSJian Hu					};
2374a81e5ddSJian Hu				};
2384a81e5ddSJian Hu
2394a81e5ddSJian Hu				pwm_a_z_pins: pwm_a_z {
2404a81e5ddSJian Hu					mux {
2414a81e5ddSJian Hu						groups = "pwm_a_z";
2424a81e5ddSJian Hu						function = "pwm_a";
2434a81e5ddSJian Hu					};
2444a81e5ddSJian Hu				};
2454a81e5ddSJian Hu
2464a81e5ddSJian Hu				pwm_b_a_pins: pwm_b_a {
2474a81e5ddSJian Hu					mux {
2484a81e5ddSJian Hu						groups = "pwm_b_a";
2494a81e5ddSJian Hu						function = "pwm_b";
2504a81e5ddSJian Hu					};
2514a81e5ddSJian Hu				};
2524a81e5ddSJian Hu
2534a81e5ddSJian Hu				pwm_b_x_pins: pwm_b_x {
2544a81e5ddSJian Hu					mux {
2554a81e5ddSJian Hu						groups = "pwm_b_x";
2564a81e5ddSJian Hu						function = "pwm_b";
2574a81e5ddSJian Hu					};
2584a81e5ddSJian Hu				};
2594a81e5ddSJian Hu
2604a81e5ddSJian Hu				pwm_b_z_pins: pwm_b_z {
2614a81e5ddSJian Hu					mux {
2624a81e5ddSJian Hu						groups = "pwm_b_z";
2634a81e5ddSJian Hu						function = "pwm_b";
2644a81e5ddSJian Hu					};
2654a81e5ddSJian Hu				};
2664a81e5ddSJian Hu
2674a81e5ddSJian Hu				pwm_c_a_pins: pwm_c_a {
2684a81e5ddSJian Hu					mux {
2694a81e5ddSJian Hu						groups = "pwm_c_a";
2704a81e5ddSJian Hu						function = "pwm_c";
2714a81e5ddSJian Hu					};
2724a81e5ddSJian Hu				};
2734a81e5ddSJian Hu
2744a81e5ddSJian Hu				pwm_c_x10_pins: pwm_c_x10 {
2754a81e5ddSJian Hu					mux {
2764a81e5ddSJian Hu						groups = "pwm_c_x10";
2774a81e5ddSJian Hu						function = "pwm_c";
2784a81e5ddSJian Hu					};
2794a81e5ddSJian Hu				};
2804a81e5ddSJian Hu
2814a81e5ddSJian Hu				pwm_c_x17_pins: pwm_c_x17 {
2824a81e5ddSJian Hu					mux {
2834a81e5ddSJian Hu						groups = "pwm_c_x17";
2844a81e5ddSJian Hu						function = "pwm_c";
2854a81e5ddSJian Hu					};
2864a81e5ddSJian Hu				};
2874a81e5ddSJian Hu
2884a81e5ddSJian Hu				pwm_d_x11_pins: pwm_d_x11 {
2894a81e5ddSJian Hu					mux {
2904a81e5ddSJian Hu						groups = "pwm_d_x11";
2914a81e5ddSJian Hu						function = "pwm_d";
2924a81e5ddSJian Hu					};
2934a81e5ddSJian Hu				};
2944a81e5ddSJian Hu
2954a81e5ddSJian Hu				pwm_d_x16_pins: pwm_d_x16 {
2964a81e5ddSJian Hu					mux {
2974a81e5ddSJian Hu						groups = "pwm_d_x16";
2984a81e5ddSJian Hu						function = "pwm_d";
2994a81e5ddSJian Hu					};
3004a81e5ddSJian Hu				};
301de05ded6SXingyu Chen			};
302de05ded6SXingyu Chen		};
303de05ded6SXingyu Chen
3049d59b708SYixun Lan		sram: sram@fffc0000 {
3059d59b708SYixun Lan			compatible = "amlogic,meson-axg-sram", "mmio-sram";
3069d59b708SYixun Lan			reg = <0x0 0xfffc0000 0x0 0x20000>;
3079d59b708SYixun Lan			#address-cells = <1>;
3089d59b708SYixun Lan			#size-cells = <1>;
3099d59b708SYixun Lan			ranges = <0 0x0 0xfffc0000 0x20000>;
3109d59b708SYixun Lan
3119d59b708SYixun Lan			cpu_scp_lpri: scp-shmem@0 {
3129d59b708SYixun Lan				compatible = "amlogic,meson-axg-scp-shmem";
3139d59b708SYixun Lan				reg = <0x13000 0x400>;
3149d59b708SYixun Lan			};
3159d59b708SYixun Lan
3169d59b708SYixun Lan			cpu_scp_hpri: scp-shmem@200 {
3179d59b708SYixun Lan				compatible = "amlogic,meson-axg-scp-shmem";
3189d59b708SYixun Lan				reg = <0x13400 0x400>;
3199d59b708SYixun Lan			};
3209d59b708SYixun Lan		};
3219d59b708SYixun Lan
3220cb6c604SKevin Hilman		aobus: bus@ff800000 {
3239d59b708SYixun Lan			compatible = "simple-bus";
3249d59b708SYixun Lan			reg = <0x0 0xff800000 0x0 0x100000>;
3259d59b708SYixun Lan			#address-cells = <2>;
3269d59b708SYixun Lan			#size-cells = <2>;
3279d59b708SYixun Lan			ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
3289d59b708SYixun Lan
329de05ded6SXingyu Chen			pinctrl_aobus: pinctrl@14 {
330de05ded6SXingyu Chen				compatible = "amlogic,meson-axg-aobus-pinctrl";
331de05ded6SXingyu Chen				#address-cells = <2>;
332de05ded6SXingyu Chen				#size-cells = <2>;
333de05ded6SXingyu Chen				ranges;
334de05ded6SXingyu Chen
335de05ded6SXingyu Chen				gpio_ao: bank@14 {
336de05ded6SXingyu Chen					reg = <0x0 0x00014 0x0 0x8>,
337de05ded6SXingyu Chen						<0x0 0x0002c 0x0 0x4>,
338de05ded6SXingyu Chen						<0x0 0x00024 0x0 0x8>;
339de05ded6SXingyu Chen					reg-names = "mux", "pull", "gpio";
340de05ded6SXingyu Chen					gpio-controller;
341de05ded6SXingyu Chen					#gpio-cells = <2>;
342de05ded6SXingyu Chen					gpio-ranges = <&pinctrl_aobus 0 0 15>;
343de05ded6SXingyu Chen				};
344de05ded6SXingyu Chen			};
345de05ded6SXingyu Chen
3464a81e5ddSJian Hu			pwm_AO_ab: pwm@7000 {
3474a81e5ddSJian Hu				compatible = "amlogic,meson-axg-ao-pwm";
3484a81e5ddSJian Hu				reg = <0x0 0x07000 0x0 0x20>;
3494a81e5ddSJian Hu				#pwm-cells = <3>;
3504a81e5ddSJian Hu				status = "disabled";
3514a81e5ddSJian Hu			};
3524a81e5ddSJian Hu
3534a81e5ddSJian Hu			pwm_AO_cd: pwm@2000 {
3544a81e5ddSJian Hu				compatible = "amlogic,axg-ao-pwm";
3554a81e5ddSJian Hu				reg = <0x0 0x02000  0x0 0x20>;
3564a81e5ddSJian Hu				#pwm-cells = <3>;
3574a81e5ddSJian Hu				status = "disabled";
3584a81e5ddSJian Hu			};
3594a81e5ddSJian Hu
3609d59b708SYixun Lan			uart_AO: serial@3000 {
3619d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
3629d59b708SYixun Lan				reg = <0x0 0x3000 0x0 0x18>;
3639d59b708SYixun Lan				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
3649d59b708SYixun Lan				clocks = <&xtal>, <&xtal>, <&xtal>;
3659d59b708SYixun Lan				clock-names = "xtal", "pclk", "baud";
3669d59b708SYixun Lan				status = "disabled";
3679d59b708SYixun Lan			};
3689d59b708SYixun Lan
3699d59b708SYixun Lan			uart_AO_B: serial@4000 {
3709d59b708SYixun Lan				compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
3719d59b708SYixun Lan				reg = <0x0 0x4000 0x0 0x18>;
3729d59b708SYixun Lan				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
3739d59b708SYixun Lan				clocks = <&xtal>, <&xtal>, <&xtal>;
3749d59b708SYixun Lan				clock-names = "xtal", "pclk", "baud";
3759d59b708SYixun Lan				status = "disabled";
3769d59b708SYixun Lan			};
3779d59b708SYixun Lan		};
3789d59b708SYixun Lan	};
3799d59b708SYixun Lan};
380