Lines Matching refs:p_instance

72 static void apply_config(nrfx_uart_t        const * p_instance,  in apply_config()  argument
85 nrf_uart_baudrate_set(p_instance->p_reg, p_config->baudrate); in apply_config()
86 nrf_uart_configure(p_instance->p_reg, &p_config->hal_cfg); in apply_config()
87 nrf_uart_txrx_pins_set(p_instance->p_reg, p_config->pseltxd, p_config->pselrxd); in apply_config()
99 nrf_uart_hwfc_pins_set(p_instance->p_reg, p_config->pselrts, p_config->pselcts); in apply_config()
103 static void interrupts_enable(nrfx_uart_t const * p_instance, in interrupts_enable() argument
106 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_TXDRDY); in interrupts_enable()
107 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_RXTO); in interrupts_enable()
108 nrf_uart_int_enable(p_instance->p_reg, NRF_UART_INT_MASK_TXDRDY | in interrupts_enable()
110 NRFX_IRQ_PRIORITY_SET(nrfx_get_irq_number((void *)p_instance->p_reg), in interrupts_enable()
112 NRFX_IRQ_ENABLE(nrfx_get_irq_number((void *)p_instance->p_reg)); in interrupts_enable()
115 static void interrupts_disable(nrfx_uart_t const * p_instance) in interrupts_disable() argument
117 nrf_uart_int_disable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in interrupts_disable()
121 NRFX_IRQ_DISABLE(nrfx_get_irq_number((void *)p_instance->p_reg)); in interrupts_disable()
124 static void pins_to_default(nrfx_uart_t const * p_instance) in pins_to_default() argument
132 txd = nrf_uart_tx_pin_get(p_instance->p_reg); in pins_to_default()
133 rxd = nrf_uart_rx_pin_get(p_instance->p_reg); in pins_to_default()
134 rts = nrf_uart_rts_pin_get(p_instance->p_reg); in pins_to_default()
135 cts = nrf_uart_cts_pin_get(p_instance->p_reg); in pins_to_default()
136 nrf_uart_txrx_pins_disconnect(p_instance->p_reg); in pins_to_default()
137 nrf_uart_hwfc_pins_disconnect(p_instance->p_reg); in pins_to_default()
157 nrfx_err_t nrfx_uart_init(nrfx_uart_t const * p_instance, in nrfx_uart_init() argument
162 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_init()
180 if (nrfx_prs_acquire(p_instance->p_reg, in nrfx_uart_init()
181 irq_handlers[p_instance->drv_inst_idx]) != NRFX_SUCCESS) in nrfx_uart_init()
191 apply_config(p_instance, p_config); in nrfx_uart_init()
198 interrupts_enable(p_instance, p_config->interrupt_priority); in nrfx_uart_init()
201 nrf_uart_enable(p_instance->p_reg); in nrfx_uart_init()
213 void nrfx_uart_uninit(nrfx_uart_t const * p_instance) in nrfx_uart_uninit() argument
215 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_uninit()
217 nrf_uart_disable(p_instance->p_reg); in nrfx_uart_uninit()
221 interrupts_disable(p_instance); in nrfx_uart_uninit()
224 pins_to_default(p_instance); in nrfx_uart_uninit()
227 nrfx_prs_release(p_instance->p_reg); in nrfx_uart_uninit()
232 NRFX_LOG_INFO("Instance uninitialized: %d.", p_instance->drv_inst_idx); in nrfx_uart_uninit()
266 nrfx_err_t nrfx_uart_tx(nrfx_uart_t const * p_instance, in nrfx_uart_tx() argument
270 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_tx()
277 if (nrfx_uart_tx_in_progress(p_instance)) in nrfx_uart_tx()
297 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_TXDRDY); in nrfx_uart_tx()
298 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STARTTX); in nrfx_uart_tx()
300 tx_byte(p_instance->p_reg, p_cb); in nrfx_uart_tx()
304 if (!tx_blocking(p_instance->p_reg, p_cb)) in nrfx_uart_tx()
312 while (!nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_TXDRDY)) in nrfx_uart_tx()
314 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPTX); in nrfx_uart_tx()
323 bool nrfx_uart_tx_in_progress(nrfx_uart_t const * p_instance) in nrfx_uart_tx_in_progress() argument
325 return (m_cb[p_instance->drv_inst_idx].tx_buffer_length != 0); in nrfx_uart_tx_in_progress()
328 static void rx_enable(nrfx_uart_t const * p_instance) in rx_enable() argument
330 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_ERROR); in rx_enable()
331 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_RXDRDY); in rx_enable()
332 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STARTRX); in rx_enable()
349 nrfx_err_t nrfx_uart_rx(nrfx_uart_t const * p_instance, in nrfx_uart_rx() argument
353 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_rx()
355 NRFX_ASSERT(m_cb[p_instance->drv_inst_idx].state == NRFX_DRV_STATE_INITIALIZED); in nrfx_uart_rx()
365 nrf_uart_int_disable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx()
374 nrf_uart_int_enable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx()
403 rx_enable(p_instance); in nrfx_uart_rx()
408 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_RXTO); in nrfx_uart_rx()
417 error = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_ERROR); in nrfx_uart_rx()
418 rxrdy = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXDRDY); in nrfx_uart_rx()
419 rxto = nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXTO); in nrfx_uart_rx()
426 rx_byte(p_instance->p_reg, p_cb); in nrfx_uart_rx()
450 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STARTRX); in nrfx_uart_rx()
455 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPRX); in nrfx_uart_rx()
460 nrf_uart_int_enable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx()
468 bool nrfx_uart_rx_ready(nrfx_uart_t const * p_instance) in nrfx_uart_rx_ready() argument
470 return nrf_uart_event_check(p_instance->p_reg, NRF_UART_EVENT_RXDRDY); in nrfx_uart_rx_ready()
473 void nrfx_uart_rx_enable(nrfx_uart_t const * p_instance) in nrfx_uart_rx_enable() argument
475 if (!m_cb[p_instance->drv_inst_idx].rx_enabled) in nrfx_uart_rx_enable()
477 rx_enable(p_instance); in nrfx_uart_rx_enable()
478 m_cb[p_instance->drv_inst_idx].rx_enabled = true; in nrfx_uart_rx_enable()
482 void nrfx_uart_rx_disable(nrfx_uart_t const * p_instance) in nrfx_uart_rx_disable() argument
484 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPRX); in nrfx_uart_rx_disable()
485 m_cb[p_instance->drv_inst_idx].rx_enabled = false; in nrfx_uart_rx_disable()
488 uint32_t nrfx_uart_errorsrc_get(nrfx_uart_t const * p_instance) in nrfx_uart_errorsrc_get() argument
490 nrf_uart_event_clear(p_instance->p_reg, NRF_UART_EVENT_ERROR); in nrfx_uart_errorsrc_get()
491 return nrf_uart_errorsrc_get_and_clear(p_instance->p_reg); in nrfx_uart_errorsrc_get()
521 void nrfx_uart_tx_abort(nrfx_uart_t const * p_instance) in nrfx_uart_tx_abort() argument
523 uart_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uart_tx_abort()
526 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPTX); in nrfx_uart_tx_abort()
535 void nrfx_uart_rx_abort(nrfx_uart_t const * p_instance) in nrfx_uart_rx_abort() argument
537 nrf_uart_int_disable(p_instance->p_reg, NRF_UART_INT_MASK_RXDRDY | in nrfx_uart_rx_abort()
539 nrf_uart_task_trigger(p_instance->p_reg, NRF_UART_TASK_STOPRX); in nrfx_uart_rx_abort()