xref: /nrf52832-nimble/packages/NimBLE-latest/porting/npl/riot/src/nrf5x_isr.c (revision 042d53a763ad75cb1465103098bb88c245d95138)
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  *  http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied.  See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
20 #include "cpu.h"
21 
22 static void (*radio_isr_addr)(void);
23 static void (*rng_isr_addr)(void);
24 static void (*rtc0_isr_addr)(void);
25 
26 void
isr_radio(void)27 isr_radio(void)
28 {
29     radio_isr_addr();
30 }
31 
32 void
isr_rng(void)33 isr_rng(void)
34 {
35     rng_isr_addr();
36 }
37 
38 void
isr_rtc0(void)39 isr_rtc0(void)
40 {
41     rtc0_isr_addr();
42 }
43 
44 void
ble_npl_hw_set_isr(int irqn,void (* addr)(void))45 ble_npl_hw_set_isr(int irqn, void (*addr)(void))
46 {
47     switch (irqn) {
48     case RADIO_IRQn:
49         radio_isr_addr = addr;
50         break;
51     case RNG_IRQn:
52         rng_isr_addr = addr;
53         break;
54     case RTC0_IRQn:
55         rtc0_isr_addr = addr;
56         break;
57     }
58 }
59