Lines Matching refs:p_cb

144     spi_control_block_t * p_cb  = &m_cb[p_instance->drv_inst_idx];  in nrfx_spi_init()  local
147 if (p_cb->state != NRFX_DRV_STATE_UNINITIALIZED) in nrfx_spi_init()
175 p_cb->handler = handler; in nrfx_spi_init()
176 p_cb->p_context = p_context; in nrfx_spi_init()
180 p_cb->skip_gpio_cfg = p_config->skip_gpio_cfg; in nrfx_spi_init()
181 p_cb->ss_pin = p_config->ss_pin; in nrfx_spi_init()
182 p_cb->orc = p_config->orc; in nrfx_spi_init()
188 p_cb->transfer_in_progress = false; in nrfx_spi_init()
189 p_cb->state = NRFX_DRV_STATE_INITIALIZED; in nrfx_spi_init()
201 spi_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spi_reconfigure() local
203 if (p_cb->state == NRFX_DRV_STATE_UNINITIALIZED) in nrfx_spi_reconfigure()
207 if (p_cb->transfer_in_progress) in nrfx_spi_reconfigure()
219 spi_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spi_uninit() local
222 NRFX_ASSERT(p_cb->state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_spi_uninit()
224 if (p_cb->handler) in nrfx_spi_uninit()
232 if (!p_cb->skip_gpio_cfg) in nrfx_spi_uninit()
248 if (p_cb->ss_pin != NRFX_SPI_PIN_NOT_USED) in nrfx_spi_uninit()
250 nrf_gpio_cfg_default(p_cb->ss_pin); in nrfx_spi_uninit()
258 p_cb->state = NRFX_DRV_STATE_UNINITIALIZED; in nrfx_spi_uninit()
264 spi_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spi_init_check() local
266 return (p_cb->state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_spi_init_check()
269 static void finish_transfer(spi_control_block_t * p_cb) in finish_transfer() argument
272 if (p_cb->ss_pin != NRFX_SPI_PIN_NOT_USED) in finish_transfer()
274 nrf_gpio_pin_write(p_cb->ss_pin, 1); in finish_transfer()
279 p_cb->transfer_in_progress = false; in finish_transfer()
281 p_cb->evt.type = NRFX_SPI_EVENT_DONE; in finish_transfer()
282 p_cb->handler(&p_cb->evt, p_cb->p_context); in finish_transfer()
289 static bool transfer_byte(NRF_SPI_Type * p_spi, spi_control_block_t * p_cb) in transfer_byte() argument
295 if (p_cb->bytes_transferred < p_cb->evt.xfer_desc.rx_length) in transfer_byte()
297 p_cb->evt.xfer_desc.p_rx_buffer[p_cb->bytes_transferred] = rx_data; in transfer_byte()
300 ++p_cb->bytes_transferred; in transfer_byte()
309 size_t bytes_used = p_cb->bytes_transferred + 1; in transfer_byte()
311 if (p_cb->abort) in transfer_byte()
313 if (bytes_used < p_cb->evt.xfer_desc.tx_length) in transfer_byte()
315 p_cb->evt.xfer_desc.tx_length = bytes_used; in transfer_byte()
317 if (bytes_used < p_cb->evt.xfer_desc.rx_length) in transfer_byte()
319 p_cb->evt.xfer_desc.rx_length = bytes_used; in transfer_byte()
323 if (bytes_used < p_cb->evt.xfer_desc.tx_length) in transfer_byte()
325 nrf_spi_txd_set(p_spi, p_cb->evt.xfer_desc.p_tx_buffer[bytes_used]); in transfer_byte()
328 else if (bytes_used < p_cb->evt.xfer_desc.rx_length) in transfer_byte()
330 nrf_spi_txd_set(p_spi, p_cb->orc); in transfer_byte()
334 return (p_cb->bytes_transferred < p_cb->evt.xfer_desc.tx_length || in transfer_byte()
335 p_cb->bytes_transferred < p_cb->evt.xfer_desc.rx_length); in transfer_byte()
339 spi_control_block_t * p_cb, in spi_xfer() argument
342 p_cb->bytes_transferred = 0; in spi_xfer()
351 (p_xfer_desc->tx_length > 0 ? p_xfer_desc->p_tx_buffer[0] : p_cb->orc)); in spi_xfer()
363 nrf_spi_txd_set(p_spi, p_cb->orc); in spi_xfer()
371 if (p_cb->handler) in spi_xfer()
381 } while (transfer_byte(p_spi, p_cb)); in spi_xfer()
382 if (p_cb->ss_pin != NRFX_SPI_PIN_NOT_USED) in spi_xfer()
384 nrf_gpio_pin_write(p_cb->ss_pin, 1); in spi_xfer()
393 spi_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spi_xfer() local
395 NRFX_ASSERT(p_cb->state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_spi_xfer()
401 if (p_cb->transfer_in_progress) in nrfx_spi_xfer()
411 if (p_cb->handler) in nrfx_spi_xfer()
413 p_cb->transfer_in_progress = true; in nrfx_spi_xfer()
417 p_cb->evt.xfer_desc = *p_xfer_desc; in nrfx_spi_xfer()
418 p_cb->abort = false; in nrfx_spi_xfer()
420 if (p_cb->ss_pin != NRFX_SPI_PIN_NOT_USED) in nrfx_spi_xfer()
422 nrf_gpio_pin_write(p_cb->ss_pin, 0); in nrfx_spi_xfer()
426 p_cb->transfer_in_progress = false; in nrfx_spi_xfer()
431 spi_xfer(p_instance->p_reg, p_cb, p_xfer_desc); in nrfx_spi_xfer()
441 spi_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_spi_abort() local
443 NRFX_ASSERT(p_cb->state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_spi_abort()
445 p_cb->abort = true; in nrfx_spi_abort()
448 static void irq_handler(NRF_SPI_Type * p_spi, spi_control_block_t * p_cb) in irq_handler() argument
450 NRFX_ASSERT(p_cb->handler); in irq_handler()
455 if (!transfer_byte(p_spi, p_cb)) in irq_handler()
457 finish_transfer(p_cb); in irq_handler()