zephyr/modules/Kconfig.nordic
Hubert Miś d35d26d250 drivers: ieee802154: Reserve TIMER used by 802.15.4 driver
Use new Kconfig structure to marks which TIMER peripheral is reserved by
802.15.4 radio driver. It prevents peripheral usage collisions.

Signed-off-by: Hubert Miś <hubert.mis@nordicsemi.no>
2020-12-15 11:22:56 +01:00

606 lines
14 KiB
Plaintext

# Copyright (c) 2016 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config HAS_NORDIC_DRIVERS
bool
menu "Nordic drivers"
depends on HAS_NORDIC_DRIVERS
menuconfig NRF_802154_RADIO_DRIVER
bool "Enable nRF IEEE 802.15.4 radio driver"
depends on HAS_HW_NRF_RADIO_IEEE802154
select DYNAMIC_INTERRUPTS
select ENTROPY_GENERATOR
select NRF_HW_TIMER1_RESERVED
help
This option enables nRF IEEE 802.15.4 radio driver in Zephyr. Note,
that beside the radio peripheral itself, this drivers occupies several
other peripherals. A complete list can be found in the hal_nordic
repository, within drivers/nrf_radio_802154/nrf_802154_peripherals.h
file. As the nRF IEEE 802.15.4 radio driver defines IRQ configuration
abstraction layer API and its Zephyr-specific implementation uses dynamic
interrupts, the DYNAMIC_INTERRUPTS switch is selected unconditionally.
if NRF_802154_RADIO_DRIVER
config NRF_802154_MULTIPROTOCOL_SUPPORT
bool
help
In dynamic multiprotocol applications, access to the radio peripheral
must be distributed by an arbiter. To support this arbitration
in the driver, this option must be enabled. Otherwise, the driver
assumes that access to the radio peripheral is granted indefinitely.
choice NRF_802154_CCA_MODE
prompt "nRF IEEE 802.15.4 CCA mode"
default NRF_802154_CCA_MODE_ED
help
CCA mode
config NRF_802154_CCA_MODE_ED
bool "Energy Above Threshold"
config NRF_802154_CCA_MODE_CARRIER
bool "Carrier Seen"
config NRF_802154_CCA_MODE_CARRIER_AND_ED
bool "Energy Above Threshold AND Carrier Seen"
config NRF_802154_CCA_MODE_CARRIER_OR_ED
bool "Energy Above Threshold OR Carrier Seen"
endchoice
choice NRF_802154_SL_TYPE
prompt "nRF IEEE 802.15.4 Service Layer Type"
default NRF_802154_SL_OPENSOURCE
config NRF_802154_SL_OPENSOURCE
bool "nRF IEEE 802.15.4 Open source Service Layer"
endchoice
config NRF_802154_CCA_ED_THRESHOLD
int "nRF IEEE 802.15.4 CCA Energy Detection threshold"
default 45
help
If energy detected in a given channel is above the value then the
channel is deemed busy. The unit is defined as per 802.15.4-2006 spec.
config NRF_802154_CCA_CORR_THRESHOLD
int "nRF IEEE 802.15.4 CCA Correlator threshold"
default 45
config NRF_802154_CCA_CORR_LIMIT
int "nRF IEEE 802.15.4 CCA Correlator limit"
default 2
help
Limit for occurrences above correlator threshold. When not equal to
zero the correlator based signal detect is enabled.
config NRF_802154_PENDING_SHORT_ADDRESSES
int "nRF 802.15.4 pending short addresses"
default 16
help
Number of slots containing short addresses of nodes for which pending data is stored
config NRF_802154_PENDING_EXTENDED_ADDRESSES
int "nRF 802.15.4 pending extended addresses"
default 16
help
Number of slots containing extended addresses of nodes for which pending data is stored
config NRF_802154_RX_BUFFERS
int "nRF 802.15.4 receive buffers"
default 16
help
Number of buffers in nRF 802.15.4 driver receive queue. If this value is modified,
its serialization host counterpart must be set to the exact same value.
endif # NRF_802154_RADIO_DRIVER
config NRF_802154_SER_HOST
bool "nRF IEEE 802.15.4 Driver serialization host"
depends on !NRF_802154_RADIO_DRIVER
depends on !HAS_HW_NRF_RADIO_IEEE802154
select IPM
select IPM_NRFX
select IPM_MSG_CH_0_ENABLE
select IPM_MSG_CH_1_ENABLE
select IPM_MSG_CH_0_TX
select IPM_MSG_CH_1_RX
select OPENAMP
select IEEE802154_NRF5_EXT_IRQ_MGMT if IEEE802154_NRF5
help
Enable serialization of nRF IEEE 802.15.4 Driver. This option is to be
used if radio is not available in the core, but radio services are
provided by a serialization backend.
menuconfig NRF_802154_SER_RADIO
bool "nRF IEEE 802.15.4 Driver serialization radio"
depends on HAS_HW_NRF_RADIO_IEEE802154
depends on !IEEE802154_NRF5
select IPM
select IPM_NRFX
select IPM_MSG_CH_0_ENABLE
select IPM_MSG_CH_1_ENABLE
select IPM_MSG_CH_0_RX
select IPM_MSG_CH_1_TX
select OPENAMP
select NRF_802154_RADIO_DRIVER
help
Enable serialization of nRF IEEE 802.15.4 Driver. This option is to be
used if radio is available in the core to provide radio services over
a serialization backend.
if NRF_802154_SER_RADIO
config NRF_802154_SER_RADIO_INIT_PRIO
int "nRF52 IEEE 802.15.4 serialization initialization priority"
default 81
help
Set the initialization priority number. Do not mess with it unless
you know what you are doing.
endif
menu "nRF 802.15.4 serialization"
depends on NRF_802154_SER_HOST || NRF_802154_SER_RADIO
config NRF_802154_SER_LOG
bool "802.15.4 serialization logs"
default n
help
This option enable debug logs of 802.15.4 serialization module.
config NRF_802154_SER_BUFFER_ALLOCATOR_THREAD_SAFE
bool
# Hidden option
default y
help
This option specifies if buffers for 802.15.4 serialization are allocated
in a thread-safe manner.
config NRF_802154_SER_DEFAULT_RESPONSE_TIMEOUT
int "Default Spinel serialization response timeout in milliseconds"
default 500
help
This option specifies default timeout of spinel status response
in milliseconds.
if NRF_802154_SER_HOST
config NRF_802154_RX_BUFFERS
int "nRF 802.15.4 receive buffers"
default 16
help
Number of buffers in nRF 802.15.4 driver serialization host's receive queue.
If this value is modified, its remote counterpart must be set to the exact same value.
endif
endmenu # NRF_802154_SER_HOST || NRF_802154_SER_RADIO
endmenu # HAS_NORDIC_DRIVERS
config HAS_NRFX
bool
menu "nrfx drivers"
depends on HAS_NRFX
config NRFX_ADC
bool "Enable ADC driver"
depends on HAS_HW_NRF_ADC
config NRFX_CLOCK
bool "Enable CLOCK driver"
depends on HAS_HW_NRF_CLOCK
config NRFX_CLOCK_LFXO_TWO_STAGE_ENABLED
bool "Enable two stage start sequence of the low frequency clock"
depends on NRFX_CLOCK
config NRFX_COMP
bool "Enable COMP driver"
depends on HAS_HW_NRF_COMP
config NRFX_DPPI
bool "Enable DPPI allocator"
depends on HAS_HW_NRF_DPPIC
config NRFX_EGU
bool "Enable EGU driver"
depends on HAS_HW_NRF_EGU0 || HAS_HW_NRF_EGU1 || HAS_HW_NRF_EGU2 || \
HAS_HW_NRF_EGU3 || HAS_HW_NRF_EGU4 || HAS_HW_NRF_EGU5
config NRFX_EGU0
bool "Enable EGU0 instance"
depends on HAS_HW_NRF_EGU0
select NRFX_EGU
config NRFX_EGU1
bool "Enable EGU1 instance"
depends on HAS_HW_NRF_EGU1
select NRFX_EGU
config NRFX_EGU2
bool "Enable EGU2 instance"
depends on HAS_HW_NRF_EGU2
select NRFX_EGU
config NRFX_EGU3
bool "Enable EGU3 instance"
depends on HAS_HW_NRF_EGU3
select NRFX_EGU
config NRFX_EGU4
bool "Enable EGU4 instance"
depends on HAS_HW_NRF_EGU4
select NRFX_EGU
config NRFX_EGU5
bool "Enable EGU5 instance"
depends on HAS_HW_NRF_EGU5
select NRFX_EGU
config NRFX_GPIOTE
bool "Enable GPIOTE driver"
depends on HAS_HW_NRF_GPIOTE
config NRFX_I2S
bool "Enable I2S driver"
depends on HAS_HW_NRF_I2S
config NRFX_IPC
bool "Enable IPC driver"
depends on HAS_HW_NRF_IPC
config NRFX_LPCOMP
bool "Enable LPCOMP driver"
depends on HAS_HW_NRF_LPCOMP
config NRFX_NFCT
bool "Enable NFCT driver"
depends on HAS_HW_NRF_NFCT
select NRFX_TIMER4 if SOC_SERIES_NRF52X
select NRFX_TIMER2 if SOC_SERIES_NRF53X
config NRFX_NVMC
bool "Enable NVMC driver"
config NRFX_PDM
bool "Enable PDM driver"
depends on HAS_HW_NRF_PDM
config NRFX_POWER
bool "Enable POWER driver"
depends on HAS_HW_NRF_POWER
# On SoCs featuring the USBREG peripheral, the POWER driver uses
# internally the USBREG driver.
select NRFX_USBREG if HAS_HW_NRF_USBREG
config NRFX_PPI
bool "Enable PPI allocator"
depends on HAS_HW_NRF_PPI
config NRFX_PWM
bool "Enable PWM driver"
depends on HAS_HW_NRF_PWM0 || HAS_HW_NRF_PWM1 || \
HAS_HW_NRF_PWM2 || HAS_HW_NRF_PWM3
config NRFX_PWM0
bool "Enable PWM0 instance"
depends on HAS_HW_NRF_PWM0
select NRFX_PWM
config NRFX_PWM1
bool "Enable PWM1 instance"
depends on HAS_HW_NRF_PWM1
select NRFX_PWM
config NRFX_PWM2
bool "Enable PWM2 instance"
depends on HAS_HW_NRF_PWM2
select NRFX_PWM
config NRFX_PWM3
bool "Enable PWM3 instance"
depends on HAS_HW_NRF_PWM3
select NRFX_PWM
config NRFX_QDEC
bool "Enable QDEC driver"
depends on HAS_HW_NRF_QDEC
config NRFX_QSPI
bool "Enable QSPI driver"
depends on HAS_HW_NRF_QSPI
config NRFX_RNG
bool "Enable RNG driver"
depends on HAS_HW_NRF_RNG
config NRFX_RTC
bool "Enable RTC driver"
depends on HAS_HW_NRF_RTC0 || HAS_HW_NRF_RTC1 || HAS_HW_NRF_RTC2
config NRFX_RTC0
bool "Enable RTC0 instance"
depends on HAS_HW_NRF_RTC0
select NRFX_RTC
config NRFX_RTC1
bool "Enable RTC1 instance"
depends on HAS_HW_NRF_RTC1
select NRFX_RTC
config NRFX_RTC2
bool "Enable RTC2 instance"
depends on HAS_HW_NRF_RTC2
select NRFX_RTC
config NRFX_SAADC
bool "Enable SAADC driver"
depends on HAS_HW_NRF_SAADC
config NRFX_SPI
bool "Enable SPI driver"
depends on HAS_HW_NRF_SPI0 || HAS_HW_NRF_SPI1 || HAS_HW_NRF_SPI2
config NRFX_SPI0
bool "Enable SPI0 instance"
depends on HAS_HW_NRF_SPI0
select NRFX_SPI
config NRFX_SPI1
bool "Enable SPI1 instance"
depends on HAS_HW_NRF_SPI1
select NRFX_SPI
config NRFX_SPI2
bool "Enable SPI2 instance"
depends on HAS_HW_NRF_SPI2
select NRFX_SPI
config NRFX_SPIM
bool "Enable SPIM driver"
depends on HAS_HW_NRF_SPIM0 || HAS_HW_NRF_SPIM1 || \
HAS_HW_NRF_SPIM2 || HAS_HW_NRF_SPIM3 || HAS_HW_NRF_SPIM4
config NRFX_SPIM0
bool "Enable SPIM0 instance"
depends on HAS_HW_NRF_SPIM0
select NRFX_SPIM
config NRFX_SPIM1
bool "Enable SPIM1 instance"
depends on HAS_HW_NRF_SPIM1
select NRFX_SPIM
config NRFX_SPIM2
bool "Enable SPIM2 instance"
depends on HAS_HW_NRF_SPIM2
select NRFX_SPIM
config NRFX_SPIM3
bool "Enable SPIM3 instance"
depends on HAS_HW_NRF_SPIM3
select NRFX_SPIM
config NRFX_SPIM4
bool "Enable SPIM4 instance"
depends on HAS_HW_NRF_SPIM4
select NRFX_SPIM
config NRFX_SPIS
bool "Enable SPIS driver"
depends on HAS_HW_NRF_SPIS0 || HAS_HW_NRF_SPIS1 || \
HAS_HW_NRF_SPIS2 || HAS_HW_NRF_SPIS3
config NRFX_SPIS0
bool "Enable SPIS0 instance"
depends on HAS_HW_NRF_SPIS0
select NRFX_SPIS
config NRFX_SPIS1
bool "Enable SPIS1 instance"
depends on HAS_HW_NRF_SPIS1
select NRFX_SPIS
config NRFX_SPIS2
bool "Enable SPIS2 instance"
depends on HAS_HW_NRF_SPIS2
select NRFX_SPIS
config NRFX_SPIS3
bool "Enable SPIS3 instance"
depends on HAS_HW_NRF_SPIS3
select NRFX_SPIS
config NRFX_SYSTICK
bool "Enable SYSTICK driver"
depends on CPU_CORTEX_M_HAS_SYSTICK
config NRFX_TEMP
bool "Enable TEMP driver"
depends on HAS_HW_NRF_TEMP
config NRFX_TIMER
bool "Enable TIMER driver"
depends on HAS_HW_NRF_TIMER0 || HAS_HW_NRF_TIMER1 || \
HAS_HW_NRF_TIMER2 || HAS_HW_NRF_TIMER3 || \
HAS_HW_NRF_TIMER4
config NRFX_TIMER0
bool "Enable TIMER0 instance"
depends on HAS_HW_NRF_TIMER0
select NRFX_TIMER
config NRFX_TIMER1
bool "Enable TIMER1 instance"
depends on HAS_HW_NRF_TIMER1
select NRFX_TIMER
config NRFX_TIMER2
bool "Enable TIMER2 instance"
depends on HAS_HW_NRF_TIMER2
select NRFX_TIMER
config NRFX_TIMER3
bool "Enable TIMER3 instance"
depends on HAS_HW_NRF_TIMER3
select NRFX_TIMER
config NRFX_TIMER4
bool "Enable TIMER4 instance"
depends on HAS_HW_NRF_TIMER4
select NRFX_TIMER
config NRFX_TWI
bool "Enable TWI driver"
depends on HAS_HW_NRF_TWI0 || HAS_HW_NRF_TWI1
config NRFX_TWI0
bool "Enable TWI0 instance"
depends on HAS_HW_NRF_TWI0
select NRFX_TWI
config NRFX_TWI1
bool "Enable TWI1 instance"
depends on HAS_HW_NRF_TWI1
select NRFX_TWI
config NRFX_TWIM
bool "Enable TWIM driver"
depends on HAS_HW_NRF_TWIM0 || HAS_HW_NRF_TWIM1 || \
HAS_HW_NRF_TWIM2 || HAS_HW_NRF_TWIM3
config NRFX_TWIM0
bool "Enable TWIM0 instance"
depends on HAS_HW_NRF_TWIM0
select NRFX_TWIM
config NRFX_TWIM1
bool "Enable TWIM1 instance"
depends on HAS_HW_NRF_TWIM1
select NRFX_TWIM
config NRFX_TWIM2
bool "Enable TWIM2 instance"
depends on HAS_HW_NRF_TWIM2
select NRFX_TWIM
config NRFX_TWIM3
bool "Enable TWIM3 instance"
depends on HAS_HW_NRF_TWIM3
select NRFX_TWIM
config NRFX_TWIS
bool "Enable TWIS driver"
depends on HAS_HW_NRF_TWIS0 || HAS_HW_NRF_TWIS1 || \
HAS_HW_NRF_TWIS2 || HAS_HW_NRF_TWIS3
config NRFX_TWIS0
bool "Enable TWIS0 instance"
depends on HAS_HW_NRF_TWIS0
select NRFX_TWIS
config NRFX_TWIS1
bool "Enable TWIS1 instance"
depends on HAS_HW_NRF_TWIS1
select NRFX_TWIS
config NRFX_TWIS2
bool "Enable TWIS2 instance"
depends on HAS_HW_NRF_TWIS2
select NRFX_TWIS
config NRFX_TWIS3
bool "Enable TWIS3 instance"
depends on HAS_HW_NRF_TWIS3
select NRFX_TWIS
config NRFX_UART
bool "Enable UART driver"
depends on HAS_HW_NRF_UART0
config NRFX_UART0
bool "Enable UART0 instance"
depends on HAS_HW_NRF_UART0
select NRFX_UART
config NRFX_UARTE
bool "Enable UARTE driver"
depends on HAS_HW_NRF_UARTE0 || HAS_HW_NRF_UARTE1 || \
HAS_HW_NRF_UARTE2 || HAS_HW_NRF_UARTE3
config NRFX_UARTE0
bool "Enable UARTE0 instance"
depends on HAS_HW_NRF_UARTE0
select NRFX_UARTE
config NRFX_UARTE1
bool "Enable UARTE1 instance"
depends on HAS_HW_NRF_UARTE1
select NRFX_UARTE
config NRFX_UARTE2
bool "Enable UARTE2 instance"
depends on HAS_HW_NRF_UARTE2
select NRFX_UARTE
config NRFX_UARTE3
bool "Enable UARTE3 instance"
depends on HAS_HW_NRF_UARTE3
select NRFX_UARTE
config NRFX_USBD
bool "Enable USBD driver"
depends on HAS_HW_NRF_USBD
select NRFX_SYSTICK
config NRFX_USBREG
bool "Enable USBREG driver"
depends on HAS_HW_NRF_USBREG
config NRFX_WDT
bool "Enable WDT driver"
depends on HAS_HW_NRF_WDT || HAS_HW_NRF_WDT0 || HAS_HW_NRF_WDT1
config NRFX_WDT0
bool "Enable WDT0 instance"
depends on HAS_HW_NRF_WDT || HAS_HW_NRF_WDT0
select NRFX_WDT
config NRFX_WDT1
bool "Enable WDT1 instance"
depends on HAS_HW_NRF_WDT1
select NRFX_WDT
config NRFX_PRS
bool "Enable Peripheral Resource Sharing module"
config NRFX_PRS_BOX_0
bool "Enable PRS box 0"
select NRFX_PRS
config NRFX_PRS_BOX_1
bool "Enable PRS box 1"
select NRFX_PRS
config NRFX_PRS_BOX_2
bool "Enable PRS box 2"
select NRFX_PRS
config NRFX_PRS_BOX_3
bool "Enable PRS box 3"
select NRFX_PRS
config NRFX_PRS_BOX_4
bool "Enable PRS box 4"
select NRFX_PRS
endmenu