xref: /freebsd/sys/contrib/device-tree/src/arm64/realtek/kent.dtsi (revision 0cd4430a9320c916a84617b6bbf400f5c64a09c7)
1*0cd4430aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*0cd4430aSEmmanuel Vadot/*
3*0cd4430aSEmmanuel Vadot * Realtek Kent SoC family
4*0cd4430aSEmmanuel Vadot *
5*0cd4430aSEmmanuel Vadot * Copyright (c) 2024 Realtek Semiconductor Corp.
6*0cd4430aSEmmanuel Vadot */
7*0cd4430aSEmmanuel Vadot
8*0cd4430aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
9*0cd4430aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
10*0cd4430aSEmmanuel Vadot
11*0cd4430aSEmmanuel Vadot/ {
12*0cd4430aSEmmanuel Vadot	interrupt-parent = <&gic>;
13*0cd4430aSEmmanuel Vadot	#address-cells = <2>;
14*0cd4430aSEmmanuel Vadot	#size-cells = <2>;
15*0cd4430aSEmmanuel Vadot
16*0cd4430aSEmmanuel Vadot	aliases {
17*0cd4430aSEmmanuel Vadot		serial0 = &uart0;
18*0cd4430aSEmmanuel Vadot	};
19*0cd4430aSEmmanuel Vadot
20*0cd4430aSEmmanuel Vadot	timer {
21*0cd4430aSEmmanuel Vadot		compatible = "arm,armv8-timer";
22*0cd4430aSEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
23*0cd4430aSEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
24*0cd4430aSEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
25*0cd4430aSEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
26*0cd4430aSEmmanuel Vadot			     <GIC_PPI  9 IRQ_TYPE_LEVEL_HIGH>;
27*0cd4430aSEmmanuel Vadot	};
28*0cd4430aSEmmanuel Vadot
29*0cd4430aSEmmanuel Vadot	cpus {
30*0cd4430aSEmmanuel Vadot		#address-cells = <1>;
31*0cd4430aSEmmanuel Vadot		#size-cells = <0>;
32*0cd4430aSEmmanuel Vadot
33*0cd4430aSEmmanuel Vadot		cpu0: cpu@0 {
34*0cd4430aSEmmanuel Vadot			device_type = "cpu";
35*0cd4430aSEmmanuel Vadot			compatible = "arm,cortex-a78";
36*0cd4430aSEmmanuel Vadot			reg = <0x0>;
37*0cd4430aSEmmanuel Vadot			enable-method = "psci";
38*0cd4430aSEmmanuel Vadot			next-level-cache = <&l2_0>;
39*0cd4430aSEmmanuel Vadot			dynamic-power-coefficient = <454>;
40*0cd4430aSEmmanuel Vadot			#cooling-cells = <2>;
41*0cd4430aSEmmanuel Vadot
42*0cd4430aSEmmanuel Vadot			l2_0: l2-cache {
43*0cd4430aSEmmanuel Vadot				compatible = "cache";
44*0cd4430aSEmmanuel Vadot				cache-level = <2>;
45*0cd4430aSEmmanuel Vadot				cache-line-size = <64>;
46*0cd4430aSEmmanuel Vadot				cache-sets = <256>;
47*0cd4430aSEmmanuel Vadot				cache-size = <0x40000>;
48*0cd4430aSEmmanuel Vadot				cache-unified;
49*0cd4430aSEmmanuel Vadot				next-level-cache = <&l3>;
50*0cd4430aSEmmanuel Vadot			};
51*0cd4430aSEmmanuel Vadot		};
52*0cd4430aSEmmanuel Vadot
53*0cd4430aSEmmanuel Vadot		cpu1: cpu@100 {
54*0cd4430aSEmmanuel Vadot			device_type = "cpu";
55*0cd4430aSEmmanuel Vadot			compatible = "arm,cortex-a78";
56*0cd4430aSEmmanuel Vadot			reg = <0x100>;
57*0cd4430aSEmmanuel Vadot			enable-method = "psci";
58*0cd4430aSEmmanuel Vadot			next-level-cache = <&l2_1>;
59*0cd4430aSEmmanuel Vadot			dynamic-power-coefficient = <454>;
60*0cd4430aSEmmanuel Vadot			#cooling-cells = <2>;
61*0cd4430aSEmmanuel Vadot
62*0cd4430aSEmmanuel Vadot			l2_1: l2-cache {
63*0cd4430aSEmmanuel Vadot				compatible = "cache";
64*0cd4430aSEmmanuel Vadot				cache-level = <2>;
65*0cd4430aSEmmanuel Vadot				cache-line-size = <64>;
66*0cd4430aSEmmanuel Vadot				cache-sets = <256>;
67*0cd4430aSEmmanuel Vadot				cache-size = <0x40000>;
68*0cd4430aSEmmanuel Vadot				cache-unified;
69*0cd4430aSEmmanuel Vadot				next-level-cache = <&l3>;
70*0cd4430aSEmmanuel Vadot			};
71*0cd4430aSEmmanuel Vadot		};
72*0cd4430aSEmmanuel Vadot
73*0cd4430aSEmmanuel Vadot		cpu2: cpu@200 {
74*0cd4430aSEmmanuel Vadot			device_type = "cpu";
75*0cd4430aSEmmanuel Vadot			compatible = "arm,cortex-a78";
76*0cd4430aSEmmanuel Vadot			reg = <0x200>;
77*0cd4430aSEmmanuel Vadot			enable-method = "psci";
78*0cd4430aSEmmanuel Vadot			next-level-cache = <&l2_2>;
79*0cd4430aSEmmanuel Vadot			dynamic-power-coefficient = <454>;
80*0cd4430aSEmmanuel Vadot			#cooling-cells = <2>;
81*0cd4430aSEmmanuel Vadot
82*0cd4430aSEmmanuel Vadot			l2_2: l2-cache {
83*0cd4430aSEmmanuel Vadot				compatible = "cache";
84*0cd4430aSEmmanuel Vadot				cache-level = <2>;
85*0cd4430aSEmmanuel Vadot				cache-line-size = <64>;
86*0cd4430aSEmmanuel Vadot				cache-sets = <256>;
87*0cd4430aSEmmanuel Vadot				cache-size = <0x40000>;
88*0cd4430aSEmmanuel Vadot				cache-unified;
89*0cd4430aSEmmanuel Vadot				next-level-cache = <&l3>;
90*0cd4430aSEmmanuel Vadot			};
91*0cd4430aSEmmanuel Vadot		};
92*0cd4430aSEmmanuel Vadot
93*0cd4430aSEmmanuel Vadot		cpu3: cpu@300 {
94*0cd4430aSEmmanuel Vadot			device_type = "cpu";
95*0cd4430aSEmmanuel Vadot			compatible = "arm,cortex-a78";
96*0cd4430aSEmmanuel Vadot			reg = <0x300>;
97*0cd4430aSEmmanuel Vadot			enable-method = "psci";
98*0cd4430aSEmmanuel Vadot			next-level-cache = <&l2_3>;
99*0cd4430aSEmmanuel Vadot			dynamic-power-coefficient = <454>;
100*0cd4430aSEmmanuel Vadot			#cooling-cells = <2>;
101*0cd4430aSEmmanuel Vadot
102*0cd4430aSEmmanuel Vadot			l2_3: l2-cache {
103*0cd4430aSEmmanuel Vadot				compatible = "cache";
104*0cd4430aSEmmanuel Vadot				cache-level = <2>;
105*0cd4430aSEmmanuel Vadot				cache-line-size = <64>;
106*0cd4430aSEmmanuel Vadot				cache-sets = <256>;
107*0cd4430aSEmmanuel Vadot				cache-size = <0x40000>;
108*0cd4430aSEmmanuel Vadot				cache-unified;
109*0cd4430aSEmmanuel Vadot				next-level-cache = <&l3>;
110*0cd4430aSEmmanuel Vadot			};
111*0cd4430aSEmmanuel Vadot		};
112*0cd4430aSEmmanuel Vadot
113*0cd4430aSEmmanuel Vadot		l3: l3-cache {
114*0cd4430aSEmmanuel Vadot			compatible = "cache";
115*0cd4430aSEmmanuel Vadot			cache-level = <3>;
116*0cd4430aSEmmanuel Vadot			cache-line-size = <64>;
117*0cd4430aSEmmanuel Vadot			cache-sets = <512>;
118*0cd4430aSEmmanuel Vadot			cache-size = <0x200000>;
119*0cd4430aSEmmanuel Vadot			cache-unified;
120*0cd4430aSEmmanuel Vadot		};
121*0cd4430aSEmmanuel Vadot	};
122*0cd4430aSEmmanuel Vadot
123*0cd4430aSEmmanuel Vadot	psci: psci {
124*0cd4430aSEmmanuel Vadot		compatible = "arm,psci-1.0";
125*0cd4430aSEmmanuel Vadot		method = "smc";
126*0cd4430aSEmmanuel Vadot	};
127*0cd4430aSEmmanuel Vadot
128*0cd4430aSEmmanuel Vadot	soc@0 {
129*0cd4430aSEmmanuel Vadot		compatible = "simple-bus";
130*0cd4430aSEmmanuel Vadot		ranges = <0x0 0x0 0x0 0x40000>, /* boot code */
131*0cd4430aSEmmanuel Vadot			 <0x98000000 0x0 0x98000000 0xef0000>, /* rbus */
132*0cd4430aSEmmanuel Vadot			 <0xa0000000 0x0 0xa0000000 0x10000000>, /* PCIE */
133*0cd4430aSEmmanuel Vadot			 <0xff000000 0x0 0xff000000 0x200000>; /* GIC */
134*0cd4430aSEmmanuel Vadot		#address-cells = <1>;
135*0cd4430aSEmmanuel Vadot		#size-cells = <1>;
136*0cd4430aSEmmanuel Vadot
137*0cd4430aSEmmanuel Vadot		rbus: bus@98000000 {
138*0cd4430aSEmmanuel Vadot			compatible = "simple-bus";
139*0cd4430aSEmmanuel Vadot			ranges = <0x0 0x98000000 0xef0000>,
140*0cd4430aSEmmanuel Vadot				 <0xa0000000 0xa0000000 0x10000000>; /* PCIE */
141*0cd4430aSEmmanuel Vadot			#address-cells = <1>;
142*0cd4430aSEmmanuel Vadot			#size-cells = <1>;
143*0cd4430aSEmmanuel Vadot
144*0cd4430aSEmmanuel Vadot			uart0: serial@7800 {
145*0cd4430aSEmmanuel Vadot				compatible = "snps,dw-apb-uart";
146*0cd4430aSEmmanuel Vadot				reg = <0x7800 0x100>;
147*0cd4430aSEmmanuel Vadot				clock-frequency = <432000000>;
148*0cd4430aSEmmanuel Vadot				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
149*0cd4430aSEmmanuel Vadot				reg-io-width = <4>;
150*0cd4430aSEmmanuel Vadot				reg-shift = <2>;
151*0cd4430aSEmmanuel Vadot				status = "disabled";
152*0cd4430aSEmmanuel Vadot			};
153*0cd4430aSEmmanuel Vadot		};
154*0cd4430aSEmmanuel Vadot
155*0cd4430aSEmmanuel Vadot		gic: interrupt-controller@ff100000 {
156*0cd4430aSEmmanuel Vadot			compatible = "arm,gic-v3";
157*0cd4430aSEmmanuel Vadot			reg = <0xff100000 0x10000>,
158*0cd4430aSEmmanuel Vadot			      <0xff140000 0x80000>;
159*0cd4430aSEmmanuel Vadot			interrupt-controller;
160*0cd4430aSEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
161*0cd4430aSEmmanuel Vadot			#address-cells = <1>;
162*0cd4430aSEmmanuel Vadot			#interrupt-cells = <3>;
163*0cd4430aSEmmanuel Vadot			#size-cells = <1>;
164*0cd4430aSEmmanuel Vadot		};
165*0cd4430aSEmmanuel Vadot	};
166*0cd4430aSEmmanuel Vadot};
167