Lines Matching refs:p_cb

162     uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx];  in nrfx_uart_init()  local
165 if (p_cb->state != NRFX_DRV_STATE_UNINITIALIZED) in nrfx_uart_init()
193 p_cb->handler = event_handler; in nrfx_uart_init()
194 p_cb->p_context = p_config->p_context; in nrfx_uart_init()
196 if (p_cb->handler) in nrfx_uart_init()
202 p_cb->rx_buffer_length = 0; in nrfx_uart_init()
203 p_cb->rx_secondary_buffer_length = 0; in nrfx_uart_init()
204 p_cb->rx_enabled = false; in nrfx_uart_init()
205 p_cb->tx_buffer_length = 0; in nrfx_uart_init()
206 p_cb->state = NRFX_DRV_STATE_INITIALIZED; in nrfx_uart_init()
215 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_uninit() local
219 if (p_cb->handler) in nrfx_uart_uninit()
230 p_cb->state = NRFX_DRV_STATE_UNINITIALIZED; in nrfx_uart_uninit()
231 p_cb->handler = NULL; in nrfx_uart_uninit()
235 static void tx_byte(NRF_UART_Type * p_uart, uart_control_block_t * p_cb) in tx_byte() argument
238 uint8_t txd = p_cb->p_tx_buffer[p_cb->tx_counter]; in tx_byte()
239 p_cb->tx_counter++; in tx_byte()
243 static bool tx_blocking(NRF_UART_Type * p_uart, uart_control_block_t * p_cb) in tx_blocking() argument
247 size_t const tx_buffer_length = p_cb->tx_buffer_length; in tx_blocking()
248 while (p_cb->tx_counter < tx_buffer_length) in tx_blocking()
254 if (p_cb->tx_abort) in tx_blocking()
260 tx_byte(p_uart, p_cb); in tx_blocking()
270 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_tx() local
271 NRFX_ASSERT(p_cb->state == NRFX_DRV_STATE_INITIALIZED); in nrfx_uart_tx()
285 p_cb->tx_buffer_length = length; in nrfx_uart_tx()
286 p_cb->p_tx_buffer = p_data; in nrfx_uart_tx()
287 p_cb->tx_counter = 0; in nrfx_uart_tx()
288 p_cb->tx_abort = false; in nrfx_uart_tx()
290 NRFX_LOG_INFO("Transfer tx_len: %d.", p_cb->tx_buffer_length); in nrfx_uart_tx()
292 NRFX_LOG_HEXDUMP_DEBUG(p_cb->p_tx_buffer, in nrfx_uart_tx()
293 p_cb->tx_buffer_length * sizeof(p_cb->p_tx_buffer[0])); in nrfx_uart_tx()
300 tx_byte(p_instance->p_reg, p_cb); in nrfx_uart_tx()
302 if (p_cb->handler == NULL) in nrfx_uart_tx()
304 if (!tx_blocking(p_instance->p_reg, p_cb)) in nrfx_uart_tx()
316 p_cb->tx_buffer_length = 0; in nrfx_uart_tx()
335 static void rx_byte(NRF_UART_Type * p_uart, uart_control_block_t * p_cb) in rx_byte() argument
337 if (!p_cb->rx_buffer_length) in rx_byte()
345 p_cb->p_rx_buffer[p_cb->rx_counter] = nrf_uart_rxd_get(p_uart); in rx_byte()
346 p_cb->rx_counter++; in rx_byte()
353 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_rx() local
363 if (p_cb->handler) in nrfx_uart_rx()
368 if (p_cb->rx_buffer_length != 0) in nrfx_uart_rx()
370 if (p_cb->rx_secondary_buffer_length != 0) in nrfx_uart_rx()
372 if (p_cb->handler) in nrfx_uart_rx()
388 p_cb->rx_buffer_length = length; in nrfx_uart_rx()
389 p_cb->p_rx_buffer = p_data; in nrfx_uart_rx()
390 p_cb->rx_counter = 0; in nrfx_uart_rx()
391 p_cb->rx_secondary_buffer_length = 0; in nrfx_uart_rx()
395 p_cb->p_rx_secondary_buffer = p_data; in nrfx_uart_rx()
396 p_cb->rx_secondary_buffer_length = length; in nrfx_uart_rx()
401 if ((!p_cb->rx_enabled) && (!second_buffer)) in nrfx_uart_rx()
406 if (p_cb->handler == NULL) in nrfx_uart_rx()
426 rx_byte(p_instance->p_reg, p_cb); in nrfx_uart_rx()
427 } while (p_cb->rx_buffer_length > p_cb->rx_counter); in nrfx_uart_rx()
429 p_cb->rx_buffer_length = 0; in nrfx_uart_rx()
448 if (p_cb->rx_enabled) in nrfx_uart_rx()
494 static void rx_done_event(uart_control_block_t * p_cb, in rx_done_event() argument
504 p_cb->handler(&event, p_cb->p_context); in rx_done_event()
507 static void tx_done_event(uart_control_block_t * p_cb, in tx_done_event() argument
514 event.data.rxtx.p_data = (uint8_t *)p_cb->p_tx_buffer; in tx_done_event()
516 p_cb->tx_buffer_length = 0; in tx_done_event()
518 p_cb->handler(&event, p_cb->p_context); in tx_done_event()
523 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_tx_abort() local
525 p_cb->tx_abort = true; in nrfx_uart_tx_abort()
527 if (p_cb->handler) in nrfx_uart_tx_abort()
529 tx_done_event(p_cb, p_cb->tx_counter); in nrfx_uart_tx_abort()
545 uart_control_block_t * p_cb) in uart_irq_handler() argument
555 if (!p_cb->rx_enabled) in uart_irq_handler()
561 event.data.error.rxtx.bytes = p_cb->rx_buffer_length; in uart_irq_handler()
562 event.data.error.rxtx.p_data = p_cb->p_rx_buffer; in uart_irq_handler()
565 p_cb->rx_buffer_length = 0; in uart_irq_handler()
566 p_cb->rx_secondary_buffer_length = 0; in uart_irq_handler()
568 p_cb->handler(&event,p_cb->p_context); in uart_irq_handler()
573 rx_byte(p_uart, p_cb); in uart_irq_handler()
574 if (p_cb->rx_buffer_length == p_cb->rx_counter) in uart_irq_handler()
576 if (p_cb->rx_secondary_buffer_length) in uart_irq_handler()
578 uint8_t * p_data = p_cb->p_rx_buffer; in uart_irq_handler()
579 size_t rx_counter = p_cb->rx_counter; in uart_irq_handler()
582 p_cb->rx_buffer_length = p_cb->rx_secondary_buffer_length; in uart_irq_handler()
583 p_cb->p_rx_buffer = p_cb->p_rx_secondary_buffer; in uart_irq_handler()
584 p_cb->rx_secondary_buffer_length = 0; in uart_irq_handler()
585 p_cb->rx_counter = 0; in uart_irq_handler()
586 rx_done_event(p_cb, rx_counter, p_data); in uart_irq_handler()
590 if (!p_cb->rx_enabled) in uart_irq_handler()
596 p_cb->rx_buffer_length = 0; in uart_irq_handler()
597 rx_done_event(p_cb, p_cb->rx_counter, p_cb->p_rx_buffer); in uart_irq_handler()
606 size_t const tx_buffer_length = p_cb->tx_buffer_length; in uart_irq_handler()
607 if (p_cb->tx_counter < tx_buffer_length && !p_cb->tx_abort) in uart_irq_handler()
609 tx_byte(p_uart, p_cb); in uart_irq_handler()
614 if (p_cb->tx_buffer_length) in uart_irq_handler()
616 tx_done_event(p_cb, p_cb->tx_buffer_length); in uart_irq_handler()
626 if (p_cb->rx_enabled) in uart_irq_handler()
630 if (p_cb->rx_buffer_length) in uart_irq_handler()
632 p_cb->rx_buffer_length = 0; in uart_irq_handler()
633 rx_done_event(p_cb, p_cb->rx_counter, p_cb->p_rx_buffer); in uart_irq_handler()