xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/amlogic-t7.dtsi (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1aa1a8ff2SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2aa1a8ff2SEmmanuel Vadot/*
3aa1a8ff2SEmmanuel Vadot * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
4aa1a8ff2SEmmanuel Vadot */
5aa1a8ff2SEmmanuel Vadot
6aa1a8ff2SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
784943d6fSEmmanuel Vadot#include <dt-bindings/power/amlogic,t7-pwrc.h>
8aa1a8ff2SEmmanuel Vadot
9aa1a8ff2SEmmanuel Vadot/ {
10aa1a8ff2SEmmanuel Vadot	interrupt-parent = <&gic>;
11aa1a8ff2SEmmanuel Vadot	#address-cells = <2>;
12aa1a8ff2SEmmanuel Vadot	#size-cells = <2>;
13aa1a8ff2SEmmanuel Vadot
14aa1a8ff2SEmmanuel Vadot	cpus {
15aa1a8ff2SEmmanuel Vadot		#address-cells = <0x2>;
16aa1a8ff2SEmmanuel Vadot		#size-cells = <0x0>;
17aa1a8ff2SEmmanuel Vadot
18aa1a8ff2SEmmanuel Vadot		cpu-map {
19aa1a8ff2SEmmanuel Vadot			cluster0 {
20aa1a8ff2SEmmanuel Vadot				core0 {
21aa1a8ff2SEmmanuel Vadot					cpu = <&cpu100>;
22aa1a8ff2SEmmanuel Vadot				};
23aa1a8ff2SEmmanuel Vadot				core1 {
24aa1a8ff2SEmmanuel Vadot					cpu = <&cpu101>;
25aa1a8ff2SEmmanuel Vadot				};
26aa1a8ff2SEmmanuel Vadot				core2 {
27aa1a8ff2SEmmanuel Vadot					cpu = <&cpu102>;
28aa1a8ff2SEmmanuel Vadot				};
29aa1a8ff2SEmmanuel Vadot				core3 {
30aa1a8ff2SEmmanuel Vadot					cpu = <&cpu103>;
31aa1a8ff2SEmmanuel Vadot				};
32aa1a8ff2SEmmanuel Vadot			};
33aa1a8ff2SEmmanuel Vadot
34aa1a8ff2SEmmanuel Vadot			cluster1 {
35aa1a8ff2SEmmanuel Vadot				core0 {
36aa1a8ff2SEmmanuel Vadot					cpu = <&cpu0>;
37aa1a8ff2SEmmanuel Vadot				};
38aa1a8ff2SEmmanuel Vadot				core1 {
39aa1a8ff2SEmmanuel Vadot					cpu = <&cpu1>;
40aa1a8ff2SEmmanuel Vadot				};
41aa1a8ff2SEmmanuel Vadot				core2 {
42aa1a8ff2SEmmanuel Vadot					cpu = <&cpu2>;
43aa1a8ff2SEmmanuel Vadot				};
44aa1a8ff2SEmmanuel Vadot				core3 {
45aa1a8ff2SEmmanuel Vadot					cpu = <&cpu3>;
46aa1a8ff2SEmmanuel Vadot				};
47aa1a8ff2SEmmanuel Vadot			};
48aa1a8ff2SEmmanuel Vadot		};
49aa1a8ff2SEmmanuel Vadot
50aa1a8ff2SEmmanuel Vadot		cpu100: cpu@100 {
51aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
52aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
53aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x100>;
54aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
55aa1a8ff2SEmmanuel Vadot		};
56aa1a8ff2SEmmanuel Vadot
57aa1a8ff2SEmmanuel Vadot		cpu101: cpu@101 {
58aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
59aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
60aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x101>;
61aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
62aa1a8ff2SEmmanuel Vadot		};
63aa1a8ff2SEmmanuel Vadot
64aa1a8ff2SEmmanuel Vadot		cpu102: cpu@102 {
65aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
66aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
67aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x102>;
68aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
69aa1a8ff2SEmmanuel Vadot		};
70aa1a8ff2SEmmanuel Vadot
71aa1a8ff2SEmmanuel Vadot		cpu103: cpu@103 {
72aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
73aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
74aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x103>;
75aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
76aa1a8ff2SEmmanuel Vadot		};
77aa1a8ff2SEmmanuel Vadot
78aa1a8ff2SEmmanuel Vadot		cpu0: cpu@0 {
79aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
80aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
81aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x0>;
82aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
83aa1a8ff2SEmmanuel Vadot		};
84aa1a8ff2SEmmanuel Vadot
85aa1a8ff2SEmmanuel Vadot		cpu1: cpu@1 {
86aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
87aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
88aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x1>;
89aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
90aa1a8ff2SEmmanuel Vadot		};
91aa1a8ff2SEmmanuel Vadot
92aa1a8ff2SEmmanuel Vadot		cpu2: cpu@2 {
93aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
94aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
95aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x2>;
96aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
97aa1a8ff2SEmmanuel Vadot		};
98aa1a8ff2SEmmanuel Vadot
99aa1a8ff2SEmmanuel Vadot		cpu3: cpu@3 {
100aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
101aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
102aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x3>;
103aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
104aa1a8ff2SEmmanuel Vadot		};
105aa1a8ff2SEmmanuel Vadot	};
106aa1a8ff2SEmmanuel Vadot
107aa1a8ff2SEmmanuel Vadot	timer {
108aa1a8ff2SEmmanuel Vadot		compatible = "arm,armv8-timer";
109aa1a8ff2SEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
110aa1a8ff2SEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
111aa1a8ff2SEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
112aa1a8ff2SEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
113aa1a8ff2SEmmanuel Vadot	};
114aa1a8ff2SEmmanuel Vadot
115aa1a8ff2SEmmanuel Vadot	psci {
116aa1a8ff2SEmmanuel Vadot		compatible = "arm,psci-1.0";
117aa1a8ff2SEmmanuel Vadot		method = "smc";
118aa1a8ff2SEmmanuel Vadot	};
119aa1a8ff2SEmmanuel Vadot
120aa1a8ff2SEmmanuel Vadot	sm: secure-monitor {
121aa1a8ff2SEmmanuel Vadot		compatible = "amlogic,meson-gxbb-sm";
12284943d6fSEmmanuel Vadot
12384943d6fSEmmanuel Vadot		pwrc: power-controller {
12484943d6fSEmmanuel Vadot			compatible = "amlogic,t7-pwrc";
12584943d6fSEmmanuel Vadot			#power-domain-cells = <1>;
12684943d6fSEmmanuel Vadot		};
127aa1a8ff2SEmmanuel Vadot	};
128aa1a8ff2SEmmanuel Vadot
129aa1a8ff2SEmmanuel Vadot	soc {
130aa1a8ff2SEmmanuel Vadot		compatible = "simple-bus";
131aa1a8ff2SEmmanuel Vadot		#address-cells = <2>;
132aa1a8ff2SEmmanuel Vadot		#size-cells = <2>;
133aa1a8ff2SEmmanuel Vadot		ranges;
134aa1a8ff2SEmmanuel Vadot
135aa1a8ff2SEmmanuel Vadot		gic: interrupt-controller@fff01000 {
136aa1a8ff2SEmmanuel Vadot			compatible = "arm,gic-400";
137aa1a8ff2SEmmanuel Vadot			#interrupt-cells = <3>;
138aa1a8ff2SEmmanuel Vadot			#address-cells = <0>;
139aa1a8ff2SEmmanuel Vadot			interrupt-controller;
140aa1a8ff2SEmmanuel Vadot			reg = <0x0 0xfff01000 0 0x1000>,
141aa1a8ff2SEmmanuel Vadot			      <0x0 0xfff02000 0 0x0100>;
142aa1a8ff2SEmmanuel Vadot			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
143aa1a8ff2SEmmanuel Vadot		};
144aa1a8ff2SEmmanuel Vadot
145aa1a8ff2SEmmanuel Vadot		apb4: bus@fe000000 {
146aa1a8ff2SEmmanuel Vadot			compatible = "simple-bus";
147aa1a8ff2SEmmanuel Vadot			reg = <0x0 0xfe000000 0x0 0x480000>;
148aa1a8ff2SEmmanuel Vadot			#address-cells = <2>;
149aa1a8ff2SEmmanuel Vadot			#size-cells = <2>;
150aa1a8ff2SEmmanuel Vadot			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
151aa1a8ff2SEmmanuel Vadot
15284943d6fSEmmanuel Vadot			watchdog@2100 {
15384943d6fSEmmanuel Vadot				compatible = "amlogic,t7-wdt";
15484943d6fSEmmanuel Vadot				reg = <0x0 0x2100 0x0 0x10>;
15584943d6fSEmmanuel Vadot				clocks = <&xtal>;
15684943d6fSEmmanuel Vadot			};
15784943d6fSEmmanuel Vadot
15884943d6fSEmmanuel Vadot			periphs_pinctrl: pinctrl@4000 {
15984943d6fSEmmanuel Vadot				compatible = "amlogic,t7-periphs-pinctrl";
16084943d6fSEmmanuel Vadot				#address-cells = <2>;
16184943d6fSEmmanuel Vadot				#size-cells = <2>;
16284943d6fSEmmanuel Vadot				ranges;
16384943d6fSEmmanuel Vadot
16484943d6fSEmmanuel Vadot				gpio: bank@4000 {
16584943d6fSEmmanuel Vadot					reg = <0x0 0x4000 0x0 0x0064>,
16684943d6fSEmmanuel Vadot					      <0x0 0x40c0 0x0 0x0220>;
16784943d6fSEmmanuel Vadot					reg-names = "mux", "gpio";
16884943d6fSEmmanuel Vadot					gpio-controller;
16984943d6fSEmmanuel Vadot					#gpio-cells = <2>;
17084943d6fSEmmanuel Vadot					gpio-ranges = <&periphs_pinctrl 0 0 157>;
17184943d6fSEmmanuel Vadot				};
172*01950c46SEmmanuel Vadot			};
173*01950c46SEmmanuel Vadot
174*01950c46SEmmanuel Vadot			gpio_intc: interrupt-controller@4080 {
175*01950c46SEmmanuel Vadot				compatible = "amlogic,t7-gpio-intc",
176*01950c46SEmmanuel Vadot					     "amlogic,meson-gpio-intc";
177*01950c46SEmmanuel Vadot				reg = <0x0 0x4080 0x0 0x20>;
178*01950c46SEmmanuel Vadot				interrupt-controller;
179*01950c46SEmmanuel Vadot				#interrupt-cells = <2>;
180*01950c46SEmmanuel Vadot				amlogic,channel-interrupts =
181*01950c46SEmmanuel Vadot					<10 11 12 13 14 15 16 17 18 19 20 21>;
18284943d6fSEmmanuel Vadot			};
18384943d6fSEmmanuel Vadot
184aa1a8ff2SEmmanuel Vadot			uart_a: serial@78000 {
185aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
186aa1a8ff2SEmmanuel Vadot				reg = <0x0 0x78000 0x0 0x18>;
187aa1a8ff2SEmmanuel Vadot				interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
188aa1a8ff2SEmmanuel Vadot				status = "disabled";
189aa1a8ff2SEmmanuel Vadot			};
190aa1a8ff2SEmmanuel Vadot		};
191aa1a8ff2SEmmanuel Vadot
192aa1a8ff2SEmmanuel Vadot	};
193aa1a8ff2SEmmanuel Vadot};
194