Lines Matching refs:p_cb
190 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in uarte_configure() local
195 p_cb->flags |= UARTE_FLAG_GPIO_UNINIT; in uarte_configure()
213 p_cb->flags |= UARTE_FLAG_HWFC_PINS; in uarte_configure()
227 p_cb->flags |= UARTE_FLAG_PSEL_UNINIT; in uarte_configure()
274 uarte_control_block_t const * p_cb = &m_cb[p_instance->drv_inst_idx]; in pins_to_default() local
285 (p_cb->flags & UARTE_FLAG_PSEL_UNINIT)) in pins_to_default()
292 if (p_cb->flags & UARTE_FLAG_GPIO_UNINIT) in pins_to_default()
303 if (p_cb->flags & UARTE_FLAG_HWFC_PINS) in pins_to_default()
448 uarte_control_block_t * p_cb = &m_cb[inst_idx]; in nrfx_uarte_init() local
451 if (p_cb->state != NRFX_DRV_STATE_UNINITIALIZED) in nrfx_uarte_init()
478 memset(p_cb, 0, sizeof(uarte_control_block_t)); in nrfx_uarte_init()
480 p_cb->p_context = p_config->p_context; in nrfx_uarte_init()
481 p_cb->tx.cache.p_buffer = p_config->tx_cache.p_buffer; in nrfx_uarte_init()
484 p_cb->tx.cache.length = 0; in nrfx_uarte_init()
488 p_cb->tx.cache.length = p_config->tx_cache.length - 1; in nrfx_uarte_init()
492 p_cb->rx.flush.p_buffer = p_config->rx_cache.p_buffer; in nrfx_uarte_init()
493 p_cb->rx.flush.length = 0; in nrfx_uarte_init()
503 p_cb->rx.p_cache = p_config->p_rx_cache_scratch; in nrfx_uarte_init()
505 memset(p_cb->rx.p_cache, 0, sizeof(*p_cb->rx.p_cache)); in nrfx_uarte_init()
508 p_cb->rx.p_cache->cache_len = buf_len; in nrfx_uarte_init()
509 p_cb->rx.p_cache->cache[0].p_buffer = in nrfx_uarte_init()
511 p_cb->rx.p_cache->cache[1].p_buffer = in nrfx_uarte_init()
526 p_cb->flags |= UARTE_FLAG_TX_STOP_ON_END; in nrfx_uarte_init()
530 p_cb->handler = event_handler; in nrfx_uarte_init()
531 p_cb->state = NRFX_DRV_STATE_INITIALIZED; in nrfx_uarte_init()
564 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_reconfigure() local
566 if (p_cb->state == NRFX_DRV_STATE_UNINITIALIZED) in nrfx_uarte_reconfigure()
575 if (p_cb->handler) in nrfx_uarte_reconfigure()
577 p_cb->p_context = p_config->p_context; in nrfx_uarte_reconfigure()
581 if (prepare_tx(p_instance->p_reg, p_cb->flags & UARTE_FLAG_TX_STOP_ON_END)) in nrfx_uarte_reconfigure()
594 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_uninit() local
597 NRFX_ASSERT(p_cb->state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_uarte_uninit()
624 p_cb->flags = 0; in nrfx_uarte_uninit()
625 p_cb->state = NRFX_DRV_STATE_UNINITIALIZED; in nrfx_uarte_uninit()
626 p_cb->handler = NULL; in nrfx_uarte_uninit()
632 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_init_check() local
634 return (p_cb->state != NRFX_DRV_STATE_UNINITIALIZED); in nrfx_uarte_init_check()
654 static bool is_rx_active(uarte_control_block_t * p_cb) in is_rx_active() argument
656 return (p_cb->flags & UARTE_FLAG_RX_ENABLED) ? true : false; in is_rx_active()
661 uarte_control_block_t * p_cb) in disable_hw_from_tx() argument
663 if (nrfy_uarte_event_check(p_uarte, NRF_UARTE_EVENT_TXSTOPPED) && !is_rx_active(p_cb)) in disable_hw_from_tx()
671 uarte_control_block_t * p_cb) in block_on_tx() argument
673 bool stop_on_end = p_cb->flags & UARTE_FLAG_TX_STOP_ON_END; in block_on_tx()
701 disable_hw_from_tx(p_uarte, p_cb); in block_on_tx()
747 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in poll_out() local
749 NRFX_ASSERT(p_cb->state == NRFX_DRV_STATE_INITIALIZED); in poll_out()
754 if (p_cb->tx.cache.p_buffer == NULL) in poll_out()
768 bool tx_ready = is_tx_ready(p_uarte, p_cb->flags & UARTE_FLAG_TX_STOP_ON_END); in poll_out()
772 if (p_cb->tx.amount < 0) in poll_out()
774 p_cb->tx.amount = (int)nrfy_uarte_tx_amount_get(p_uarte); in poll_out()
779 p_cb->tx.cache.p_buffer[p_cb->tx.cache.length] = *p_byte; in poll_out()
780 p_buf = &p_cb->tx.cache.p_buffer[p_cb->tx.cache.length]; in poll_out()
793 err = wait_for_endtx(p_uarte, p_buf, 1, p_cb->flags & UARTE_FLAG_TX_STOP_ON_END); in poll_out()
796 disable_hw_from_tx(p_uarte, p_cb); in poll_out()
804 uarte_control_block_t * p_cb, in tx_prepare_start() argument
807 if (!is_tx_ready(p_uarte, p_cb->flags & UARTE_FLAG_TX_STOP_ON_END)) in tx_prepare_start()
810 p_cb->flags |= UARTE_FLAG_TX_PENDING; in tx_prepare_start()
820 uint32_t chunk_len = NRFX_MIN(p_cb->tx.cache.length, p_cb->tx.curr.length - p_cb->tx.off); in tx_prepare_start()
822 memcpy(p_cb->tx.cache.p_buffer, &p_cb->tx.curr.p_buffer[p_cb->tx.off], chunk_len); in tx_prepare_start()
823 p_buf = p_cb->tx.cache.p_buffer; in tx_prepare_start()
828 p_buf = p_cb->tx.curr.p_buffer; in tx_prepare_start()
829 xfer_len = p_cb->tx.curr.length; in tx_prepare_start()
831 p_cb->tx.amount = -1; in tx_prepare_start()
842 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in blocking_tx() local
843 bool early_ret = p_cb->handler && (flags & NRFX_UARTE_TX_EARLY_RETURN); in blocking_tx()
846 if ((early_ret && !p_cb->tx.cache.p_buffer) || (p_cb->flags & UARTE_FLAG_TX_LINKED)) in blocking_tx()
869 if (!p_cb->handler && (p_cb->flags & UARTE_FLAG_TX_ABORTED)) in blocking_tx()
871 NRFX_ATOMIC_FETCH_AND(&p_cb->flags, ~UARTE_FLAG_TX_ABORTED); in blocking_tx()
884 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_tx() local
887 NRFX_ASSERT(p_cb->state == NRFX_DRV_STATE_INITIALIZED); in nrfx_uarte_tx()
900 if (!p_cb->handler && (flags == 0)) in nrfx_uarte_tx()
902 if (p_cb->tx.curr.length == 0) in nrfx_uarte_tx()
904 p_cb->tx.curr.length = length; in nrfx_uarte_tx()
912 p_cb->tx.curr.length = 0; in nrfx_uarte_tx()
926 if (!p_cb->tx.cache.p_buffer || in nrfx_uarte_tx()
936 if ((p_cb->flags & UARTE_FLAG_TX_STOP_ON_END) && in nrfx_uarte_tx()
952 if (p_cb->tx.curr.length == 0) in nrfx_uarte_tx()
954 p_cb->tx.curr.length = length; in nrfx_uarte_tx()
961 p_cb->tx.curr.p_buffer = (uint8_t *)p_data; in nrfx_uarte_tx()
969 p_cb->flags |= UARTE_FLAG_TX_USE_CACHE; in nrfx_uarte_tx()
972 tx_prepare_start(p_uarte, p_cb, use_cache); in nrfx_uarte_tx()
975 !p_cb->tx.next.length && (flags & NRFX_UARTE_TX_LINK)) in nrfx_uarte_tx()
977 if (nrf_dma_accessible_check(p_uarte, p_cb->tx.curr.p_buffer)) in nrfx_uarte_tx()
981 p_cb->flags |= UARTE_FLAG_TX_LINKED; in nrfx_uarte_tx()
988 p_cb->tx.next.p_buffer = (uint8_t *)p_data; in nrfx_uarte_tx()
994 p_cb->tx.next.length = length; in nrfx_uarte_tx()
1034 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_tx_abort() local
1039 if (p_cb->tx.curr.length == 0) in nrfx_uarte_tx_abort()
1045 NRFX_ATOMIC_FETCH_OR(&p_cb->flags, UARTE_FLAG_TX_ABORTED); in nrfx_uarte_tx_abort()
1051 block_on_tx(p_uarte, p_cb); in nrfx_uarte_tx_abort()
1053 p_cb->tx.curr.length = 0; in nrfx_uarte_tx_abort()
1063 static void user_handler(uarte_control_block_t * p_cb, nrfx_uarte_evt_type_t type) in user_handler() argument
1069 p_cb->handler(&event, p_cb->p_context); in user_handler()
1072 static void user_handler_on_rx_disabled(uarte_control_block_t * p_cb, size_t flush_cnt) in user_handler_on_rx_disabled() argument
1083 p_cb->handler(&event, p_cb->p_context); in user_handler_on_rx_disabled()
1086 static void user_handler_on_error(NRF_UARTE_Type * p_uarte, uarte_control_block_t * p_cb) in user_handler_on_error() argument
1097 p_cb->handler(&event, p_cb->p_context); in user_handler_on_error()
1100 static void user_handler_on_rx_done(uarte_control_block_t * p_cb, in user_handler_on_rx_done() argument
1123 p_cb->handler(&event, p_cb->p_context); in user_handler_on_rx_done()
1126 static void user_handler_on_tx_done(uarte_control_block_t * p_cb, in user_handler_on_tx_done() argument
1151 p_cb->handler(&event, p_cb->p_context); in user_handler_on_tx_done()
1154 static void release_rx(uarte_control_block_t * p_cb) in release_rx() argument
1157 NRFX_ATOMIC_FETCH_AND(&p_cb->flags, ~UARTE_RX_FLAGS); in release_rx()
1179 uarte_control_block_t * p_cb, in on_rx_disabled() argument
1187 p_cb->rx.curr.p_buffer = NULL; in on_rx_disabled()
1188 p_cb->rx.next.p_buffer = NULL; in on_rx_disabled()
1189 release_rx(p_cb); in on_rx_disabled()
1190 user_handler_on_rx_disabled(p_cb, flush_cnt); in on_rx_disabled()
1193 static void handler_on_rx_done(uarte_control_block_t * p_cb, in handler_on_rx_done() argument
1198 bool cache_used = RX_CACHE_SUPPORTED && (p_cb->flags & UARTE_FLAG_RX_USE_CACHE); in handler_on_rx_done()
1199 nrfx_uarte_rx_cache_t * p_cache = p_cb->rx.p_cache; in handler_on_rx_done()
1203 user_handler_on_rx_done(p_cb, p_data, len); in handler_on_rx_done()
1228 user_handler_on_rx_done(p_cb, p_buf, buf_len); in handler_on_rx_done()
1236 static bool rx_flushed_handler(NRF_UARTE_Type * p_uarte, uarte_control_block_t * p_cb) in rx_flushed_handler() argument
1238 if (p_cb->rx.flush.length == 0) in rx_flushed_handler()
1243 if ((uint32_t)p_cb->rx.flush.length >= p_cb->rx.curr.length) in rx_flushed_handler()
1245 uint8_t * p_buf = p_cb->rx.curr.p_buffer; in rx_flushed_handler()
1246 size_t len = p_cb->rx.curr.length; in rx_flushed_handler()
1248 p_cb->rx.curr.p_buffer = NULL; in rx_flushed_handler()
1249 p_cb->rx.curr.length = 0; in rx_flushed_handler()
1250 memcpy(p_buf, p_cb->rx.flush.p_buffer, len); in rx_flushed_handler()
1251 p_cb->rx.flush.length -= len; in rx_flushed_handler()
1252 memmove(p_cb->rx.flush.p_buffer, &p_cb->rx.flush.p_buffer[len], p_cb->rx.flush.length); in rx_flushed_handler()
1254 if (p_cb->handler) in rx_flushed_handler()
1256 bool stop_on_end = p_cb->flags & UARTE_FLAG_RX_STOP_ON_END; in rx_flushed_handler()
1260 NRFX_ATOMIC_FETCH_OR(&p_cb->flags, UARTE_FLAG_RX_ABORTED); in rx_flushed_handler()
1263 handler_on_rx_done(p_cb, p_buf, len, false); in rx_flushed_handler()
1266 on_rx_disabled(p_uarte, p_cb, 0); in rx_flushed_handler()
1274 memcpy(p_cb->rx.curr.p_buffer, p_cb->rx.flush.p_buffer, p_cb->rx.flush.length); in rx_flushed_handler()
1275 p_cb->rx.off = p_cb->rx.flush.length; in rx_flushed_handler()
1276 p_cb->rx.flush.length = 0; in rx_flushed_handler()
1277 NRFX_ATOMIC_FETCH_OR(&p_cb->flags, UARTE_FLAG_RX_FROM_FLUSH); in rx_flushed_handler()
1285 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_rx_enable() local
1289 prev_flags = NRFX_ATOMIC_FETCH_OR(&p_cb->flags, UARTE_FLAG_RX_ENABLED); in nrfx_uarte_rx_enable()
1295 if ((flags & NRFX_UARTE_RX_ENABLE_KEEP_FIFO_CONTENT) && !p_cb->rx.flush.p_buffer) in nrfx_uarte_rx_enable()
1311 NRFX_ATOMIC_FETCH_OR(&p_cb->flags, rt_flags); in nrfx_uarte_rx_enable()
1313 if ((p_cb->rx.curr.p_buffer == NULL) && p_cb->handler) in nrfx_uarte_rx_enable()
1315 user_handler(p_cb, NRFX_UARTE_EVT_RX_BUF_REQUEST); in nrfx_uarte_rx_enable()
1319 if (p_cb->rx.curr.p_buffer == NULL) in nrfx_uarte_rx_enable()
1324 if (!is_rx_active(p_cb)) in nrfx_uarte_rx_enable()
1329 release_rx(p_cb); in nrfx_uarte_rx_enable()
1333 if (nrfy_uarte_int_enable_check(p_uarte, NRF_UARTE_INT_RXDRDY_MASK) && p_cb->handler && in nrfx_uarte_rx_enable()
1334 (p_cb->flags & UARTE_FLAG_RX_FROM_FLUSH)) in nrfx_uarte_rx_enable()
1336 NRFX_ATOMIC_FETCH_AND(&p_cb->flags, ~UARTE_FLAG_RX_FROM_FLUSH); in nrfx_uarte_rx_enable()
1337 user_handler(p_cb, NRFX_UARTE_EVT_RX_BYTE); in nrfx_uarte_rx_enable()
1341 if (p_cb->flags & UARTE_FLAG_RX_ENABLED) in nrfx_uarte_rx_enable()
1349 if (p_cb->handler) in nrfx_uarte_rx_enable()
1359 uarte_control_block_t * p_cb, in rx_buffer_set() argument
1365 if (p_cb->rx.curr.p_buffer == NULL || in rx_buffer_set()
1366 (!p_cb->handler && nrfy_uarte_event_check(p_uarte, NRF_UARTE_EVENT_ENDRX))) in rx_buffer_set()
1368 if (p_cb->rx.curr.p_buffer) in rx_buffer_set()
1373 p_cb->rx.curr.p_buffer = p_data; in rx_buffer_set()
1374 p_cb->rx.curr.length = length; in rx_buffer_set()
1376 if (rx_flushed_handler(p_uarte, p_cb)) in rx_buffer_set()
1379 &p_cb->rx.curr.p_buffer[p_cb->rx.off], in rx_buffer_set()
1380 p_cb->rx.curr.length - p_cb->rx.off); in rx_buffer_set()
1381 if (p_cb->flags & UARTE_FLAG_RX_ENABLED) in rx_buffer_set()
1383 NRFX_ATOMIC_FETCH_AND(&p_cb->flags, ~UARTE_FLAG_RX_ABORTED); in rx_buffer_set()
1392 else if (p_cb->rx.next.p_buffer == NULL) in rx_buffer_set()
1394 p_cb->rx.next.p_buffer = p_data; in rx_buffer_set()
1395 p_cb->rx.next.length = length; in rx_buffer_set()
1398 if (p_cb->flags & UARTE_FLAG_RX_CONT) in rx_buffer_set()
1450 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_rx_buffer_set() local
1458 if (p_cb->flags & UARTE_FLAG_RX_ABORTED) in nrfx_uarte_rx_buffer_set()
1465 if (!RX_CACHE_SUPPORTED || !p_cb->rx.p_cache || !p_cb->handler) in nrfx_uarte_rx_buffer_set()
1471 nrfx_uarte_rx_cache_t * p_cache = p_cb->rx.p_cache; in nrfx_uarte_rx_buffer_set()
1483 NRFX_ATOMIC_FETCH_OR(&p_cb->flags, UARTE_FLAG_RX_USE_CACHE); in nrfx_uarte_rx_buffer_set()
1491 if (!p_cb->rx.next.p_buffer) in nrfx_uarte_rx_buffer_set()
1504 else if (RX_CACHE_SUPPORTED && (p_cb->flags & UARTE_FLAG_RX_USE_CACHE)) in nrfx_uarte_rx_buffer_set()
1517 err = rx_buffer_set(p_uarte, p_cb, p_data, length); in nrfx_uarte_rx_buffer_set()
1525 static void rx_flush(NRF_UARTE_Type * p_uarte, uarte_control_block_t * p_cb) in rx_flush() argument
1527 if (!(p_cb->flags & UARTE_FLAG_RX_KEEP_FIFO_CONTENT)) in rx_flush()
1529 p_cb->rx.flush.length = 0; in rx_flush()
1541 nrfy_uarte_rx_buffer_set(p_uarte, p_cb->rx.flush.p_buffer, UARTE_HW_RX_FIFO_SIZE); in rx_flush()
1555 p_cb->rx.flush.length = nrfy_uarte_event_check(p_uarte, NRF_UARTE_EVENT_RXSTARTED) ? in rx_flush()
1560 p_cb->rx.flush.length = nrfy_uarte_rx_amount_get(p_uarte); in rx_flush()
1566 uarte_control_block_t * p_cb) in wait_for_rx_completion() argument
1575 rx_flush(p_uarte, p_cb); in wait_for_rx_completion()
1578 p_cb->rx.curr.p_buffer = NULL; in wait_for_rx_completion()
1579 p_cb->rx.next.p_buffer = NULL; in wait_for_rx_completion()
1580 release_rx(p_cb); in wait_for_rx_completion()
1584 uarte_control_block_t * p_cb, in rx_abort() argument
1595 if (!((p_cb->flags & (UARTE_FLAG_RX_ENABLED | UARTE_FLAG_RX_ABORTED)) == in rx_abort()
1602 p_cb->rx.flush.length = 0; in rx_abort()
1620 NRFX_ATOMIC_FETCH_OR(&p_cb->flags, flag); in rx_abort()
1622 if (sync || !p_cb->handler) in rx_abort()
1626 wait_for_rx_completion(p_uarte, p_cb); in rx_abort()
1644 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_rx_abort() local
1647 return rx_abort(p_uarte, p_cb, disable_all, sync); in nrfx_uarte_rx_abort()
1655 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_rx() local
1657 NRFX_ASSERT(p_cb->state == NRFX_DRV_STATE_INITIALIZED); in nrfx_uarte_rx()
1676 if (p_cb->handler == NULL) in nrfx_uarte_rx()
1701 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_rx_ready() local
1703 NRFX_ASSERT(p_cb->state == NRFX_DRV_STATE_INITIALIZED); in nrfx_uarte_rx_ready()
1705 if (p_cb->handler) in nrfx_uarte_rx_ready()
1735 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_int_trigger() local
1737 if (!p_cb->handler) in nrfx_uarte_int_trigger()
1742 if (!(NRFX_ATOMIC_FETCH_OR(&p_cb->flags, UARTE_FLAG_TRIGGER) & UARTE_FLAG_TRIGGER)) in nrfx_uarte_int_trigger()
1762 uarte_control_block_t * p_cb = &m_cb[p_instance->drv_inst_idx]; in nrfx_uarte_rx_new_data_check() local
1763 bool flushed_data = (NRFX_ATOMIC_FETCH_AND(&p_cb->flags, ~UARTE_FLAG_RX_FROM_FLUSH) & in nrfx_uarte_rx_new_data_check()
1774 static void rxstarted_irq_handler(NRF_UARTE_Type * p_reg, uarte_control_block_t * p_cb) in rxstarted_irq_handler() argument
1776 bool cache_used = RX_CACHE_SUPPORTED && (p_cb->flags & UARTE_FLAG_RX_USE_CACHE); in rxstarted_irq_handler()
1786 if ((p_cb->rx.curr.p_buffer != NULL) && (p_cb->rx.next.p_buffer != NULL)) in rxstarted_irq_handler()
1793 user_handler(p_cb, NRFX_UARTE_EVT_RX_BUF_REQUEST); in rxstarted_irq_handler()
1797 size_t len = get_cache_buf_len(p_cb->rx.p_cache); in rxstarted_irq_handler()
1798 nrfx_uarte_rx_cache_t * p_cache = p_cb->rx.p_cache; in rxstarted_irq_handler()
1803 nrfx_err_t err = rx_buffer_set(p_reg, p_cb, p_buf, len); in rxstarted_irq_handler()
1811 user_handler(p_cb, NRFX_UARTE_EVT_RX_BUF_REQUEST); in rxstarted_irq_handler()
1817 uarte_control_block_t * p_cb) in rxto_irq_handler() argument
1819 if (p_cb->rx.curr.p_buffer) in rxto_irq_handler()
1821 handler_on_rx_done(p_cb, p_cb->rx.curr.p_buffer, 0, true); in rxto_irq_handler()
1822 p_cb->rx.curr.p_buffer = NULL; in rxto_irq_handler()
1825 if (RX_CACHE_SUPPORTED && (p_cb->flags & UARTE_FLAG_RX_USE_CACHE)) in rxto_irq_handler()
1827 p_cb->rx.p_cache->user[0] = (nrfy_uarte_buffer_t){ NULL, 0 }; in rxto_irq_handler()
1830 if (!(p_cb->flags & UARTE_FLAG_RX_FORCED_ABORT)) { in rxto_irq_handler()
1831 rx_flush(p_uarte, p_cb); in rxto_irq_handler()
1834 on_rx_disabled(p_uarte, p_cb, p_cb->rx.flush.length); in rxto_irq_handler()
1838 uarte_control_block_t * p_cb, in endrx_irq_handler() argument
1842 bool premature = p_cb->flags & (UARTE_FLAG_RX_RESTARTED | UARTE_FLAG_RX_ABORTED); in endrx_irq_handler()
1845 uint8_t *p_buf = p_cb->rx.curr.p_buffer; in endrx_irq_handler()
1846 size_t len = rx_amount + p_cb->rx.off; in endrx_irq_handler()
1848 p_cb->rx.curr = p_cb->rx.next; in endrx_irq_handler()
1849 p_cb->rx.next = (nrfy_uarte_buffer_t){ NULL, 0 }; in endrx_irq_handler()
1850 handler_on_rx_done(p_cb, p_buf, len, premature); in endrx_irq_handler()
1851 p_cb->rx.off = 0; in endrx_irq_handler()
1855 p_cb->flags &= ~UARTE_FLAG_RX_RESTARTED; in endrx_irq_handler()
1857 if (p_cb->flags & UARTE_FLAG_RX_ABORTED) in endrx_irq_handler()
1861 else if (p_cb->rx.curr.p_buffer == NULL) in endrx_irq_handler()
1863 if (p_cb->flags & UARTE_FLAG_RX_STOP_ON_END) in endrx_irq_handler()
1866 p_cb->flags |= UARTE_FLAG_RX_ABORTED; in endrx_irq_handler()
1869 else if (!((p_cb->flags & UARTE_FLAG_RX_CONT) && in endrx_irq_handler()
1893 user_handler(p_cb, NRFX_UARTE_EVT_RX_BUF_TOO_LATE); in endrx_irq_handler()
1922 uarte_control_block_t * p_cb) in txstopped_irq_handler() argument
1927 disable_hw_from_tx(p_uarte, p_cb); in txstopped_irq_handler()
1931 if (p_cb->tx.curr.length == 0) in txstopped_irq_handler()
1938 if (p_cb->tx.curr.p_buffer == NULL) in txstopped_irq_handler()
1940 pending_tx_handler(p_uarte, &p_cb->tx); in txstopped_irq_handler()
1946 bool aborted = p_cb->flags & UARTE_FLAG_TX_ABORTED; in txstopped_irq_handler()
1948 if (p_cb->flags & UARTE_FLAG_TX_PENDING) in txstopped_irq_handler()
1951 use_cache = !nrf_dma_accessible_check(p_uarte, p_cb->tx.curr.p_buffer); in txstopped_irq_handler()
1955 amount = p_cb->tx.amount >= 0 ? (size_t)p_cb->tx.amount : nrfy_uarte_tx_amount_get(p_uarte); in txstopped_irq_handler()
1960 p_cb->tx.off += amount; in txstopped_irq_handler()
1961 if (p_cb->tx.off == p_cb->tx.curr.length || aborted) in txstopped_irq_handler()
1963 uint32_t off = p_cb->tx.off; in txstopped_irq_handler()
1966 p_cb->flags &= ~UARTE_FLAG_TX_ABORTED; in txstopped_irq_handler()
1967 p_cb->tx.curr.length = 0; in txstopped_irq_handler()
1968 p_cb->tx.off = 0; in txstopped_irq_handler()
1969 user_handler_on_tx_done(p_cb, p_cb->tx.curr.p_buffer, off, aborted); in txstopped_irq_handler()
1974 p_cb->flags &= ~UARTE_FLAG_TX_PENDING; in txstopped_irq_handler()
1975 tx_prepare_start(p_uarte, p_cb, use_cache); in txstopped_irq_handler()
1981 uarte_control_block_t * p_cb) in error_irq_handler() argument
1983 user_handler_on_error(p_uarte, p_cb); in error_irq_handler()
1986 static void endtx_irq_handler(NRF_UARTE_Type * p_uarte, uarte_control_block_t * p_cb) in endtx_irq_handler() argument
1988 if (NRFX_IS_ENABLED(NRFX_UARTE_CONFIG_TX_LINK) && (p_cb->flags & UARTE_FLAG_TX_LINKED)) in endtx_irq_handler()
1990 uint8_t const * p_buf = p_cb->tx.curr.p_buffer; in endtx_irq_handler()
1991 uint32_t len = p_cb->tx.curr.length; in endtx_irq_handler()
1992 bool aborted = p_cb->flags & UARTE_FLAG_TX_ABORTED; in endtx_irq_handler()
2006 p_cb->tx.curr = p_cb->tx.next; in endtx_irq_handler()
2007 p_cb->tx.next.length = 0; in endtx_irq_handler()
2008 p_cb->tx.next.p_buffer = NULL; in endtx_irq_handler()
2009 p_cb->flags &= ~UARTE_FLAG_TX_LINKED; in endtx_irq_handler()
2010 aborted = p_cb->flags & UARTE_FLAG_TX_ABORTED; in endtx_irq_handler()
2015 p_cb->tx.amount = 0; in endtx_irq_handler()
2019 user_handler_on_tx_done(p_cb, p_buf, len, aborted); in endtx_irq_handler()
2035 static void int_trigger_handler(uarte_control_block_t * p_cb) in int_trigger_handler() argument
2037 user_handler(p_cb, NRFX_UARTE_EVT_TRIGGER); in int_trigger_handler()
2060 static void irq_handler(NRF_UARTE_Type * p_uarte, uarte_control_block_t * p_cb) in irq_handler() argument
2068 if (p_cb->handler) in irq_handler()
2072 error_irq_handler(p_uarte, p_cb); in irq_handler()
2085 user_handler(p_cb, NRFX_UARTE_EVT_RX_BYTE); in irq_handler()
2098 if (endrx_irq_handler(p_uarte, p_cb, rxstarted) == true) in irq_handler()
2106 rxstarted_irq_handler(p_uarte, p_cb); in irq_handler()
2111 rxto_irq_handler(p_uarte, p_cb); in irq_handler()
2117 endtx_irq_handler(p_uarte, p_cb); in irq_handler()
2122 txstopped_irq_handler(p_uarte, p_cb); in irq_handler()
2125 if (NRFX_ATOMIC_FETCH_AND(&p_cb->flags, ~UARTE_FLAG_TRIGGER) & UARTE_FLAG_TRIGGER) in irq_handler()
2127 int_trigger_handler(p_cb); in irq_handler()