nrfxlib API 3.3.99
Loading...
Searching...
No Matches
nrf_802154_peripherals.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019, 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
40#ifndef NRF_802154_PERIPHERALS_H__
41#define NRF_802154_PERIPHERALS_H__
42
43#include <nrfx.h>
44#include "nrf_802154_config.h"
45
46#if defined(NRF52_SERIES)
48#elif defined(NRF5340_XXAA)
50#elif defined(NRF54L_SERIES)
52#elif defined(NRF54H_SERIES)
54#endif
55
56#ifdef NRF_802154_USE_INTERNAL_INCLUDES
57#include "nrf_802154_peripherals_internal.h"
58#endif
59
60#ifdef __cplusplus
61extern "C" {
62#endif
63
70#ifndef NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO
71#define NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO 1
72#endif
73
80#define NRF_802154_HIGH_PRECISION_TIMER_INSTANCE \
81 NRFX_CONCAT_2(NRF_TIMER, NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO)
82
89#ifndef NRF_802154_TIMER_INSTANCE_NO
90#define NRF_802154_TIMER_INSTANCE_NO 0
91#endif
92
99#define NRF_802154_TIMER_INSTANCE \
100 NRFX_CONCAT_2(NRF_TIMER, NRF_802154_TIMER_INSTANCE_NO)
101
111#define NRF_802154_RTC_INSTANCE NRFX_CONCAT_2(NRF_RTC, NRF_802154_RTC_INSTANCE_NO)
112
122#define NRF_802154_RTC_IRQ_HANDLER NRFX_CONCAT_3(RTC, NRF_802154_RTC_INSTANCE_NO, _IRQHandler)
123
133#define NRF_802154_RTC_IRQN NRFX_CONCAT_3(RTC, NRF_802154_RTC_INSTANCE_NO, _IRQn)
134
140#ifndef NRF_802154_TIMERS_USED_MASK
141#define NRF_802154_TIMERS_USED_MASK ((1 << NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO) | \
142 (1 << NRF_802154_TIMER_INSTANCE_NO))
143#endif // NRF_802154_TIMERS_USED_MASK
144
150#ifndef NRF_802154_RTC_USED_MASK
151#define NRF_802154_RTC_USED_MASK (1 << NRF_802154_RTC_INSTANCE_NO)
152#endif
153
161#if NRF_802154_NOTIFICATION_IMPL == NRF_802154_NOTIFICATION_IMPL_SWI
168#ifndef NRF_802154_EGU_NOTIFICATION_CHANNEL_NO
169#define NRF_802154_EGU_NOTIFICATION_CHANNEL_NO 0
170#endif // NRF_802154_EGU_NOTIFICATION_SWI_CHANNEL_NO
171
172#define NRF_802154_EGU_NOTIFICATION_USED_CHANNELS_MASK \
173 (1U << NRF_802154_EGU_NOTIFICATION_CHANNEL_NO)
174#else
175#define NRF_802154_EGU_NOTIFICATION_USED_CHANNELS_MASK 0U
176#endif
177
185#if NRF_802154_REQUEST_IMPL == NRF_802154_REQUEST_IMPL_SWI
192#ifndef NRF_802154_EGU_REQUEST_CHANNEL_NO
193#define NRF_802154_EGU_REQUEST_CHANNEL_NO 2
194#endif // NRF_802154_EGU_REQUEST_CHANNEL_NO
195#define NRF_802154_EGU_REQUEST_USED_CHANNELS_MASK (1U << NRF_802154_EGU_REQUEST_CHANNEL_NO)
196#else
197#define NRF_802154_EGU_REQUEST_USED_CHANNELS_MASK 0U
198#endif
199
207#define NRF_802154_EGU_SYNC_CHANNEL_NO 3
208
215#define NRF_802154_EGU_SYNC_USED_CHANNELS_MASK (1U << NRF_802154_EGU_SYNC_CHANNEL_NO)
216
222#define NRF_802154_EGU_TRIGGER_CHANNEL_NO 14
223
229#define NRF_802154_EGU_TRIGGER_EVENT NRFX_CONCAT_2(NRF_EGU_EVENT_TRIGGERED, \
230 NRF_802154_EGU_TRIGGER_CHANNEL_NO)
231
237#define NRF_802154_EGU_TRIGGER_TASK NRFX_CONCAT_2(NRF_EGU_TASK_TRIGGER, \
238 NRF_802154_EGU_TRIGGER_CHANNEL_NO)
239
245#define NRF_802154_EGU_RAMP_UP_CHANNEL_NO 15
246
252#define NRF_802154_EGU_RAMP_UP_EVENT NRFX_CONCAT_2(NRF_EGU_EVENT_TRIGGERED, \
253 NRF_802154_EGU_RAMP_UP_CHANNEL_NO)
254
260#define NRF_802154_EGU_RAMP_UP_TASK NRFX_CONCAT_2(NRF_EGU_TASK_TRIGGER, \
261 NRF_802154_EGU_RAMP_UP_CHANNEL_NO)
262
269#define NRF_802154_EGU_RAMP_UP_USED_CHANNELS_MASK (1U << NRF_802154_EGU_RAMP_UP_CHANNEL_NO) | \
270 (1U << NRF_802154_EGU_TRIGGER_CHANNEL_NO)
271
272#ifndef NRF_802154_EGU_TIMER_START_USED_CHANNELS_MASK
273#define NRF_802154_EGU_TIMER_START_USED_CHANNELS_MASK 0U
274#endif
275
276#ifndef NRF_802154_EGU_TIMER_START2_USED_CHANNELS_MASK
277#define NRF_802154_EGU_TIMER_START2_USED_CHANNELS_MASK 0U
278#endif
279
286#define NRF_802154_EGU_USED_CHANNELS_MASK \
287 (NRF_802154_EGU_NOTIFICATION_USED_CHANNELS_MASK | \
288 NRF_802154_EGU_REQUEST_USED_CHANNELS_MASK | \
289 NRF_802154_EGU_SYNC_USED_CHANNELS_MASK | \
290 NRF_802154_EGU_RAMP_UP_USED_CHANNELS_MASK | \
291 NRF_802154_EGU_TIMER_START_USED_CHANNELS_MASK | \
292 NRF_802154_EGU_TIMER_START2_USED_CHANNELS_MASK | \
293 NRF_802154_SL_EGU_USED_CHANNELS_MASK)
294
295#ifdef __cplusplus
296}
297#endif
298
299#endif // NRF_802154_PERIPHERALS_H__