# Copyright (c) 2016 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config HAS_NORDIC_DRIVERS
	bool
	default y if HAS_HW_NRF_RADIO_IEEE802154

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
	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

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.

endif # NRF_802154_RADIO_DRIVER

endmenu

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
