zephyr/modules
Gerard Marull-Paretas f23b4fdb2d modules: hal_nordic: nrfx: use dt_nodelabel_exists
As of today, nrfx components are selectable depending if devicetree has
a certain compatible or not, and in case of IP that can operate in
multiple modes, nodelabel+compatible. An example of the later is:

```
config NRFX_SPI0
    bool "SPI0 driver instance"
    depends on $(dt_nodelabel_has_compat,spi0,$(DT_COMPAT_NORDIC_NRF_SPI))
    select NRFX_SPI

config NRFX_SPIM0
    bool "SPIM0 driver instance"
    depends on $(dt_nodelabel_has_compat,spi0,$(DT_COMPAT_NORDIC_NRF_SPIM))
    select NRFX_SPIM

config NRFX_SPIS0
    bool "SPIS0 driver instance"
    depends on $(dt_nodelabel_has_compat,spi0,$(DT_COMPAT_NORDIC_NRF_SPIS))
    select NRFX_SPIS
```

These symbols are later selected by e.g. SPI driver if `spi0` node is
enabled. While this works in the Zephyr context, it can be a problem in
applications using nrfx directly in the application layer, unless they
tweak devicetree. For example, if devicetree `spi0` node defaults to
`compatible = "nordic,nrf-spim"`, NRFX_SPI0 or NRFX_SPIS0 won't be
selectable, but an application using nrfx directly doesn't really care
about what is defined in devicetree as it is effectively bypassing it.
It just wants to select e.g. `CONFIG_NRFX_SPI0=y` and forget about the
rest.

This patch fixes this problem by just checking for the existence of
certain nodelabels.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2025-03-11 18:54:57 +01:00
..
acpica
canopennode
cmsis
cmsis-dsp
cmsis-nn
fatfs
hal_ambiq
hal_ethos_u
hal_gigadevice
hal_infineon
hal_nordic modules: hal_nordic: nrfx: use dt_nodelabel_exists 2025-03-11 18:54:57 +01:00
hal_nxp
hal_rpi_pico
hal_silabs
hal_st
hal_tdk
hal_wch
hostap modules: hostap: remove select FILE_SYSTEM 2025-03-07 20:27:12 +01:00
liblc3
littlefs
loramac-node
lvgl
lz4
mbedtls
nanopb
nrf_wifi
openthread
percepio
segger
tflite-micro
thrift
trusted-firmware-a
trusted-firmware-m
uoscore-uedhoc
zcbor
Kconfig
Kconfig.altera
Kconfig.atmel
Kconfig.chre
Kconfig.cypress
Kconfig.eos_s3
Kconfig.esp32
Kconfig.imx
Kconfig.infineon
Kconfig.intel
Kconfig.libmetal
Kconfig.mcuboot
Kconfig.mcux
Kconfig.microchip
Kconfig.nuvoton
Kconfig.nxp_s32
Kconfig.open-amp
Kconfig.picolibc
Kconfig.renesas_fsp
Kconfig.rust
Kconfig.simplelink
Kconfig.sof
Kconfig.stm32
Kconfig.sysbuild
Kconfig.syst
Kconfig.telink
Kconfig.tinycrypt
Kconfig.vega
Kconfig.wurthelektronik
Kconfig.xtensa
modules.cmake