Lines Matching refs:p_instance
76 static void interrupts_enable(nrfx_uart_t const * p_instance, in interrupts_enable() argument
79 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_TXDRDY); in interrupts_enable()
80 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_RXTO); in interrupts_enable()
81 nrf_uart_int_enable(p_instance->p_reg, NRF_UART_INT_MASK_TXDRDY | in interrupts_enable()
83 NRFX_IRQ_PRIORITY_SET(nrfx_get_irq_number((void *)p_instance->p_reg), in interrupts_enable()
85 NRFX_IRQ_ENABLE(nrfx_get_irq_number((void *)p_instance->p_reg)); in interrupts_enable()
88 static void interrupts_disable(nrfx_uart_t const * p_instance) in interrupts_disable() argument
90 nrf_uart_int_disable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in interrupts_disable()
94 NRFX_IRQ_DISABLE(nrfx_get_irq_number((void *)p_instance->p_reg)); in interrupts_disable()
97 static void uart_configure(nrfx_uart_t const * p_instance, in uart_configure() argument
100 nrf_uart_baudrate_set(p_instance->p_reg, p_config->baudrate); in uart_configure()
101 nrf_uart_configure(p_instance->p_reg, &p_config->hal_cfg); in uart_configure()
117 nrf_uart_txrx_pins_set(p_instance->p_reg, in uart_configure()
137 nrf_uart_hwfc_pins_set(p_instance->p_reg, in uart_configure()
142 if (m_cb[p_instance->drv_inst_idx].handler) in uart_configure()
144 interrupts_enable(p_instance, p_config->interrupt_priority); in uart_configure()
148 static void pins_to_default(nrfx_uart_t const * p_instance) in pins_to_default() argument
150 uart_control_block_t const * p_cb = &m_cb[p_instance->drv_inst_idx]; in pins_to_default()
158 txd = nrf_uart_tx_pin_get(p_instance->p_reg); in pins_to_default()
159 rxd = nrf_uart_rx_pin_get(p_instance->p_reg); in pins_to_default()
160 rts = nrf_uart_rts_pin_get(p_instance->p_reg); in pins_to_default()
161 cts = nrf_uart_cts_pin_get(p_instance->p_reg); in pins_to_default()
165 nrf_uart_txrx_pins_disconnect(p_instance->p_reg); in pins_to_default()
166 nrf_uart_hwfc_pins_disconnect(p_instance->p_reg); in pins_to_default()
190 nrfx_err_t nrfx_uart_init(nrfx_uart_t const * p_instance, in nrfx_uart_init() argument
196 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_init()
216 if (nrfx_prs_acquire(p_instance->p_reg, in nrfx_uart_init()
217 irq_handlers[p_instance->drv_inst_idx]) != NRFX_SUCCESS) in nrfx_uart_init()
233 uart_configure(p_instance, p_config); in nrfx_uart_init()
236 nrf_uart_enable(p_instance->p_reg); in nrfx_uart_init()
248 nrfx_err_t nrfx_uart_reconfigure(nrfx_uart_t const * p_instance, in nrfx_uart_reconfigure() argument
253 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_reconfigure()
259 if (nrfx_uart_tx_in_progress(p_instance)) in nrfx_uart_reconfigure()
263 nrf_uart_disable(p_instance->p_reg); in nrfx_uart_reconfigure()
268 uart_configure(p_instance, p_config); in nrfx_uart_reconfigure()
269 nrf_uart_enable(p_instance->p_reg); in nrfx_uart_reconfigure()
273 void nrfx_uart_uninit(nrfx_uart_t const * p_instance) in nrfx_uart_uninit() argument
275 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_uninit()
279 nrf_uart_disable(p_instance->p_reg); in nrfx_uart_uninit()
283 interrupts_disable(p_instance); in nrfx_uart_uninit()
286 pins_to_default(p_instance); in nrfx_uart_uninit()
289 nrfx_prs_release(p_instance->p_reg); in nrfx_uart_uninit()
294 NRFX_LOG_INFO("Instance uninitialized: %d.", p_instance->drv_inst_idx); in nrfx_uart_uninit()
297 bool nrfx_uart_init_check(nrfx_uart_t const * p_instance) in nrfx_uart_init_check() argument
299 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_init_check()
335 nrfx_err_t nrfx_uart_tx(nrfx_uart_t const * p_instance, in nrfx_uart_tx() argument
339 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_tx()
347 if (nrfx_uart_tx_in_progress(p_instance)) in nrfx_uart_tx()
367 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_TXDRDY); in nrfx_uart_tx()
368 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STARTTX); in nrfx_uart_tx()
370 tx_byte(p_instance->p_reg, p_cb); in nrfx_uart_tx()
374 if (!tx_blocking(p_instance->p_reg, p_cb)) in nrfx_uart_tx()
382 while (!nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_TXDRDY)) in nrfx_uart_tx()
384 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPTX); in nrfx_uart_tx()
393 bool nrfx_uart_tx_in_progress(nrfx_uart_t const * p_instance) in nrfx_uart_tx_in_progress() argument
395 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_uart_tx_in_progress()
397 return (m_cb[p_instance->drv_inst_idx].tx_buffer_length != 0); in nrfx_uart_tx_in_progress()
400 static void rx_enable(nrfx_uart_t const * p_instance) in rx_enable() argument
402 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_ERROR); in rx_enable()
403 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STARTRX); in rx_enable()
420 nrfx_err_t nrfx_uart_rx(nrfx_uart_t const * p_instance, in nrfx_uart_rx() argument
424 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_rx()
436 nrf_uart_int_disable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx()
445 nrf_uart_int_enable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx()
474 rx_enable(p_instance); in nrfx_uart_rx()
479 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_RXTO); in nrfx_uart_rx()
488 error = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_ERROR); in nrfx_uart_rx()
489 rxrdy = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXDRDY); in nrfx_uart_rx()
490 rxto = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXTO); in nrfx_uart_rx()
497 rx_byte(p_instance->p_reg, p_cb); in nrfx_uart_rx()
521 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STARTRX); in nrfx_uart_rx()
526 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPRX); in nrfx_uart_rx()
531 nrf_uart_int_enable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx()
539 bool nrfx_uart_rx_ready(nrfx_uart_t const * p_instance) in nrfx_uart_rx_ready() argument
541 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_uart_rx_ready()
543 return nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXDRDY); in nrfx_uart_rx_ready()
546 void nrfx_uart_rx_enable(nrfx_uart_t const * p_instance) in nrfx_uart_rx_enable() argument
548 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].state == NRFX_DRV_STATE_INITIALIZED); in nrfx_uart_rx_enable()
550 if (!m_cb[p_instance->drv_inst_idx].rx_enabled) in nrfx_uart_rx_enable()
552 rx_enable(p_instance); in nrfx_uart_rx_enable()
553 m_cb[p_instance->drv_inst_idx].rx_enabled = true; in nrfx_uart_rx_enable()
557 void nrfx_uart_rx_disable(nrfx_uart_t const * p_instance) in nrfx_uart_rx_disable() argument
559 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].state == NRFX_DRV_STATE_INITIALIZED); in nrfx_uart_rx_disable()
561 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPRX); in nrfx_uart_rx_disable()
562 m_cb[p_instance->drv_inst_idx].rx_enabled = false; in nrfx_uart_rx_disable()
565 uint32_t nrfx_uart_errorsrc_get(nrfx_uart_t const * p_instance) in nrfx_uart_errorsrc_get() argument
567 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_uart_errorsrc_get()
569 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].handler == NULL); in nrfx_uart_errorsrc_get()
571 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_ERROR); in nrfx_uart_errorsrc_get()
572 return nrf_uart_errorsrc_get_and_clear(p_instance->p_reg); in nrfx_uart_errorsrc_get()
610 void nrfx_uart_tx_abort(nrfx_uart_t const * p_instance) in nrfx_uart_tx_abort() argument
612 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_tx_abort()
617 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPTX); in nrfx_uart_tx_abort()
626 void nrfx_uart_rx_abort(nrfx_uart_t const * p_instance) in nrfx_uart_rx_abort() argument
628 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_uart_rx_abort()
630 nrf_uart_int_disable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx_abort()
632 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPRX); in nrfx_uart_rx_abort()