Commit graph

228 commits

Author SHA1 Message Date
Krzysztof Chruściński
738549ed27 modules: hal_nordic: nrfx: Move some defines back to CMakeLists
534916c2253 moved some defines from CMakeLists.txt to nrfx_kconfig.h
but those defines are used by MDK which does not include nrfx_kconfig.h
and that broke some nrf platforms (e.g. nrf54l20). Moving those
defines back to CMakeLists.txt.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-20 16:27:46 +01:00
Piotr Koziar
b6ca9dbc71 modules: hal_nordic: use CLOCK_CONTROL_NRF2 for HFCLK request/release
Makes 802.15.4 use the API under CONFIG_CLOCK_CONTROL_NRF2
in nrf_clock_control.h to request/release HFCLK.

Previous HFCLK requesting/releasing on nRF54H20 was more
of a workaround and could produce issues when
comes to sharing the resources.

Signed-off-by: Piotr Koziar <piotr.koziar@nordicsemi.no>
2025-01-20 09:21:16 +01:00
Marcin Szymczyk
94589b784b modules: hal_nordic: nrfx: cleanup
* Move all KConfig configuration from CMake to `nrfx_kconfig.h`
* Move macro utils from `nrfx_kconfig.h` to `nrfx_zephyr_utils.h`
* Move GRTC channels allocation from `nrfx_kconfig.h` to
  `nrfx_reserved_resources.h`

Signed-off-by: Marcin Szymczyk <marcin.szymczyk@nordicsemi.no>
2025-01-14 13:38:03 +01:00
Marcin Szymczyk
aa3f78791d modules: hal_nordic: nrfx: use templates from hal_nordic
There is no reason to duplicate `nrfx_config_*.h` files.
Use configuration files from `hal_nordic/nrfx/templates`.

Signed-off-by: Marcin Szymczyk <marcin.szymczyk@nordicsemi.no>
2025-01-14 13:38:03 +01:00
Krzysztof Chruściński
eebaf819b6 modules: hal_nordic: nrfx_config: Customize NRFX_SPIM_EXTENDED_ENABLED
nrfx_config is setting NRFX_SPIM_EXTENDED_ENABLED based on presence of
a DT property. However, there are test cases when it is expected that
extended SPIM features will be disabled on a target that supports
extended features. Allow that by not setting the value if it is already
defined.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-10 09:48:59 +01:00
Krzysztof Chruściński
b0afa1e571 soc: nordic: nrf54l: Add nrf54l09 enga SoC
Add nrf54l09 EngA SoC in soc, dts and hal_nordic.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-01-08 19:10:24 +01:00
Rubin Gerritsen
81ed343212 modules: hal_nordic: nrfx: Compile NRFX_GPPI modules for 54lbsim
We should use CONFIG_SOC_COMPATIBLE_NRF54L15 whenever possible.
With the current bsim model of 54L these files do not yet compile,
but that can be added separately.

Compilation warning:
```
/nrfx_interconnect_dppic_ppib.c:158:36:
warning: implicit declaration of function ‘nrf_address_bus_get’
[-Wimplicit-function-declaration]
  158 |         uint8_t bus_address_area =
	nrf_address_bus_get(addr, p_dppic->apb_size);
      |                                    ^~~~~~~~~~~~~~~~~~~
```

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2025-01-07 11:52:12 +01:00
Adam Wojasinski
cd64d032be modules: hal_nordic: nrfx: Add missing GPIOTE logging symbol mapping
Add missing symbol mapping necessary to enable logging for GPIOTE
nrfx driver.

Signed-off-by: Adam Wojasinski <awojasinski@baylibre.com>
2025-01-07 11:52:01 +01:00
Andrzej Kuros
ad1657f04b modules: hal_nordic: remove setting of NRF_802154_USE_RAW_API
The non-raw API has been removed from the nRF 802.15.4 Radio Driver.
There is no need to set NRF_802154_USE_RAW_API macro anymore in
CMakeLists.txt that integrates the driver.

