xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/meson-a1.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
4c66ec88fSEmmanuel Vadot */
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
7c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/meson-a1-gpio.h>
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel Vadot/ {
11c66ec88fSEmmanuel Vadot	compatible = "amlogic,a1";
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadot	interrupt-parent = <&gic>;
14c66ec88fSEmmanuel Vadot	#address-cells = <2>;
15c66ec88fSEmmanuel Vadot	#size-cells = <2>;
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel Vadot	cpus {
18c66ec88fSEmmanuel Vadot		#address-cells = <2>;
19c66ec88fSEmmanuel Vadot		#size-cells = <0>;
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot		cpu0: cpu@0 {
22c66ec88fSEmmanuel Vadot			device_type = "cpu";
23c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a35";
24c66ec88fSEmmanuel Vadot			reg = <0x0 0x0>;
25c66ec88fSEmmanuel Vadot			enable-method = "psci";
26c66ec88fSEmmanuel Vadot			next-level-cache = <&l2>;
27c66ec88fSEmmanuel Vadot		};
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot		cpu1: cpu@1 {
30c66ec88fSEmmanuel Vadot			device_type = "cpu";
31c66ec88fSEmmanuel Vadot			compatible = "arm,cortex-a35";
32c66ec88fSEmmanuel Vadot			reg = <0x0 0x1>;
33c66ec88fSEmmanuel Vadot			enable-method = "psci";
34c66ec88fSEmmanuel Vadot			next-level-cache = <&l2>;
35c66ec88fSEmmanuel Vadot		};
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot		l2: l2-cache0 {
38c66ec88fSEmmanuel Vadot			compatible = "cache";
398bab661aSEmmanuel Vadot			cache-level = <2>;
40f126890aSEmmanuel Vadot			cache-unified;
41c66ec88fSEmmanuel Vadot		};
42c66ec88fSEmmanuel Vadot	};
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot	psci {
45c66ec88fSEmmanuel Vadot		compatible = "arm,psci-1.0";
46c66ec88fSEmmanuel Vadot		method = "smc";
47c66ec88fSEmmanuel Vadot	};
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot	reserved-memory {
50c66ec88fSEmmanuel Vadot		#address-cells = <2>;
51c66ec88fSEmmanuel Vadot		#size-cells = <2>;
52c66ec88fSEmmanuel Vadot		ranges;
53c66ec88fSEmmanuel Vadot
54c66ec88fSEmmanuel Vadot		linux,cma {
55c66ec88fSEmmanuel Vadot			compatible = "shared-dma-pool";
56c66ec88fSEmmanuel Vadot			reusable;
57c66ec88fSEmmanuel Vadot			size = <0x0 0x800000>;
58c66ec88fSEmmanuel Vadot			alignment = <0x0 0x400000>;
59c66ec88fSEmmanuel Vadot			linux,cma-default;
60c66ec88fSEmmanuel Vadot		};
61c66ec88fSEmmanuel Vadot	};
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel Vadot	sm: secure-monitor {
64c66ec88fSEmmanuel Vadot		compatible = "amlogic,meson-gxbb-sm";
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot		pwrc: power-controller {
67c66ec88fSEmmanuel Vadot			compatible = "amlogic,meson-a1-pwrc";
68c66ec88fSEmmanuel Vadot			#power-domain-cells = <1>;
69c66ec88fSEmmanuel Vadot			status = "okay";
70c66ec88fSEmmanuel Vadot		};
71c66ec88fSEmmanuel Vadot	};
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot	soc {
74c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
75c66ec88fSEmmanuel Vadot		#address-cells = <2>;
76c66ec88fSEmmanuel Vadot		#size-cells = <2>;
77c66ec88fSEmmanuel Vadot		ranges;
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot		apb: bus@fe000000 {
80c66ec88fSEmmanuel Vadot			compatible = "simple-bus";
81c66ec88fSEmmanuel Vadot			reg = <0x0 0xfe000000 0x0 0x1000000>;
82c66ec88fSEmmanuel Vadot			#address-cells = <2>;
83c66ec88fSEmmanuel Vadot			#size-cells = <2>;
84c66ec88fSEmmanuel Vadot			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot			reset: reset-controller@0 {
88c66ec88fSEmmanuel Vadot				compatible = "amlogic,meson-a1-reset";
89c66ec88fSEmmanuel Vadot				reg = <0x0 0x0 0x0 0x8c>;
90c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
91c66ec88fSEmmanuel Vadot			};
92c66ec88fSEmmanuel Vadot
932eb4d8dcSEmmanuel Vadot			periphs_pinctrl: pinctrl@400 {
94c66ec88fSEmmanuel Vadot				compatible = "amlogic,meson-a1-periphs-pinctrl";
95c66ec88fSEmmanuel Vadot				#address-cells = <2>;
96c66ec88fSEmmanuel Vadot				#size-cells = <2>;
97c66ec88fSEmmanuel Vadot				ranges;
98c66ec88fSEmmanuel Vadot
992eb4d8dcSEmmanuel Vadot				gpio: bank@400 {
100c66ec88fSEmmanuel Vadot					reg = <0x0 0x0400 0x0 0x003c>,
101c66ec88fSEmmanuel Vadot					      <0x0 0x0480 0x0 0x0118>;
102c66ec88fSEmmanuel Vadot					reg-names = "mux", "gpio";
103c66ec88fSEmmanuel Vadot					gpio-controller;
104c66ec88fSEmmanuel Vadot					#gpio-cells = <2>;
105c66ec88fSEmmanuel Vadot					gpio-ranges = <&periphs_pinctrl 0 0 62>;
106c66ec88fSEmmanuel Vadot				};
107c66ec88fSEmmanuel Vadot
108c66ec88fSEmmanuel Vadot			};
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadot			uart_AO: serial@1c00 {
111*aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,meson-a1-uart",
112c66ec88fSEmmanuel Vadot					     "amlogic,meson-ao-uart";
113c66ec88fSEmmanuel Vadot				reg = <0x0 0x1c00 0x0 0x18>;
114c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
115c66ec88fSEmmanuel Vadot				clocks = <&xtal>, <&xtal>, <&xtal>;
116c66ec88fSEmmanuel Vadot				clock-names = "xtal", "pclk", "baud";
117c66ec88fSEmmanuel Vadot				status = "disabled";
118c66ec88fSEmmanuel Vadot			};
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel Vadot			uart_AO_B: serial@2000 {
121*aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,meson-a1-uart",
122c66ec88fSEmmanuel Vadot					     "amlogic,meson-ao-uart";
123c66ec88fSEmmanuel Vadot				reg = <0x0 0x2000 0x0 0x18>;
124c66ec88fSEmmanuel Vadot				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
125c66ec88fSEmmanuel Vadot				clocks = <&xtal>, <&xtal>, <&xtal>;
126c66ec88fSEmmanuel Vadot				clock-names = "xtal", "pclk", "baud";
127c66ec88fSEmmanuel Vadot				status = "disabled";
128c66ec88fSEmmanuel Vadot			};
129fac71e4eSEmmanuel Vadot
130fac71e4eSEmmanuel Vadot			gpio_intc: interrupt-controller@0440 {
131fac71e4eSEmmanuel Vadot				compatible = "amlogic,meson-a1-gpio-intc",
132fac71e4eSEmmanuel Vadot					     "amlogic,meson-gpio-intc";
133fac71e4eSEmmanuel Vadot				reg = <0x0 0x0440 0x0 0x14>;
134fac71e4eSEmmanuel Vadot				interrupt-controller;
135fac71e4eSEmmanuel Vadot				#interrupt-cells = <2>;
136fac71e4eSEmmanuel Vadot				amlogic,channel-interrupts =
137fac71e4eSEmmanuel Vadot					<49 50 51 52 53 54 55 56>;
138fac71e4eSEmmanuel Vadot			};
139c66ec88fSEmmanuel Vadot		};
140c66ec88fSEmmanuel Vadot
141c66ec88fSEmmanuel Vadot		gic: interrupt-controller@ff901000 {
142c66ec88fSEmmanuel Vadot			compatible = "arm,gic-400";
143c66ec88fSEmmanuel Vadot			reg = <0x0 0xff901000 0x0 0x1000>,
144c66ec88fSEmmanuel Vadot			      <0x0 0xff902000 0x0 0x2000>,
145c66ec88fSEmmanuel Vadot			      <0x0 0xff904000 0x0 0x2000>,
146c66ec88fSEmmanuel Vadot			      <0x0 0xff906000 0x0 0x2000>;
147c66ec88fSEmmanuel Vadot			interrupt-controller;
148c66ec88fSEmmanuel Vadot			interrupts = <GIC_PPI 9
149c66ec88fSEmmanuel Vadot				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
150c66ec88fSEmmanuel Vadot			#interrupt-cells = <3>;
151c66ec88fSEmmanuel Vadot			#address-cells = <0>;
152c66ec88fSEmmanuel Vadot		};
153c66ec88fSEmmanuel Vadot	};
154c66ec88fSEmmanuel Vadot
155c66ec88fSEmmanuel Vadot	timer {
156c66ec88fSEmmanuel Vadot		compatible = "arm,armv8-timer";
157c66ec88fSEmmanuel Vadot		interrupts = <GIC_PPI 13
158c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
159c66ec88fSEmmanuel Vadot			     <GIC_PPI 14
160c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
161c66ec88fSEmmanuel Vadot			     <GIC_PPI 11
162c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
163c66ec88fSEmmanuel Vadot			     <GIC_PPI 10
164c66ec88fSEmmanuel Vadot			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
165c66ec88fSEmmanuel Vadot	};
166c66ec88fSEmmanuel Vadot
167c66ec88fSEmmanuel Vadot	xtal: xtal-clk {
168c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
169c66ec88fSEmmanuel Vadot		clock-frequency = <24000000>;
170c66ec88fSEmmanuel Vadot		clock-output-names = "xtal";
171c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
172c66ec88fSEmmanuel Vadot	};
173c66ec88fSEmmanuel Vadot};
174