xref: /linux/arch/arm64/boot/dts/airoha/en7581.dtsi (revision ab52c59103002b49f2455371e4b9c56ba3ef1781)
1*ab52c591SDaniel Danzberger// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ab52c591SDaniel Danzberger
3*ab52c591SDaniel Danzberger#include <dt-bindings/interrupt-controller/irq.h>
4*ab52c591SDaniel Danzberger#include <dt-bindings/interrupt-controller/arm-gic.h>
5*ab52c591SDaniel Danzberger
6*ab52c591SDaniel Danzberger/ {
7*ab52c591SDaniel Danzberger	interrupt-parent = <&gic>;
8*ab52c591SDaniel Danzberger	#address-cells = <2>;
9*ab52c591SDaniel Danzberger	#size-cells = <2>;
10*ab52c591SDaniel Danzberger
11*ab52c591SDaniel Danzberger	reserved-memory {
12*ab52c591SDaniel Danzberger		#address-cells = <2>;
13*ab52c591SDaniel Danzberger		#size-cells = <2>;
14*ab52c591SDaniel Danzberger		ranges;
15*ab52c591SDaniel Danzberger
16*ab52c591SDaniel Danzberger		npu-binary@84000000 {
17*ab52c591SDaniel Danzberger			no-map;
18*ab52c591SDaniel Danzberger			reg = <0x0 0x84000000 0x0 0xa00000>;
19*ab52c591SDaniel Danzberger		};
20*ab52c591SDaniel Danzberger
21*ab52c591SDaniel Danzberger		npu-flag@84b0000 {
22*ab52c591SDaniel Danzberger			no-map;
23*ab52c591SDaniel Danzberger			reg = <0x0 0x84b00000 0x0 0x100000>;
24*ab52c591SDaniel Danzberger		};
25*ab52c591SDaniel Danzberger
26*ab52c591SDaniel Danzberger		npu-pkt@85000000 {
27*ab52c591SDaniel Danzberger			no-map;
28*ab52c591SDaniel Danzberger			reg = <0x0 0x85000000 0x0 0x1a00000>;
29*ab52c591SDaniel Danzberger		};
30*ab52c591SDaniel Danzberger
31*ab52c591SDaniel Danzberger		npu-phyaddr@86b00000 {
32*ab52c591SDaniel Danzberger			no-map;
33*ab52c591SDaniel Danzberger			reg = <0x0 0x86b00000 0x0 0x100000>;
34*ab52c591SDaniel Danzberger		};
35*ab52c591SDaniel Danzberger
36*ab52c591SDaniel Danzberger		npu-rxdesc@86d00000 {
37*ab52c591SDaniel Danzberger			no-map;
38*ab52c591SDaniel Danzberger			reg = <0x0 0x86d00000 0x0 0x100000>;
39*ab52c591SDaniel Danzberger		};
40*ab52c591SDaniel Danzberger	};
41*ab52c591SDaniel Danzberger
42*ab52c591SDaniel Danzberger	psci {
43*ab52c591SDaniel Danzberger		compatible = "arm,psci-1.0";
44*ab52c591SDaniel Danzberger		method = "smc";
45*ab52c591SDaniel Danzberger	};
46*ab52c591SDaniel Danzberger
47*ab52c591SDaniel Danzberger	cpus {
48*ab52c591SDaniel Danzberger		#address-cells = <1>;
49*ab52c591SDaniel Danzberger		#size-cells = <0>;
50*ab52c591SDaniel Danzberger
51*ab52c591SDaniel Danzberger		cpu-map {
52*ab52c591SDaniel Danzberger			cluster0 {
53*ab52c591SDaniel Danzberger				core0 {
54*ab52c591SDaniel Danzberger					cpu = <&cpu0>;
55*ab52c591SDaniel Danzberger				};
56*ab52c591SDaniel Danzberger
57*ab52c591SDaniel Danzberger				core1 {
58*ab52c591SDaniel Danzberger					cpu = <&cpu1>;
59*ab52c591SDaniel Danzberger				};
60*ab52c591SDaniel Danzberger
61*ab52c591SDaniel Danzberger				core2 {
62*ab52c591SDaniel Danzberger					cpu = <&cpu2>;
63*ab52c591SDaniel Danzberger				};
64*ab52c591SDaniel Danzberger
65*ab52c591SDaniel Danzberger				core3 {
66*ab52c591SDaniel Danzberger					cpu = <&cpu3>;
67*ab52c591SDaniel Danzberger				};
68*ab52c591SDaniel Danzberger			};
69*ab52c591SDaniel Danzberger		};
70*ab52c591SDaniel Danzberger
71*ab52c591SDaniel Danzberger		cpu0: cpu@0 {
72*ab52c591SDaniel Danzberger			device_type = "cpu";
73*ab52c591SDaniel Danzberger			compatible = "arm,cortex-a53";
74*ab52c591SDaniel Danzberger			reg = <0x0>;
75*ab52c591SDaniel Danzberger			enable-method = "psci";
76*ab52c591SDaniel Danzberger			clock-frequency = <80000000>;
77*ab52c591SDaniel Danzberger			next-level-cache = <&l2>;
78*ab52c591SDaniel Danzberger		};
79*ab52c591SDaniel Danzberger
80*ab52c591SDaniel Danzberger		cpu1: cpu@1 {
81*ab52c591SDaniel Danzberger			device_type = "cpu";
82*ab52c591SDaniel Danzberger			compatible = "arm,cortex-a53";
83*ab52c591SDaniel Danzberger			reg = <0x1>;
84*ab52c591SDaniel Danzberger			enable-method = "psci";
85*ab52c591SDaniel Danzberger			clock-frequency = <80000000>;
86*ab52c591SDaniel Danzberger			next-level-cache = <&l2>;
87*ab52c591SDaniel Danzberger		};
88*ab52c591SDaniel Danzberger
89*ab52c591SDaniel Danzberger		cpu2: cpu@2 {
90*ab52c591SDaniel Danzberger			device_type = "cpu";
91*ab52c591SDaniel Danzberger			compatible = "arm,cortex-a53";
92*ab52c591SDaniel Danzberger			reg = <0x2>;
93*ab52c591SDaniel Danzberger			enable-method = "psci";
94*ab52c591SDaniel Danzberger			clock-frequency = <80000000>;
95*ab52c591SDaniel Danzberger			next-level-cache = <&l2>;
96*ab52c591SDaniel Danzberger		};
97*ab52c591SDaniel Danzberger
98*ab52c591SDaniel Danzberger		cpu3: cpu@3 {
99*ab52c591SDaniel Danzberger			device_type = "cpu";
100*ab52c591SDaniel Danzberger			compatible = "arm,cortex-a53";
101*ab52c591SDaniel Danzberger			reg = <0x3>;
102*ab52c591SDaniel Danzberger			enable-method = "psci";
103*ab52c591SDaniel Danzberger			clock-frequency = <80000000>;
104*ab52c591SDaniel Danzberger			next-level-cache = <&l2>;
105*ab52c591SDaniel Danzberger		};
106*ab52c591SDaniel Danzberger
107*ab52c591SDaniel Danzberger		l2: l2-cache {
108*ab52c591SDaniel Danzberger			compatible = "cache";
109*ab52c591SDaniel Danzberger			cache-size = <0x80000>;
110*ab52c591SDaniel Danzberger			cache-line-size = <64>;
111*ab52c591SDaniel Danzberger			cache-level = <2>;
112*ab52c591SDaniel Danzberger			cache-unified;
113*ab52c591SDaniel Danzberger		};
114*ab52c591SDaniel Danzberger	};
115*ab52c591SDaniel Danzberger
116*ab52c591SDaniel Danzberger	timer {
117*ab52c591SDaniel Danzberger		compatible = "arm,armv8-timer";
118*ab52c591SDaniel Danzberger		interrupt-parent = <&gic>;
119*ab52c591SDaniel Danzberger		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
120*ab52c591SDaniel Danzberger			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
121*ab52c591SDaniel Danzberger			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
122*ab52c591SDaniel Danzberger			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
123*ab52c591SDaniel Danzberger	};
124*ab52c591SDaniel Danzberger
125*ab52c591SDaniel Danzberger	soc {
126*ab52c591SDaniel Danzberger		compatible = "simple-bus";
127*ab52c591SDaniel Danzberger		#address-cells = <2>;
128*ab52c591SDaniel Danzberger		#size-cells = <2>;
129*ab52c591SDaniel Danzberger		ranges;
130*ab52c591SDaniel Danzberger
131*ab52c591SDaniel Danzberger		gic: interrupt-controller@9000000 {
132*ab52c591SDaniel Danzberger			compatible = "arm,gic-v3";
133*ab52c591SDaniel Danzberger			interrupt-controller;
134*ab52c591SDaniel Danzberger			#interrupt-cells = <3>;
135*ab52c591SDaniel Danzberger			#address-cells = <1>;
136*ab52c591SDaniel Danzberger			#size-cells = <1>;
137*ab52c591SDaniel Danzberger			reg = <0x0 0x09000000 0x0 0x20000>,
138*ab52c591SDaniel Danzberger			      <0x0 0x09080000 0x0 0x80000>,
139*ab52c591SDaniel Danzberger			      <0x0 0x09400000 0x0 0x2000>,
140*ab52c591SDaniel Danzberger			      <0x0 0x09500000 0x0 0x2000>,
141*ab52c591SDaniel Danzberger			      <0x0 0x09600000 0x0 0x20000>;
142*ab52c591SDaniel Danzberger			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
143*ab52c591SDaniel Danzberger		};
144*ab52c591SDaniel Danzberger
145*ab52c591SDaniel Danzberger		uart1: serial@1fbf0000 {
146*ab52c591SDaniel Danzberger			compatible = "ns16550";
147*ab52c591SDaniel Danzberger			reg = <0x0 0x1fbf0000 0x0 0x30>;
148*ab52c591SDaniel Danzberger			reg-io-width = <4>;
149*ab52c591SDaniel Danzberger			reg-shift = <2>;
150*ab52c591SDaniel Danzberger			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
151*ab52c591SDaniel Danzberger			clock-frequency = <1843200>;
152*ab52c591SDaniel Danzberger		};
153*ab52c591SDaniel Danzberger	};
154*ab52c591SDaniel Danzberger};
155