Lines Matching refs:p_spim

217 static void spim_abort(NRF_SPIM_Type * p_spim, spim_control_block_t * p_cb)  in spim_abort()  argument
219 nrfy_spim_abort(p_spim, NULL); in spim_abort()
222 NRFX_WAIT_FOR(nrfy_spim_events_process(p_spim, stopped_mask, NULL), 100, 1, stopped); in spim_abort()
225 NRFX_LOG_ERROR("Failed to stop instance with base address: %p.", (void *)p_spim); in spim_abort()
232 nrfy_spim_disable(p_spim); in spim_abort()
784 static void finish_transfer(NRF_SPIM_Type * p_spim, spim_control_block_t * p_cb) in finish_transfer() argument
793 spim_abort(p_spim, p_cb); in finish_transfer()
800 static nrfx_err_t spim_xfer(NRF_SPIM_Type * p_spim, in spim_xfer() argument
809 !nrf_dma_accessible_check(p_spim, p_xfer_desc->p_tx_buffer)) || in spim_xfer()
811 !nrf_dma_accessible_check(p_spim, p_xfer_desc->p_rx_buffer))) in spim_xfer()
822 if (p_spim == NRF_SPIM3) in spim_xfer()
829 nrfy_spim_tx_list_set(p_spim, NRFX_SPIM_FLAG_TX_POSTINC & flags); in spim_xfer()
830 nrfy_spim_rx_list_set(p_spim, NRFX_SPIM_FLAG_RX_POSTINC & flags); in spim_xfer()
837 nrfy_spim_event_clear(p_spim, NRF_SPIM_EVENT_STARTED); in spim_xfer()
840 nrfy_spim_int_enable(p_spim, NRF_SPIM_INT_STARTED_MASK); in spim_xfer()
843 nrfy_spim_buffers_set(p_spim, &xfer_desc); in spim_xfer()
845 nrfy_spim_event_clear(p_spim, NRF_SPIM_EVENT_END); in spim_xfer()
850 true : !nrfy_spim_enable_check(p_spim); in spim_xfer()
852 nrfy_spim_enable(p_spim); in spim_xfer()
856 *(volatile uint32_t *)((uintptr_t)p_spim + 0xc84) = 0x82; in spim_xfer()
859 nrfy_spim_event_clear(p_spim, NRF_SPIM_EVENT_STARTED); in spim_xfer()
860 nrfy_spim_int_enable(p_spim, NRF_SPIM_INT_STARTED_MASK); in spim_xfer()
867 nrfy_spim_xfer_start(p_spim, p_cb->handler ? NULL : &xfer_desc); in spim_xfer()
875 *(volatile uint32_t *)((uintptr_t)p_spim + 0xc84) = 0; in spim_xfer()
880 if (p_spim == NRF_SPIM3) in spim_xfer()
888 spim_abort(p_spim, p_cb); in spim_xfer()
895 nrfy_spim_int_disable(p_spim, NRF_SPIM_INT_END_MASK); in spim_xfer()
899 nrfy_spim_int_enable(p_spim, NRF_SPIM_INT_END_MASK); in spim_xfer()
968 static void irq_handler(NRF_SPIM_Type * p_spim, spim_control_block_t * p_cb) in irq_handler() argument
973 if (nrfy_spim_int_enable_check(p_spim, NRF_SPIM_INT_STARTED_MASK) && in irq_handler()
974 nrfy_spim_event_check(p_spim, NRF_SPIM_EVENT_STARTED)) in irq_handler()
976 nrfy_spim_event_clear(p_spim, NRF_SPIM_EVENT_STARTED); in irq_handler()
977 *(volatile uint32_t *)((uintptr_t)p_spim + 0xc84) = 0; in irq_handler()
978 nrfy_spim_int_disable(p_spim, NRF_SPIM_INT_STARTED_MASK); in irq_handler()
984 if (nrfy_spim_int_enable_check(p_spim, NRF_SPIM_INT_STARTED_MASK) && in irq_handler()
985 nrfy_spim_event_check(p_spim, NRF_SPIM_EVENT_STARTED)) in irq_handler()
988 nrfy_spim_event_clear(p_spim, NRF_SPIM_EVENT_STARTED); in irq_handler()
989 nrfy_spim_event_clear(p_spim, NRF_SPIM_EVENT_END); in irq_handler()
991 NRFX_ASSERT(nrfy_spim_tx_maxcnt_get(p_spim) == 0); in irq_handler()
992 NRFX_ASSERT(nrfy_spim_rx_maxcnt_get(p_spim) == 0); in irq_handler()
995 nrfy_spim_int_disable(p_spim, NRF_SPIM_INT_STARTED_MASK); in irq_handler()
998 nrfy_spim_buffers_set(p_spim, &p_cb->evt.xfer_desc); in irq_handler()
999 nrfy_spim_xfer_start(p_spim, NULL); in irq_handler()
1004 if (nrfy_spim_events_process(p_spim, in irq_handler()
1009 if (p_spim == NRF_SPIM3) in irq_handler()
1016 finish_transfer(p_spim, p_cb); in irq_handler()