nrfxlib API 3.4.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
39
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#endif
53
54#ifdef NRF_802154_USE_INTERNAL_INCLUDES
55#include "nrf_802154_peripherals_internal.h"
56#endif
57
58#ifdef __cplusplus
59extern "C" {
60#endif
61
68#ifndef NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO
69#define NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO 1
70#endif
71
78#define NRF_802154_HIGH_PRECISION_TIMER_INSTANCE \
79 NRFX_CONCAT_2(NRF_TIMER, NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO)
80
87#ifndef NRF_802154_TIMER_INSTANCE_NO
88#define NRF_802154_TIMER_INSTANCE_NO 0
89#endif
90
97#define NRF_802154_TIMER_INSTANCE \
98 NRFX_CONCAT_2(NRF_TIMER, NRF_802154_TIMER_INSTANCE_NO)
99
109#define NRF_802154_RTC_INSTANCE NRFX_CONCAT_2(NRF_RTC, NRF_802154_RTC_INSTANCE_NO)
110
120#define NRF_802154_RTC_IRQ_HANDLER NRFX_CONCAT_3(RTC, NRF_802154_RTC_INSTANCE_NO, _IRQHandler)
121
131#define NRF_802154_RTC_IRQN NRFX_CONCAT_3(RTC, NRF_802154_RTC_INSTANCE_NO, _IRQn)
132
138#ifndef NRF_802154_TIMERS_USED_MASK
139#define NRF_802154_TIMERS_USED_MASK ((1 << NRF_802154_HIGH_PRECISION_TIMER_INSTANCE_NO) | \
140 (1 << NRF_802154_TIMER_INSTANCE_NO))
141#endif // NRF_802154_TIMERS_USED_MASK
142
148#ifndef NRF_802154_RTC_USED_MASK
149#define NRF_802154_RTC_USED_MASK (1 << NRF_802154_RTC_INSTANCE_NO)
150#endif
151
158
159#if NRF_802154_NOTIFICATION_IMPL == NRF_802154_NOTIFICATION_IMPL_SWI
166#ifndef NRF_802154_EGU_NOTIFICATION_CHANNEL_NO
167#define NRF_802154_EGU_NOTIFICATION_CHANNEL_NO 0
168#endif // NRF_802154_EGU_NOTIFICATION_SWI_CHANNEL_NO
169
170#define NRF_802154_EGU_NOTIFICATION_USED_CHANNELS_MASK \
171 (1U << NRF_802154_EGU_NOTIFICATION_CHANNEL_NO)
172#else
173#define NRF_802154_EGU_NOTIFICATION_USED_CHANNELS_MASK 0U
174#endif
175
182
183#if NRF_802154_REQUEST_IMPL == NRF_802154_REQUEST_IMPL_SWI
190#ifndef NRF_802154_EGU_REQUEST_CHANNEL_NO
191#define NRF_802154_EGU_REQUEST_CHANNEL_NO 2
192#endif // NRF_802154_EGU_REQUEST_CHANNEL_NO
193#define NRF_802154_EGU_REQUEST_USED_CHANNELS_MASK (1U << NRF_802154_EGU_REQUEST_CHANNEL_NO)
194#else
195#define NRF_802154_EGU_REQUEST_USED_CHANNELS_MASK 0U
196#endif
197
205#define NRF_802154_EGU_SYNC_CHANNEL_NO 3
206
213#define NRF_802154_EGU_SYNC_USED_CHANNELS_MASK (1U << NRF_802154_EGU_SYNC_CHANNEL_NO)
214
220#define NRF_802154_EGU_TRIGGER_CHANNEL_NO 14
221
227#define NRF_802154_EGU_TRIGGER_EVENT NRFX_CONCAT_2(NRF_EGU_EVENT_TRIGGERED, \
228 NRF_802154_EGU_TRIGGER_CHANNEL_NO)
229
235#define NRF_802154_EGU_TRIGGER_TASK NRFX_CONCAT_2(NRF_EGU_TASK_TRIGGER, \
236 NRF_802154_EGU_TRIGGER_CHANNEL_NO)
237
243#define NRF_802154_EGU_RAMP_UP_CHANNEL_NO 15
244
250#define NRF_802154_EGU_RAMP_UP_EVENT NRFX_CONCAT_2(NRF_EGU_EVENT_TRIGGERED, \
251 NRF_802154_EGU_RAMP_UP_CHANNEL_NO)
252
258#define NRF_802154_EGU_RAMP_UP_TASK NRFX_CONCAT_2(NRF_EGU_TASK_TRIGGER, \
259 NRF_802154_EGU_RAMP_UP_CHANNEL_NO)
260
267#define NRF_802154_EGU_RAMP_UP_USED_CHANNELS_MASK (1U << NRF_802154_EGU_RAMP_UP_CHANNEL_NO) | \
268 (1U << NRF_802154_EGU_TRIGGER_CHANNEL_NO)
269
270#ifndef NRF_802154_EGU_TIMER_START_USED_CHANNELS_MASK
271#define NRF_802154_EGU_TIMER_START_USED_CHANNELS_MASK 0U
272#endif
273
274#ifndef NRF_802154_EGU_TIMER_START2_USED_CHANNELS_MASK
275#define NRF_802154_EGU_TIMER_START2_USED_CHANNELS_MASK 0U
276#endif
277
284#define NRF_802154_EGU_USED_CHANNELS_MASK \
285 (NRF_802154_EGU_NOTIFICATION_USED_CHANNELS_MASK | \
286 NRF_802154_EGU_REQUEST_USED_CHANNELS_MASK | \
287 NRF_802154_EGU_SYNC_USED_CHANNELS_MASK | \
288 NRF_802154_EGU_RAMP_UP_USED_CHANNELS_MASK | \
289 NRF_802154_EGU_TIMER_START_USED_CHANNELS_MASK | \
290 NRF_802154_EGU_TIMER_START2_USED_CHANNELS_MASK | \
291 NRF_802154_SL_EGU_USED_CHANNELS_MASK)
292
293#ifdef __cplusplus
294}
295#endif
296
297#endif // NRF_802154_PERIPHERALS_H__