# Nordic Semiconductor nRF5 802.15.4 configuration options

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

menuconfig IEEE802154_NRF5
	bool "nRF52 series IEEE 802.15.4 Driver"
	depends on NETWORKING && HAS_HW_NRF_RADIO_IEEE802154
	select NRF_802154_RADIO_DRIVER

if IEEE802154_NRF5

config IEEE802154_NRF5_DRV_NAME
	string "nRF52 IEEE 802.15.4 Driver's name"
	default "IEEE802154_nrf5"
	help
	  This option sets the driver name

config IEEE802154_NRF5_RX_STACK_SIZE
	int "Driver's internal RX thread stack size"
	default 800
	help
	  This option sets the driver's stack size for its internal RX thread.
	  The default value should be sufficient, but in case it proves to be
	  a too little one, this option makes it easy to play with the size.

config IEEE802154_NRF5_INIT_PRIO
	int "nRF52 IEEE 802.15.4 initialization priority"
	default 80
	help
	  Set the initialization priority number. Do not mess with it unless
	  you know what you are doing.

config IEEE802154_NRF5_EXT_IRQ_MGMT
	bool "Radio IRQ is managed by an external module"
	help
	  The driver may manage radio IRQs by itself, or use an external
	  radio IRQ provider. When radio IRQs are managed by an external
	  provider, the driver shall not configure radio IRQs.

	  Enable this option when external radio IRQ provider is enabled in
	  the system. One example of external radio IRQ provider could be
	  a radio arbiter used in dynamic multiprotocol applications.

endif