Signed-off-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
2025-01-03 11:39:30 +01:00
Nikodem Kastelik
e501b54bad soc: nordic: add common symbol for RAM control helper presence
Common symbol is defined by SoCs that support RAM control helper.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2024-12-23 18:40:52 +01:00
Krzysztof Chruściński
6c754e636f hal_nordic: nrfs: dvfs: Update SystemCoreClock on frequency change
Update SystemCoreClock to match current core frequency. This MDK
variable is used by nrfx_coredep_delay_us which performs busy
waiting and is used by k_busy_wait.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-12-17 23:14:06 +01:00
Paweł Pelikan
630f716c2f modules: hal_nordic: nrfs: add GDFS Service
Adding the implementation for the GDFS service

Signed-off-by: Paweł Pelikan <pawel.pelikan@nordicsemi.no>
2024-12-17 15:22:37 +01:00
Krzysztof Chruściński
4615890792 modules: hal_nordic: nrfs: Optimize communication
It is not needed to use always the system work queue to send a
message over IPC. In thread context IPC service can be called
directly. It speeds up the communication and allows to use nrfs
from the system work queue. Legacy approach could easily lead
to the deadlock if user would call nrfs from work queue and
pend on semaphore until response is received.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-12-13 16:13:37 +01:00
Lukasz Stepnicki
7fa8bf1756 modules: hal_nordic: dvfs: refactor
This is follow up to commit:
modules: hal_nordic: dvfs: added callback when scaling done
Used get and set timer user data functions.
Added missing help text in KConfig.

Signed-off-by: Lukasz Stepnicki <lukasz.stepnicki@nordicsemi.no>
2024-12-11 21:36:31 +01:00
Nikodem Kastelik
a1152cd9fb modules: nordic: nrfx: workaround MDK erratas symbol for nRF54L05 & L10
MDK 8.68.1 uses nRF54L15_XXAA symbol for determining whether
given errata is applicable or not for nRF54L Series SoCs.
This causes all erratas to be disabled for nRF54L05 and nRF54L10.
To mitigate this DEVELOP_IN_NRF54L15 symbol needs to be defined,
and removed once new MDK is integrated.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2024-12-10 11:08:49 +01:00
Rafał Kuźnia
401f784337 dts: nordic: Add dppic0 label to nRF53 and nRF91 devices
Added dppic0 node label, alongside the dppic to maintain backward
compatibility. The use of dppic0 is preferred.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-12-04 09:23:55 +01:00
Rafał Kuźnia
df7fbe6086 modules: hal_nordic: replace LUMOS_XXAA with NRF54L_SERIES
The NRF54L_SERIES define is more specific and should be used in favor of
LUMOS_XXAA.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-12-04 09:23:55 +01:00
Rafał Kuźnia
d2cb0bde55 modules: hal_nordic: NRFX_GPPI enables GPPI on all platforms
Changed the CMakeLists to enable the nrfx_gppi utilities based solely on
the CONFIG_NRFX_GPPI Kconfig. This unifies the configuration on all nRF
SoC families.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-12-04 09:23:55 +01:00
Rafał Kuźnia
006100a1c1 modules: hal_nordic: add Kconfig selecting resource header
The resource reservation header is now included according to a Kconfig
value. The Kconfig can be overriden out-of-tree in case a different
header is needed.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-12-04 09:23:55 +01:00
Przemyslaw Bida
e0f94f8823 drivers: ieee802154: New API for modulated carrier wave transmission.
Added new API function to start modulated carrier wave transmission

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-11-29 21:46:46 +01:00
Grzegorz Swiderski
c120f4fe56 modules: hal_nordic: nrfs: Enqueue requests when not connected
Allow `nrfs_backend_send` to push early requests into the message queue,
but defer sending them until a connection is established, at which point
the queue will be flushed. This benefits asynchronous code by making it
optional to call `nrfs_backend_wait_for_connection` before using the
nrfs service API, which is already non-blocking.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-11-28 12:52:16 +01:00
Dominik Kilian
d5262b2113 modules: hal_nordic: Allow app mem from net core in serialized 802.15.4
Currently, the serialization module for 802.15.4 enabled
the network core without giving it access to application
core memory in trusted execution mode. This commit
grands this access.

Signed-off-by: Dominik Kilian <Dominik.Kilian@nordicsemi.no>
2024-11-26 14:46:47 +00:00
Carles Cufi
e78832034f soc: nordic: Introduce the nRF54L05 and nRF54L10
These two new ICs are variants of the nRF54L15 with different memory
sizes:

