xref: /nrf52832-nimble/packages/NimBLE-latest/porting/npl/rtthread/src/nrf5x_isr.c (revision 042d53a763ad75cb1465103098bb88c245d95138)
1 /*
2  * SPDX-License-Identifier: Apache-2.0
3  *
4  * Date           Author       Notes
5  * 2018-12-18     ZeroFree     first implementation
6  */
7 
8 #include "nimble/nimble_npl.h"
9 #include "nrfx.h"
10 
11 static void (*radio_isr_addr)(void);
12 static void (*rng_isr_addr)(void);
13 static void (*rtc0_isr_addr)(void);
14 
RADIO_IRQHandler(void)15 void RADIO_IRQHandler(void)
16 {
17     radio_isr_addr();
18 }
19 
RNG_IRQHandler(void)20 void RNG_IRQHandler(void)
21 {
22     rng_isr_addr();
23 }
24 
RTC0_IRQHandler(void)25 void RTC0_IRQHandler(void)
26 {
27     rtc0_isr_addr();
28 }
29 
ble_npl_hw_set_isr(int irqn,void (* addr)(void))30 void ble_npl_hw_set_isr(int irqn, void (*addr)(void))
31 {
32     switch (irqn)
33     {
34     case RADIO_IRQn:
35         radio_isr_addr = addr;
36         break;
37     case RNG_IRQn:
38         rng_isr_addr = addr;
39         break;
40     case RTC0_IRQn:
41         rtc0_isr_addr = addr;
42         break;
43     }
44 }
45