xref: /linux/arch/arm64/boot/dts/freescale/s32g3.dtsi (revision 955abe0a1b41de5ba61fe4cd614ebc123084d499)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright 2021-2023 NXP
4 *
5 * Authors: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
6 *          Ciprian Costea <ciprianmarian.costea@nxp.com>
7 *          Andra-Teodora Ilie <andra.ilie@nxp.com>
8 */
9
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11
12/ {
13	compatible = "nxp,s32g3";
14	interrupt-parent = <&gic>;
15	#address-cells = <0x02>;
16	#size-cells = <0x02>;
17
18	cpus {
19		#address-cells = <1>;
20		#size-cells = <0>;
21
22		cpu-map {
23			cluster0 {
24				core0 {
25					cpu = <&cpu0>;
26				};
27
28				core1 {
29					cpu = <&cpu1>;
30				};
31
32				core2 {
33					cpu = <&cpu2>;
34				};
35
36				core3 {
37					cpu = <&cpu3>;
38				};
39			};
40
41			cluster1 {
42				core0 {
43					cpu = <&cpu4>;
44				};
45
46				core1 {
47					cpu = <&cpu5>;
48				};
49
50				core2 {
51					cpu = <&cpu6>;
52				};
53
54				core3 {
55					cpu = <&cpu7>;
56				};
57			};
58		};
59
60		cpu0: cpu@0 {
61			device_type = "cpu";
62			compatible = "arm,cortex-a53";
63			reg = <0x0>;
64			enable-method = "psci";
65			clocks = <&dfs 0>;
66		};
67
68		cpu1: cpu@1 {
69			device_type = "cpu";
70			compatible = "arm,cortex-a53";
71			reg = <0x1>;
72			enable-method = "psci";
73			clocks = <&dfs 0>;
74		};
75
76		cpu2: cpu@2 {
77			device_type = "cpu";
78			compatible = "arm,cortex-a53";
79			reg = <0x2>;
80			enable-method = "psci";
81			clocks = <&dfs 0>;
82		};
83
84		cpu3: cpu@3 {
85			device_type = "cpu";
86			compatible = "arm,cortex-a53";
87			reg = <0x3>;
88			enable-method = "psci";
89			clocks = <&dfs 0>;
90		};
91
92		cpu4: cpu@100 {
93			device_type = "cpu";
94			compatible = "arm,cortex-a53";
95			reg = <0x100>;
96			enable-method = "psci";
97			clocks = <&dfs 0>;
98		};
99
100		cpu5: cpu@101 {
101			device_type = "cpu";
102			compatible = "arm,cortex-a53";
103			reg = <0x101>;
104			enable-method = "psci";
105			clocks = <&dfs 0>;
106		};
107
108		cpu6: cpu@102 {
109			device_type = "cpu";
110			compatible = "arm,cortex-a53";
111			reg = <0x102>;
112			enable-method = "psci";
113			clocks = <&dfs 0>;
114		};
115
116		cpu7: cpu@103 {
117			device_type = "cpu";
118			compatible = "arm,cortex-a53";
119			reg = <0x103>;
120			enable-method = "psci";
121			clocks = <&dfs 0>;
122		};
123	};
124
125	firmware {
126		scmi: scmi {
127			compatible = "arm,scmi-smc";
128			shmem = <&scmi_shmem>;
129			arm,smc-id = <0xc20000fe>;
130			#address-cells = <1>;
131			#size-cells = <0>;
132
133			dfs: protocol@13 {
134				reg = <0x13>;
135				#clock-cells = <1>;
136			};
137
138			clks: protocol@14 {
139				reg = <0x14>;
140				#clock-cells = <1>;
141			};
142		};
143
144		psci: psci {
145			compatible = "arm,psci-1.0";
146			method = "smc";
147		};
148	};
149
150
151	pmu {
152		compatible = "arm,cortex-a53-pmu";
153		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
154	};
155
156	reserved-memory  {
157		#address-cells = <2>;
158		#size-cells = <2>;
159		ranges;
160
161		scmi_shmem: shm@d0000000 {
162			compatible = "arm,scmi-shmem";
163			reg = <0x0 0xd0000000 0x0 0x80>;
164			no-map;
165		};
166	};
167
168	soc@0 {
169		compatible = "simple-bus";
170		#address-cells = <1>;
171		#size-cells = <1>;
172		ranges = <0 0 0 0x80000000>;
173
174		uart0: serial@401c8000 {
175			compatible = "nxp,s32g3-linflexuart",
176				     "fsl,s32v234-linflexuart";
177			reg = <0x401c8000 0x3000>;
178			interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
179			status = "disabled";
180		};
181
182		uart1: serial@401cc000 {
183			compatible = "nxp,s32g3-linflexuart",
184				     "fsl,s32v234-linflexuart";
185			reg = <0x401cc000 0x3000>;
186			interrupts = <GIC_SPI 83 IRQ_TYPE_EDGE_RISING>;
187			status = "disabled";
188		};
189
190		uart2: serial@402bc000 {
191			compatible = "nxp,s32g3-linflexuart",
192				     "fsl,s32v234-linflexuart";
193			reg = <0x402bc000 0x3000>;
194			interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
195			status = "disabled";
196		};
197
198		usdhc0: mmc@402f0000 {
199			compatible = "nxp,s32g3-usdhc",
200				     "nxp,s32g2-usdhc";
201			reg = <0x402f0000 0x1000>;
202			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
203			clocks = <&clks 32>,
204				 <&clks 31>,
205				 <&clks 33>;
206			clock-names = "ipg", "ahb", "per";
207			status = "disabled";
208		};
209
210		gic: interrupt-controller@50800000 {
211			compatible = "arm,gic-v3";
212			#interrupt-cells = <3>;
213			interrupt-controller;
214			reg = <0x50800000 0x10000>,
215			      <0x50900000 0x200000>,
216			      <0x50400000 0x2000>,
217			      <0x50410000 0x2000>,
218			      <0x50420000 0x2000>;
219			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
220		};
221	};
222
223	timer {
224		compatible = "arm,armv8-timer";
225		interrupt-parent = <&gic>;
226		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* sec-phys */
227			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* phys */
228			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* virt */
229			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>, /* hyp-phys */
230			     <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>; /* hyp-virt */
231		arm,no-tick-in-suspend;
232	};
233};
234