- nRF54L05: 500KB RRAM, 96KB RAM
- nRF54L10: 1022KB RRAM, 192KB RAM
- nRF54L15: 1524KB RRAM, 256KB RAM

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2024-11-21 09:26:38 +01:00
Nikodem Kastelik
17a81280b2 soc: nordic: nrf54l15: fix APPROTECT handling
To configure APPROTECT on nRF54L15 different set of MDK symbols
must be used. Additionally, nRF54L15 does not support loading
APPROTECT configuration from the UICR in runtime.

Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
2024-11-19 10:01:07 -05:00
Rafał Kuźnia
e18410944e modules: hal_nordic: add NRFX_GPPI config
The nrfx_gppi module is an abstraction over nrfx_ppi and nrfx_dppi
drivers. It now has a Kconfig option that is separate from nrfx_dppi and
by default it enables all PPI/DPPI instances, if available.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-11-19 09:53:10 -05:00
Rafał Kuźnia
40d9dae867 modules: hal_nordic: rework resource reservations
The resource reservation definitions were moved to a separate header
file.

The PPIB and DPPI channel and group resources can now be statically
allocated for each individual instance.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-11-19 09:53:10 -05:00
Rafał Kuźnia
bf66012544 modules: hal_nordic: Enable nrfx_ppib drivers
The new nrfx_ppib driver can now be enabled, when the corrensponding
device tree node has the okay status.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-11-19 09:53:10 -05:00
Rafał Kuźnia
d6007690de manifest: update hal_nordic revision
The hal_nordic revision was updated to bring in NRFX v3.8.0.

Aligned the uses of single-instance API to use multi-instance instead.

Signed-off-by: Rafał Kuźnia <rafal.kuznia@nordicsemi.no>
2024-11-19 09:53:10 -05:00
Carles Cufi
9643ca20e9 nordic: Remove the nRF54H20 Engineering B
The production version of the nRF54H20 SoC is now available, so remove
the initial Engineering B (EngB) preview version.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2024-11-16 15:09:14 -05:00
Gerard Marull-Paretas
0b18f31246 modules: hal_nordic: bump regtool to 8.0.0
It is required for some pinctrl changes.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-11-01 12:10:12 -05:00
Carles Cufi
45fbc31a3f modules: hal_nordic: Require nrf-regtool 7.0.0
Some upcoming changes require this version.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2024-10-27 14:30:33 -07:00
Grzegorz Swiderski
0379424b43 modules: hal_nordic: nrfs: Enable DVFS service on nRF54H20 EngB
Just like on nRF54H20 EngC.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-10-24 16:55:44 +01:00
Grzegorz Swiderski
3f221f9577 modules: hal_nordic: Disable 802.15.4 temp update on nRF54H20 EngB
Just like on nRF54H20 EngC.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-10-24 16:55:44 +01:00
Grzegorz Swiderski
ff70e2f4c4 modules: hal_nordic: Integrate nrf-regtool 7.0.0
This new version introduces a new sub-command `uicr-compile`, which will
generate `uicr.hex` based on a new binary format required by an upcoming
release of Secure Domain Firmware (SDFW) closer to production.

Since this is a breaking change, and SDFW is not finalized yet, we need
to support two nrf-regtool versions for a short time, and use different
CLI invocations based on which version is installed. Hence, the minimum
required version is unchanged.

Additionally, retire CONFIG_NRF_REGTOOL_EXTRA_GENERATE_ARGS. There will
be no use for it moving forward.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-10-22 20:40:10 +02:00
Carles Cufi
51c1e45301 soc: nordic: Remove the nRF54L15 EngA
The production version of the nRF54L15 SoC is now available, so remove
the initial Engineering A (EngA) preview version.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2024-10-21 01:46:39 +01:00
Michał Stasiak
f8466b4791 drivers: audio: dmic: Add support for multiple nrf PDM instances
Driver now uses multi-instance PDM nrfx API and
defines PDM device based on available instances.
It also introduces calculating PDM frequency using
prescaler, present on nRF54L15 FP1.
Updated nrfx API version changed to 3.7 to use the
new PDM API.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2024-10-18 08:19:01 -04:00
Michał Stasiak
c092964dd2 modules: hal_nordic: Add new PDM instances
New PDM, some present on nRF54L15 FP1, instances have
been added. Modified condfiguration file for nRF5340,
which now requires PDM0 instance.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2024-10-18 08:19:01 -04:00
Michał Stasiak
005587fd61 modules: hal_nordic: Add nrfx configuration for nRF54L15 FP1
Added dedicated nrfx configuration files for
nRF54L15 FP1, which differ from ENGA variant with
inclusion of PDM.

Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>
2024-10-18 08:19:01 -04:00
Rafal Dyla
ec77fc399c modules: hal_nordic: Add global domain power request service
Service for powering peripherals that use GPIO pins
in the global power domains:
- Active Fast
- Active Slow
- Main Slow

