* [PATCH 0/4] arm64: dts: Add initial support for NXP S32N79 SoC
@ 2026-02-24 11:15 Ciprian Costea
2026-02-24 11:15 ` [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support Ciprian Costea
` (3 more replies)
0 siblings, 4 replies; 13+ messages in thread
From: Ciprian Costea @ 2026-02-24 11:15 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner,
Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo,
Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo,
Eric Chanudet
Cc: Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx,
linux-arm-kernel, NXP S32 Linux Team, Ciprian Marian Costea
From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com>
This series introduces initial device tree support for the NXP S32N79
automotive SoC and its Reference Design Board (RDB).
The S32N79 is an automotive-grade system-on-chip featuring eight Arm
Cortex-A78AE cores organized in four dual-core clusters. It is designed
for high-performance networking and gateway applications vehicle
architectures [1]
Hardware features included in this initial support:
- 8x Arm Cortex-A78AE cores (4 clusters of 2 cores each)
- 32GB DRAM Memory. 28GB are usable and 4GB are reserved for ECC logic
- Three-level cache hierarchy (L1/L2 per core, L3 per cluster)
- GICv3 interrupt controller with ITS
- SMMUv3 for IOMMU support
- Generic Timer
- IRQ steering controller (requires separate driver patches)
- PL011 UART controllers
- uSDHC controller (requires separate driver patches)
Future patches will add support for additional peripherals such as
networking controllers, PCIe, and other IP blocks.
[1] https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32n-vehicle-super-integration-processors:S32N
Ciprian Marian Costea (4):
dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support
dt-bindings: mmc: fsl-imx-esdhc: add S32N79 support
dt-bindings: arm: fsl: Add NXP S32N79 SoC and RDB board
arm64: dts: freescale: Add minimal support for S32N79
.../devicetree/bindings/arm/fsl.yaml | 6 +
.../interrupt-controller/fsl,irqsteer.yaml | 1 +
.../bindings/mmc/fsl-imx-esdhc.yaml | 1 +
arch/arm64/boot/dts/freescale/Makefile | 1 +
arch/arm64/boot/dts/freescale/s32n79-rdb.dts | 70 ++++
arch/arm64/boot/dts/freescale/s32n79.dtsi | 361 ++++++++++++++++++
6 files changed, 440 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/s32n79-rdb.dts
create mode 100644 arch/arm64/boot/dts/freescale/s32n79.dtsi
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support 2026-02-24 11:15 [PATCH 0/4] arm64: dts: Add initial support for NXP S32N79 SoC Ciprian Costea @ 2026-02-24 11:15 ` Ciprian Costea 2026-02-24 17:57 ` Conor Dooley 2026-02-24 11:15 ` [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: " Ciprian Costea ` (2 subsequent siblings) 3 siblings, 1 reply; 13+ messages in thread From: Ciprian Costea @ 2026-02-24 11:15 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet Cc: Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Ciprian Marian Costea, Larisa Grigore From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> Add compatible string for the interrupt steering controller used in NXP S32N79 SoC. The S32N79 SoC differs from the i.MX version by not implementing the CHANCTRL register, but otherwise maintains the same programming model and register layout. Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> --- .../devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml index 5c768c1e159c..caf3e4a1f26f 100644 --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml @@ -22,6 +22,7 @@ properties: - fsl,imx94-irqsteer - fsl,imx95-irqsteer - const: fsl,imx-irqsteer + - const: nxp,s32n79-irqsteer reg: maxItems: 1 -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support 2026-02-24 11:15 ` [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support Ciprian Costea @ 2026-02-24 17:57 ` Conor Dooley 2026-02-25 8:50 ` Ciprian Marian Costea 0 siblings, 1 reply; 13+ messages in thread From: Conor Dooley @ 2026-02-24 17:57 UTC (permalink / raw) To: Ciprian Costea Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore [-- Attachment #1: Type: text/plain, Size: 1399 bytes --] On Tue, Feb 24, 2026 at 12:15:30PM +0100, Ciprian Costea wrote: > From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > > Add compatible string for the interrupt steering controller used in NXP > S32N79 SoC. > > The S32N79 SoC differs from the i.MX version by not implementing the > CHANCTRL register, but otherwise maintains the same programming model and > register layout. > > Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> > Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> > Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > --- > .../devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml > index 5c768c1e159c..caf3e4a1f26f 100644 > --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml > +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml > @@ -22,6 +22,7 @@ properties: > - fsl,imx94-irqsteer > - fsl,imx95-irqsteer > - const: fsl,imx-irqsteer > + - const: nxp,s32n79-irqsteer Should there not be a corresponding driver change for this? > > reg: > maxItems: 1 > -- > 2.43.0 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support 2026-02-24 17:57 ` Conor Dooley @ 2026-02-25 8:50 ` Ciprian Marian Costea 0 siblings, 0 replies; 13+ messages in thread From: Ciprian Marian Costea @ 2026-02-25 8:50 UTC (permalink / raw) To: Conor Dooley Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore On 2/24/2026 7:57 PM, Conor Dooley wrote: > On Tue, Feb 24, 2026 at 12:15:30PM +0100, Ciprian Costea wrote: >> From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >> >> Add compatible string for the interrupt steering controller used in NXP >> S32N79 SoC. >> >> The S32N79 SoC differs from the i.MX version by not implementing the >> CHANCTRL register, but otherwise maintains the same programming model and >> register layout. >> >> Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> >> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> >> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >> --- >> .../devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml >> index 5c768c1e159c..caf3e4a1f26f 100644 >> --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml >> +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml >> @@ -22,6 +22,7 @@ properties: >> - fsl,imx94-irqsteer >> - fsl,imx95-irqsteer >> - const: fsl,imx-irqsteer >> + - const: nxp,s32n79-irqsteer > > Should there not be a corresponding driver change for this? > Hello Conor, Thanks for your review. Indeed there are driver changes in this regard which I've planned to submit separately in order to not mix the mailing lists. But I see now that I should have added them in this patchset according to the 'submitting-patches' guidelines. I will add them in V2. Best Regards, Ciprian >> >> reg: >> maxItems: 1 >> -- >> 2.43.0 >> ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: add S32N79 support 2026-02-24 11:15 [PATCH 0/4] arm64: dts: Add initial support for NXP S32N79 SoC Ciprian Costea 2026-02-24 11:15 ` [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support Ciprian Costea @ 2026-02-24 11:15 ` Ciprian Costea 2026-02-24 17:58 ` Conor Dooley 2026-02-24 11:15 ` [PATCH 3/4] dt-bindings: arm: fsl: Add NXP S32N79 SoC and RDB board Ciprian Costea 2026-02-24 11:15 ` [PATCH 4/4] arm64: dts: freescale: Add minimal support for S32N79 Ciprian Costea 3 siblings, 1 reply; 13+ messages in thread From: Ciprian Costea @ 2026-02-24 11:15 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet Cc: Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Ciprian Marian Costea, Larisa Grigore From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> Add compatible string "nxp,s32n79-usdhc" for the uSDHC controller found in NXP S32N79 series automotive SoCs. The controller is compatible with the existing i.MX uSDHC controllers. Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> --- Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml index b98a84f93277..014b049baeb6 100644 --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml @@ -35,6 +35,7 @@ properties: - fsl,imx8mm-usdhc - fsl,imxrt1050-usdhc - nxp,s32g2-usdhc + - nxp,s32n79-usdhc - items: - const: fsl,imx50-esdhc - const: fsl,imx53-esdhc -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: add S32N79 support 2026-02-24 11:15 ` [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: " Ciprian Costea @ 2026-02-24 17:58 ` Conor Dooley 2026-02-24 17:59 ` Conor Dooley 2026-02-25 8:52 ` Ciprian Marian Costea 0 siblings, 2 replies; 13+ messages in thread From: Conor Dooley @ 2026-02-24 17:58 UTC (permalink / raw) To: Ciprian Costea Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore [-- Attachment #1: Type: text/plain, Size: 1266 bytes --] On Tue, Feb 24, 2026 at 12:15:31PM +0100, Ciprian Costea wrote: > From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > > Add compatible string "nxp,s32n79-usdhc" for the uSDHC controller found in > NXP S32N79 series automotive SoCs. > > The controller is compatible with the existing i.MX uSDHC controllers. > > Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> > Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> > Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > --- > Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml > index b98a84f93277..014b049baeb6 100644 > --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml > +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml > @@ -35,6 +35,7 @@ properties: > - fsl,imx8mm-usdhc > - fsl,imxrt1050-usdhc > - nxp,s32g2-usdhc > + - nxp,s32n79-usdhc Ditto here, no driver change? > - items: > - const: fsl,imx50-esdhc > - const: fsl,imx53-esdhc > -- > 2.43.0 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: add S32N79 support 2026-02-24 17:58 ` Conor Dooley @ 2026-02-24 17:59 ` Conor Dooley 2026-02-25 9:38 ` Ciprian Marian Costea 2026-02-25 8:52 ` Ciprian Marian Costea 1 sibling, 1 reply; 13+ messages in thread From: Conor Dooley @ 2026-02-24 17:59 UTC (permalink / raw) To: Ciprian Costea Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore [-- Attachment #1: Type: text/plain, Size: 1580 bytes --] On Tue, Feb 24, 2026 at 05:58:05PM +0000, Conor Dooley wrote: > On Tue, Feb 24, 2026 at 12:15:31PM +0100, Ciprian Costea wrote: > > From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > > > > Add compatible string "nxp,s32n79-usdhc" for the uSDHC controller found in > > NXP S32N79 series automotive SoCs. > > > > The controller is compatible with the existing i.MX uSDHC controllers. > > > > Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> > > Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> > > Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > > --- > > Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml > > index b98a84f93277..014b049baeb6 100644 > > --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml > > +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml > > @@ -35,6 +35,7 @@ properties: > > - fsl,imx8mm-usdhc > > - fsl,imxrt1050-usdhc > > - nxp,s32g2-usdhc > > + - nxp,s32n79-usdhc > > Ditto here, no driver change? Actually, this doesn't make sense per the commit message "the controller is compatible with the existing...". I'd expect to see a fallback compatible permitted in that case. > > > - items: > > - const: fsl,imx50-esdhc > > - const: fsl,imx53-esdhc > > -- > > 2.43.0 > > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: add S32N79 support 2026-02-24 17:59 ` Conor Dooley @ 2026-02-25 9:38 ` Ciprian Marian Costea 0 siblings, 0 replies; 13+ messages in thread From: Ciprian Marian Costea @ 2026-02-25 9:38 UTC (permalink / raw) To: Conor Dooley Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore On 2/24/2026 7:59 PM, Conor Dooley wrote: > On Tue, Feb 24, 2026 at 05:58:05PM +0000, Conor Dooley wrote: >> On Tue, Feb 24, 2026 at 12:15:31PM +0100, Ciprian Costea wrote: >>> From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >>> >>> Add compatible string "nxp,s32n79-usdhc" for the uSDHC controller found in >>> NXP S32N79 series automotive SoCs. >>> >>> The controller is compatible with the existing i.MX uSDHC controllers. >>> >>> Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> >>> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> >>> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >>> --- >>> Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >>> index b98a84f93277..014b049baeb6 100644 >>> --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >>> +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >>> @@ -35,6 +35,7 @@ properties: >>> - fsl,imx8mm-usdhc >>> - fsl,imxrt1050-usdhc >>> - nxp,s32g2-usdhc >>> + - nxp,s32n79-usdhc >> >> Ditto here, no driver change? > > Actually, this doesn't make sense per the commit message "the > controller is compatible with the existing...". I'd expect to see a > fallback compatible permitted in that case. I can see how my statement mean more that what I've intended. I've mostly wanted to emphasize that the S32N79 uSDHC controller follows the same register layout as other i.MX SoCs. But regarding quirks it differs from other i.MX uSDHC. Hence, I will drop this comment from the commit message in V2. Best Regards, Ciprian > >> >>> - items: >>> - const: fsl,imx50-esdhc >>> - const: fsl,imx53-esdhc >>> -- >>> 2.43.0 >>> > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: add S32N79 support 2026-02-24 17:58 ` Conor Dooley 2026-02-24 17:59 ` Conor Dooley @ 2026-02-25 8:52 ` Ciprian Marian Costea 1 sibling, 0 replies; 13+ messages in thread From: Ciprian Marian Costea @ 2026-02-25 8:52 UTC (permalink / raw) To: Conor Dooley Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore On 2/24/2026 7:58 PM, Conor Dooley wrote: > On Tue, Feb 24, 2026 at 12:15:31PM +0100, Ciprian Costea wrote: >> From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >> >> Add compatible string "nxp,s32n79-usdhc" for the uSDHC controller found in >> NXP S32N79 series automotive SoCs. >> >> The controller is compatible with the existing i.MX uSDHC controllers. >> >> Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> >> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> >> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >> --- >> Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >> index b98a84f93277..014b049baeb6 100644 >> --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >> +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml >> @@ -35,6 +35,7 @@ properties: >> - fsl,imx8mm-usdhc >> - fsl,imxrt1050-usdhc >> - nxp,s32g2-usdhc >> + - nxp,s32n79-usdhc > > Ditto here, no driver change? > There are driver changes. I will add them in V2. Best Regards, Ciprian >> - items: >> - const: fsl,imx50-esdhc >> - const: fsl,imx53-esdhc >> -- >> 2.43.0 >> ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 3/4] dt-bindings: arm: fsl: Add NXP S32N79 SoC and RDB board 2026-02-24 11:15 [PATCH 0/4] arm64: dts: Add initial support for NXP S32N79 SoC Ciprian Costea 2026-02-24 11:15 ` [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support Ciprian Costea 2026-02-24 11:15 ` [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: " Ciprian Costea @ 2026-02-24 11:15 ` Ciprian Costea 2026-02-24 11:15 ` [PATCH 4/4] arm64: dts: freescale: Add minimal support for S32N79 Ciprian Costea 3 siblings, 0 replies; 13+ messages in thread From: Ciprian Costea @ 2026-02-24 11:15 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet Cc: Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Ciprian Marian Costea, Larisa Grigore From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> Add device tree binding documentation for the NXP S32N79 automotive SoC and the S32N79 Reference Design Board (S32N79-RDB). The S32N79 is an automotive-grade SoC featuring eight ARM Cortex-A78AE cores organized for high-performance networking and gateway applications in vehicles. Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> --- Documentation/devicetree/bindings/arm/fsl.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml index 5716d701292c..415081423a30 100644 --- a/Documentation/devicetree/bindings/arm/fsl.yaml +++ b/Documentation/devicetree/bindings/arm/fsl.yaml @@ -1827,6 +1827,12 @@ properties: - fsl,s32v234-evb # S32V234-EVB2 Customer Evaluation Board - const: fsl,s32v234 + - description: S32N79 based Boards + items: + - enum: + - nxp,s32n79-rdb + - const: nxp,s32n79 + - description: Traverse LS1088A based Boards items: - enum: -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 4/4] arm64: dts: freescale: Add minimal support for S32N79 2026-02-24 11:15 [PATCH 0/4] arm64: dts: Add initial support for NXP S32N79 SoC Ciprian Costea ` (2 preceding siblings ...) 2026-02-24 11:15 ` [PATCH 3/4] dt-bindings: arm: fsl: Add NXP S32N79 SoC and RDB board Ciprian Costea @ 2026-02-24 11:15 ` Ciprian Costea 2026-02-24 21:09 ` Frank Li 3 siblings, 1 reply; 13+ messages in thread From: Ciprian Costea @ 2026-02-24 11:15 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Frank Li, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet Cc: Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Ciprian Marian Costea, Larisa Grigore, Andra-Teodora Ilie, Andrei Cherechesu From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> Add device tree support for the NXP S32N79 automotive SoC and the S32N79 Reference Design Board (RDB) [1]. The S32N79 features eight Arm Cortex-A78AE cores organized in four dual-core clusters, with a three-level cache hierarchy (L1/L2 per core, L3 per dual-core cluster) and 32GB of DRAM memory. It includes an SMMUv3 for IOMMU functionality. On S32N79 SoC, peripherals are organized into subsystems, such as: - CIS (Coherent Interconnect Subsystem). - COSS (Connectivity Subsystem) - FSS (Foundation Subsystem) This initial support includes basic peripherals: - GICv3, SMMUv3 from CIS Subsystem - PL011 UARTs and IRQ steering controller from COSS Subsystem - uSDHC from FSS Subsystem Clock and Pin multiplexing settings for the chip are managed over SCMI. [1] https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32n-vehicle-super-integration-processors:S32N Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> Co-developed-by: Andra-Teodora Ilie <andra.ilie@nxp.com> Signed-off-by: Andra-Teodora Ilie <andra.ilie@nxp.com> Co-developed-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> --- arch/arm64/boot/dts/freescale/Makefile | 1 + arch/arm64/boot/dts/freescale/s32n79-rdb.dts | 70 ++++ arch/arm64/boot/dts/freescale/s32n79.dtsi | 361 +++++++++++++++++++ 3 files changed, 432 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/s32n79-rdb.dts create mode 100644 arch/arm64/boot/dts/freescale/s32n79.dtsi diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 700bab4d3e60..e79807bf1820 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -501,4 +501,5 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-phygate-tauri-l-rs232-rs485.dtb dtb-$(CONFIG_ARCH_S32) += s32g274a-evb.dtb dtb-$(CONFIG_ARCH_S32) += s32g274a-rdb2.dtb dtb-$(CONFIG_ARCH_S32) += s32g399a-rdb3.dtb +dtb-$(CONFIG_ARCH_S32) += s32n79-rdb.dtb dtb-$(CONFIG_ARCH_S32) += s32v234-evb.dtb diff --git a/arch/arm64/boot/dts/freescale/s32n79-rdb.dts b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts new file mode 100644 index 000000000000..c8b1dcefa2db --- /dev/null +++ b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/* + * Copyright 2026 NXP + * + * NXP S32N79 Reference Design Board (S32N79-RDB) + */ + +/dts-v1/; +#include "s32n79.dtsi" + +/ { + model = "NXP S32N79-RDB"; + compatible = "nxp,s32n79-rdb", "nxp,s32n79"; + + aliases { + serial0 = &uart0; + serial1 = &uart5; + serial2 = &uart6; + serial3 = &uart7; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + memory@80000000 { + device_type = "memory"; + reg = <0x00 0x80000000 0x00 0x80000000>, + <0x88 0x00000000 0x03 0x40000000>, + <0xc0 0x00000000 0x03 0x40000000>; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + scmi_shbuf: shm@93000000 { + compatible = "arm,scmi-shmem"; + reg = <0x0 0x93000000 0x0 0x80>; + no-map; + }; + }; +}; + +&irqsteer_coss { + status = "okay"; +}; + +&uart0 { + status = "okay"; +}; + +&uart5 { + status = "okay"; +}; + +&uart6 { + status = "okay"; +}; + +&uart7 { + status = "okay"; +}; + +&usdhc0 { + disable-wp; + no-sdio; + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/s32n79.dtsi b/arch/arm64/boot/dts/freescale/s32n79.dtsi new file mode 100644 index 000000000000..ff4e004fcd7c --- /dev/null +++ b/arch/arm64/boot/dts/freescale/s32n79.dtsi @@ -0,0 +1,361 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/* + * NXP S32N79 SoC + * + * Copyright 2026 NXP + */ + +#include <dt-bindings/interrupt-controller/arm-gic.h> + +/ { + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu0>; + }; + + core1 { + cpu = <&cpu1>; + }; + }; + + cluster1 { + core0 { + cpu = <&cpu2>; + }; + + core1 { + cpu = <&cpu3>; + }; + }; + + cluster2 { + core0 { + cpu = <&cpu4>; + }; + + core1 { + cpu = <&cpu5>; + }; + }; + + cluster3 { + core0 { + cpu = <&cpu6>; + }; + + core1 { + cpu = <&cpu7>; + }; + }; + }; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x0>; + enable-method = "psci"; + next-level-cache = <&l2_0>; + }; + + cpu1: cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x100>; + enable-method = "psci"; + next-level-cache = <&l2_0>; + }; + + cpu2: cpu@10000 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x10000>; + enable-method = "psci"; + next-level-cache = <&l2_1>; + }; + + cpu3: cpu@10100 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x10100>; + enable-method = "psci"; + next-level-cache = <&l2_1>; + }; + + cpu4: cpu@20000 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x20000>; + enable-method = "psci"; + next-level-cache = <&l2_2>; + }; + + cpu5: cpu@20100 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x20100>; + enable-method = "psci"; + next-level-cache = <&l2_2>; + }; + + cpu6: cpu@30000 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x30000>; + enable-method = "psci"; + next-level-cache = <&l2_3>; + }; + + cpu7: cpu@30100 { + device_type = "cpu"; + compatible = "arm,cortex-a78ae"; + reg = <0x30100>; + enable-method = "psci"; + next-level-cache = <&l2_3>; + }; + + l2_0: l2-cache0 { + compatible = "cache"; + cache-level = <2>; + cache-size = <524288>; + cache-line-size = <64>; + cache-sets = <512>; + cache-unified; + next-level-cache = <&l3_0>; + }; + + l2_1: l2-cache1 { + compatible = "cache"; + cache-level = <2>; + cache-size = <524288>; + cache-line-size = <64>; + cache-sets = <512>; + cache-unified; + next-level-cache = <&l3_1>; + }; + + l2_2: l2-cache2 { + compatible = "cache"; + cache-level = <2>; + cache-size = <524288>; + cache-line-size = <64>; + cache-sets = <512>; + cache-unified; + next-level-cache = <&l3_2>; + }; + + l2_3: l2-cache3 { + compatible = "cache"; + cache-level = <2>; + cache-size = <524288>; + cache-line-size = <64>; + cache-sets = <512>; + cache-unified; + next-level-cache = <&l3_3>; + }; + + l3_0: l3-cache0 { + compatible = "cache"; + cache-level = <3>; + cache-size = <1048576>; + cache-line-size = <64>; + cache-sets = <1024>; + cache-unified; + }; + + l3_1: l3-cache1 { + compatible = "cache"; + cache-level = <3>; + cache-size = <1048576>; + cache-line-size = <64>; + cache-sets = <1024>; + cache-unified; + }; + + l3_2: l3-cache2 { + compatible = "cache"; + cache-level = <3>; + cache-size = <1048576>; + cache-line-size = <64>; + cache-sets = <1024>; + cache-unified; + }; + + l3_3: l3-cache3 { + compatible = "cache"; + cache-level = <3>; + cache-size = <1048576>; + cache-line-size = <64>; + cache-sets = <1024>; + cache-unified; + }; + }; + + pmu: pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; + }; + + timer: timer { + compatible = "arm,armv8-timer"; + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; + }; + + firmware { + scmi: scmi { + compatible = "arm,scmi-smc"; + shmem = <&scmi_shbuf>; + arm,smc-id = <0xc20000fe>; + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + clks: protocol@14 { + reg = <0x14>; + #clock-cells = <1>; + }; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + }; + + cis-bus { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x4f200000 0x0 0x4f200000 0xc00000>; + + gic: interrupt-controller@4f200000 { + compatible = "arm,gic-v3"; + #address-cells = <1>; + #size-cells = <1>; + #interrupt-cells = <3>; + interrupt-controller; + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; + reg = <0x4f200000 0x10000>, /* GIC Dist */ + <0x4f260000 0x100000>; /* GICR (RD_base + SGI_base) */ + ranges; + + its: msi-controller@4f240000 { + compatible = "arm,gic-v3-its"; + reg = <0x4f240000 0x20000>; + msi-controller; + #msi-cells = <1>; + }; + }; + + smmu: iommu@4fc00000 { + compatible = "arm,smmu-v3"; + reg = <0x4fc00000 0x200000>; + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "eventq", "gerror", "priq", "cmdq-sync"; + #iommu-cells = <1>; + dma-coherent; + status = "disabled"; + }; + }; + + coss-bus { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x4a000000 0x0 0x4a000000 0xff0000>, + <0x4e000000 0x0 0x4e000000 0x1000000>; + + uart0: serial@4a030000 { + compatible = "arm,pl011", "arm,primecell"; + reg = <0x4a030000 0x1000>; + clocks = <&clks 0x9a>, <&clks 0x9a>; + clock-names = "uartclk", "apb_pclk"; + interrupt-parent = <&irqsteer_coss>; + interrupts = <264>; + status = "disabled"; + }; + + uart5: serial@4a060000 { + compatible = "arm,pl011", "arm,primecell"; + reg = <0x4a060000 0x1000>; + clocks = <&clks 0x9a>, <&clks 0x9a>; + clock-names = "uartclk", "apb_pclk"; + interrupt-parent = <&irqsteer_coss>; + interrupts = <269>; + status = "disabled"; + }; + + uart6: serial@4aa30000 { + compatible = "arm,pl011", "arm,primecell"; + reg = <0x4aa30000 0x1000>; + clocks = <&clks 0x9a>, <&clks 0x9a>; + clock-names = "uartclk", "apb_pclk"; + interrupt-parent = <&irqsteer_coss>; + interrupts = <270>; + status = "disabled"; + }; + + uart7: serial@4aa40000 { + compatible = "arm,pl011", "arm,primecell"; + reg = <0x4aa40000 0x1000>; + clocks = <&clks 0x9a>, <&clks 0x9a>; + clock-names = "uartclk", "apb_pclk"; + interrupt-parent = <&irqsteer_coss>; + interrupts = <271>; + status = "disabled"; + }; + + irqsteer_coss: interrupt-controller@4ed00000 { + compatible = "nxp,s32n79-irqsteer"; + reg = <0x4ed00000 0x10000>; + interrupts = <GIC_SPI 527 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 528 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>; + interrupt-controller; + interrupt-parent = <&gic>; + #interrupt-cells = <1>; + clocks = <&clks 0x9a>; + clock-names = "ipg"; + fsl,channel = <0>; + fsl,num-irqs = <512>; + status = "disabled"; + }; + }; + + fss-bus { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x5b490000 0x0 0x5b490000 0x1000>; + + usdhc0: mmc@5b490000 { + compatible = "nxp,s32n79-usdhc"; + reg = <0x5b490000 0x1000>; + interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks 0x58>, <&clks 0x50>, <&clks 0x5f>; + clock-names = "ipg", "ahb", "per"; + bus-width = <8>; + status = "disabled"; + }; + }; +}; -- 2.43.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 4/4] arm64: dts: freescale: Add minimal support for S32N79 2026-02-24 11:15 ` [PATCH 4/4] arm64: dts: freescale: Add minimal support for S32N79 Ciprian Costea @ 2026-02-24 21:09 ` Frank Li 2026-02-25 10:13 ` Ciprian Marian Costea 0 siblings, 1 reply; 13+ messages in thread From: Frank Li @ 2026-02-24 21:09 UTC (permalink / raw) To: Ciprian Costea Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore, Andra-Teodora Ilie, Andrei Cherechesu On Tue, Feb 24, 2026 at 12:15:33PM +0100, Ciprian Costea wrote: > From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > > Add device tree support for the NXP S32N79 automotive SoC and the S32N79 > Reference Design Board (RDB) [1]. > > The S32N79 features eight Arm Cortex-A78AE cores organized in four > dual-core clusters, with a three-level cache hierarchy (L1/L2 per core, > L3 per dual-core cluster) and 32GB of DRAM memory. It includes an SMMUv3 > for IOMMU functionality. > > On S32N79 SoC, peripherals are organized into subsystems, such as: > - CIS (Coherent Interconnect Subsystem). > - COSS (Connectivity Subsystem) > - FSS (Foundation Subsystem) > > This initial support includes basic peripherals: > - GICv3, SMMUv3 from CIS Subsystem > - PL011 UARTs and IRQ steering controller from COSS Subsystem > - uSDHC from FSS Subsystem > > Clock and Pin multiplexing settings for the chip are managed over SCMI. > > [1] https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32n-vehicle-super-integration-processors:S32N > > Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> > Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> > Co-developed-by: Andra-Teodora Ilie <andra.ilie@nxp.com> > Signed-off-by: Andra-Teodora Ilie <andra.ilie@nxp.com> > Co-developed-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> > Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> > Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> > --- > arch/arm64/boot/dts/freescale/Makefile | 1 + > arch/arm64/boot/dts/freescale/s32n79-rdb.dts | 70 ++++ > arch/arm64/boot/dts/freescale/s32n79.dtsi | 361 +++++++++++++++++++ all new dts, run https://github.com/lznuaa/dt-format to keep consistent node order Frank > 3 files changed, 432 insertions(+) > create mode 100644 arch/arm64/boot/dts/freescale/s32n79-rdb.dts > create mode 100644 arch/arm64/boot/dts/freescale/s32n79.dtsi > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index 700bab4d3e60..e79807bf1820 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -501,4 +501,5 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-phygate-tauri-l-rs232-rs485.dtb > dtb-$(CONFIG_ARCH_S32) += s32g274a-evb.dtb > dtb-$(CONFIG_ARCH_S32) += s32g274a-rdb2.dtb > dtb-$(CONFIG_ARCH_S32) += s32g399a-rdb3.dtb > +dtb-$(CONFIG_ARCH_S32) += s32n79-rdb.dtb > dtb-$(CONFIG_ARCH_S32) += s32v234-evb.dtb > diff --git a/arch/arm64/boot/dts/freescale/s32n79-rdb.dts b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts > new file mode 100644 > index 000000000000..c8b1dcefa2db > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts > @@ -0,0 +1,70 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) > +/* > + * Copyright 2026 NXP > + * > + * NXP S32N79 Reference Design Board (S32N79-RDB) > + */ > + > +/dts-v1/; > +#include "s32n79.dtsi" > + > +/ { > + model = "NXP S32N79-RDB"; > + compatible = "nxp,s32n79-rdb", "nxp,s32n79"; > + > + aliases { > + serial0 = &uart0; > + serial1 = &uart5; > + serial2 = &uart6; > + serial3 = &uart7; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + memory@80000000 { > + device_type = "memory"; > + reg = <0x00 0x80000000 0x00 0x80000000>, > + <0x88 0x00000000 0x03 0x40000000>, > + <0xc0 0x00000000 0x03 0x40000000>; > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + scmi_shbuf: shm@93000000 { > + compatible = "arm,scmi-shmem"; > + reg = <0x0 0x93000000 0x0 0x80>; > + no-map; > + }; > + }; > +}; > + > +&irqsteer_coss { > + status = "okay"; > +}; > + > +&uart0 { > + status = "okay"; > +}; > + > +&uart5 { > + status = "okay"; > +}; > + > +&uart6 { > + status = "okay"; > +}; > + > +&uart7 { > + status = "okay"; > +}; > + > +&usdhc0 { > + disable-wp; > + no-sdio; > + status = "okay"; > +}; > diff --git a/arch/arm64/boot/dts/freescale/s32n79.dtsi b/arch/arm64/boot/dts/freescale/s32n79.dtsi > new file mode 100644 > index 000000000000..ff4e004fcd7c > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/s32n79.dtsi > @@ -0,0 +1,361 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) > +/* > + * NXP S32N79 SoC > + * > + * Copyright 2026 NXP > + */ > + > +#include <dt-bindings/interrupt-controller/arm-gic.h> > + > +/ { > + interrupt-parent = <&gic>; > + #address-cells = <2>; > + #size-cells = <2>; > + > + cpus { > + #address-cells = <1>; > + #size-cells = <0>; > + > + cpu-map { > + cluster0 { > + core0 { > + cpu = <&cpu0>; > + }; > + > + core1 { > + cpu = <&cpu1>; > + }; > + }; > + > + cluster1 { > + core0 { > + cpu = <&cpu2>; > + }; > + > + core1 { > + cpu = <&cpu3>; > + }; > + }; > + > + cluster2 { > + core0 { > + cpu = <&cpu4>; > + }; > + > + core1 { > + cpu = <&cpu5>; > + }; > + }; > + > + cluster3 { > + core0 { > + cpu = <&cpu6>; > + }; > + > + core1 { > + cpu = <&cpu7>; > + }; > + }; > + }; > + > + cpu0: cpu@0 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x0>; > + enable-method = "psci"; > + next-level-cache = <&l2_0>; > + }; > + > + cpu1: cpu@100 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x100>; > + enable-method = "psci"; > + next-level-cache = <&l2_0>; > + }; > + > + cpu2: cpu@10000 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x10000>; > + enable-method = "psci"; > + next-level-cache = <&l2_1>; > + }; > + > + cpu3: cpu@10100 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x10100>; > + enable-method = "psci"; > + next-level-cache = <&l2_1>; > + }; > + > + cpu4: cpu@20000 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x20000>; > + enable-method = "psci"; > + next-level-cache = <&l2_2>; > + }; > + > + cpu5: cpu@20100 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x20100>; > + enable-method = "psci"; > + next-level-cache = <&l2_2>; > + }; > + > + cpu6: cpu@30000 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x30000>; > + enable-method = "psci"; > + next-level-cache = <&l2_3>; > + }; > + > + cpu7: cpu@30100 { > + device_type = "cpu"; > + compatible = "arm,cortex-a78ae"; > + reg = <0x30100>; > + enable-method = "psci"; > + next-level-cache = <&l2_3>; > + }; > + > + l2_0: l2-cache0 { > + compatible = "cache"; > + cache-level = <2>; > + cache-size = <524288>; > + cache-line-size = <64>; > + cache-sets = <512>; > + cache-unified; > + next-level-cache = <&l3_0>; > + }; > + > + l2_1: l2-cache1 { > + compatible = "cache"; > + cache-level = <2>; > + cache-size = <524288>; > + cache-line-size = <64>; > + cache-sets = <512>; > + cache-unified; > + next-level-cache = <&l3_1>; > + }; > + > + l2_2: l2-cache2 { > + compatible = "cache"; > + cache-level = <2>; > + cache-size = <524288>; > + cache-line-size = <64>; > + cache-sets = <512>; > + cache-unified; > + next-level-cache = <&l3_2>; > + }; > + > + l2_3: l2-cache3 { > + compatible = "cache"; > + cache-level = <2>; > + cache-size = <524288>; > + cache-line-size = <64>; > + cache-sets = <512>; > + cache-unified; > + next-level-cache = <&l3_3>; > + }; > + > + l3_0: l3-cache0 { > + compatible = "cache"; > + cache-level = <3>; > + cache-size = <1048576>; > + cache-line-size = <64>; > + cache-sets = <1024>; > + cache-unified; > + }; > + > + l3_1: l3-cache1 { > + compatible = "cache"; > + cache-level = <3>; > + cache-size = <1048576>; > + cache-line-size = <64>; > + cache-sets = <1024>; > + cache-unified; > + }; > + > + l3_2: l3-cache2 { > + compatible = "cache"; > + cache-level = <3>; > + cache-size = <1048576>; > + cache-line-size = <64>; > + cache-sets = <1024>; > + cache-unified; > + }; > + > + l3_3: l3-cache3 { > + compatible = "cache"; > + cache-level = <3>; > + cache-size = <1048576>; > + cache-line-size = <64>; > + cache-sets = <1024>; > + cache-unified; > + }; > + }; > + > + pmu: pmu { > + compatible = "arm,armv8-pmuv3"; > + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; > + }; > + > + timer: timer { > + compatible = "arm,armv8-timer"; > + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, > + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, > + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, > + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; > + }; > + > + firmware { > + scmi: scmi { > + compatible = "arm,scmi-smc"; > + shmem = <&scmi_shbuf>; > + arm,smc-id = <0xc20000fe>; > + #address-cells = <1>; > + #size-cells = <0>; > + status = "okay"; > + > + clks: protocol@14 { > + reg = <0x14>; > + #clock-cells = <1>; > + }; > + }; > + > + psci { > + compatible = "arm,psci-1.0"; > + method = "smc"; > + }; > + }; > + > + cis-bus { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0x4f200000 0x0 0x4f200000 0xc00000>; > + > + gic: interrupt-controller@4f200000 { > + compatible = "arm,gic-v3"; > + #address-cells = <1>; > + #size-cells = <1>; > + #interrupt-cells = <3>; > + interrupt-controller; > + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; > + reg = <0x4f200000 0x10000>, /* GIC Dist */ > + <0x4f260000 0x100000>; /* GICR (RD_base + SGI_base) */ > + ranges; > + > + its: msi-controller@4f240000 { > + compatible = "arm,gic-v3-its"; > + reg = <0x4f240000 0x20000>; > + msi-controller; > + #msi-cells = <1>; > + }; > + }; > + > + smmu: iommu@4fc00000 { > + compatible = "arm,smmu-v3"; > + reg = <0x4fc00000 0x200000>; > + interrupt-parent = <&gic>; > + interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "eventq", "gerror", "priq", "cmdq-sync"; > + #iommu-cells = <1>; > + dma-coherent; > + status = "disabled"; > + }; > + }; > + > + coss-bus { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0x4a000000 0x0 0x4a000000 0xff0000>, > + <0x4e000000 0x0 0x4e000000 0x1000000>; > + > + uart0: serial@4a030000 { > + compatible = "arm,pl011", "arm,primecell"; > + reg = <0x4a030000 0x1000>; > + clocks = <&clks 0x9a>, <&clks 0x9a>; > + clock-names = "uartclk", "apb_pclk"; > + interrupt-parent = <&irqsteer_coss>; > + interrupts = <264>; > + status = "disabled"; > + }; > + > + uart5: serial@4a060000 { > + compatible = "arm,pl011", "arm,primecell"; > + reg = <0x4a060000 0x1000>; > + clocks = <&clks 0x9a>, <&clks 0x9a>; > + clock-names = "uartclk", "apb_pclk"; > + interrupt-parent = <&irqsteer_coss>; > + interrupts = <269>; > + status = "disabled"; > + }; > + > + uart6: serial@4aa30000 { > + compatible = "arm,pl011", "arm,primecell"; > + reg = <0x4aa30000 0x1000>; > + clocks = <&clks 0x9a>, <&clks 0x9a>; > + clock-names = "uartclk", "apb_pclk"; > + interrupt-parent = <&irqsteer_coss>; > + interrupts = <270>; > + status = "disabled"; > + }; > + > + uart7: serial@4aa40000 { > + compatible = "arm,pl011", "arm,primecell"; > + reg = <0x4aa40000 0x1000>; > + clocks = <&clks 0x9a>, <&clks 0x9a>; > + clock-names = "uartclk", "apb_pclk"; > + interrupt-parent = <&irqsteer_coss>; > + interrupts = <271>; > + status = "disabled"; > + }; > + > + irqsteer_coss: interrupt-controller@4ed00000 { > + compatible = "nxp,s32n79-irqsteer"; > + reg = <0x4ed00000 0x10000>; > + interrupts = <GIC_SPI 527 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 528 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-controller; > + interrupt-parent = <&gic>; > + #interrupt-cells = <1>; > + clocks = <&clks 0x9a>; > + clock-names = "ipg"; > + fsl,channel = <0>; > + fsl,num-irqs = <512>; > + status = "disabled"; > + }; > + }; > + > + fss-bus { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges = <0x5b490000 0x0 0x5b490000 0x1000>; > + > + usdhc0: mmc@5b490000 { > + compatible = "nxp,s32n79-usdhc"; > + reg = <0x5b490000 0x1000>; > + interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&clks 0x58>, <&clks 0x50>, <&clks 0x5f>; > + clock-names = "ipg", "ahb", "per"; > + bus-width = <8>; > + status = "disabled"; > + }; > + }; > +}; > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/4] arm64: dts: freescale: Add minimal support for S32N79 2026-02-24 21:09 ` Frank Li @ 2026-02-25 10:13 ` Ciprian Marian Costea 0 siblings, 0 replies; 13+ messages in thread From: Ciprian Marian Costea @ 2026-02-25 10:13 UTC (permalink / raw) To: Frank Li Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thomas Gleixner, Ulf Hansson, Sascha Hauer, Fabio Estevam, Shawn Guo, Lucas Stach, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Eric Chanudet, Pengutronix Kernel Team, devicetree, linux-kernel, linux-mmc, imx, linux-arm-kernel, NXP S32 Linux Team, Larisa Grigore, Andra-Teodora Ilie, Andrei Cherechesu On 2/24/2026 11:09 PM, Frank Li wrote: > On Tue, Feb 24, 2026 at 12:15:33PM +0100, Ciprian Costea wrote: >> From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >> >> Add device tree support for the NXP S32N79 automotive SoC and the S32N79 >> Reference Design Board (RDB) [1]. >> >> The S32N79 features eight Arm Cortex-A78AE cores organized in four >> dual-core clusters, with a three-level cache hierarchy (L1/L2 per core, >> L3 per dual-core cluster) and 32GB of DRAM memory. It includes an SMMUv3 >> for IOMMU functionality. >> >> On S32N79 SoC, peripherals are organized into subsystems, such as: >> - CIS (Coherent Interconnect Subsystem). >> - COSS (Connectivity Subsystem) >> - FSS (Foundation Subsystem) >> >> This initial support includes basic peripherals: >> - GICv3, SMMUv3 from CIS Subsystem >> - PL011 UARTs and IRQ steering controller from COSS Subsystem >> - uSDHC from FSS Subsystem >> >> Clock and Pin multiplexing settings for the chip are managed over SCMI. >> >> [1] https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32n-vehicle-super-integration-processors:S32N >> >> Co-developed-by: Larisa Grigore <larisa.grigore@nxp.com> >> Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com> >> Co-developed-by: Andra-Teodora Ilie <andra.ilie@nxp.com> >> Signed-off-by: Andra-Teodora Ilie <andra.ilie@nxp.com> >> Co-developed-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> >> Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> >> Signed-off-by: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com> >> --- >> arch/arm64/boot/dts/freescale/Makefile | 1 + >> arch/arm64/boot/dts/freescale/s32n79-rdb.dts | 70 ++++ >> arch/arm64/boot/dts/freescale/s32n79.dtsi | 361 +++++++++++++++++++ > > all new dts, run https://github.com/lznuaa/dt-format to keep consistent > node order > > Frank Hello Frank, Very interesting tool. Thanks for the suggestion. I will address the 'dt-format' findings in V2. Best Regards, Ciprian >> 3 files changed, 432 insertions(+) >> create mode 100644 arch/arm64/boot/dts/freescale/s32n79-rdb.dts >> create mode 100644 arch/arm64/boot/dts/freescale/s32n79.dtsi >> >> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile >> index 700bab4d3e60..e79807bf1820 100644 >> --- a/arch/arm64/boot/dts/freescale/Makefile >> +++ b/arch/arm64/boot/dts/freescale/Makefile >> @@ -501,4 +501,5 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-phygate-tauri-l-rs232-rs485.dtb >> dtb-$(CONFIG_ARCH_S32) += s32g274a-evb.dtb >> dtb-$(CONFIG_ARCH_S32) += s32g274a-rdb2.dtb >> dtb-$(CONFIG_ARCH_S32) += s32g399a-rdb3.dtb >> +dtb-$(CONFIG_ARCH_S32) += s32n79-rdb.dtb >> dtb-$(CONFIG_ARCH_S32) += s32v234-evb.dtb >> diff --git a/arch/arm64/boot/dts/freescale/s32n79-rdb.dts b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts >> new file mode 100644 >> index 000000000000..c8b1dcefa2db >> --- /dev/null >> +++ b/arch/arm64/boot/dts/freescale/s32n79-rdb.dts >> @@ -0,0 +1,70 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) >> +/* >> + * Copyright 2026 NXP >> + * >> + * NXP S32N79 Reference Design Board (S32N79-RDB) >> + */ >> + >> +/dts-v1/; >> +#include "s32n79.dtsi" >> + >> +/ { >> + model = "NXP S32N79-RDB"; >> + compatible = "nxp,s32n79-rdb", "nxp,s32n79"; >> + >> + aliases { >> + serial0 = &uart0; >> + serial1 = &uart5; >> + serial2 = &uart6; >> + serial3 = &uart7; >> + }; >> + >> + chosen { >> + stdout-path = "serial0:115200n8"; >> + }; >> + >> + memory@80000000 { >> + device_type = "memory"; >> + reg = <0x00 0x80000000 0x00 0x80000000>, >> + <0x88 0x00000000 0x03 0x40000000>, >> + <0xc0 0x00000000 0x03 0x40000000>; >> + }; >> + >> + reserved-memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + ranges; >> + >> + scmi_shbuf: shm@93000000 { >> + compatible = "arm,scmi-shmem"; >> + reg = <0x0 0x93000000 0x0 0x80>; >> + no-map; >> + }; >> + }; >> +}; >> + >> +&irqsteer_coss { >> + status = "okay"; >> +}; >> + >> +&uart0 { >> + status = "okay"; >> +}; >> + >> +&uart5 { >> + status = "okay"; >> +}; >> + >> +&uart6 { >> + status = "okay"; >> +}; >> + >> +&uart7 { >> + status = "okay"; >> +}; >> + >> +&usdhc0 { >> + disable-wp; >> + no-sdio; >> + status = "okay"; >> +}; >> diff --git a/arch/arm64/boot/dts/freescale/s32n79.dtsi b/arch/arm64/boot/dts/freescale/s32n79.dtsi >> new file mode 100644 >> index 000000000000..ff4e004fcd7c >> --- /dev/null >> +++ b/arch/arm64/boot/dts/freescale/s32n79.dtsi >> @@ -0,0 +1,361 @@ >> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) >> +/* >> + * NXP S32N79 SoC >> + * >> + * Copyright 2026 NXP >> + */ >> + >> +#include <dt-bindings/interrupt-controller/arm-gic.h> >> + >> +/ { >> + interrupt-parent = <&gic>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + cpus { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + cpu-map { >> + cluster0 { >> + core0 { >> + cpu = <&cpu0>; >> + }; >> + >> + core1 { >> + cpu = <&cpu1>; >> + }; >> + }; >> + >> + cluster1 { >> + core0 { >> + cpu = <&cpu2>; >> + }; >> + >> + core1 { >> + cpu = <&cpu3>; >> + }; >> + }; >> + >> + cluster2 { >> + core0 { >> + cpu = <&cpu4>; >> + }; >> + >> + core1 { >> + cpu = <&cpu5>; >> + }; >> + }; >> + >> + cluster3 { >> + core0 { >> + cpu = <&cpu6>; >> + }; >> + >> + core1 { >> + cpu = <&cpu7>; >> + }; >> + }; >> + }; >> + >> + cpu0: cpu@0 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x0>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_0>; >> + }; >> + >> + cpu1: cpu@100 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x100>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_0>; >> + }; >> + >> + cpu2: cpu@10000 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x10000>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_1>; >> + }; >> + >> + cpu3: cpu@10100 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x10100>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_1>; >> + }; >> + >> + cpu4: cpu@20000 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x20000>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_2>; >> + }; >> + >> + cpu5: cpu@20100 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x20100>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_2>; >> + }; >> + >> + cpu6: cpu@30000 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x30000>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_3>; >> + }; >> + >> + cpu7: cpu@30100 { >> + device_type = "cpu"; >> + compatible = "arm,cortex-a78ae"; >> + reg = <0x30100>; >> + enable-method = "psci"; >> + next-level-cache = <&l2_3>; >> + }; >> + >> + l2_0: l2-cache0 { >> + compatible = "cache"; >> + cache-level = <2>; >> + cache-size = <524288>; >> + cache-line-size = <64>; >> + cache-sets = <512>; >> + cache-unified; >> + next-level-cache = <&l3_0>; >> + }; >> + >> + l2_1: l2-cache1 { >> + compatible = "cache"; >> + cache-level = <2>; >> + cache-size = <524288>; >> + cache-line-size = <64>; >> + cache-sets = <512>; >> + cache-unified; >> + next-level-cache = <&l3_1>; >> + }; >> + >> + l2_2: l2-cache2 { >> + compatible = "cache"; >> + cache-level = <2>; >> + cache-size = <524288>; >> + cache-line-size = <64>; >> + cache-sets = <512>; >> + cache-unified; >> + next-level-cache = <&l3_2>; >> + }; >> + >> + l2_3: l2-cache3 { >> + compatible = "cache"; >> + cache-level = <2>; >> + cache-size = <524288>; >> + cache-line-size = <64>; >> + cache-sets = <512>; >> + cache-unified; >> + next-level-cache = <&l3_3>; >> + }; >> + >> + l3_0: l3-cache0 { >> + compatible = "cache"; >> + cache-level = <3>; >> + cache-size = <1048576>; >> + cache-line-size = <64>; >> + cache-sets = <1024>; >> + cache-unified; >> + }; >> + >> + l3_1: l3-cache1 { >> + compatible = "cache"; >> + cache-level = <3>; >> + cache-size = <1048576>; >> + cache-line-size = <64>; >> + cache-sets = <1024>; >> + cache-unified; >> + }; >> + >> + l3_2: l3-cache2 { >> + compatible = "cache"; >> + cache-level = <3>; >> + cache-size = <1048576>; >> + cache-line-size = <64>; >> + cache-sets = <1024>; >> + cache-unified; >> + }; >> + >> + l3_3: l3-cache3 { >> + compatible = "cache"; >> + cache-level = <3>; >> + cache-size = <1048576>; >> + cache-line-size = <64>; >> + cache-sets = <1024>; >> + cache-unified; >> + }; >> + }; >> + >> + pmu: pmu { >> + compatible = "arm,armv8-pmuv3"; >> + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; >> + }; >> + >> + timer: timer { >> + compatible = "arm,armv8-timer"; >> + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, >> + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, >> + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, >> + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; >> + }; >> + >> + firmware { >> + scmi: scmi { >> + compatible = "arm,scmi-smc"; >> + shmem = <&scmi_shbuf>; >> + arm,smc-id = <0xc20000fe>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + status = "okay"; >> + >> + clks: protocol@14 { >> + reg = <0x14>; >> + #clock-cells = <1>; >> + }; >> + }; >> + >> + psci { >> + compatible = "arm,psci-1.0"; >> + method = "smc"; >> + }; >> + }; >> + >> + cis-bus { >> + compatible = "simple-bus"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + ranges = <0x4f200000 0x0 0x4f200000 0xc00000>; >> + >> + gic: interrupt-controller@4f200000 { >> + compatible = "arm,gic-v3"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + #interrupt-cells = <3>; >> + interrupt-controller; >> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; >> + reg = <0x4f200000 0x10000>, /* GIC Dist */ >> + <0x4f260000 0x100000>; /* GICR (RD_base + SGI_base) */ >> + ranges; >> + >> + its: msi-controller@4f240000 { >> + compatible = "arm,gic-v3-its"; >> + reg = <0x4f240000 0x20000>; >> + msi-controller; >> + #msi-cells = <1>; >> + }; >> + }; >> + >> + smmu: iommu@4fc00000 { >> + compatible = "arm,smmu-v3"; >> + reg = <0x4fc00000 0x200000>; >> + interrupt-parent = <&gic>; >> + interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>, >> + <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>; >> + interrupt-names = "eventq", "gerror", "priq", "cmdq-sync"; >> + #iommu-cells = <1>; >> + dma-coherent; >> + status = "disabled"; >> + }; >> + }; >> + >> + coss-bus { >> + compatible = "simple-bus"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + ranges = <0x4a000000 0x0 0x4a000000 0xff0000>, >> + <0x4e000000 0x0 0x4e000000 0x1000000>; >> + >> + uart0: serial@4a030000 { >> + compatible = "arm,pl011", "arm,primecell"; >> + reg = <0x4a030000 0x1000>; >> + clocks = <&clks 0x9a>, <&clks 0x9a>; >> + clock-names = "uartclk", "apb_pclk"; >> + interrupt-parent = <&irqsteer_coss>; >> + interrupts = <264>; >> + status = "disabled"; >> + }; >> + >> + uart5: serial@4a060000 { >> + compatible = "arm,pl011", "arm,primecell"; >> + reg = <0x4a060000 0x1000>; >> + clocks = <&clks 0x9a>, <&clks 0x9a>; >> + clock-names = "uartclk", "apb_pclk"; >> + interrupt-parent = <&irqsteer_coss>; >> + interrupts = <269>; >> + status = "disabled"; >> + }; >> + >> + uart6: serial@4aa30000 { >> + compatible = "arm,pl011", "arm,primecell"; >> + reg = <0x4aa30000 0x1000>; >> + clocks = <&clks 0x9a>, <&clks 0x9a>; >> + clock-names = "uartclk", "apb_pclk"; >> + interrupt-parent = <&irqsteer_coss>; >> + interrupts = <270>; >> + status = "disabled"; >> + }; >> + >> + uart7: serial@4aa40000 { >> + compatible = "arm,pl011", "arm,primecell"; >> + reg = <0x4aa40000 0x1000>; >> + clocks = <&clks 0x9a>, <&clks 0x9a>; >> + clock-names = "uartclk", "apb_pclk"; >> + interrupt-parent = <&irqsteer_coss>; >> + interrupts = <271>; >> + status = "disabled"; >> + }; >> + >> + irqsteer_coss: interrupt-controller@4ed00000 { >> + compatible = "nxp,s32n79-irqsteer"; >> + reg = <0x4ed00000 0x10000>; >> + interrupts = <GIC_SPI 527 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 528 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>; >> + interrupt-controller; >> + interrupt-parent = <&gic>; >> + #interrupt-cells = <1>; >> + clocks = <&clks 0x9a>; >> + clock-names = "ipg"; >> + fsl,channel = <0>; >> + fsl,num-irqs = <512>; >> + status = "disabled"; >> + }; >> + }; >> + >> + fss-bus { >> + compatible = "simple-bus"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + ranges = <0x5b490000 0x0 0x5b490000 0x1000>; >> + >> + usdhc0: mmc@5b490000 { >> + compatible = "nxp,s32n79-usdhc"; >> + reg = <0x5b490000 0x1000>; >> + interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>; >> + clocks = <&clks 0x58>, <&clks 0x50>, <&clks 0x5f>; >> + clock-names = "ipg", "ahb", "per"; >> + bus-width = <8>; >> + status = "disabled"; >> + }; >> + }; >> +}; >> -- >> 2.43.0 >> ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-02-25 10:14 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-02-24 11:15 [PATCH 0/4] arm64: dts: Add initial support for NXP S32N79 SoC Ciprian Costea 2026-02-24 11:15 ` [PATCH 1/4] dt-bindings: interrupt-controller: fsl,irqsteer: add S32N79 support Ciprian Costea 2026-02-24 17:57 ` Conor Dooley 2026-02-25 8:50 ` Ciprian Marian Costea 2026-02-24 11:15 ` [PATCH 2/4] dt-bindings: mmc: fsl-imx-esdhc: " Ciprian Costea 2026-02-24 17:58 ` Conor Dooley 2026-02-24 17:59 ` Conor Dooley 2026-02-25 9:38 ` Ciprian Marian Costea 2026-02-25 8:52 ` Ciprian Marian Costea 2026-02-24 11:15 ` [PATCH 3/4] dt-bindings: arm: fsl: Add NXP S32N79 SoC and RDB board Ciprian Costea 2026-02-24 11:15 ` [PATCH 4/4] arm64: dts: freescale: Add minimal support for S32N79 Ciprian Costea 2026-02-24 21:09 ` Frank Li 2026-02-25 10:13 ` Ciprian Marian Costea
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox