1# Copyright (c) 2016-2021 Nordic Semiconductor ASA 2# SPDX-License-Identifier: Apache-2.0 3 4config ZEPHYR_HAL_NORDIC_MODULE 5 bool 6 7config HAS_NORDIC_DRIVERS 8 bool 9 10menu "Nordic drivers" 11 depends on HAS_NORDIC_DRIVERS 12 13choice NRF_802154_SOURCE 14 prompt "Source of the IEEE 802.15.4 radio driver" 15 16config NRF_802154_SOURCE_HAL_NORDIC 17 bool "Open source" 18 19endchoice 20 21menuconfig NRF_802154_RADIO_DRIVER 22 bool "NRF IEEE 802.15.4 radio driver" 23 depends on HAS_HW_NRF_RADIO_IEEE802154 24 select DYNAMIC_INTERRUPTS 25 select ENTROPY_GENERATOR 26 select CLOCK_CONTROL 27 depends on !$(dt_nodelabel_enabled,timer1) 28 help 29 This option enables nRF IEEE 802.15.4 radio driver in Zephyr. Note, 30 that beside the radio peripheral itself, this drivers occupies several 31 other peripherals. A complete list can be found in the hal_nordic 32 repository, within drivers/nrf_radio_802154/nrf_802154_peripherals.h 33 file. As the nRF IEEE 802.15.4 radio driver defines IRQ configuration 34 abstraction layer API and its Zephyr-specific implementation uses dynamic 35 interrupts, the DYNAMIC_INTERRUPTS switch is selected unconditionally. 36 37if NRF_802154_RADIO_DRIVER 38 39config NRF_802154_CONSTLAT_CONTROL 40 def_bool y 41 depends on SOC_SERIES_NRF54LX && NRF_802154_SL_OPENSOURCE 42 select NRF_SYS_EVENT 43 help 44 Allows the nRF 802.15.4 radio driver to manage the constant latency state. 45 46config NRF_802154_MULTIPROTOCOL_SUPPORT 47 bool 48 help 49 In dynamic multiprotocol applications, access to the radio peripheral 50 must be distributed by an arbiter. To support this arbitration 51 in the driver, this option must be enabled. Otherwise, the driver 52 assumes that access to the radio peripheral is granted indefinitely. 53 54choice NRF_802154_SL_TYPE 55 prompt "nRF IEEE 802.15.4 Service Layer Type" 56 57config NRF_802154_SL_OPENSOURCE 58 bool "Open source" 59 select SENSOR if NRF_802154_TEMPERATURE_UPDATE 60 select TEMP_NRF5 if NRF_802154_TEMPERATURE_UPDATE 61 62endchoice 63 64config NRF_802154_TEMPERATURE_UPDATE 65 bool "nRF 802.15.4 temperature update" 66 default y if !SOC_NRF54H20 67 help 68 Enable temperature update for nRF 802.15.4 driver 69 70config NRF_802154_TEMPERATURE_UPDATE_INIT_PRIO 71 int "nRF52 IEEE 802.15.4 temperature update initialization priority" 72 depends on NRF_802154_TEMPERATURE_UPDATE 73 default 91 74 help 75 Set the initialization priority of a temperature update for nRF 802.15.4 driver. 76 77config NRF_802154_TEMPERATURE_UPDATE_PERIOD 78 int "nRF 802.15.4 temperature update period in milliseconds" 79 depends on NRF_802154_TEMPERATURE_UPDATE 80 default 60000 81 help 82 Period of a temperature update for nRF 802.15.4 driver in milliseconds 83 84endif # NRF_802154_RADIO_DRIVER 85 86config NRF_802154_SERIALIZATION 87 bool 88 select IPC_SERVICE 89 select MBOX 90 help 91 This helper symbol indicates that the nRF 802.15.4 serialization is available. 92 93config NRF_802154_SER_HOST 94 bool "nRF IEEE 802.15.4 Driver serialization host" 95 depends on !NRF_802154_RADIO_DRIVER 96 depends on !HAS_HW_NRF_RADIO_IEEE802154 97 select IEEE802154_NRF5_EXT_IRQ_MGMT if IEEE802154_NRF5 98 select NRF_802154_SERIALIZATION 99 help 100 Enable serialization of nRF IEEE 802.15.4 Driver. This option is to be 101 used if radio is not available in the core, but radio services are 102 provided by a serialization backend. 103 104menuconfig NRF_802154_SER_RADIO 105 bool "nRF IEEE 802.15.4 Driver serialization radio" 106 depends on HAS_HW_NRF_RADIO_IEEE802154 107 depends on !IEEE802154_NRF5 108 select NRF_802154_RADIO_DRIVER 109 select NRF_802154_SERIALIZATION 110 help 111 Enable serialization of nRF IEEE 802.15.4 Driver. This option is to be 112 used if radio is available in the core to provide radio services over 113 a serialization backend. 114 115if NRF_802154_SER_RADIO 116 117config NRF_802154_SER_RADIO_INIT_PRIO 118 int "nRF52 IEEE 802.15.4 serialization initialization priority" 119 default 53 120 help 121 Set the initialization priority number. Do not mess with it unless 122 you know what you are doing. 123 124endif 125 126menu "nRF 802.15.4 serialization" 127 depends on NRF_802154_SER_HOST || NRF_802154_SER_RADIO 128 129config NRF_802154_SER_LOG 130 bool "802.15.4 serialization logs" 131 default n 132 help 133 This option enable debug logs of 802.15.4 serialization module. 134 135config NRF_802154_SER_DEFAULT_RESPONSE_TIMEOUT 136 int "Default Spinel serialization response timeout in milliseconds" 137 default 500 138 help 139 This option specifies default timeout of spinel status response 140 in milliseconds. 141 142endmenu # NRF_802154_SER_HOST || NRF_802154_SER_RADIO 143 144if NRF_802154_RADIO_DRIVER || NRF_802154_SERIALIZATION 145 146choice NRF_802154_CCA_MODE 147 prompt "nRF IEEE 802.15.4 CCA mode" 148 default NRF_802154_CCA_MODE_ED 149 help 150 CCA mode 151 152config NRF_802154_CCA_MODE_ED 153 bool "Energy Above Threshold" 154 155config NRF_802154_CCA_MODE_CARRIER 156 bool "Carrier Seen" 157 158config NRF_802154_CCA_MODE_CARRIER_AND_ED 159 bool "Energy Above Threshold AND Carrier Seen" 160 161config NRF_802154_CCA_MODE_CARRIER_OR_ED 162 bool "Energy Above Threshold OR Carrier Seen" 163 164endchoice 165 166config NRF_802154_CCA_ED_THRESHOLD 167 int "nRF IEEE 802.15.4 CCA Energy Detection threshold" 168 default 45 169 help 170 If energy detected in a given channel is above the value then the 171 channel is deemed busy. The unit is defined as per 802.15.4-2006 spec. 172 173config NRF_802154_CCA_CORR_THRESHOLD 174 int "nRF IEEE 802.15.4 CCA Correlator threshold" 175 default 45 176 177config NRF_802154_CCA_CORR_LIMIT 178 int "nRF IEEE 802.15.4 CCA Correlator limit" 179 default 2 180 help 181 Limit for occurrences above correlator threshold. When not equal to 182 zero the correlator based signal detect is enabled. 183 184config NRF_802154_RX_BUFFERS 185 int "nRF 802.15.4 receive buffers" 186 default 16 187 help 188 Number of buffers in nRF 802.15.4 driver serialization host's receive queue. 189 If this value is modified, its remote counterpart must be set to the exact same value. 190 191config NRF_802154_PENDING_SHORT_ADDRESSES 192 int "nRF 802.15.4 pending short addresses" 193 default 16 194 help 195 Number of slots containing short addresses of nodes for which pending data is stored 196 197config NRF_802154_PENDING_EXTENDED_ADDRESSES 198 int "nRF 802.15.4 pending extended addresses" 199 default 16 200 help 201 Number of slots containing extended addresses of nodes for which pending data is stored 202 203config NRF_802154_ENCRYPTION 204 bool "nRF 802.15.4 AES-CCM* authentication & encryption" 205 depends on !CRYPTO_NRF_ECB 206 207config NRF_802154_SECURITY_KEY_STORAGE_SIZE 208 int "nRF 802.15.4 security key storage size" 209 default 3 210 help 211 Number of encryption keys that the nRF 802.15.4 Radio Driver can store simultaneously. 212 213config NRF_802154_CARRIER_FUNCTIONS 214 bool "nRF 802.15.4 carrier functions" 215 default y if (OPENTHREAD_DIAG || IEEE802154_CARRIER_FUNCTIONS) 216 help 217 This option enables functions such as modulated carrier and continuous carrier. 218 If this option is modified on a multicore SoC, its remote counterpart must be set to the exact same value. 219 220choice NRF_802154_ASSERT_CHOICE 221 prompt "nRF 802.15.4 assert implementation" 222 default NRF_802154_ASSERT_ZEPHYR_MINIMAL 223 224config NRF_802154_ASSERT_ZEPHYR_MINIMAL 225 bool "nRF 802.15.4 minimal assertions" 226 help 227 This option provides minimal run-time checking of the nRF 802.15.4 Radio Driver's operation, 228 even if kernel-wide CONFIG_ASSERT is disabled. In case of an abnormal condition the function 229 `nrf_802154_assert_handler()` is called. File and line debug information are not provided 230 to save memory of the image file. Default implementation of the `nrf_802154_assert_handler` 231 involves a call to `k_panic`/`k_oops` and allows further tweaking of the behavior. 232 You can also provide your own implementation of `nrf_802154_assert_handler`. 233 234config NRF_802154_ASSERT_ZEPHYR 235 bool "nRF 802.15.4 Radio Driver assertions as Zephyr's standard __ASERT_NO_MSG" 236 help 237 The run-time checking of the nRF 802.15.4 Radio Driver depends fully on the configuration 238 of the `__ASSERT_NO_MSG` macro, including the ability to completely turn off the run-time 239 checking. 240 241endchoice # NRF_802154_ASSERT_CHOICE 242 243endif # NRF_802154_RADIO_DRIVER || NRF_802154_SERIALIZATION 244 245endmenu # HAS_NORDIC_DRIVERS 246 247rsource "nrfs/Kconfig" 248rsource "nrfx/Kconfig" 249rsource "Kconfig.nrf_regtool" 250