xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/s32g3.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
17d0873ebSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
27d0873ebSEmmanuel Vadot/*
3*b2d2a78aSEmmanuel Vadot * Copyright 2021-2024 NXP
47d0873ebSEmmanuel Vadot *
57d0873ebSEmmanuel Vadot * Authors: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
67d0873ebSEmmanuel Vadot *          Ciprian Costea <ciprianmarian.costea@nxp.com>
77d0873ebSEmmanuel Vadot *          Andra-Teodora Ilie <andra.ilie@nxp.com>
87d0873ebSEmmanuel Vadot */
97d0873ebSEmmanuel Vadot
107d0873ebSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
117d0873ebSEmmanuel Vadot
127d0873ebSEmmanuel Vadot/ {
137d0873ebSEmmanuel Vadot	compatible = "nxp,s32g3";
147d0873ebSEmmanuel Vadot	interrupt-parent = <&gic>;
157d0873ebSEmmanuel Vadot	#address-cells = <0x02>;
167d0873ebSEmmanuel Vadot	#size-cells = <0x02>;
177d0873ebSEmmanuel Vadot
187d0873ebSEmmanuel Vadot	cpus {
197d0873ebSEmmanuel Vadot		#address-cells = <1>;
207d0873ebSEmmanuel Vadot		#size-cells = <0>;
217d0873ebSEmmanuel Vadot
227d0873ebSEmmanuel Vadot		cpu-map {
237d0873ebSEmmanuel Vadot			cluster0 {
247d0873ebSEmmanuel Vadot				core0 {
257d0873ebSEmmanuel Vadot					cpu = <&cpu0>;
267d0873ebSEmmanuel Vadot				};
277d0873ebSEmmanuel Vadot
287d0873ebSEmmanuel Vadot				core1 {
297d0873ebSEmmanuel Vadot					cpu = <&cpu1>;
307d0873ebSEmmanuel Vadot				};
317d0873ebSEmmanuel Vadot
327d0873ebSEmmanuel Vadot				core2 {
337d0873ebSEmmanuel Vadot					cpu = <&cpu2>;
347d0873ebSEmmanuel Vadot				};
357d0873ebSEmmanuel Vadot
367d0873ebSEmmanuel Vadot				core3 {
377d0873ebSEmmanuel Vadot					cpu = <&cpu3>;
387d0873ebSEmmanuel Vadot				};
397d0873ebSEmmanuel Vadot			};
407d0873ebSEmmanuel Vadot
417d0873ebSEmmanuel Vadot			cluster1 {
427d0873ebSEmmanuel Vadot				core0 {
437d0873ebSEmmanuel Vadot					cpu = <&cpu4>;
447d0873ebSEmmanuel Vadot				};
457d0873ebSEmmanuel Vadot
467d0873ebSEmmanuel Vadot				core1 {
477d0873ebSEmmanuel Vadot					cpu = <&cpu5>;
487d0873ebSEmmanuel Vadot				};
497d0873ebSEmmanuel Vadot
507d0873ebSEmmanuel Vadot				core2 {
517d0873ebSEmmanuel Vadot					cpu = <&cpu6>;
527d0873ebSEmmanuel Vadot				};
537d0873ebSEmmanuel Vadot
547d0873ebSEmmanuel Vadot				core3 {
557d0873ebSEmmanuel Vadot					cpu = <&cpu7>;
567d0873ebSEmmanuel Vadot				};
577d0873ebSEmmanuel Vadot			};
587d0873ebSEmmanuel Vadot		};
597d0873ebSEmmanuel Vadot
607d0873ebSEmmanuel Vadot		cpu0: cpu@0 {
617d0873ebSEmmanuel Vadot			device_type = "cpu";
627d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
637d0873ebSEmmanuel Vadot			reg = <0x0>;
647d0873ebSEmmanuel Vadot			enable-method = "psci";
657d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
667d0873ebSEmmanuel Vadot		};
677d0873ebSEmmanuel Vadot
687d0873ebSEmmanuel Vadot		cpu1: cpu@1 {
697d0873ebSEmmanuel Vadot			device_type = "cpu";
707d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
717d0873ebSEmmanuel Vadot			reg = <0x1>;
727d0873ebSEmmanuel Vadot			enable-method = "psci";
737d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
747d0873ebSEmmanuel Vadot		};
757d0873ebSEmmanuel Vadot
767d0873ebSEmmanuel Vadot		cpu2: cpu@2 {
777d0873ebSEmmanuel Vadot			device_type = "cpu";
787d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
797d0873ebSEmmanuel Vadot			reg = <0x2>;
807d0873ebSEmmanuel Vadot			enable-method = "psci";
817d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
827d0873ebSEmmanuel Vadot		};
837d0873ebSEmmanuel Vadot
847d0873ebSEmmanuel Vadot		cpu3: cpu@3 {
857d0873ebSEmmanuel Vadot			device_type = "cpu";
867d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
877d0873ebSEmmanuel Vadot			reg = <0x3>;
887d0873ebSEmmanuel Vadot			enable-method = "psci";
897d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
907d0873ebSEmmanuel Vadot		};
917d0873ebSEmmanuel Vadot
927d0873ebSEmmanuel Vadot		cpu4: cpu@100 {
937d0873ebSEmmanuel Vadot			device_type = "cpu";
947d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
957d0873ebSEmmanuel Vadot			reg = <0x100>;
967d0873ebSEmmanuel Vadot			enable-method = "psci";
977d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
987d0873ebSEmmanuel Vadot		};
997d0873ebSEmmanuel Vadot
1007d0873ebSEmmanuel Vadot		cpu5: cpu@101 {
1017d0873ebSEmmanuel Vadot			device_type = "cpu";
1027d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
1037d0873ebSEmmanuel Vadot			reg = <0x101>;
1047d0873ebSEmmanuel Vadot			enable-method = "psci";
1057d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
1067d0873ebSEmmanuel Vadot		};
1077d0873ebSEmmanuel Vadot
1087d0873ebSEmmanuel Vadot		cpu6: cpu@102 {
1097d0873ebSEmmanuel Vadot			device_type = "cpu";
1107d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
1117d0873ebSEmmanuel Vadot			reg = <0x102>;
1127d0873ebSEmmanuel Vadot			enable-method = "psci";
1137d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
1147d0873ebSEmmanuel Vadot		};
1157d0873ebSEmmanuel Vadot
1167d0873ebSEmmanuel Vadot		cpu7: cpu@103 {
1177d0873ebSEmmanuel Vadot			device_type = "cpu";
1187d0873ebSEmmanuel Vadot			compatible = "arm,cortex-a53";
1197d0873ebSEmmanuel Vadot			reg = <0x103>;
1207d0873ebSEmmanuel Vadot			enable-method = "psci";
1217d0873ebSEmmanuel Vadot			clocks = <&dfs 0>;
1227d0873ebSEmmanuel Vadot		};
1237d0873ebSEmmanuel Vadot	};
1247d0873ebSEmmanuel Vadot
1257d0873ebSEmmanuel Vadot	firmware {
1267d0873ebSEmmanuel Vadot		scmi: scmi {
1277d0873ebSEmmanuel Vadot			compatible = "arm,scmi-smc";
1287d0873ebSEmmanuel Vadot			shmem = <&scmi_shmem>;
1297d0873ebSEmmanuel Vadot			arm,smc-id = <0xc20000fe>;
1307d0873ebSEmmanuel Vadot			#address-cells = <1>;
1317d0873ebSEmmanuel Vadot			#size-cells = <0>;
1327d0873ebSEmmanuel Vadot
1337d0873ebSEmmanuel Vadot			dfs: protocol@13 {
1347d0873ebSEmmanuel Vadot				reg = <0x13>;
1357d0873ebSEmmanuel Vadot				#clock-cells = <1>;
1367d0873ebSEmmanuel Vadot			};
1377d0873ebSEmmanuel Vadot
1387d0873ebSEmmanuel Vadot			clks: protocol@14 {
1397d0873ebSEmmanuel Vadot				reg = <0x14>;
1407d0873ebSEmmanuel Vadot				#clock-cells = <1>;
1417d0873ebSEmmanuel Vadot			};
1427d0873ebSEmmanuel Vadot		};
1437d0873ebSEmmanuel Vadot
1447d0873ebSEmmanuel Vadot		psci: psci {
1457d0873ebSEmmanuel Vadot			compatible = "arm,psci-1.0";
1467d0873ebSEmmanuel Vadot			method = "smc";
1477d0873ebSEmmanuel Vadot		};
1487d0873ebSEmmanuel Vadot	};
1497d0873ebSEmmanuel Vadot
1507d0873ebSEmmanuel Vadot
1517d0873ebSEmmanuel Vadot	pmu {
1527d0873ebSEmmanuel Vadot		compatible = "arm,cortex-a53-pmu";
1537d0873ebSEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
1547d0873ebSEmmanuel Vadot	};
1557d0873ebSEmmanuel Vadot
1567d0873ebSEmmanuel Vadot	reserved-memory  {
1577d0873ebSEmmanuel Vadot		#address-cells = <2>;
1587d0873ebSEmmanuel Vadot		#size-cells = <2>;
1597d0873ebSEmmanuel Vadot		ranges;
1607d0873ebSEmmanuel Vadot
1617d0873ebSEmmanuel Vadot		scmi_shmem: shm@d0000000 {
1627d0873ebSEmmanuel Vadot			compatible = "arm,scmi-shmem";
1637d0873ebSEmmanuel Vadot			reg = <0x0 0xd0000000 0x0 0x80>;
1647d0873ebSEmmanuel Vadot			no-map;
1657d0873ebSEmmanuel Vadot		};
1667d0873ebSEmmanuel Vadot	};
1677d0873ebSEmmanuel Vadot
1687d0873ebSEmmanuel Vadot	soc@0 {
1697d0873ebSEmmanuel Vadot		compatible = "simple-bus";
1707d0873ebSEmmanuel Vadot		#address-cells = <1>;
1717d0873ebSEmmanuel Vadot		#size-cells = <1>;
1727d0873ebSEmmanuel Vadot		ranges = <0 0 0 0x80000000>;
1737d0873ebSEmmanuel Vadot
174*b2d2a78aSEmmanuel Vadot		pinctrl: pinctrl@4009c240 {
175*b2d2a78aSEmmanuel Vadot			compatible = "nxp,s32g2-siul2-pinctrl";
176*b2d2a78aSEmmanuel Vadot				/* MSCR0-MSCR101 registers on siul2_0 */
177*b2d2a78aSEmmanuel Vadot			reg = <0x4009c240 0x198>,
178*b2d2a78aSEmmanuel Vadot				/* MSCR112-MSCR122 registers on siul2_1 */
179*b2d2a78aSEmmanuel Vadot			      <0x44010400 0x2c>,
180*b2d2a78aSEmmanuel Vadot				/* MSCR144-MSCR190 registers on siul2_1 */
181*b2d2a78aSEmmanuel Vadot			      <0x44010480 0xbc>,
182*b2d2a78aSEmmanuel Vadot				/* IMCR0-IMCR83 registers on siul2_0 */
183*b2d2a78aSEmmanuel Vadot			      <0x4009ca40 0x150>,
184*b2d2a78aSEmmanuel Vadot				/* IMCR119-IMCR397 registers on siul2_1 */
185*b2d2a78aSEmmanuel Vadot			      <0x44010c1c 0x45c>,
186*b2d2a78aSEmmanuel Vadot				/* IMCR430-IMCR495 registers on siul2_1 */
187*b2d2a78aSEmmanuel Vadot			      <0x440110f8 0x108>;
188*b2d2a78aSEmmanuel Vadot
189*b2d2a78aSEmmanuel Vadot			jtag_pins: jtag-pins {
190*b2d2a78aSEmmanuel Vadot				jtag-grp0 {
191*b2d2a78aSEmmanuel Vadot					pinmux = <0x0>;
192*b2d2a78aSEmmanuel Vadot					input-enable;
193*b2d2a78aSEmmanuel Vadot					bias-pull-up;
194*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
195*b2d2a78aSEmmanuel Vadot				};
196*b2d2a78aSEmmanuel Vadot
197*b2d2a78aSEmmanuel Vadot				jtag-grp1 {
198*b2d2a78aSEmmanuel Vadot					pinmux = <0x11>;
199*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
200*b2d2a78aSEmmanuel Vadot				};
201*b2d2a78aSEmmanuel Vadot
202*b2d2a78aSEmmanuel Vadot				jtag-grp2 {
203*b2d2a78aSEmmanuel Vadot					pinmux = <0x40>;
204*b2d2a78aSEmmanuel Vadot					input-enable;
205*b2d2a78aSEmmanuel Vadot					bias-pull-down;
206*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
207*b2d2a78aSEmmanuel Vadot				};
208*b2d2a78aSEmmanuel Vadot
209*b2d2a78aSEmmanuel Vadot				jtag-grp3 {
210*b2d2a78aSEmmanuel Vadot					pinmux = <0x23c0>,
211*b2d2a78aSEmmanuel Vadot						 <0x23d0>,
212*b2d2a78aSEmmanuel Vadot						 <0x2320>;
213*b2d2a78aSEmmanuel Vadot				};
214*b2d2a78aSEmmanuel Vadot
215*b2d2a78aSEmmanuel Vadot				jtag-grp4 {
216*b2d2a78aSEmmanuel Vadot					pinmux = <0x51>;
217*b2d2a78aSEmmanuel Vadot					input-enable;
218*b2d2a78aSEmmanuel Vadot					bias-pull-up;
219*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
220*b2d2a78aSEmmanuel Vadot				};
221*b2d2a78aSEmmanuel Vadot			};
222*b2d2a78aSEmmanuel Vadot		};
223*b2d2a78aSEmmanuel Vadot
2247d0873ebSEmmanuel Vadot		uart0: serial@401c8000 {
2257d0873ebSEmmanuel Vadot			compatible = "nxp,s32g3-linflexuart",
2267d0873ebSEmmanuel Vadot				     "fsl,s32v234-linflexuart";
2277d0873ebSEmmanuel Vadot			reg = <0x401c8000 0x3000>;
2287d0873ebSEmmanuel Vadot			interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
2297d0873ebSEmmanuel Vadot			status = "disabled";
2307d0873ebSEmmanuel Vadot		};
2317d0873ebSEmmanuel Vadot
2327d0873ebSEmmanuel Vadot		uart1: serial@401cc000 {
2337d0873ebSEmmanuel Vadot			compatible = "nxp,s32g3-linflexuart",
2347d0873ebSEmmanuel Vadot				     "fsl,s32v234-linflexuart";
2357d0873ebSEmmanuel Vadot			reg = <0x401cc000 0x3000>;
2367d0873ebSEmmanuel Vadot			interrupts = <GIC_SPI 83 IRQ_TYPE_EDGE_RISING>;
2377d0873ebSEmmanuel Vadot			status = "disabled";
2387d0873ebSEmmanuel Vadot		};
2397d0873ebSEmmanuel Vadot
2407d0873ebSEmmanuel Vadot		uart2: serial@402bc000 {
2417d0873ebSEmmanuel Vadot			compatible = "nxp,s32g3-linflexuart",
2427d0873ebSEmmanuel Vadot				     "fsl,s32v234-linflexuart";
2437d0873ebSEmmanuel Vadot			reg = <0x402bc000 0x3000>;
2447d0873ebSEmmanuel Vadot			interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
2457d0873ebSEmmanuel Vadot			status = "disabled";
2467d0873ebSEmmanuel Vadot		};
2477d0873ebSEmmanuel Vadot
2487d0873ebSEmmanuel Vadot		usdhc0: mmc@402f0000 {
2497d0873ebSEmmanuel Vadot			compatible = "nxp,s32g3-usdhc",
2507d0873ebSEmmanuel Vadot				     "nxp,s32g2-usdhc";
2517d0873ebSEmmanuel Vadot			reg = <0x402f0000 0x1000>;
2527d0873ebSEmmanuel Vadot			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
2537d0873ebSEmmanuel Vadot			clocks = <&clks 32>,
2547d0873ebSEmmanuel Vadot				 <&clks 31>,
2557d0873ebSEmmanuel Vadot				 <&clks 33>;
2567d0873ebSEmmanuel Vadot			clock-names = "ipg", "ahb", "per";
2577d0873ebSEmmanuel Vadot			status = "disabled";
2587d0873ebSEmmanuel Vadot		};
2597d0873ebSEmmanuel Vadot
2607d0873ebSEmmanuel Vadot		gic: interrupt-controller@50800000 {
2617d0873ebSEmmanuel Vadot			compatible = "arm,gic-v3";
2627d0873ebSEmmanuel Vadot			#interrupt-cells = <3>;
2637d0873ebSEmmanuel Vadot			interrupt-controller;
2647d0873ebSEmmanuel Vadot			reg = <0x50800000 0x10000>,
2657d0873ebSEmmanuel Vadot			      <0x50900000 0x200000>,
2667d0873ebSEmmanuel Vadot			      <0x50400000 0x2000>,
2677d0873ebSEmmanuel Vadot			      <0x50410000 0x2000>,
2687d0873ebSEmmanuel Vadot			      <0x50420000 0x2000>;
2697d0873ebSEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
2707d0873ebSEmmanuel Vadot		};
2717d0873ebSEmmanuel Vadot	};
2727d0873ebSEmmanuel Vadot
2737d0873ebSEmmanuel Vadot	timer {
2747d0873ebSEmmanuel Vadot		compatible = "arm,armv8-timer";
2757d0873ebSEmmanuel Vadot		interrupt-parent = <&gic>;
2767d0873ebSEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* sec-phys */
2777d0873ebSEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* phys */
2787d0873ebSEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* virt */
2797d0873ebSEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>, /* hyp-phys */
2807d0873ebSEmmanuel Vadot			     <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>; /* hyp-virt */
2817d0873ebSEmmanuel Vadot		arm,no-tick-in-suspend;
2827d0873ebSEmmanuel Vadot	};
2837d0873ebSEmmanuel Vadot};
284