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