Lines Matching refs:instance

98     struct at32_uart *instance = rt_container_of(serial, struct at32_uart, serial);  in at32_configure()  local
99 RT_ASSERT(instance != RT_NULL); in at32_configure()
101 at32_msp_usart_init((void *)instance->uart_x); in at32_configure()
103 usart_receiver_enable(instance->uart_x, TRUE); in at32_configure()
104 usart_transmitter_enable(instance->uart_x, TRUE); in at32_configure()
159 instance->last_index = 0; in at32_configure()
163 usart_hardware_flow_control_set(instance->uart_x, flow_control); in at32_configure()
164 usart_parity_selection_config(instance->uart_x, parity_mode); in at32_configure()
165 usart_init(instance->uart_x, cfg->baud_rate, data_bit, stop_bit); in at32_configure()
166 usart_enable(instance->uart_x, TRUE); in at32_configure()
172 struct at32_uart *instance; in at32_control() local
179 instance = rt_container_of(serial, struct at32_uart, serial); in at32_control()
180 RT_ASSERT(instance != RT_NULL); in at32_control()
184 nvic_irq_disable(instance->irqn); in at32_control()
185 usart_interrupt_enable(instance->uart_x, USART_RDBF_INT, FALSE); in at32_control()
191 nvic_irq_disable(instance->dma_rx->dma_irqn); in at32_control()
192 dma_reset(instance->dma_rx->dma_channel); in at32_control()
196 nvic_irq_disable(instance->dma_tx->dma_irqn); in at32_control()
197 dma_reset(instance->dma_tx->dma_channel); in at32_control()
202 nvic_irq_enable(instance->irqn, 1, 0); in at32_control()
203 usart_interrupt_enable(instance->uart_x, USART_RDBF_INT, TRUE); in at32_control()
216 struct at32_uart *instance; in at32_putc() local
220 instance = rt_container_of(serial, struct at32_uart, serial); in at32_putc()
221 RT_ASSERT(instance != RT_NULL); in at32_putc()
223 usart_data_transmit(instance->uart_x, (uint8_t)ch); in at32_putc()
224 while (usart_flag_get(instance->uart_x, USART_TDC_FLAG) == RESET); in at32_putc()
231 struct at32_uart *instance; in at32_getc() local
235 instance = rt_container_of(serial, struct at32_uart, serial); in at32_getc()
236 RT_ASSERT(instance != RT_NULL); in at32_getc()
239 if (usart_flag_get(instance->uart_x, USART_RDBF_FLAG) != RESET) { in at32_getc()
240 ch = usart_data_receive(instance->uart_x) & 0xff; in at32_getc()
247 static void _uart_dma_receive(struct at32_uart *instance, rt_uint8_t *buffer, rt_uint32_t size) in _uart_dma_receive() argument
249 dma_channel_type* dma_channel = instance->dma_rx->dma_channel; in _uart_dma_receive()
252 dma_channel->paddr = (rt_uint32_t)&(instance->uart_x->dt); in _uart_dma_receive()
255 usart_interrupt_enable(instance->uart_x, USART_PERR_INT, TRUE); in _uart_dma_receive()
256 usart_interrupt_enable(instance->uart_x, USART_IDLE_INT, TRUE); in _uart_dma_receive()
260 usart_dma_receiver_enable(instance->uart_x, TRUE); in _uart_dma_receive()
266 static void _uart_dma_transmit(struct at32_uart *instance, rt_uint8_t *buffer, rt_uint32_t size) in _uart_dma_transmit() argument
269 while(instance->dma_tx->dma_done == RT_FALSE); in _uart_dma_transmit()
271 dma_channel_type *dma_channel = instance->dma_tx->dma_channel; in _uart_dma_transmit()
274 dma_channel->paddr = (rt_uint32_t)&(instance->uart_x->dt); in _uart_dma_transmit()
280 usart_dma_transmitter_enable(instance->uart_x, TRUE); in _uart_dma_transmit()
283 instance->dma_tx->dma_done = RT_FALSE; in _uart_dma_transmit()
293 struct at32_uart *instance; in at32_dma_config() local
298 instance = rt_container_of(serial, struct at32_uart, serial); in at32_dma_config()
299 RT_ASSERT(instance != RT_NULL); in at32_dma_config()
305 dma_channel = instance->dma_rx->dma_channel; in at32_dma_config()
306 dma_config = instance->dma_rx; in at32_dma_config()
310 dma_channel = instance->dma_tx->dma_channel; in at32_dma_config()
311 dma_config = instance->dma_tx; in at32_dma_config()
353 _uart_dma_receive(instance, rx_fifo->buffer, serial->config.bufsz); in at32_dma_config()
358 nvic_irq_enable(instance->irqn, 1, 0); in at32_dma_config()
363 struct at32_uart *instance; in at32_dma_transmit() local
366 instance = rt_container_of(serial, struct at32_uart, serial); in at32_dma_transmit()
367 RT_ASSERT(instance != RT_NULL); in at32_dma_transmit()
377 _uart_dma_transmit(instance, buf, size); in at32_dma_transmit()
400 struct at32_uart *instance; in dma_rx_isr() local
403 instance = rt_container_of(serial, struct at32_uart, serial); in dma_rx_isr()
404 RT_ASSERT(instance != RT_NULL); in dma_rx_isr()
406 reg_sts = instance->dma_rx->dma_x->sts; in dma_rx_isr()
407 index = instance->dma_rx->channel_index; in dma_rx_isr()
413instance->dma_rx->dma_x->clr |= (rt_uint32_t)(DMA_FDT_FLAG << (4 * (index - 1))) | (DMA_HDT_FLAG <… in dma_rx_isr()
416 … recv_total_index = serial->config.bufsz - dma_data_number_get(instance->dma_rx->dma_channel); in dma_rx_isr()
419 recv_len = serial->config.bufsz - instance->last_index; in dma_rx_isr()
423 recv_len = recv_total_index - instance->last_index; in dma_rx_isr()
425 instance->last_index = recv_total_index; in dma_rx_isr()
440 struct at32_uart *instance; in dma_tx_isr() local
443 instance = rt_container_of(serial, struct at32_uart, serial); in dma_tx_isr()
444 RT_ASSERT(instance != RT_NULL); in dma_tx_isr()
446 reg_sts = instance->dma_tx->dma_x->sts; in dma_tx_isr()
447 index = instance->dma_tx->channel_index; in dma_tx_isr()
452 instance->dma_tx->dma_done = RT_TRUE; in dma_tx_isr()
454 instance->dma_tx->dma_x->clr |= (rt_uint32_t)(DMA_FDT_FLAG << (4 * (index - 1))); in dma_tx_isr()
456 dma_channel_enable(instance->dma_tx->dma_channel, FALSE); in dma_tx_isr()
459 trans_total_index = dma_data_number_get(instance->dma_tx->dma_channel); in dma_tx_isr()
471 struct at32_uart *instance; in usart_isr() local
478 instance = rt_container_of(serial, struct at32_uart, serial); in usart_isr()
479 RT_ASSERT(instance != RT_NULL); in usart_isr()
481 if (usart_flag_get(instance->uart_x, USART_RDBF_FLAG) != RESET) { in usart_isr()
485 else if (usart_flag_get(instance->uart_x, USART_IDLEF_FLAG) != RESET) in usart_isr()
488 usart_data_receive(instance->uart_x); in usart_isr()
491 … recv_total_index = serial->config.bufsz - dma_data_number_get(instance->dma_rx->dma_channel); in usart_isr()
492 recv_len = recv_total_index - instance->last_index; in usart_isr()
493 instance->last_index = recv_total_index; in usart_isr()
504 if (usart_flag_get(instance->uart_x, USART_CTSCF_FLAG) != RESET) { in usart_isr()
505 usart_flag_clear(instance->uart_x, USART_CTSCF_FLAG); in usart_isr()
508 if (usart_flag_get(instance->uart_x, USART_BFF_FLAG) != RESET) { in usart_isr()
509 usart_flag_clear(instance->uart_x, USART_BFF_FLAG); in usart_isr()
847 static void _dma_base_channel_check(struct at32_uart *instance) in _dma_base_channel_check() argument
849 dma_channel_type *rx_channel = instance->dma_rx->dma_channel; in _dma_base_channel_check()
850 dma_channel_type *tx_channel = instance->dma_tx->dma_channel; in _dma_base_channel_check()
852 instance->dma_rx->dma_done = RT_TRUE; in _dma_base_channel_check()
853 instance->dma_rx->dma_x = (dma_type *)((rt_uint32_t)rx_channel & ~0xFF); in _dma_base_channel_check()
854 instance->dma_rx->channel_index = ((((rt_uint32_t)rx_channel & 0xFF) - 8) / 0x14) + 1; in _dma_base_channel_check()
856 instance->dma_tx->dma_done = RT_TRUE; in _dma_base_channel_check()
857 instance->dma_tx->dma_x = (dma_type *)((rt_uint32_t)tx_channel & ~0xFF); in _dma_base_channel_check()
858 instance->dma_tx->channel_index = ((((rt_uint32_t)tx_channel & 0xFF) - 8) / 0x14) + 1; in _dma_base_channel_check()