1b255e126SJianxin Pan// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2b255e126SJianxin Pan/*
3b255e126SJianxin Pan * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
4b255e126SJianxin Pan */
5b255e126SJianxin Pan
6b255e126SJianxin Pan#include <dt-bindings/interrupt-controller/irq.h>
7b255e126SJianxin Pan#include <dt-bindings/interrupt-controller/arm-gic.h>
8e6eeb92dSQianggui Song#include <dt-bindings/gpio/meson-a1-gpio.h>
9b255e126SJianxin Pan
10b255e126SJianxin Pan/ {
11b255e126SJianxin Pan	compatible = "amlogic,a1";
12b255e126SJianxin Pan
13b255e126SJianxin Pan	interrupt-parent = <&gic>;
14b255e126SJianxin Pan	#address-cells = <2>;
15b255e126SJianxin Pan	#size-cells = <2>;
16b255e126SJianxin Pan
17b255e126SJianxin Pan	cpus {
18b255e126SJianxin Pan		#address-cells = <2>;
19b255e126SJianxin Pan		#size-cells = <0>;
20b255e126SJianxin Pan
21b255e126SJianxin Pan		cpu0: cpu@0 {
22b255e126SJianxin Pan			device_type = "cpu";
23b255e126SJianxin Pan			compatible = "arm,cortex-a35";
24b255e126SJianxin Pan			reg = <0x0 0x0>;
25b255e126SJianxin Pan			enable-method = "psci";
26b255e126SJianxin Pan			next-level-cache = <&l2>;
27b255e126SJianxin Pan		};
28b255e126SJianxin Pan
29b255e126SJianxin Pan		cpu1: cpu@1 {
30b255e126SJianxin Pan			device_type = "cpu";
31b255e126SJianxin Pan			compatible = "arm,cortex-a35";
32b255e126SJianxin Pan			reg = <0x0 0x1>;
33b255e126SJianxin Pan			enable-method = "psci";
34b255e126SJianxin Pan			next-level-cache = <&l2>;
35b255e126SJianxin Pan		};
36b255e126SJianxin Pan
37b255e126SJianxin Pan		l2: l2-cache0 {
38b255e126SJianxin Pan			compatible = "cache";
39b255e126SJianxin Pan		};
40b255e126SJianxin Pan	};
41b255e126SJianxin Pan
42b255e126SJianxin Pan	psci {
43b255e126SJianxin Pan		compatible = "arm,psci-1.0";
44b255e126SJianxin Pan		method = "smc";
45b255e126SJianxin Pan	};
46b255e126SJianxin Pan
47b255e126SJianxin Pan	reserved-memory {
48b255e126SJianxin Pan		#address-cells = <2>;
49b255e126SJianxin Pan		#size-cells = <2>;
50b255e126SJianxin Pan		ranges;
51b255e126SJianxin Pan
52b255e126SJianxin Pan		linux,cma {
53b255e126SJianxin Pan			compatible = "shared-dma-pool";
54b255e126SJianxin Pan			reusable;
55b255e126SJianxin Pan			size = <0x0 0x800000>;
56b255e126SJianxin Pan			alignment = <0x0 0x400000>;
57b255e126SJianxin Pan			linux,cma-default;
58b255e126SJianxin Pan		};
59b255e126SJianxin Pan	};
60b255e126SJianxin Pan
61b255e126SJianxin Pan	sm: secure-monitor {
62b255e126SJianxin Pan		compatible = "amlogic,meson-gxbb-sm";
6304dd0b65SJianxin Pan
6404dd0b65SJianxin Pan		pwrc: power-controller {
6504dd0b65SJianxin Pan			compatible = "amlogic,meson-a1-pwrc";
6604dd0b65SJianxin Pan			#power-domain-cells = <1>;
6704dd0b65SJianxin Pan			status = "okay";
6804dd0b65SJianxin Pan		};
69b255e126SJianxin Pan	};
70b255e126SJianxin Pan
71b255e126SJianxin Pan	soc {
72b255e126SJianxin Pan		compatible = "simple-bus";
73b255e126SJianxin Pan		#address-cells = <2>;
74b255e126SJianxin Pan		#size-cells = <2>;
75b255e126SJianxin Pan		ranges;
76b255e126SJianxin Pan
77b255e126SJianxin Pan		apb: bus@fe000000 {
78b255e126SJianxin Pan			compatible = "simple-bus";
79b255e126SJianxin Pan			reg = <0x0 0xfe000000 0x0 0x1000000>;
80b255e126SJianxin Pan			#address-cells = <2>;
81b255e126SJianxin Pan			#size-cells = <2>;
82b255e126SJianxin Pan			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
83b255e126SJianxin Pan
84e6eeb92dSQianggui Song
8503f2dea7SXingyu Chen			reset: reset-controller@0 {
8603f2dea7SXingyu Chen				compatible = "amlogic,meson-a1-reset";
8703f2dea7SXingyu Chen				reg = <0x0 0x0 0x0 0x8c>;
8803f2dea7SXingyu Chen				#reset-cells = <1>;
8903f2dea7SXingyu Chen			};
9003f2dea7SXingyu Chen
91*d9421d6cSKevin Hilman			periphs_pinctrl: pinctrl@400 {
92e6eeb92dSQianggui Song				compatible = "amlogic,meson-a1-periphs-pinctrl";
93e6eeb92dSQianggui Song				#address-cells = <2>;
94e6eeb92dSQianggui Song				#size-cells = <2>;
95e6eeb92dSQianggui Song				ranges;
96e6eeb92dSQianggui Song
97*d9421d6cSKevin Hilman				gpio: bank@400 {
98e6eeb92dSQianggui Song					reg = <0x0 0x0400 0x0 0x003c>,
99e6eeb92dSQianggui Song					      <0x0 0x0480 0x0 0x0118>;
100e6eeb92dSQianggui Song					reg-names = "mux", "gpio";
101e6eeb92dSQianggui Song					gpio-controller;
102e6eeb92dSQianggui Song					#gpio-cells = <2>;
103e6eeb92dSQianggui Song					gpio-ranges = <&periphs_pinctrl 0 0 62>;
104e6eeb92dSQianggui Song				};
105e6eeb92dSQianggui Song
106e6eeb92dSQianggui Song			};
107e6eeb92dSQianggui Song
108b255e126SJianxin Pan			uart_AO: serial@1c00 {
109b255e126SJianxin Pan				compatible = "amlogic,meson-gx-uart",
110b255e126SJianxin Pan					     "amlogic,meson-ao-uart";
111b255e126SJianxin Pan				reg = <0x0 0x1c00 0x0 0x18>;
112b255e126SJianxin Pan				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
113b255e126SJianxin Pan				clocks = <&xtal>, <&xtal>, <&xtal>;
114b255e126SJianxin Pan				clock-names = "xtal", "pclk", "baud";
115b255e126SJianxin Pan				status = "disabled";
116b255e126SJianxin Pan			};
117b255e126SJianxin Pan
118b255e126SJianxin Pan			uart_AO_B: serial@2000 {
119b255e126SJianxin Pan				compatible = "amlogic,meson-gx-uart",
120b255e126SJianxin Pan					     "amlogic,meson-ao-uart";
121b255e126SJianxin Pan				reg = <0x0 0x2000 0x0 0x18>;
122b255e126SJianxin Pan				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
123b255e126SJianxin Pan				clocks = <&xtal>, <&xtal>, <&xtal>;
124b255e126SJianxin Pan				clock-names = "xtal", "pclk", "baud";
125b255e126SJianxin Pan				status = "disabled";
126b255e126SJianxin Pan			};
127b255e126SJianxin Pan		};
128b255e126SJianxin Pan
129b255e126SJianxin Pan		gic: interrupt-controller@ff901000 {
130b255e126SJianxin Pan			compatible = "arm,gic-400";
131b255e126SJianxin Pan			reg = <0x0 0xff901000 0x0 0x1000>,
132b255e126SJianxin Pan			      <0x0 0xff902000 0x0 0x2000>,
133b255e126SJianxin Pan			      <0x0 0xff904000 0x0 0x2000>,
134b255e126SJianxin Pan			      <0x0 0xff906000 0x0 0x2000>;
135b255e126SJianxin Pan			interrupt-controller;
136b255e126SJianxin Pan			interrupts = <GIC_PPI 9
137b255e126SJianxin Pan				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
138b255e126SJianxin Pan			#interrupt-cells = <3>;
139b255e126SJianxin Pan			#address-cells = <0>;
140b255e126SJianxin Pan		};
141b255e126SJianxin Pan	};
142b255e126SJianxin Pan
143b255e126SJianxin Pan	timer {
144b255e126SJianxin Pan		compatible = "arm,armv8-timer";
145b255e126SJianxin Pan		interrupts = <GIC_PPI 13
146b255e126SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
147b255e126SJianxin Pan			     <GIC_PPI 14
148b255e126SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
149b255e126SJianxin Pan			     <GIC_PPI 11
150b255e126SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
151b255e126SJianxin Pan			     <GIC_PPI 10
152b255e126SJianxin Pan			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
153b255e126SJianxin Pan	};
154b255e126SJianxin Pan
155b255e126SJianxin Pan	xtal: xtal-clk {
156b255e126SJianxin Pan		compatible = "fixed-clock";
157b255e126SJianxin Pan		clock-frequency = <24000000>;
158b255e126SJianxin Pan		clock-output-names = "xtal";
159b255e126SJianxin Pan		#clock-cells = <0>;
160b255e126SJianxin Pan	};
161b255e126SJianxin Pan};
162