Commit graph

357 commits

Author SHA1 Message Date
Declan Snyder
488760638d soc: nxp: rw: Add flash config header
Add header file for flash configuration blocks
which is an image header consumed by the RW bootrom.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-05-21 16:48:14 -04:00
Yong Cong Sin
cc1894b844 soc: nxp: rw: remove DT_NODE_HAS_STATUS_OKAY
We do not have `DT_NODE_HAS_STATUS_OKAY`, change that to
`DT_NODE_HAS_STATUS(node_id, okay)` instead

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
2024-05-18 15:51:09 +03:00
Mahesh Mahadevan
8824fa8bdd soc: rw6xx: Add power management support
Add support for Power modes 1 and 2.
The wakeup from power mode 2 is from the os timer.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-05-16 18:53:51 -04:00
Mahesh Mahadevan
1192c9be6b soc: nxp: Enable support for OS Timer on RW platform
The OS Timer will be used as the System Timer.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-05-16 18:53:51 -04:00
Jérémy LOCHE - MAKEEN Energy
724be84957 nxp: imx7d-6sx: add rom_start relocation
Add the Kconfig options and use the aliased
addresses for the bootcode regions of the IMX7D
and IMX6SX SOCs to allow the Linux rproc
framework to load the irq-vectors into
the correct memory areas.

Activating this option might enlarge the bin
file if the zephyr,flash and rom_start chosen
region addresses are not matching.

It is up to the user to enable this feature
based on code location choices (OCRAM, DDR, TCM...).

Signed-off-by: Jérémy LOCHE - MAKEEN Energy <jlh@makeenenergy.com>
2024-05-16 15:52:20 +02:00
Mahesh Mahadevan
c68a8818c4 soc: n94x: Add USBHS support
Add support for USBHS controller

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-05-16 09:17:18 +02:00
Declan Snyder
79025c5524 soc: nxp: rw: Support ADC and DAC
Add DT node entries to RW for DAC and ADC.

Support the SOC required initialization of the DAC and ADC on RW.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-05-14 18:23:22 -04:00
Daniel DeGrasse
53ceae5f58 soc: nxp: rw: use correct mask for FLEXSPI clock setup divider
Mask for FLEXSPI clock divider was being used when setting the FLEXSPI
clock selector value. Correct this to use the mask for the selector
instead of the divider.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-05-14 18:21:57 -04:00
Trung Hieu Le
3cb5e4ed54 boards: nxp: rt1170_evk: Add XMCD bootheader
Currently, only DCD bootheader was supported to configure the SDRAM.

On IMX RT1170, XMCD can be used as an alternative boot header to DCD.
XMCD is more advanced than DCD and enhances SDRAM access speed.
This is benefit for SDRAM access application.

Signed-off-by: Trung Hieu Le <trunghieu.le@nxp.com>
2024-05-14 15:54:20 +02:00
Daniel DeGrasse
84b8e92445 soc: nxp: imxrt: clock imxrt1042 SOC at 528 MHz
iMXRT1042 SOC should be clocked at 528 MHz maximum. Correct the clock
setup to use the system PLL.

Fixes #70755

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-05-13 16:37:17 -04:00
Daniel DeGrasse
9668b35ce7 soc: nxp: imxrt: allow configuring system pll on iMXRT10xx series
Allow configuration of the system pll on the iMXRT10xx series parts, via
a fractional pll node under the CCM module.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-05-13 16:37:17 -04:00
Phi Bang Nguyen
f621407d50 modules: mcux: Drop HAS_MCUX_CSI config
The HAS_MCUX_CSI (as well as all the HAS_MCUX_XXX) config was obsolete
and has been replaced by the DT_HAS_NXP_IMX_CSI_ENABLED (i.e.
DT_HAS_XXX_ENABLED). Drop it as well as all the dependencies on it.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2024-05-10 18:09:44 -04:00
Phi Bang Nguyen
1e9448b404 soc: nxp: imxrt11xx: Enable clock for LPCI2C6
Enable clock for LPCI2C6. This is needed to control some
peripherals such as camera sensor.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2024-05-10 18:06:47 -04:00
Luis Ubieda
3dc91dda7d boards: nxp: Fix usage of DT_CHOSEN() macro to get chosen Zephyr Flash
Used multiple places in the tree. The idea is to determine if this node
corresponds to a specific node (e.g: flexspi) so that specific
configurations can get done. Without the fix, the macro expansions were
defaulting to false.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2024-05-10 18:05:03 -04:00
Jiafei Pan
85db836f8e soc: imx7d: fix CPP application building error
For CPP application, such as samples/cpp/cpp_synchronization/, it will
report the following building errors:

