xref: /freebsd-src/sys/contrib/device-tree/src/arm64/freescale/s32g2.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
18cc087a1SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
28cc087a1SEmmanuel Vadot/*
38cc087a1SEmmanuel Vadot * NXP S32G2 SoC family
48cc087a1SEmmanuel Vadot *
58cc087a1SEmmanuel Vadot * Copyright (c) 2021 SUSE LLC
67d0873ebSEmmanuel Vadot * Copyright 2017-2021, 2024 NXP
78cc087a1SEmmanuel Vadot */
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
108cc087a1SEmmanuel Vadot
118cc087a1SEmmanuel Vadot/ {
128cc087a1SEmmanuel Vadot	compatible = "nxp,s32g2";
138cc087a1SEmmanuel Vadot	interrupt-parent = <&gic>;
148cc087a1SEmmanuel Vadot	#address-cells = <2>;
158cc087a1SEmmanuel Vadot	#size-cells = <2>;
168cc087a1SEmmanuel Vadot
177d0873ebSEmmanuel Vadot	reserved-memory  {
187d0873ebSEmmanuel Vadot		#address-cells = <2>;
197d0873ebSEmmanuel Vadot		#size-cells = <2>;
207d0873ebSEmmanuel Vadot		ranges;
217d0873ebSEmmanuel Vadot
227d0873ebSEmmanuel Vadot		scmi_buf: shm@d0000000 {
237d0873ebSEmmanuel Vadot			compatible = "arm,scmi-shmem";
247d0873ebSEmmanuel Vadot			reg = <0x0 0xd0000000 0x0 0x80>;
257d0873ebSEmmanuel Vadot			no-map;
267d0873ebSEmmanuel Vadot		};
277d0873ebSEmmanuel Vadot	};
287d0873ebSEmmanuel Vadot
298cc087a1SEmmanuel Vadot	cpus {
308cc087a1SEmmanuel Vadot		#address-cells = <1>;
318cc087a1SEmmanuel Vadot		#size-cells = <0>;
328cc087a1SEmmanuel Vadot
338cc087a1SEmmanuel Vadot		cpu0: cpu@0 {
348cc087a1SEmmanuel Vadot			device_type = "cpu";
358cc087a1SEmmanuel Vadot			compatible = "arm,cortex-a53";
368cc087a1SEmmanuel Vadot			reg = <0x0>;
378cc087a1SEmmanuel Vadot			enable-method = "psci";
388cc087a1SEmmanuel Vadot			next-level-cache = <&cluster0_l2>;
398cc087a1SEmmanuel Vadot		};
408cc087a1SEmmanuel Vadot
418cc087a1SEmmanuel Vadot		cpu1: cpu@1 {
428cc087a1SEmmanuel Vadot			device_type = "cpu";
438cc087a1SEmmanuel Vadot			compatible = "arm,cortex-a53";
448cc087a1SEmmanuel Vadot			reg = <0x1>;
458cc087a1SEmmanuel Vadot			enable-method = "psci";
468cc087a1SEmmanuel Vadot			next-level-cache = <&cluster0_l2>;
478cc087a1SEmmanuel Vadot		};
488cc087a1SEmmanuel Vadot
498cc087a1SEmmanuel Vadot		cpu2: cpu@100 {
508cc087a1SEmmanuel Vadot			device_type = "cpu";
518cc087a1SEmmanuel Vadot			compatible = "arm,cortex-a53";
528cc087a1SEmmanuel Vadot			reg = <0x100>;
538cc087a1SEmmanuel Vadot			enable-method = "psci";
548cc087a1SEmmanuel Vadot			next-level-cache = <&cluster1_l2>;
558cc087a1SEmmanuel Vadot		};
568cc087a1SEmmanuel Vadot
578cc087a1SEmmanuel Vadot		cpu3: cpu@101 {
588cc087a1SEmmanuel Vadot			device_type = "cpu";
598cc087a1SEmmanuel Vadot			compatible = "arm,cortex-a53";
608cc087a1SEmmanuel Vadot			reg = <0x101>;
618cc087a1SEmmanuel Vadot			enable-method = "psci";
628cc087a1SEmmanuel Vadot			next-level-cache = <&cluster1_l2>;
638cc087a1SEmmanuel Vadot		};
648cc087a1SEmmanuel Vadot
658cc087a1SEmmanuel Vadot		cluster0_l2: l2-cache0 {
668cc087a1SEmmanuel Vadot			compatible = "cache";
678bab661aSEmmanuel Vadot			cache-level = <2>;
68f126890aSEmmanuel Vadot			cache-unified;
698cc087a1SEmmanuel Vadot		};
708cc087a1SEmmanuel Vadot
718cc087a1SEmmanuel Vadot		cluster1_l2: l2-cache1 {
728cc087a1SEmmanuel Vadot			compatible = "cache";
738bab661aSEmmanuel Vadot			cache-level = <2>;
74f126890aSEmmanuel Vadot			cache-unified;
758cc087a1SEmmanuel Vadot		};
768cc087a1SEmmanuel Vadot	};
778cc087a1SEmmanuel Vadot
788cc087a1SEmmanuel Vadot	pmu {
798cc087a1SEmmanuel Vadot		compatible = "arm,cortex-a53-pmu";
808cc087a1SEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
818cc087a1SEmmanuel Vadot	};
828cc087a1SEmmanuel Vadot
838cc087a1SEmmanuel Vadot	timer {
848cc087a1SEmmanuel Vadot		compatible = "arm,armv8-timer";
858cc087a1SEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
868cc087a1SEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
878cc087a1SEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
888cc087a1SEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
898cc087a1SEmmanuel Vadot	};
908cc087a1SEmmanuel Vadot
918cc087a1SEmmanuel Vadot	firmware {
927d0873ebSEmmanuel Vadot		scmi {
937d0873ebSEmmanuel Vadot			compatible = "arm,scmi-smc";
947d0873ebSEmmanuel Vadot			arm,smc-id = <0xc20000fe>;
957d0873ebSEmmanuel Vadot			#address-cells = <1>;
967d0873ebSEmmanuel Vadot			#size-cells = <0>;
977d0873ebSEmmanuel Vadot			shmem = <&scmi_buf>;
987d0873ebSEmmanuel Vadot
997d0873ebSEmmanuel Vadot			clks: protocol@14 {
1007d0873ebSEmmanuel Vadot				reg = <0x14>;
1017d0873ebSEmmanuel Vadot				#clock-cells = <1>;
1027d0873ebSEmmanuel Vadot			};
1037d0873ebSEmmanuel Vadot		};
1047d0873ebSEmmanuel Vadot
1058cc087a1SEmmanuel Vadot		psci {
1068cc087a1SEmmanuel Vadot			compatible = "arm,psci-1.0";
1078cc087a1SEmmanuel Vadot			method = "smc";
1088cc087a1SEmmanuel Vadot		};
1098cc087a1SEmmanuel Vadot	};
1108cc087a1SEmmanuel Vadot
111d5b0e70fSEmmanuel Vadot	soc@0 {
1128cc087a1SEmmanuel Vadot		compatible = "simple-bus";
1138cc087a1SEmmanuel Vadot		#address-cells = <1>;
1148cc087a1SEmmanuel Vadot		#size-cells = <1>;
1158cc087a1SEmmanuel Vadot		ranges = <0 0 0 0x80000000>;
1168cc087a1SEmmanuel Vadot
117*b2d2a78aSEmmanuel Vadot		pinctrl: pinctrl@4009c240 {
118*b2d2a78aSEmmanuel Vadot			compatible = "nxp,s32g2-siul2-pinctrl";
119*b2d2a78aSEmmanuel Vadot				/* MSCR0-MSCR101 registers on siul2_0 */
120*b2d2a78aSEmmanuel Vadot			reg = <0x4009c240 0x198>,
121*b2d2a78aSEmmanuel Vadot				/* MSCR112-MSCR122 registers on siul2_1 */
122*b2d2a78aSEmmanuel Vadot			      <0x44010400 0x2c>,
123*b2d2a78aSEmmanuel Vadot				/* MSCR144-MSCR190 registers on siul2_1 */
124*b2d2a78aSEmmanuel Vadot			      <0x44010480 0xbc>,
125*b2d2a78aSEmmanuel Vadot				/* IMCR0-IMCR83 registers on siul2_0 */
126*b2d2a78aSEmmanuel Vadot			      <0x4009ca40 0x150>,
127*b2d2a78aSEmmanuel Vadot				/* IMCR119-IMCR397 registers on siul2_1 */
128*b2d2a78aSEmmanuel Vadot			      <0x44010c1c 0x45c>,
129*b2d2a78aSEmmanuel Vadot				/* IMCR430-IMCR495 registers on siul2_1 */
130*b2d2a78aSEmmanuel Vadot			      <0x440110f8 0x108>;
131*b2d2a78aSEmmanuel Vadot
132*b2d2a78aSEmmanuel Vadot			jtag_pins: jtag-pins {
133*b2d2a78aSEmmanuel Vadot				jtag-grp0 {
134*b2d2a78aSEmmanuel Vadot					pinmux = <0x0>;
135*b2d2a78aSEmmanuel Vadot					input-enable;
136*b2d2a78aSEmmanuel Vadot					bias-pull-up;
137*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
138*b2d2a78aSEmmanuel Vadot				};
139*b2d2a78aSEmmanuel Vadot
140*b2d2a78aSEmmanuel Vadot				jtag-grp1 {
141*b2d2a78aSEmmanuel Vadot					pinmux = <0x11>;
142*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
143*b2d2a78aSEmmanuel Vadot				};
144*b2d2a78aSEmmanuel Vadot
145*b2d2a78aSEmmanuel Vadot				jtag-grp2 {
146*b2d2a78aSEmmanuel Vadot					pinmux = <0x40>;
147*b2d2a78aSEmmanuel Vadot					input-enable;
148*b2d2a78aSEmmanuel Vadot					bias-pull-down;
149*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
150*b2d2a78aSEmmanuel Vadot				};
151*b2d2a78aSEmmanuel Vadot
152*b2d2a78aSEmmanuel Vadot				jtag-grp3 {
153*b2d2a78aSEmmanuel Vadot					pinmux = <0x23c0>,
154*b2d2a78aSEmmanuel Vadot						 <0x23d0>,
155*b2d2a78aSEmmanuel Vadot						 <0x2320>;
156*b2d2a78aSEmmanuel Vadot				};
157*b2d2a78aSEmmanuel Vadot
158*b2d2a78aSEmmanuel Vadot				jtag-grp4 {
159*b2d2a78aSEmmanuel Vadot					pinmux = <0x51>;
160*b2d2a78aSEmmanuel Vadot					input-enable;
161*b2d2a78aSEmmanuel Vadot					bias-pull-up;
162*b2d2a78aSEmmanuel Vadot					slew-rate = <166>;
163*b2d2a78aSEmmanuel Vadot				};
164*b2d2a78aSEmmanuel Vadot			};
165*b2d2a78aSEmmanuel Vadot		};
166*b2d2a78aSEmmanuel Vadot
1678cc087a1SEmmanuel Vadot		uart0: serial@401c8000 {
1688cc087a1SEmmanuel Vadot			compatible = "nxp,s32g2-linflexuart",
1698cc087a1SEmmanuel Vadot				     "fsl,s32v234-linflexuart";
1708cc087a1SEmmanuel Vadot			reg = <0x401c8000 0x3000>;
1718cc087a1SEmmanuel Vadot			interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
1728cc087a1SEmmanuel Vadot			status = "disabled";
1738cc087a1SEmmanuel Vadot		};
1748cc087a1SEmmanuel Vadot
1758cc087a1SEmmanuel Vadot		uart1: serial@401cc000 {
1768cc087a1SEmmanuel Vadot			compatible = "nxp,s32g2-linflexuart",
1778cc087a1SEmmanuel Vadot				     "fsl,s32v234-linflexuart";
1788cc087a1SEmmanuel Vadot			reg = <0x401cc000 0x3000>;
1798cc087a1SEmmanuel Vadot			interrupts = <GIC_SPI 83 IRQ_TYPE_EDGE_RISING>;
1808cc087a1SEmmanuel Vadot			status = "disabled";
1818cc087a1SEmmanuel Vadot		};
1828cc087a1SEmmanuel Vadot
1838cc087a1SEmmanuel Vadot		uart2: serial@402bc000 {
1848cc087a1SEmmanuel Vadot			compatible = "nxp,s32g2-linflexuart",
1858cc087a1SEmmanuel Vadot				     "fsl,s32v234-linflexuart";
1868cc087a1SEmmanuel Vadot			reg = <0x402bc000 0x3000>;
1878cc087a1SEmmanuel Vadot			interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
1888cc087a1SEmmanuel Vadot			status = "disabled";
1898cc087a1SEmmanuel Vadot		};
1908cc087a1SEmmanuel Vadot
1917d0873ebSEmmanuel Vadot		usdhc0: mmc@402f0000 {
1927d0873ebSEmmanuel Vadot			compatible = "nxp,s32g2-usdhc";
1937d0873ebSEmmanuel Vadot			reg = <0x402f0000 0x1000>;
1947d0873ebSEmmanuel Vadot			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
1957d0873ebSEmmanuel Vadot			clocks = <&clks 32>, <&clks 31>, <&clks 33>;
1967d0873ebSEmmanuel Vadot			clock-names = "ipg", "ahb", "per";
1977d0873ebSEmmanuel Vadot			bus-width = <8>;
1987d0873ebSEmmanuel Vadot			status = "disabled";
1997d0873ebSEmmanuel Vadot		};
2007d0873ebSEmmanuel Vadot
2018cc087a1SEmmanuel Vadot		gic: interrupt-controller@50800000 {
2028cc087a1SEmmanuel Vadot			compatible = "arm,gic-v3";
2038cc087a1SEmmanuel Vadot			reg = <0x50800000 0x10000>,
2048cc087a1SEmmanuel Vadot			      <0x50880000 0x80000>,
2058cc087a1SEmmanuel Vadot			      <0x50400000 0x2000>,
2068cc087a1SEmmanuel Vadot			      <0x50410000 0x2000>,
2078cc087a1SEmmanuel Vadot			      <0x50420000 0x2000>;
2088cc087a1SEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
2098cc087a1SEmmanuel Vadot			interrupt-controller;
2108cc087a1SEmmanuel Vadot			#interrupt-cells = <3>;
2118cc087a1SEmmanuel Vadot		};
2128cc087a1SEmmanuel Vadot	};
2138cc087a1SEmmanuel Vadot};
214