Lines Matching refs:inst
80 static void nhw_IPC_eval_interrupt(uint inst) { in nhw_IPC_eval_interrupt() argument
86 struct ipc_status *this = &nhw_ipc_st[inst]; in nhw_IPC_eval_interrupt()
87 NRF_IPC_Type *IPC_regs = &NRF_IPC_regs[inst]; in nhw_IPC_eval_interrupt()
101 hw_irq_ctrl_toggle_level_irq_line_if(&ipc_int_line[inst], in nhw_IPC_eval_interrupt()
103 &nhw_ipc_irq_map[inst]); in nhw_IPC_eval_interrupt()
106 #define CHECK_VALID_CHANNEL(inst, ch, what) \ argument
107 if (nhw_ipc_st[inst].n_ch <= ch) { \
109 inst, what, ch, nhw_ipc_st[inst].n_ch); \
112 static void nhw_IPC_signal_EVENT(uint inst, uint ch) { in nhw_IPC_signal_EVENT() argument
113 NRF_IPC_regs[inst].EVENTS_RECEIVE[ch] = 1; in nhw_IPC_signal_EVENT()
114 nhw_IPC_eval_interrupt(inst); in nhw_IPC_signal_EVENT()
115 nhw_dppi_event_signal_if(nhw_IPC_dppi_map[inst], NRF_IPC_regs[inst].PUBLISH_RECEIVE[ch]); in nhw_IPC_signal_EVENT()
125 for (uint inst = 0; inst <= NHW_IPC_TOTAL_INST; inst++) { in nhw_IPC_notify_ipc_ch() local
127 for (int i = 0; i < nhw_ipc_st[inst].n_ch; i++) { in nhw_IPC_notify_ipc_ch()
128 if (NRF_IPC_regs[inst].RECEIVE_CNF[i] & ch_mask) { in nhw_IPC_notify_ipc_ch()
129 nhw_IPC_signal_EVENT(inst, i); in nhw_IPC_notify_ipc_ch()
135 static void nhw_IPC_TASKS_SEND(uint inst, uint ch) { in nhw_IPC_TASKS_SEND() argument
136 CHECK_VALID_CHANNEL(inst, ch, "TASK_SEND"); in nhw_IPC_TASKS_SEND()
138 uint32_t send_cnf = NRF_IPC_regs[inst].SEND_CNF[ch]; in nhw_IPC_TASKS_SEND()
146 void nhw_IPC_regw_sideeffects_TASKS_SEND(uint inst, uint ch) { in nhw_IPC_regw_sideeffects_TASKS_SEND() argument
147 if (NRF_IPC_regs[inst].TASKS_SEND[ch]) { in nhw_IPC_regw_sideeffects_TASKS_SEND()
148 NRF_IPC_regs[inst].TASKS_SEND[ch] = 0; in nhw_IPC_regw_sideeffects_TASKS_SEND()
149 nhw_IPC_TASKS_SEND(inst, ch); in nhw_IPC_regw_sideeffects_TASKS_SEND()
154 unsigned int inst = (uintptr_t)param >> 16; in nhw_IPC_tasks_send_wrap() local
156 nhw_IPC_TASKS_SEND(inst, n); in nhw_IPC_tasks_send_wrap()
159 void nhw_IPC_regw_sideeffects_SUBSCRIBE_SEND(uint inst, uint ch) { in nhw_IPC_regw_sideeffects_SUBSCRIBE_SEND() argument
160 struct ipc_status *this = &nhw_ipc_st[inst]; in nhw_IPC_regw_sideeffects_SUBSCRIBE_SEND()
162 CHECK_VALID_CHANNEL(inst, ch, "SUBSCRIBE"); in nhw_IPC_regw_sideeffects_SUBSCRIBE_SEND()
168 (void*)((inst << 16) + ch)); in nhw_IPC_regw_sideeffects_SUBSCRIBE_SEND()
171 NHW_SIDEEFFECTS_INTEN(IPC, NRF_IPC_regs[inst]., NRF_IPC_regs[inst].INTEN)
172 NHW_SIDEEFFECTS_INTSET(IPC, NRF_IPC_regs[inst]., NRF_IPC_regs[inst].INTEN)
173 NHW_SIDEEFFECTS_INTCLR(IPC, NRF_IPC_regs[inst]., NRF_IPC_regs[inst].INTEN)