18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
78c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h>
88c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/meson-a1-gpio.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci/ {
118c2ecf20Sopenharmony_ci	compatible = "amlogic,a1";
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	interrupt-parent = <&gic>;
148c2ecf20Sopenharmony_ci	#address-cells = <2>;
158c2ecf20Sopenharmony_ci	#size-cells = <2>;
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	cpus {
188c2ecf20Sopenharmony_ci		#address-cells = <2>;
198c2ecf20Sopenharmony_ci		#size-cells = <0>;
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci		cpu0: cpu@0 {
228c2ecf20Sopenharmony_ci			device_type = "cpu";
238c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a35";
248c2ecf20Sopenharmony_ci			reg = <0x0 0x0>;
258c2ecf20Sopenharmony_ci			enable-method = "psci";
268c2ecf20Sopenharmony_ci			next-level-cache = <&l2>;
278c2ecf20Sopenharmony_ci		};
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci		cpu1: cpu@1 {
308c2ecf20Sopenharmony_ci			device_type = "cpu";
318c2ecf20Sopenharmony_ci			compatible = "arm,cortex-a35";
328c2ecf20Sopenharmony_ci			reg = <0x0 0x1>;
338c2ecf20Sopenharmony_ci			enable-method = "psci";
348c2ecf20Sopenharmony_ci			next-level-cache = <&l2>;
358c2ecf20Sopenharmony_ci		};
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci		l2: l2-cache0 {
388c2ecf20Sopenharmony_ci			compatible = "cache";
398c2ecf20Sopenharmony_ci		};
408c2ecf20Sopenharmony_ci	};
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci	psci {
438c2ecf20Sopenharmony_ci		compatible = "arm,psci-1.0";
448c2ecf20Sopenharmony_ci		method = "smc";
458c2ecf20Sopenharmony_ci	};
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci	reserved-memory {
488c2ecf20Sopenharmony_ci		#address-cells = <2>;
498c2ecf20Sopenharmony_ci		#size-cells = <2>;
508c2ecf20Sopenharmony_ci		ranges;
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci		linux,cma {
538c2ecf20Sopenharmony_ci			compatible = "shared-dma-pool";
548c2ecf20Sopenharmony_ci			reusable;
558c2ecf20Sopenharmony_ci			size = <0x0 0x800000>;
568c2ecf20Sopenharmony_ci			alignment = <0x0 0x400000>;
578c2ecf20Sopenharmony_ci			linux,cma-default;
588c2ecf20Sopenharmony_ci		};
598c2ecf20Sopenharmony_ci	};
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci	sm: secure-monitor {
628c2ecf20Sopenharmony_ci		compatible = "amlogic,meson-gxbb-sm";
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci		pwrc: power-controller {
658c2ecf20Sopenharmony_ci			compatible = "amlogic,meson-a1-pwrc";
668c2ecf20Sopenharmony_ci			#power-domain-cells = <1>;
678c2ecf20Sopenharmony_ci			status = "okay";
688c2ecf20Sopenharmony_ci		};
698c2ecf20Sopenharmony_ci	};
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci	soc {
728c2ecf20Sopenharmony_ci		compatible = "simple-bus";
738c2ecf20Sopenharmony_ci		#address-cells = <2>;
748c2ecf20Sopenharmony_ci		#size-cells = <2>;
758c2ecf20Sopenharmony_ci		ranges;
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci		apb: bus@fe000000 {
788c2ecf20Sopenharmony_ci			compatible = "simple-bus";
798c2ecf20Sopenharmony_ci			reg = <0x0 0xfe000000 0x0 0x1000000>;
808c2ecf20Sopenharmony_ci			#address-cells = <2>;
818c2ecf20Sopenharmony_ci			#size-cells = <2>;
828c2ecf20Sopenharmony_ci			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci			reset: reset-controller@0 {
868c2ecf20Sopenharmony_ci				compatible = "amlogic,meson-a1-reset";
878c2ecf20Sopenharmony_ci				reg = <0x0 0x0 0x0 0x8c>;
888c2ecf20Sopenharmony_ci				#reset-cells = <1>;
898c2ecf20Sopenharmony_ci			};
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci			periphs_pinctrl: pinctrl@0400 {
928c2ecf20Sopenharmony_ci				compatible = "amlogic,meson-a1-periphs-pinctrl";
938c2ecf20Sopenharmony_ci				#address-cells = <2>;
948c2ecf20Sopenharmony_ci				#size-cells = <2>;
958c2ecf20Sopenharmony_ci				ranges;
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci				gpio: bank@0400 {
988c2ecf20Sopenharmony_ci					reg = <0x0 0x0400 0x0 0x003c>,
998c2ecf20Sopenharmony_ci					      <0x0 0x0480 0x0 0x0118>;
1008c2ecf20Sopenharmony_ci					reg-names = "mux", "gpio";
1018c2ecf20Sopenharmony_ci					gpio-controller;
1028c2ecf20Sopenharmony_ci					#gpio-cells = <2>;
1038c2ecf20Sopenharmony_ci					gpio-ranges = <&periphs_pinctrl 0 0 62>;
1048c2ecf20Sopenharmony_ci				};
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci			};
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci			uart_AO: serial@1c00 {
1098c2ecf20Sopenharmony_ci				compatible = "amlogic,meson-gx-uart",
1108c2ecf20Sopenharmony_ci					     "amlogic,meson-ao-uart";
1118c2ecf20Sopenharmony_ci				reg = <0x0 0x1c00 0x0 0x18>;
1128c2ecf20Sopenharmony_ci				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1138c2ecf20Sopenharmony_ci				clocks = <&xtal>, <&xtal>, <&xtal>;
1148c2ecf20Sopenharmony_ci				clock-names = "xtal", "pclk", "baud";
1158c2ecf20Sopenharmony_ci				status = "disabled";
1168c2ecf20Sopenharmony_ci			};
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci			uart_AO_B: serial@2000 {
1198c2ecf20Sopenharmony_ci				compatible = "amlogic,meson-gx-uart",
1208c2ecf20Sopenharmony_ci					     "amlogic,meson-ao-uart";
1218c2ecf20Sopenharmony_ci				reg = <0x0 0x2000 0x0 0x18>;
1228c2ecf20Sopenharmony_ci				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1238c2ecf20Sopenharmony_ci				clocks = <&xtal>, <&xtal>, <&xtal>;
1248c2ecf20Sopenharmony_ci				clock-names = "xtal", "pclk", "baud";
1258c2ecf20Sopenharmony_ci				status = "disabled";
1268c2ecf20Sopenharmony_ci			};
1278c2ecf20Sopenharmony_ci		};
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci		gic: interrupt-controller@ff901000 {
1308c2ecf20Sopenharmony_ci			compatible = "arm,gic-400";
1318c2ecf20Sopenharmony_ci			reg = <0x0 0xff901000 0x0 0x1000>,
1328c2ecf20Sopenharmony_ci			      <0x0 0xff902000 0x0 0x2000>,
1338c2ecf20Sopenharmony_ci			      <0x0 0xff904000 0x0 0x2000>,
1348c2ecf20Sopenharmony_ci			      <0x0 0xff906000 0x0 0x2000>;
1358c2ecf20Sopenharmony_ci			interrupt-controller;
1368c2ecf20Sopenharmony_ci			interrupts = <GIC_PPI 9
1378c2ecf20Sopenharmony_ci				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
1388c2ecf20Sopenharmony_ci			#interrupt-cells = <3>;
1398c2ecf20Sopenharmony_ci			#address-cells = <0>;
1408c2ecf20Sopenharmony_ci		};
1418c2ecf20Sopenharmony_ci	};
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci	timer {
1448c2ecf20Sopenharmony_ci		compatible = "arm,armv8-timer";
1458c2ecf20Sopenharmony_ci		interrupts = <GIC_PPI 13
1468c2ecf20Sopenharmony_ci			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1478c2ecf20Sopenharmony_ci			     <GIC_PPI 14
1488c2ecf20Sopenharmony_ci			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1498c2ecf20Sopenharmony_ci			     <GIC_PPI 11
1508c2ecf20Sopenharmony_ci			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1518c2ecf20Sopenharmony_ci			     <GIC_PPI 10
1528c2ecf20Sopenharmony_ci			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
1538c2ecf20Sopenharmony_ci	};
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ci	xtal: xtal-clk {
1568c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
1578c2ecf20Sopenharmony_ci		clock-frequency = <24000000>;
1588c2ecf20Sopenharmony_ci		clock-output-names = "xtal";
1598c2ecf20Sopenharmony_ci		#clock-cells = <0>;
1608c2ecf20Sopenharmony_ci	};
1618c2ecf20Sopenharmony_ci};
162