xref: /freebsd/sys/contrib/device-tree/src/arm64/amlogic/amlogic-t7.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
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>
87d0873ebSEmmanuel Vadot#include "amlogic-t7-reset.h"
9aa1a8ff2SEmmanuel Vadot
10aa1a8ff2SEmmanuel Vadot/ {
11aa1a8ff2SEmmanuel Vadot	interrupt-parent = <&gic>;
12aa1a8ff2SEmmanuel Vadot	#address-cells = <2>;
13aa1a8ff2SEmmanuel Vadot	#size-cells = <2>;
14aa1a8ff2SEmmanuel Vadot
15aa1a8ff2SEmmanuel Vadot	cpus {
16aa1a8ff2SEmmanuel Vadot		#address-cells = <0x2>;
17aa1a8ff2SEmmanuel Vadot		#size-cells = <0x0>;
18aa1a8ff2SEmmanuel Vadot
19aa1a8ff2SEmmanuel Vadot		cpu-map {
20aa1a8ff2SEmmanuel Vadot			cluster0 {
21aa1a8ff2SEmmanuel Vadot				core0 {
22aa1a8ff2SEmmanuel Vadot					cpu = <&cpu100>;
23aa1a8ff2SEmmanuel Vadot				};
24aa1a8ff2SEmmanuel Vadot				core1 {
25aa1a8ff2SEmmanuel Vadot					cpu = <&cpu101>;
26aa1a8ff2SEmmanuel Vadot				};
27aa1a8ff2SEmmanuel Vadot				core2 {
28aa1a8ff2SEmmanuel Vadot					cpu = <&cpu102>;
29aa1a8ff2SEmmanuel Vadot				};
30aa1a8ff2SEmmanuel Vadot				core3 {
31aa1a8ff2SEmmanuel Vadot					cpu = <&cpu103>;
32aa1a8ff2SEmmanuel Vadot				};
33aa1a8ff2SEmmanuel Vadot			};
34aa1a8ff2SEmmanuel Vadot
35aa1a8ff2SEmmanuel Vadot			cluster1 {
36aa1a8ff2SEmmanuel Vadot				core0 {
37aa1a8ff2SEmmanuel Vadot					cpu = <&cpu0>;
38aa1a8ff2SEmmanuel Vadot				};
39aa1a8ff2SEmmanuel Vadot				core1 {
40aa1a8ff2SEmmanuel Vadot					cpu = <&cpu1>;
41aa1a8ff2SEmmanuel Vadot				};
42aa1a8ff2SEmmanuel Vadot				core2 {
43aa1a8ff2SEmmanuel Vadot					cpu = <&cpu2>;
44aa1a8ff2SEmmanuel Vadot				};
45aa1a8ff2SEmmanuel Vadot				core3 {
46aa1a8ff2SEmmanuel Vadot					cpu = <&cpu3>;
47aa1a8ff2SEmmanuel Vadot				};
48aa1a8ff2SEmmanuel Vadot			};
49aa1a8ff2SEmmanuel Vadot		};
50aa1a8ff2SEmmanuel Vadot
51aa1a8ff2SEmmanuel Vadot		cpu100: cpu@100 {
52aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
53aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
54aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x100>;
55aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
56aa1a8ff2SEmmanuel Vadot		};
57aa1a8ff2SEmmanuel Vadot
58aa1a8ff2SEmmanuel Vadot		cpu101: cpu@101 {
59aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
60aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
61aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x101>;
62aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
63aa1a8ff2SEmmanuel Vadot		};
64aa1a8ff2SEmmanuel Vadot
65aa1a8ff2SEmmanuel Vadot		cpu102: cpu@102 {
66aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
67aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
68aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x102>;
69aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
70aa1a8ff2SEmmanuel Vadot		};
71aa1a8ff2SEmmanuel Vadot
72aa1a8ff2SEmmanuel Vadot		cpu103: cpu@103 {
73aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
74aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a53";
75aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x103>;
76aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
77aa1a8ff2SEmmanuel Vadot		};
78aa1a8ff2SEmmanuel Vadot
79aa1a8ff2SEmmanuel Vadot		cpu0: cpu@0 {
80aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
81aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
82aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x0>;
83aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
84aa1a8ff2SEmmanuel Vadot		};
85aa1a8ff2SEmmanuel Vadot
86aa1a8ff2SEmmanuel Vadot		cpu1: cpu@1 {
87aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
88aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
89aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x1>;
90aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
91aa1a8ff2SEmmanuel Vadot		};
92aa1a8ff2SEmmanuel Vadot
93aa1a8ff2SEmmanuel Vadot		cpu2: cpu@2 {
94aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
95aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
96aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x2>;
97aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
98aa1a8ff2SEmmanuel Vadot		};
99aa1a8ff2SEmmanuel Vadot
100aa1a8ff2SEmmanuel Vadot		cpu3: cpu@3 {
101aa1a8ff2SEmmanuel Vadot			device_type = "cpu";
102aa1a8ff2SEmmanuel Vadot			compatible = "arm,cortex-a73";
103aa1a8ff2SEmmanuel Vadot			reg = <0x0 0x3>;
104aa1a8ff2SEmmanuel Vadot			enable-method = "psci";
105aa1a8ff2SEmmanuel Vadot		};
106aa1a8ff2SEmmanuel Vadot	};
107aa1a8ff2SEmmanuel Vadot
108aa1a8ff2SEmmanuel Vadot	timer {
109aa1a8ff2SEmmanuel Vadot		compatible = "arm,armv8-timer";
110aa1a8ff2SEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
111aa1a8ff2SEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
112aa1a8ff2SEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
113aa1a8ff2SEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
114aa1a8ff2SEmmanuel Vadot	};
115aa1a8ff2SEmmanuel Vadot
116aa1a8ff2SEmmanuel Vadot	psci {
117aa1a8ff2SEmmanuel Vadot		compatible = "arm,psci-1.0";
118aa1a8ff2SEmmanuel Vadot		method = "smc";
119aa1a8ff2SEmmanuel Vadot	};
120aa1a8ff2SEmmanuel Vadot
121aa1a8ff2SEmmanuel Vadot	sm: secure-monitor {
122aa1a8ff2SEmmanuel Vadot		compatible = "amlogic,meson-gxbb-sm";
12384943d6fSEmmanuel Vadot
12484943d6fSEmmanuel Vadot		pwrc: power-controller {
12584943d6fSEmmanuel Vadot			compatible = "amlogic,t7-pwrc";
12684943d6fSEmmanuel Vadot			#power-domain-cells = <1>;
12784943d6fSEmmanuel Vadot		};
128aa1a8ff2SEmmanuel Vadot	};
129aa1a8ff2SEmmanuel Vadot
130aa1a8ff2SEmmanuel Vadot	soc {
131aa1a8ff2SEmmanuel Vadot		compatible = "simple-bus";
132aa1a8ff2SEmmanuel Vadot		#address-cells = <2>;
133aa1a8ff2SEmmanuel Vadot		#size-cells = <2>;
134aa1a8ff2SEmmanuel Vadot		ranges;
135aa1a8ff2SEmmanuel Vadot
136aa1a8ff2SEmmanuel Vadot		gic: interrupt-controller@fff01000 {
137aa1a8ff2SEmmanuel Vadot			compatible = "arm,gic-400";
138aa1a8ff2SEmmanuel Vadot			#interrupt-cells = <3>;
139aa1a8ff2SEmmanuel Vadot			#address-cells = <0>;
140aa1a8ff2SEmmanuel Vadot			interrupt-controller;
141aa1a8ff2SEmmanuel Vadot			reg = <0x0 0xfff01000 0 0x1000>,
142aa1a8ff2SEmmanuel Vadot			      <0x0 0xfff02000 0 0x0100>;
143aa1a8ff2SEmmanuel Vadot			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
144aa1a8ff2SEmmanuel Vadot		};
145aa1a8ff2SEmmanuel Vadot
146aa1a8ff2SEmmanuel Vadot		apb4: bus@fe000000 {
147aa1a8ff2SEmmanuel Vadot			compatible = "simple-bus";
148aa1a8ff2SEmmanuel Vadot			reg = <0x0 0xfe000000 0x0 0x480000>;
149aa1a8ff2SEmmanuel Vadot			#address-cells = <2>;
150aa1a8ff2SEmmanuel Vadot			#size-cells = <2>;
151aa1a8ff2SEmmanuel Vadot			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
152aa1a8ff2SEmmanuel Vadot
1537d0873ebSEmmanuel Vadot			reset: reset-controller@2000 {
1547d0873ebSEmmanuel Vadot				compatible = "amlogic,t7-reset";
1557d0873ebSEmmanuel Vadot				reg = <0x0 0x2000 0x0 0x98>;
1567d0873ebSEmmanuel Vadot				#reset-cells = <1>;
1577d0873ebSEmmanuel Vadot			};
1587d0873ebSEmmanuel Vadot
15984943d6fSEmmanuel Vadot			watchdog@2100 {
16084943d6fSEmmanuel Vadot				compatible = "amlogic,t7-wdt";
16184943d6fSEmmanuel Vadot				reg = <0x0 0x2100 0x0 0x10>;
16284943d6fSEmmanuel Vadot				clocks = <&xtal>;
16384943d6fSEmmanuel Vadot			};
16484943d6fSEmmanuel Vadot
16584943d6fSEmmanuel Vadot			periphs_pinctrl: pinctrl@4000 {
16684943d6fSEmmanuel Vadot				compatible = "amlogic,t7-periphs-pinctrl";
16784943d6fSEmmanuel Vadot				#address-cells = <2>;
16884943d6fSEmmanuel Vadot				#size-cells = <2>;
16984943d6fSEmmanuel Vadot				ranges;
17084943d6fSEmmanuel Vadot
17184943d6fSEmmanuel Vadot				gpio: bank@4000 {
17284943d6fSEmmanuel Vadot					reg = <0x0 0x4000 0x0 0x0064>,
17384943d6fSEmmanuel Vadot					      <0x0 0x40c0 0x0 0x0220>;
17484943d6fSEmmanuel Vadot					reg-names = "mux", "gpio";
17584943d6fSEmmanuel Vadot					gpio-controller;
17684943d6fSEmmanuel Vadot					#gpio-cells = <2>;
17784943d6fSEmmanuel Vadot					gpio-ranges = <&periphs_pinctrl 0 0 157>;
17884943d6fSEmmanuel Vadot				};
17901950c46SEmmanuel Vadot			};
18001950c46SEmmanuel Vadot
18101950c46SEmmanuel Vadot			gpio_intc: interrupt-controller@4080 {
18201950c46SEmmanuel Vadot				compatible = "amlogic,t7-gpio-intc",
18301950c46SEmmanuel Vadot					     "amlogic,meson-gpio-intc";
18401950c46SEmmanuel Vadot				reg = <0x0 0x4080 0x0 0x20>;
18501950c46SEmmanuel Vadot				interrupt-controller;
18601950c46SEmmanuel Vadot				#interrupt-cells = <2>;
18701950c46SEmmanuel Vadot				amlogic,channel-interrupts =
18801950c46SEmmanuel Vadot					<10 11 12 13 14 15 16 17 18 19 20 21>;
18984943d6fSEmmanuel Vadot			};
19084943d6fSEmmanuel Vadot
191aa1a8ff2SEmmanuel Vadot			uart_a: serial@78000 {
192aa1a8ff2SEmmanuel Vadot				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
193aa1a8ff2SEmmanuel Vadot				reg = <0x0 0x78000 0x0 0x18>;
194aa1a8ff2SEmmanuel Vadot				interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
195aa1a8ff2SEmmanuel Vadot				status = "disabled";
196aa1a8ff2SEmmanuel Vadot			};
197*b2d2a78aSEmmanuel Vadot
198*b2d2a78aSEmmanuel Vadot			sec_ao: ao-secure@10220 {
199*b2d2a78aSEmmanuel Vadot				compatible = "amlogic,t7-ao-secure",
200*b2d2a78aSEmmanuel Vadot					     "amlogic,meson-gx-ao-secure",
201*b2d2a78aSEmmanuel Vadot					     "syscon";
202*b2d2a78aSEmmanuel Vadot				reg = <0x0 0x10220 0x0 0x140>;
203*b2d2a78aSEmmanuel Vadot				amlogic,has-chip-id;
204*b2d2a78aSEmmanuel Vadot			};
205aa1a8ff2SEmmanuel Vadot		};
206aa1a8ff2SEmmanuel Vadot
207aa1a8ff2SEmmanuel Vadot	};
208aa1a8ff2SEmmanuel Vadot};
209