blob: c1b08992754b0c877f9eba5dd231682546de849c [file] [log] [blame]
Tom Rini762f85b2024-07-20 11:15:10 -06001// 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};