Lines Matching refs:ppib_ch
36 static void nhw_ppib_propagate_event_mate(uint inst, uint ppib_ch);
90 static inline void nhw_ppib_is_inst_ch_valid(uint ppib_inst, uint ppib_ch, const char *type) in nhw_ppib_is_inst_ch_valid() argument
92 if ((ppib_inst >= NHW_PPIB_TOTAL_INST) || (ppib_ch >= nhw_ppib_st[ppib_inst].n_ch) ) { in nhw_ppib_is_inst_ch_valid()
94 type, ppib_ch, nhw_ppib_st[ppib_inst].n_ch, ppib_inst); in nhw_ppib_is_inst_ch_valid()
103 static void nhw_ppib_confirm_direction(uint inst, uint ppib_ch, bool source) in nhw_ppib_confirm_direction() argument
105 bool subscribe_enable = (NRF_PPIB_regs[inst].SUBSCRIBE_SEND[ppib_ch] & (0x1UL << 31)) != 0; in nhw_ppib_confirm_direction()
106 bool publish_enable = (NRF_PPIB_regs[inst].PUBLISH_RECEIVE[ppib_ch] & (0x1UL << 31)) != 0; in nhw_ppib_confirm_direction()
111 inst, ppib_ch); in nhw_ppib_confirm_direction()
116 inst, ppib_ch); in nhw_ppib_confirm_direction()
120 static void nhw_ppib_hardwired_check(uint32_t reg, uint ppib_ch){ in nhw_ppib_hardwired_check() argument
123 if (ppib_ch != dppi_ch) { in nhw_ppib_hardwired_check()
127 ppib_ch, dppi_ch); in nhw_ppib_hardwired_check()
135 static void nhw_ppib_TASK_SEND(uint inst, uint ppib_ch) in nhw_ppib_TASK_SEND() argument
137 nhw_ppib_confirm_direction(inst, ppib_ch, true); in nhw_ppib_TASK_SEND()
138 nhw_ppib_propagate_event_mate(nhw_ppib_st[inst].ppib_mate, ppib_ch); in nhw_ppib_TASK_SEND()
146 uint ppib_ch = (uintptr_t)param & 0xFFFF; in nhw_ppib_tasksend_wrap() local
147 nhw_ppib_TASK_SEND(inst, ppib_ch); in nhw_ppib_tasksend_wrap()
150 void nhw_PPIB_regw_sideeffects_SUBSCRIBE_SEND(uint inst, uint ppib_ch){ in nhw_PPIB_regw_sideeffects_SUBSCRIBE_SEND() argument
153 nhw_ppib_is_inst_ch_valid(inst, ppib_ch, "SUBSCRIBE_SEND"); in nhw_PPIB_regw_sideeffects_SUBSCRIBE_SEND()
155 nhw_ppib_hardwired_check(NRF_PPIB_regs[inst].SUBSCRIBE_SEND[ppib_ch], ppib_ch); in nhw_PPIB_regw_sideeffects_SUBSCRIBE_SEND()
158 this->NRF_PPIB_regs->SUBSCRIBE_SEND[ppib_ch], in nhw_PPIB_regw_sideeffects_SUBSCRIBE_SEND()
159 &this->subscribed[ppib_ch], in nhw_PPIB_regw_sideeffects_SUBSCRIBE_SEND()
161 (void*)((inst << 16) + ppib_ch)); in nhw_PPIB_regw_sideeffects_SUBSCRIBE_SEND()
167 static void nhw_ppib_propagate_event_mate(uint inst, uint ppib_ch) { in nhw_ppib_propagate_event_mate() argument
168 nhw_ppib_confirm_direction(inst, ppib_ch, false); in nhw_ppib_propagate_event_mate()
170 nhw_ppib_hardwired_check(NRF_PPIB_regs[inst].PUBLISH_RECEIVE[ppib_ch], ppib_ch); in nhw_ppib_propagate_event_mate()
173 NRF_PPIB_regs[inst].PUBLISH_RECEIVE[ppib_ch]); in nhw_ppib_propagate_event_mate()