...
zephyrproject/modules/hal/nxp/imx/devices/MCIMX7D/./MCIMX7D_M4.h:5101:51:
error: 'reinterpret_cast<CCM_Type*>(808976384)' is not a constant
expression
...

The error is caused by commit: 72312feead
" arch: arm: cortex_m: Use cmsis api instead of inline asm in arch_irq_*"
This patch will cause kernel.h includes cmsis_core.h which includes soc.h,
so that soc.h will be used by c++ code.

This patch make soc.h can be c++ compatible.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
2024-05-01 10:27:37 +02:00
Declan Snyder
a1916b0121 soc: nxp: rw: Fix error if PMU reset not specified
Don't build error if the reset causes is not specified on
the PMU node.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-26 19:49:54 +01:00
David Leach
9b0ccc8d24 west.yml: Update NXP HAL MCUX-SDK to add MKE1XZ9 support
Add MKE1XZ9 and some additional HAL cleanup patches.
Update bumped the chip version for RW610.

Signed-off-by: David Leach <david.leach@nxp.com>
2024-04-26 09:30:11 +02:00
Declan Snyder
9ac2ee91f2 drivers: nxp_enet: Correct PTP clock dependencies
The dependencies should be in a 'depends on' clause.
Also, 'depends on PTP_CLOCK' is redundant because this is
within 'if PTP_CLOCK' already.

Additionally, conditionally include the PTP header in the mac driver.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-18 11:18:31 +02:00
Daniel DeGrasse
46bed8896e soc: nxp: rw: add support for USBOTG controller
Add code to clock and release reset signal for USBOTG controller on
RW6xx SOC when USB is enabled, and add KConfig selection to indicate to
build system which USB controller this SOC uses.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-04-11 09:09:00 +02:00
Daniel Baluta
a8fa742b18 soc: nxp: imx8: Fix Kconfig.defconfig.* filenames
We need to use correct SOC name when naming the Kconfig.defconfig*
files.

So we need the following changes:
	- mimx8mp -> mimx8ml8
	- mimx8mm -> imx8mm6
	- mimx8mn -> mimx8mn6
	- mimx8mq -> mimx8mq6

Then we also need to take care of qualifiers name. Standard notation
uses "_" instead of "."

e.g : Kconfig.defconfig.mimx8mp.a53 -> Kconfig.defconfig.mimx8ml8_a53

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2024-04-10 10:00:40 +02:00
Laurentiu Mihalcea
399c2cba65 nxp: imx8ulp: enable pinctrl
This commit enables pinctrl on i.MX8ULP. This includes:
	1) Adding `pinctrl_soc.h` header file.
	2) Adding DTS node for IOMUXC1, which is one of the
	IPs responsible for managing the 8ULP pads.
	3) Adding .dtsi with pin definitions. For now, only
	the LPUART7 pads are added to this file because this
	is going to be the only consummer for now.
	4) Modifying the `pinctrl_imx.c` driver to work for 8ULP.
	5) Enabling the `CONFIG_HAS_MCUX_IOMUXC`, which is a
	dependency of `CONFIG_PINCTRL_IMX`.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-04-09 11:06:14 +02:00
Daniel DeGrasse
b6477deb4a soc: nxp: rw: add reset code for LCDIC
Clear LCDIC reset signal at init when the LCDIC peripheral is enabled.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-04-04 23:59:37 +03:00
Daniel Baluta
cffea52fa8 boards: nxp: Rename mimxrt685_evk to mimxrt685_evk_mimxrt685s_cm33
In preparation for adding AMP support for i.MX RT6xx family we need
to rename existing cm33 support files to more specific names.

