Lines Matching refs:usart
92 static void wait_synchronization(SercomUsart *const usart) in wait_synchronization() argument
96 while ((usart->SYNCBUSY.reg & SERCOM_USART_SYNCBUSY_MASK) != 0) { in wait_synchronization()
100 while ((usart->STATUS.reg & SERCOM_USART_STATUS_SYNCBUSY) != 0) { in wait_synchronization()
107 static int uart_sam0_set_baudrate(SercomUsart *const usart, uint32_t baudrate, in uart_sam0_set_baudrate() argument
122 usart->BAUD.reg = baud; in uart_sam0_set_baudrate()
123 wait_synchronization(usart); in uart_sam0_set_baudrate()
397 SercomUsart * const usart = cfg->regs; in uart_sam0_configure() local
399 wait_synchronization(usart); in uart_sam0_configure()
401 usart->CTRLA.bit.ENABLE = 0; in uart_sam0_configure()
402 wait_synchronization(usart); in uart_sam0_configure()
413 SERCOM_USART_CTRLA_Type CTRLA_temp = usart->CTRLA; in uart_sam0_configure()
414 SERCOM_USART_CTRLB_Type CTRLB_temp = usart->CTRLB; in uart_sam0_configure()
473 usart->CTRLA = CTRLA_temp; in uart_sam0_configure()
474 wait_synchronization(usart); in uart_sam0_configure()
476 usart->CTRLB = CTRLB_temp; in uart_sam0_configure()
477 wait_synchronization(usart); in uart_sam0_configure()
479 retval = uart_sam0_set_baudrate(usart, new_cfg->baudrate, in uart_sam0_configure()
487 usart->CTRLA.bit.ENABLE = 1; in uart_sam0_configure()
488 wait_synchronization(usart); in uart_sam0_configure()
511 SercomUsart * const usart = cfg->regs; in uart_sam0_init() local
525 usart->INTENCLR.reg = SERCOM_USART_INTENCLR_MASK; in uart_sam0_init()
526 wait_synchronization(usart); in uart_sam0_init()
529 usart->CTRLA.reg = in uart_sam0_init()
539 wait_synchronization(usart); in uart_sam0_init()
553 usart->CTRLB.reg = SERCOM_USART_CTRLB_CHSIZE(0) | in uart_sam0_init()
555 wait_synchronization(usart); in uart_sam0_init()
557 retval = uart_sam0_set_baudrate(usart, cfg->baudrate, in uart_sam0_init()
592 dma_blk.dest_address = (uint32_t)(&(usart->DATA.reg)); in uart_sam0_init()
616 dma_blk.source_address = (uint32_t)(&(usart->DATA.reg)); in uart_sam0_init()
628 usart->CTRLA.bit.ENABLE = 1; in uart_sam0_init()
629 wait_synchronization(usart); in uart_sam0_init()
638 SercomUsart * const usart = config->regs; in uart_sam0_poll_in() local
640 if (!usart->INTFLAG.bit.RXC) { in uart_sam0_poll_in()
644 *c = (unsigned char)usart->DATA.reg; in uart_sam0_poll_in()
652 SercomUsart * const usart = config->regs; in uart_sam0_poll_out() local
654 while (!usart->INTFLAG.bit.DRE) { in uart_sam0_poll_out()
658 usart->DATA.reg = c; in uart_sam0_poll_out()