Signed-off-by: Rafal Dyla <rafal.dyla@nordicsemi.no>
2024-10-09 18:36:47 +01:00
Torsten Rasmussen
46a3e61bc7 cmake: nordic: save build information regarding SVD file used.
Save information regarding SVD file in use in vendor-specific section
of the build info file.

Information is stored under Nordic section.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
2024-10-08 17:00:30 +02:00
Gerard Marull-Paretas
72ab376c24 modules: hal_nordic: nrfs: add support for nRF54H20 EngB
Make nrfs compatible with the EngB soc revision.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-10-07 18:42:14 +02:00
Gerard Marull-Paretas
40f5ca03b5 modules: hal_nordic: add support for nRF54H20 EngB
Add support for nRF54H20 EngB in the Nordic HAL glue code.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-10-07 18:42:14 +02:00
Adam Kondraciuk
bc7a5b6781 drivers: timer: nrf_grtc_timer: Align Zephyr to new AUTOEN read manner
The new GRTC reading manner of the SYSCOUNTER uses hardware mechanism which
allows to keep it alive when any of CPUs is not sleeping. Otherwise
the SYSCOUNTER goes into sleep mode. Thus there is no
longer need to maintain the `CONFIG_NRF_GRTC_SLEEP_ALLOWED` symbol, however
if the user wants to have the SYSCOUNTER enabled all the time the
`CONFIG_NRF_GRTC_ALWAYS_ON` can be used instead.
The nrfx_grtc  driver no longer provides the `wakeup-read-sleep` reading
manner.
Also setting the GRTC clock source is performed by the nrfx_grtc driver so
it has been removed from the `sys_clock_driver_init()` function.

Signed-off-by: Adam Kondraciuk <adam.kondraciuk@nordicsemi.no>
2024-10-07 18:42:14 +02:00
Gerard Marull-Paretas
9d82a03444 modules: hal_nordic: add nrf54l system sources to bsim build
Include system_nrf54l.c file when building for bsim.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-10-07 18:42:14 +02:00
Gerard Marull-Paretas
97dff5bccb modules: hal_nordic: align PDM configuration
Introduce instance 0, PDM0, following nrfx 3.7.0 update.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
2024-10-07 18:42:14 +02:00
Yong Cong Sin
52a202309b zephyr: bulk update to DT_NODE_HAS_STATUS_OKAY
Change instances of:

DT_NODE_HAS_STATUS(<node_id>, okay)

to

DT_NODE_HAS_STATUS_OKAY(<node_id>)

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
2024-10-03 17:06:52 +01:00
Lukasz Stepnicki
02045f110c modules: hal_nordic: dvfs: patch medlow trim entry
DVFS medlow oppoint should use trim entry index 2,
this needs to be updated in hal/hal_nordic.
Currently this is not possible because of time
constraints that is why this temporary patch
is applied. This is the only point where
new_f_trim_entry is used.

Signed-off-by: Lukasz Stepnicki <lukasz.stepnicki@nordicsemi.no>
2024-09-18 19:55:38 +01:00
Grzegorz Swiderski
1f8d1b705c modules: hal_nordic: nrfx: Add nrfx_config_ext.h
Taking a cue from `nrfx/templates`, introduce this file so that it can
be overridden out-of-tree to add external nRF product definitions.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-09-10 14:39:22 +01:00
Grzegorz Swiderski
5cb49dcd94 modules: hal_nordic: Add NRFX_GPIOTE131_CHANNELS_USED mask
GPIOTE131 channels are reserved in the same way as the GPIOTE130 ones.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-09-09 13:54:39 -04:00
Krzysztof Chruściński
f2ec240b20 dts: nordic: Add nrf-tbm (trace buffer monitor) node
Add new binding and a node to nrf54h20. Update Kconfig and nrfx_config
to include nrfx_tbm driver when node with that compatible is enabled.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2024-09-06 11:31:27 -04:00