e.g mimxrt685_evk.dts -> mimxrt685_evk_mimxrt685s_cm33.dts

This will allow us to later add support for Cadence DSP found on i.MX
RT6xx series.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2024-04-03 15:41:16 +01:00
Daniel Baluta
68a7057513 soc: nxp: imxrt: Prepare imxrt6xx soc for AMP support
imxrt6xx are dual core devices featuring an ARM Cortex-M33
core and an Cadence Xtensa HIFI4 Audio DSP.

Currently only m33 core is supported. In order to support
the Cadence DSP we need first to do some code-reorganization
for m33.

We start by moving all cm33 related code to its own directory
and introduce the cpuclusters property in soc.yml file.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2024-04-03 15:41:16 +01:00
Iuliana Prodan
019b813a71 linker: nxp: add orphan linker section
Add missing linker section to avoid warning
about orphans when building with host compiler.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-04-03 10:34:18 +02:00
Pieter De Gendt
5944fb38bf dts: arm: nxp: nxp_imx8ml_m7: Add ECSPI instances
Add device tree instances for ECSPI peripherals and update SoC code to
enable clocks.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-04-02 21:03:47 -04:00
Mahesh Mahadevan
a9fea59281 soc: nxp: Select the MFD Kconfig when LPFlexcomm is enabled
LPFlexcomm is a MFD device hence select this Kconfig whenever
it is enabled.
Remove the selection from the individual driver Kconfig files.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-04-02 21:00:24 -04:00
Iuliana Prodan
1f55be8b42 nxp: imx8: change CONFIG_SOC_<name> to match the value
Change, for audio DSP and M7 cores, SOC_<name> to match
the exact soc name.
Update the board files accordingly.

These configs are used in SOF and NXP_HAL, so change
sha for these modules.

Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
2024-04-02 10:41:07 +03:00
Declan Snyder
a7988f2986 soc: nxp: lpc55s69: Enable Sleep Mode
Enable sleep mode on LPC55S69 (corresponding to zephyr's runtime idle
mode). Add DT description and power api implementations.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-02 10:38:17 +03:00
Declan Snyder
2d83371818 soc: nxp: lpc55xxx: Remove duplicate INIT_PLL1
Remove duplicate definition of the INIT_PLL1 kconfig

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-04-02 10:38:17 +03:00
Hou Zhiqiang
5062c51c49 soc: mimx8m: set the UART devices RDC permission
Add SoC initialization to set the UART RDC permission in the early
phase, so that the it can be used by Zephyr on Cortex-A cores.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
2024-03-28 16:01:30 -05:00
Hou Zhiqiang
657e7edd96 soc: mimx8m: add MMU mapping for RDC MMIO
Add MMU mapping for RDC MMIO on i.MX8M SoCs.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
2024-03-28 16:01:30 -05:00
Daniel DeGrasse
5e241970f5 soc: nxp: rw: enable DMIC clock at boot
Enable DMIC clock at boot, so that RW DMIC IP will be useable by driver

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-03-28 09:44:25 +00:00
Laurentiu Mihalcea
9517639390 nxp: imx8ulp: change SOC name to MIMX8UD7
The SOC name `imx8ulp` has been just a placeholder until
support for the SOC's ADSP (since this is the only core
that's supported in Zephyr) could be added to the NXP HAL.
Now that the support has been added, to make use of it, the
SOC name `imx8ulp` has to be changed to `mimx8ud7`. As such,
this commit does the following:
	1) Introduces SOC part number configuration - needed
	by some HAL headers.
	2) Replaces all occurrences of `imx8ulp` (as the SOC
	name) with `mimx8ud7`.
	3) Enables `CONFIG_HAS_MCUX`.
	4) Aligns all `CONFIG_SOC_` configurations with the
	new SOC name.
	5) Updates SOF hash. This is needed to fix build issues
	caused by this name change. This is not done in a separate
	commit to preserve bisectability.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-28 09:41:15 +00:00
