nrfxlib API 3.3.99
Loading...
Searching...
No Matches
nrf_802154_config.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017, Nordic Semiconductor ASA
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright notice, this
11 * list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
18 * contributors may be used to endorse or promote products derived from this
19 * software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
33 */
34
35#ifndef NRF_802154_CONFIG_H__
36#define NRF_802154_CONFIG_H__
37
38/* This file must not include nrf.h or nrfx.h directly or indirectly,
39 * to avoid circular dependencies.
40 */
41
42#ifdef NRF_802154_PROJECT_CONFIG
43#include NRF_802154_PROJECT_CONFIG
44#endif
45
46#ifdef __cplusplus
47extern "C" {
48#endif
49
72#ifndef NRF_802154_DRV_REINIT_ENABLED
73#define NRF_802154_DRV_REINIT_ENABLED 0
74#endif
75
82#ifndef NRF_802154_CCA_MODE_DEFAULT
83#define NRF_802154_CCA_MODE_DEFAULT NRF_RADIO_CCA_MODE_ED
84#endif
85
94#ifdef NRF_802154_CCA_ED_THRESHOLD_DEFAULT
95#undef NRF_802154_CCA_ED_THRESHOLD_DBM_DEFAULT
96#define NRF_802154_CCA_ED_THRESHOLD_DBM_DEFAULT (ED_RSSIOFFS + NRF_802154_CCA_ED_THRESHOLD_DEFAULT)
97#else
98#ifndef NRF_802154_CCA_ED_THRESHOLD_DBM_DEFAULT
99#define NRF_802154_CCA_ED_THRESHOLD_DBM_DEFAULT (-75)
100#endif
101#endif
102
109#ifndef NRF_802154_CCA_CORR_THRESHOLD_DEFAULT
110#define NRF_802154_CCA_CORR_THRESHOLD_DEFAULT 0x14
111#endif
112
119#ifndef NRF_802154_CCA_CORR_LIMIT_DEFAULT
120#define NRF_802154_CCA_CORR_LIMIT_DEFAULT 0x02
121#endif
122
136#ifndef NRF_802154_CCAIDLE_TO_TXEN_EXTRA_TIME_US
137#define NRF_802154_CCAIDLE_TO_TXEN_EXTRA_TIME_US 0U
138#endif
139
149#ifndef NRF_802154_INTERNAL_RADIO_IRQ_HANDLING
150#define NRF_802154_INTERNAL_RADIO_IRQ_HANDLING 0
151#endif
152
162#ifndef NRF_802154_INTERNAL_SWI_IRQ_HANDLING
163#define NRF_802154_INTERNAL_SWI_IRQ_HANDLING 1
164#endif
165
173#ifndef NRF_802154_IRQ_PRIORITY
174#define NRF_802154_IRQ_PRIORITY 0
175#endif
176
183#ifndef NRF_802154_SWI_PRIORITY
184#define NRF_802154_SWI_PRIORITY 4
185#endif
186
193#ifndef NRF_802154_ECB_PRIORITY
194#define NRF_802154_ECB_PRIORITY 3
195#endif
196
203#ifndef NRF_802154_PENDING_SHORT_ADDRESSES
204#define NRF_802154_PENDING_SHORT_ADDRESSES 10
205#endif
206
213#ifndef NRF_802154_PENDING_EXTENDED_ADDRESSES
214#define NRF_802154_PENDING_EXTENDED_ADDRESSES 10
215#endif
216
223#ifndef NRF_802154_RX_BUFFERS
224#define NRF_802154_RX_BUFFERS 16
225#endif
226
235#ifndef NRF_802154_MAX_DISREGARDABLE_NOTIFICATIONS
236#define NRF_802154_MAX_DISREGARDABLE_NOTIFICATIONS 4
237#endif
238
246#ifndef NRF_802154_NOTIFY_CRCERROR
247#define NRF_802154_NOTIFY_CRCERROR 1
248#endif
249
262#ifndef NRF_802154_FRAME_TIMESTAMP_ENABLED
263#define NRF_802154_FRAME_TIMESTAMP_ENABLED 1
264#endif
265
272#if !defined(CONFIG_NRF_802154_SL_OPENSOURCE)
273#ifndef NRF_802154_DELAYED_TRX_ENABLED
274#define NRF_802154_DELAYED_TRX_ENABLED 1
275#endif
276#endif
277
284#if NRF_802154_DELAYED_TRX_ENABLED
285#ifndef NRF_802154_DELAYED_TRX_CANCEL_ALL_ENABLED
286#define NRF_802154_DELAYED_TRX_CANCEL_ALL_ENABLED NRF_802154_DRV_REINIT_ENABLED
287#endif
288#endif /* NRF_802154_DELAYED_TRX_ENABLED */
289
299#ifndef NRF_802154_TEST_MODES_ENABLED
300#define NRF_802154_TEST_MODES_ENABLED 0
301#endif
302
308#ifndef NRF_802154_PAN_COORD_GET_ENABLED
309#define NRF_802154_PAN_COORD_GET_ENABLED 0
310#endif
311
317#ifndef NRF_802154_PAN_ID_GET_ENABLED
318#define NRF_802154_PAN_ID_GET_ENABLED 0
319#endif
320
326#ifndef NRF_802154_SHORT_ADDRESS_GET_ENABLED
327#define NRF_802154_SHORT_ADDRESS_GET_ENABLED 0
328#endif
329
335#ifndef NRF_802154_ALTERNATE_SHORT_ADDRESS_GET_ENABLED
336#define NRF_802154_ALTERNATE_SHORT_ADDRESS_GET_ENABLED 0
337#endif
338
344#ifndef NRF_802154_EXTENDED_ADDRESS_GET_ENABLED
345#define NRF_802154_EXTENDED_ADDRESS_GET_ENABLED 0
346#endif
347
361#if !defined(CONFIG_NRF_802154_SL_OPENSOURCE)
362#ifndef NRF_802154_CSMA_CA_ENABLED
363#define NRF_802154_CSMA_CA_ENABLED 1
364#endif
365#endif
366
375#if NRF_802154_CSMA_CA_ENABLED
376#ifndef NRF_802154_CSMA_CA_CANCEL_ENABLED
377#define NRF_802154_CSMA_CA_CANCEL_ENABLED NRF_802154_DRV_REINIT_ENABLED
378#endif
379#endif /* NRF_802154_CSMA_CA_ENABLED */
380
391#ifdef NRF_802154_CSMA_CA_MIN_BE
392#error "NRF_802154_CSMA_CA_MIN_BE was replaced with NRF_802154_CSMA_CA_MIN_BE_DEFAULT"
393#endif
394#ifndef NRF_802154_CSMA_CA_MIN_BE_DEFAULT
395#define NRF_802154_CSMA_CA_MIN_BE_DEFAULT 3
396#endif
397
408#ifdef NRF_802154_CSMA_CA_MAX_BE
409#error "NRF_802154_CSMA_CA_MAX_BE was replaced with NRF_802154_CSMA_CA_MAX_BE_DEFAULT"
410#endif
411#ifndef NRF_802154_CSMA_CA_MAX_BE_DEFAULT
412#define NRF_802154_CSMA_CA_MAX_BE_DEFAULT 5
413#endif
414
425#ifdef NRF_802154_CSMA_CA_MAX_CSMA_BACKOFFS
426#error \
427 "NRF_802154_CSMA_CA_MAX_CSMA_BACKOFFS was replaced with NRF_802154_CSMA_CA_MAX_CSMA_BACKOFFS_DEFAULT"
428#endif
429#ifndef NRF_802154_CSMA_CA_MAX_CSMA_BACKOFFS_DEFAULT
430#define NRF_802154_CSMA_CA_MAX_CSMA_BACKOFFS_DEFAULT 4
431#endif
432
446#ifndef NRF_802154_CSMA_CA_WAIT_FOR_TIMESLOT
447#define NRF_802154_CSMA_CA_WAIT_FOR_TIMESLOT 1
448#endif
449
462#ifndef NRF_802154_ACK_TIMEOUT_ENABLED
463#define NRF_802154_ACK_TIMEOUT_ENABLED 1
464#endif
465
472#ifndef NRF_802154_PRECISE_ACK_TIMEOUT_DEFAULT_TIMEOUT
473#define NRF_802154_PRECISE_ACK_TIMEOUT_DEFAULT_TIMEOUT 210
474#endif
475
482#ifndef NRF_802154_MAX_ACK_IE_SIZE
483#define NRF_802154_MAX_ACK_IE_SIZE 16
484#endif
485
499#if !defined(CONFIG_NRF_802154_SL_OPENSOURCE)
500#ifndef NRF_802154_IFS_ENABLED
501#define NRF_802154_IFS_ENABLED 0
502#endif
503#endif
504
526#ifndef NRF_802154_STATS_COUNT_ENERGY_DETECTED_EVENTS
527#define NRF_802154_STATS_COUNT_ENERGY_DETECTED_EVENTS 1
528#endif
529
539#ifndef NRF_802154_STATS_COUNT_RECEIVED_PREAMBLES
540#define NRF_802154_STATS_COUNT_RECEIVED_PREAMBLES 1
541#endif
542
555#ifndef NRF_802154_SECURITY_KEY_STORAGE_SIZE
556#define NRF_802154_SECURITY_KEY_STORAGE_SIZE 3
557#endif
558
565#ifndef NRF_802154_SECURITY_WRITER_ENABLED
566#define NRF_802154_SECURITY_WRITER_ENABLED 1
567#endif
568
575#ifndef NRF_802154_ENCRYPTION_ENABLED
576#define NRF_802154_ENCRYPTION_ENABLED 1
577#endif
578
592#ifndef NRF_802154_IE_WRITER_ENABLED
593#define NRF_802154_IE_WRITER_ENABLED 1
594#endif
595
602#ifndef NRF_802154_CARRIER_FUNCTIONS_ENABLED
603#define NRF_802154_CARRIER_FUNCTIONS_ENABLED 1
604#endif
605
612#define NRF_802154_NOTIFICATION_IMPL_DIRECT 0
613
620#define NRF_802154_NOTIFICATION_IMPL_SWI 1
621
627#ifndef NRF_802154_NOTIFICATION_QUEUE_FLUSH_ENABLED
628#define NRF_802154_NOTIFICATION_QUEUE_FLUSH_ENABLED NRF_802154_DRV_REINIT_ENABLED
629#endif
630
639#ifndef NRF_802154_NOTIFICATION_IMPL
640#define NRF_802154_NOTIFICATION_IMPL NRF_802154_NOTIFICATION_IMPL_SWI
641#endif
642
649#define NRF_802154_REQUEST_IMPL_DIRECT 0
650
657#define NRF_802154_REQUEST_IMPL_SWI 1
658
667#ifndef NRF_802154_REQUEST_IMPL
668#define NRF_802154_REQUEST_IMPL NRF_802154_REQUEST_IMPL_SWI
669#endif
670
683#ifndef NRF_802154_TX_TIMESTAMP_PROVIDER_ENABLED
684#define NRF_802154_TX_TIMESTAMP_PROVIDER_ENABLED 0
685#endif
686
706#ifndef NRF_802154_TX_DIAGNOSTIC_MODE
707#define NRF_802154_TX_DIAGNOSTIC_MODE 0
708#endif
709
710#if NRF_802154_TX_DIAGNOSTIC_MODE
711#if NRF_802154_IE_WRITER_ENABLED || \
712 NRF_802154_SECURITY_WRITER_ENABLED || \
713 NRF_802154_ENCRYPTION_ENABLED || \
714 NRF_802154_TX_TIMESTAMP_PROVIDER_ENABLED
715#error "TX Diagnostic mode is not compatible with IE writer, Security writer, Encryption, and TX timestamp."
716#endif
717#endif
718
725#ifdef __cplusplus
726}
727#endif
728
729#endif /* NRF_802154_CONFIG_H__ */