1 /*
2  * Copyright (c) 2023 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  */
7 #ifndef _NRF_HW_MODELS_NHW_DPPI_H
8 #define _NRF_HW_MODELS_NHW_DPPI_H
9 
10 #include <stdint.h>
11 #include <stdbool.h>
12 #include "bs_types.h"
13 #include "NHW_common_types.h"
14 
15 #ifdef __cplusplus
16 extern "C"{
17 #endif
18 
19 #define DPPI_CB_NO_PARAM ((void*)INTPTR_MAX)
20 
21 typedef void (*dppi_callback_t)(void *);
22 
23 void nhw_dppi_channel_subscribe(unsigned int dppi_inst,
24                                 unsigned int  channel_nbr,
25                                 dppi_callback_t callback,
26                                 void *param);
27 void nhw_dppi_channel_unsubscribe(unsigned int dppi_inst,
28                                   unsigned int channel_nbr,
29                                   dppi_callback_t callback,
30                                   void *param);
31 void nhw_dppi_event_signal(unsigned int  dppi_inst, unsigned int  channel_nbr);
32 void nhw_dppi_event_signal_if(unsigned int  dppi_inst, uint32_t publish_reg);
33 
34 void nhw_dppi_common_subscribe_sideeffect(unsigned int  dppi_inst,
35                                           uint32_t SUBSCRIBE_reg,
36                                           struct nhw_subsc_mem *last,
37                                           dppi_callback_t callback,
38                                           void *param);
39 
40 void nhw_dppi_regw_sideeffects_TASK_CHGn_EN(uint dppi_inst, uint n);
41 void nhw_dppi_regw_sideeffects_TASK_CHGn_DIS(uint dppi_inst, uint n);
42 void nhw_dppi_regw_sideeffects_SUBSCRIBE_CHG_EN(unsigned int dppi_inst, uint n);
43 void nhw_dppi_regw_sideeffects_SUBSCRIBE_CHG_DIS(unsigned int dppi_inst, uint n);
44 void nhw_dppi_regw_sideeffects_CHENSET(uint dppi_inst);
45 void nhw_dppi_regw_sideeffects_CHENCLR(uint dppi_inst);
46 void nhw_dppi_regw_sideeffects_CHEN(uint dppi_inst);
47 void nhw_dppi_regw_sideeffects_CHGn(uint dppi_inst, uint n);
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif /* _NRF_HW_MODELS_NHW_DPPI_H */
54