Mahesh Mahadevan
b0dbd9a87e soc: mcxnx4x: Add FlexSPI support
Add support for FlexSPI

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-03-25 18:40:14 -04:00
Declan Snyder
711375695e soc: nxp: rw: Support Reset cause setting
Support reset causes on RW SOC

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-03-22 15:58:03 -05:00
Declan Snyder
a65ae89b9e soc: nxp: rw: Support MRT counter
Add DT entries and peripheral reset for MRT on RW.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-03-21 09:06:48 +01:00
Declan Snyder
241d41596b soc: nxp: rw: Support CTIMER
Add DT entries and clocking for CTIMER peripherals on RW61x.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-03-21 09:06:48 +01:00
Daniel DeGrasse
90a8ef11fe soc: nxp: rw: define Kconfigs for MEMC_MCUX_FLEXSPI code relocation
MEMC_MCUX_FLEXSPI depends on code relocation being enabled on parts that
XIP from the FlexSPI by default and requires a string describing the RAM
region to relocate code into. Add these Kconfigs to the RW SOC port.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-03-20 19:08:06 +00:00
Daniel DeGrasse
9021ce82fc soc: nxp: rw: add support for reclocking flexspi
Add support for reclocking FlexSPI peripheral via flexspi_clock_set_freq
function

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-03-20 19:08:06 +00:00
Declan Snyder
2cb4550dc7 soc: rw: Support WWDT
Add DT entry and SOC code for watchdog

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-03-20 16:19:12 +00:00
Declan Snyder
ab7580046a soc: rw: Support I2C Flexcomms
Support I2C flexcomms by clocking in soc.c and adding DT header

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-03-19 09:47:35 +01:00
Declan Snyder
fa6e894e1d soc: nxp: rw: Clock SPI Flexcomms
Clock flexcomms if used as SPI

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-03-15 18:07:45 -04:00
Laurentiu Mihalcea
2f40474c14 nxp: imx8ulp: correct value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC
The core clock of 8ULP's HIFI4 DSP runs at 475.2MHz. As such,
correct the value of `CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC` to
reflect this.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-15 06:27:13 -04:00
Daniel DeGrasse
d1444856c0 soc: nxp: imxrt: fix dependencies of NXP_IMXRT_BOOT_HEADER for RT11xx
Dependencies of NXP_IMXRT_BOOT_HEADER were set incorrectly for the
RT11xx series part when building a dual core image. The boot header
should be enabled by default for the primary M7 core, and always
disabled when MCUBOOT is used or the M4 core is targeted

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-03-15 08:51:24 +01:00
Daniel DeGrasse
fcbf03a2dc soc: nxp: imxrt: correct FCB offset for iMXRT1011 SOC to 0x400
Unlike the remainder of the RT10xx series, the RT1011 SOC requires that
the flash configuration block be placed at an offset of 0x400 bytes,
instead of the start of the flash.

Fixes #70090

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-03-14 09:33:43 +01:00
Mahesh Mahadevan
f93e37e84b soc: mcxn947: Add support for NXP MCXN947
Add initial support for NXP MCXN947 SoC

Signed-off-by: Emilio Benavente <emilio.benavente@nxp.com>
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-03-13 22:38:46 +00:00
Declan Snyder
5f53afca0a soc: nxp: Add RW SOC Family
Add SOC definition for NXP RW Family

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-03-13 16:45:13 +00:00
Laurentiu Mihalcea
f91065b7c9 nxp: adsp: enable usage of DCACHE API
With the transition to HWMv2, `CONFIG_CPU_HAS_DCACHE` is no
longer selected. This causes issues with Sound Open Firmware
since this configuration allows the usage of DCACHE-related
cache management operations. As such, to fix said issues,
select `CONFIG_CPU_HAS_DCACHE` on all NXP ADSP SOCs.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-13 11:13:54 +00:00
Daniel DeGrasse
ac2993493b soc: nxp: imxrt: do not select HAS_PM at family level
Not all SOC cores within the NXP iMX RT family support power
management (for example, the Fusion F1 DSP has no support). Do not
select HAS_PM at the SOC family level, and instead select it at the
series level where applicable

Fixes #69731

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-03-12 09:46:38 +00:00