Lines Matching refs:instance

96     struct at32_uart *instance = rt_container_of(serial, struct at32_uart, serial);  in at32_configure()  local
97 RT_ASSERT(instance != RT_NULL); in at32_configure()
99 at32_msp_usart_init((void *)instance->uart_x); in at32_configure()
101 usart_receiver_enable(instance->uart_x, TRUE); in at32_configure()
102 usart_transmitter_enable(instance->uart_x, TRUE); in at32_configure()
156 instance->last_index = serial->config.dma_ping_bufsz; in at32_configure()
159 usart_hardware_flow_control_set(instance->uart_x, flow_control); in at32_configure()
160 usart_parity_selection_config(instance->uart_x, parity_mode); in at32_configure()
161 usart_init(instance->uart_x, cfg->baud_rate, data_bit, stop_bit); in at32_configure()
162 usart_enable(instance->uart_x, TRUE); in at32_configure()
168 struct at32_uart *instance; in at32_control() local
174 instance = rt_container_of(serial, struct at32_uart, serial); in at32_control()
175 RT_ASSERT(instance != RT_NULL); in at32_control()
179 if (instance->uart_dma_flag & RT_DEVICE_FLAG_DMA_RX) in at32_control()
186 if (instance->uart_dma_flag & RT_DEVICE_FLAG_DMA_TX) in at32_control()
194 nvic_irq_disable(instance->irqn); in at32_control()
196 usart_interrupt_enable(instance->uart_x, USART_RDBF_INT, FALSE); in at32_control()
198 usart_interrupt_enable(instance->uart_x, USART_TDBE_INT, FALSE); in at32_control()
202 usart_interrupt_enable(instance->uart_x, USART_RDBF_INT, FALSE); in at32_control()
203 nvic_irq_disable(instance->dma_rx->dma_irqn); in at32_control()
204 dma_reset(instance->dma_rx->dma_channel); in at32_control()
208 usart_interrupt_enable(instance->uart_x, USART_TDBE_INT, FALSE); in at32_control()
209 nvic_irq_disable(instance->dma_tx->dma_irqn); in at32_control()
210 dma_reset(instance->dma_tx->dma_channel); in at32_control()
215 nvic_irq_enable(instance->irqn, 1, 0); in at32_control()
217 usart_interrupt_enable(instance->uart_x, USART_RDBF_INT, TRUE); in at32_control()
219 usart_interrupt_enable(instance->uart_x, USART_TDBE_INT, TRUE); in at32_control()
239 usart_reset(instance->uart_x); in at32_control()
247 struct at32_uart *instance; in at32_putc() local
251 instance = rt_container_of(serial, struct at32_uart, serial); in at32_putc()
252 RT_ASSERT(instance != RT_NULL); in at32_putc()
254 usart_data_transmit(instance->uart_x, (uint8_t)ch); in at32_putc()
255 while (usart_flag_get(instance->uart_x, USART_TDC_FLAG) == RESET); in at32_putc()
262 struct at32_uart *instance; in at32_getc() local
266 instance = rt_container_of(serial, struct at32_uart, serial); in at32_getc()
267 RT_ASSERT(instance != RT_NULL); in at32_getc()
270 if (usart_flag_get(instance->uart_x, USART_RDBF_FLAG) != RESET) { in at32_getc()
271 ch = usart_data_receive(instance->uart_x) & 0xff; in at32_getc()
278 static void _uart_dma_receive(struct at32_uart *instance, rt_uint8_t *buffer, rt_uint32_t size) in _uart_dma_receive() argument
280 dma_channel_type* dma_channel = instance->dma_rx->dma_channel; in _uart_dma_receive()
283 dma_channel->paddr = (rt_uint32_t)&(instance->uart_x->dt); in _uart_dma_receive()
286 usart_interrupt_enable(instance->uart_x, USART_PERR_INT, TRUE); in _uart_dma_receive()
287 usart_interrupt_enable(instance->uart_x, USART_IDLE_INT, TRUE); in _uart_dma_receive()
292 usart_dma_receiver_enable(instance->uart_x, TRUE); in _uart_dma_receive()
298 static void _uart_dma_transmit(struct at32_uart *instance, rt_uint8_t *buffer, rt_uint32_t size) in _uart_dma_transmit() argument
301 while(instance->dma_tx->dma_done == RT_FALSE); in _uart_dma_transmit()
303 dma_channel_type *dma_channel = instance->dma_tx->dma_channel; in _uart_dma_transmit()
306 dma_channel->paddr = (rt_uint32_t)&(instance->uart_x->dt); in _uart_dma_transmit()
312 usart_dma_transmitter_enable(instance->uart_x, TRUE); in _uart_dma_transmit()
315 instance->dma_tx->dma_done = RT_FALSE; in _uart_dma_transmit()
324 struct at32_uart *instance; in at32_dma_config() local
329 instance = rt_container_of(serial, struct at32_uart, serial); in at32_dma_config()
330 RT_ASSERT(instance != RT_NULL); in at32_dma_config()
336 dma_channel = instance->dma_rx->dma_channel; in at32_dma_config()
337 dma_config = instance->dma_rx; in at32_dma_config()
341 dma_channel = instance->dma_tx->dma_channel; in at32_dma_config()
342 dma_config = instance->dma_tx; in at32_dma_config()
386 _uart_dma_receive(instance, ptr, serial->config.dma_ping_bufsz); in at32_dma_config()
391 nvic_irq_enable(instance->irqn, 1, 0); in at32_dma_config()
397 struct at32_uart *instance; in at32_transmit() local
402 instance = rt_container_of(serial, struct at32_uart, serial); in at32_transmit()
403 RT_ASSERT(instance != RT_NULL); in at32_transmit()
405 if(instance->uart_dma_flag & RT_DEVICE_FLAG_DMA_TX) in at32_transmit()
408 _uart_dma_transmit(instance, buf, size); in at32_transmit()
430 struct at32_uart *instance; in dma_rx_isr() local
433 instance = rt_container_of(serial, struct at32_uart, serial); in dma_rx_isr()
434 RT_ASSERT(instance != RT_NULL); in dma_rx_isr()
436 index = instance->dma_rx->channel_index; in dma_rx_isr()
439instance->dma_rx->dma_x->clr |= (rt_uint32_t)(DMA_FDT_FLAG << (4 * (index - 1))) | (DMA_HDT_FLAG <… in dma_rx_isr()
441 counter = dma_data_number_get(instance->dma_rx->dma_channel); in dma_rx_isr()
442 if (counter <= instance->last_index) in dma_rx_isr()
443 recv_len = instance->last_index - counter; in dma_rx_isr()
445 recv_len = serial->config.dma_ping_bufsz + instance->last_index - counter; in dma_rx_isr()
449 instance->last_index = counter; in dma_rx_isr()
458 struct at32_uart *instance; in dma_tx_isr() local
461 instance = rt_container_of(serial, struct at32_uart, serial); in dma_tx_isr()
462 RT_ASSERT(instance != RT_NULL); in dma_tx_isr()
464 reg_sts = instance->dma_tx->dma_x->sts; in dma_tx_isr()
465 index = instance->dma_tx->channel_index; in dma_tx_isr()
470 instance->dma_tx->dma_done = RT_TRUE; in dma_tx_isr()
472 instance->dma_tx->dma_x->clr |= (rt_uint32_t)(DMA_FDT_FLAG << (4 * (index - 1))); in dma_tx_isr()
474 dma_channel_enable(instance->dma_tx->dma_channel, FALSE); in dma_tx_isr()
476 trans_total_index = dma_data_number_get(instance->dma_tx->dma_channel); in dma_tx_isr()
488 struct at32_uart *instance; in usart_isr() local
491 instance = rt_container_of(serial, struct at32_uart, serial); in usart_isr()
492 RT_ASSERT(instance != RT_NULL); in usart_isr()
494 if (usart_flag_get(instance->uart_x, USART_RDBF_FLAG) != RESET) in usart_isr()
496 char chr = usart_data_receive(instance->uart_x); in usart_isr()
500 …else if ((usart_flag_get(instance->uart_x, USART_TDBE_FLAG) != RESET) && (instance->uart_x->ctrl1_… in usart_isr()
505 usart_data_transmit(instance->uart_x, put_char); in usart_isr()
509 usart_interrupt_enable(instance->uart_x, USART_TDBE_INT, FALSE); in usart_isr()
510 usart_interrupt_enable(instance->uart_x, USART_TDC_INT, TRUE); in usart_isr()
512 usart_flag_clear(instance->uart_x, USART_TDBE_FLAG); in usart_isr()
514 …else if ((usart_flag_get(instance->uart_x, USART_TDC_FLAG) != RESET) && (instance->uart_x->ctrl1_b… in usart_isr()
516 usart_interrupt_enable(instance->uart_x, USART_TDC_INT, FALSE); in usart_isr()
520 usart_flag_clear(instance->uart_x, USART_TDC_FLAG); in usart_isr()
523 …else if ((usart_flag_get(instance->uart_x, USART_IDLEF_FLAG) != RESET) && (instance->uart_dma_flag… in usart_isr()
524 (instance->uart_x->ctrl1_bit.idleien)) in usart_isr()
528 usart_data_receive(instance->uart_x); in usart_isr()
533 if (usart_flag_get(instance->uart_x, USART_ROERR_FLAG) != RESET) in usart_isr()
535 usart_flag_clear(instance->uart_x, USART_ROERR_FLAG); in usart_isr()
538 if (usart_flag_get(instance->uart_x, USART_NERR_FLAG) != RESET) in usart_isr()
540 usart_flag_clear(instance->uart_x, USART_NERR_FLAG); in usart_isr()
543 if (usart_flag_get(instance->uart_x, USART_FERR_FLAG) != RESET) in usart_isr()
545 usart_flag_clear(instance->uart_x, USART_FERR_FLAG); in usart_isr()
548 if (usart_flag_get(instance->uart_x, USART_PERR_FLAG) != RESET) in usart_isr()
550 usart_flag_clear(instance->uart_x, USART_PERR_FLAG); in usart_isr()
553 if (usart_flag_get(instance->uart_x, USART_CTSCF_FLAG) != RESET) in usart_isr()
555 usart_flag_clear(instance->uart_x, USART_CTSCF_FLAG); in usart_isr()
558 if (usart_flag_get(instance->uart_x, USART_BFF_FLAG) != RESET) in usart_isr()
560 usart_flag_clear(instance->uart_x, USART_BFF_FLAG); in usart_isr()
898 static void _dma_base_channel_check(struct at32_uart *instance) in _dma_base_channel_check() argument
900 dma_channel_type *rx_channel = instance->dma_rx->dma_channel; in _dma_base_channel_check()
901 dma_channel_type *tx_channel = instance->dma_tx->dma_channel; in _dma_base_channel_check()
903 instance->dma_rx->dma_done = RT_TRUE; in _dma_base_channel_check()
904 instance->dma_rx->dma_x = (dma_type *)((rt_uint32_t)rx_channel & ~0xFF); in _dma_base_channel_check()
905 instance->dma_rx->channel_index = ((((rt_uint32_t)rx_channel & 0xFF) - 8) / 0x14) + 1; in _dma_base_channel_check()
907 instance->dma_tx->dma_done = RT_TRUE; in _dma_base_channel_check()
908 instance->dma_tx->dma_x = (dma_type *)((rt_uint32_t)tx_channel & ~0xFF); in _dma_base_channel_check()
909 instance->dma_tx->channel_index = ((((rt_uint32_t)tx_channel & 0xFF) - 8) / 0x14) + 1; in _dma_base_channel_check()