Lines Matching refs:can_instance

212     struct at32_can *can_instance = rt_container_of(can, struct at32_can, device);  in _can_config()  local
213 RT_ASSERT(can_instance); in _can_config()
215 at32_msp_can_init((void *)can_instance->can_x); in _can_config()
218 can_transmit_status_get(can_instance->can_x, &statues); in _can_config()
220 …while((statues.current_tstat != CAN_TSTAT_IDLE) || (can_stb_status_get(can_instance->can_x) != CAN… in _can_config()
221 (can_rxbuf_status_get(can_instance->can_x) != CAN_RXBUF_STATUS_EMPTY)); in _can_config()
222 can_software_reset(can_instance->can_x, TRUE); in _can_config()
224 can_instance->enable_canfd = cfg->enable_canfd; in _can_config()
227 can_instance->can_x->lbtcfg_bit.presc = cfg->can_timing.prescaler - 1; in _can_config()
228 can_instance->can_x->actime_bit.ac_seg_1 = cfg->can_timing.num_seg1 - 2; in _can_config()
229 can_instance->can_x->actime_bit.ac_seg_2 = cfg->can_timing.num_seg2 - 1; in _can_config()
230 can_instance->can_x->actime_bit.ac_sjw = cfg->can_timing.num_sjw - 1; in _can_config()
231 can_instance->can_x->fdtime_bit.fd_seg_1 = cfg->canfd_timing.num_seg1 - 2; in _can_config()
232 can_instance->can_x->fdtime_bit.fd_seg_2 = cfg->canfd_timing.num_seg2 - 1; in _can_config()
233 can_instance->can_x->fdtime_bit.fd_sjw = cfg->canfd_timing.num_sjw - 1; in _can_config()
234 can_instance->can_x->lbtcfg_bit.fd_sspoff = cfg->canfd_timing.num_sspoff; in _can_config()
240 can_instance->can_x->fdtime_bit.fd_seg_1 = canfd_baud_rate_tab[baud_index].div - 1; in _can_config()
241 can_instance->can_x->fdtime_bit.fd_seg_1 = canfd_baud_rate_tab[baud_index].bts1_size - 2; in _can_config()
242 can_instance->can_x->fdtime_bit.fd_seg_2 = canfd_baud_rate_tab[baud_index].bts2_size - 1; in _can_config()
243 can_instance->can_x->fdtime_bit.fd_sjw = canfd_baud_rate_tab[baud_index].rsaw_size - 1; in _can_config()
244 can_instance->can_x->lbtcfg_bit.fd_sspoff = canfd_baud_rate_tab[baud_index].ssoffset; in _can_config()
251 can_instance->can_x->lbtcfg_bit.presc = can_baud_rate_tab[baud_index].div - 1; in _can_config()
252 can_instance->can_x->actime_bit.ac_seg_1 = can_baud_rate_tab[baud_index].bts1_size - 2; in _can_config()
253 can_instance->can_x->actime_bit.ac_seg_2 = can_baud_rate_tab[baud_index].bts2_size - 1; in _can_config()
254 can_instance->can_x->actime_bit.ac_sjw = can_baud_rate_tab[baud_index].rsaw_size - 1; in _can_config()
257 can_stb_transmit_mode_set(can_instance->can_x, CAN_STB_TRANSMIT_BY_FIFO); in _can_config()
258 can_software_reset(can_instance->can_x, FALSE); in _can_config()
276 can_mode_set(can_instance->can_x, can_mode); in _can_config()
277 can_retransmission_limit_set(can_instance->can_x, CAN_RE_TRANS_TIMES_UNLIMIT); in _can_config()
278 can_rearbitration_limit_set(can_instance->can_x, CAN_RE_ARBI_TIMES_UNLIMIT); in _can_config()
279 can_rxbuf_warning_set(can_instance->can_x, 3); in _can_config()
293 struct at32_can *can_instance = rt_container_of(can, struct at32_can, device); in _can_control() local
294 RT_ASSERT(can_instance != RT_NULL); in _can_control()
302 nvic_irq_disable(can_instance->rx_irqn); in _can_control()
304 can_interrupt_enable(can_instance->can_x, CAN_RAFIE_INT, FALSE); in _can_control()
305 can_interrupt_enable(can_instance->can_x, CAN_RFIE_INT, FALSE); in _can_control()
306 can_interrupt_enable(can_instance->can_x, CAN_ROIE_INT, FALSE); in _can_control()
307 can_interrupt_enable(can_instance->can_x, CAN_RIE_INT, FALSE); in _can_control()
311 nvic_irq_disable(can_instance->tx_irqn); in _can_control()
313 can_interrupt_enable(can_instance->can_x, CAN_TSIE_INT, FALSE); in _can_control()
314 can_interrupt_enable(can_instance->can_x, CAN_TPIE_INT, FALSE); in _can_control()
315 can_interrupt_enable(can_instance->can_x, CAN_AIE_INT, FALSE); in _can_control()
316 can_interrupt_enable(can_instance->can_x, CAN_ALIE_INT, FALSE); in _can_control()
320 nvic_irq_disable(can_instance->err_irqn); in _can_control()
322 can_interrupt_enable(can_instance->can_x, CAN_EIE_INT, FALSE); in _can_control()
323 can_interrupt_enable(can_instance->can_x, CAN_BEIE_INT, FALSE); in _can_control()
324 can_interrupt_enable(can_instance->can_x, CAN_EPIE_INT, FALSE); in _can_control()
332 can_interrupt_enable(can_instance->can_x, CAN_RAFIE_INT, TRUE); in _can_control()
333 can_interrupt_enable(can_instance->can_x, CAN_RFIE_INT, TRUE); in _can_control()
334 can_interrupt_enable(can_instance->can_x, CAN_ROIE_INT, TRUE); in _can_control()
335 can_interrupt_enable(can_instance->can_x, CAN_RIE_INT, TRUE); in _can_control()
336 nvic_irq_enable(can_instance->rx_irqn, 1, 0); in _can_control()
342 can_interrupt_enable(can_instance->can_x, CAN_TSIE_INT, TRUE); in _can_control()
343 can_interrupt_enable(can_instance->can_x, CAN_TPIE_INT, TRUE); in _can_control()
344 can_interrupt_enable(can_instance->can_x, CAN_AIE_INT, TRUE); in _can_control()
345 can_interrupt_enable(can_instance->can_x, CAN_ALIE_INT, TRUE); in _can_control()
346 nvic_irq_enable(can_instance->tx_irqn, 1, 0); in _can_control()
351 can_interrupt_enable(can_instance->can_x, CAN_EIE_INT, TRUE); in _can_control()
352 can_interrupt_enable(can_instance->can_x, CAN_BEIE_INT, TRUE); in _can_control()
353 can_interrupt_enable(can_instance->can_x, CAN_EPIE_INT, TRUE); in _can_control()
354 nvic_irq_enable(can_instance->err_irqn, 1, 0); in _can_control()
361 can_filter_default_para_init(&can_instance->filter_init_struct); in _can_control()
378 can_instance->filter_init_struct.code_para.id = filter_cfg->items[i].id; in _can_control()
379can_instance->filter_init_struct.code_para.id_type = (can_identifier_type)filter_cfg->items[i].ide; in _can_control()
380can_instance->filter_init_struct.mask_para.id = (~(filter_cfg->items[i].mask) & ~(filter_cfg->ite… in _can_control()
381 can_instance->filter_init_struct.mask_para.id_type = FALSE; in _can_control()
382 can_instance->filter_init_struct.mask_para.data_length = 0xF; in _can_control()
383 can_instance->filter_init_struct.mask_para.frame_type = TRUE; in _can_control()
384 can_instance->filter_init_struct.mask_para.recv_frame = TRUE; in _can_control()
388 can_transmit_status_get(can_instance->can_x, &statues); in _can_control()
390 …while((statues.current_tstat != CAN_TSTAT_IDLE) || (can_stb_status_get(can_instance->can_x) != CAN… in _can_control()
391 (can_rxbuf_status_get(can_instance->can_x) != CAN_RXBUF_STATUS_EMPTY)); in _can_control()
392 can_software_reset(can_instance->can_x, TRUE); in _can_control()
393 …can_filter_set(can_instance->can_x, (can_filter_type)filter_number, &can_instance->filter_init_str… in _can_control()
394 can_software_reset(can_instance->can_x, FALSE); in _can_control()
395 can_filter_enable(can_instance->can_x, (can_filter_type)filter_number, TRUE); in _can_control()
408 if (argval != can_instance->device.config.mode) in _can_control()
410 can_instance->device.config.mode = argval; in _can_control()
411 return _can_config(&can_instance->device, &can_instance->device.config); in _can_control()
428 if (argval != can_instance->device.config.baud_rate) in _can_control()
430 can_instance->device.config.baud_rate = argval; in _can_control()
431 return _can_config(&can_instance->device, &can_instance->device.config); in _can_control()
441 if (argval != can_instance->device.config.privmode) in _can_control()
443 can_instance->device.config.privmode = argval; in _can_control()
444 return _can_config(&can_instance->device, &can_instance->device.config); in _can_control()
448 errtype = can_instance->can_x->err; in _can_control()
449 can_instance->device.status.rcverrcnt = errtype >> 24; in _can_control()
450 can_instance->device.status.snderrcnt = ((errtype >> 16) & 0xFF); in _can_control()
451 can_instance->device.status.lasterrtype = ((errtype >> 13) & 0x7); in _can_control()
453 rt_memcpy(arg, &can_instance->device.status, sizeof(can_instance->device.status)); in _can_control()
457 if(can_instance->enable_canfd != argval) in _can_control()
459 can_instance->enable_canfd = (rt_uint32_t) argval; in _can_control()
473 if (argval != can_instance->device.config.baud_rate_fd) in _can_control()
475 can_instance->device.config.baud_rate_fd = argval; in _can_control()
476 return _can_config(&can_instance->device, &can_instance->device.config); in _can_control()
488 can_instance->device.config.can_timing = timing_configs->items[0]; in _can_control()
492 can_instance->device.config.canfd_timing = timing_configs->items[1]; in _can_control()
494 _can_config(&can_instance->device, &can_instance->device.config); in _can_control()
506 struct at32_can *can_instance = rt_container_of(can, struct at32_can, device); in _can_sendmsg() local
549 can_txbuf_write(can_instance->can_x, CAN_TXBUF_STB, &tx_message); in _can_sendmsg()
550 can_txbuf_transmit(can_instance->can_x, CAN_TRANSMIT_STB_ALL); in _can_sendmsg()
557 struct at32_can *can_instance = rt_container_of(can, struct at32_can, device); in _can_recvmsg() local
561 can_rxbuf_read(can_instance->can_x, &rx_message); in _can_recvmsg()
601 struct at32_can *can_instance = rt_container_of(can, struct at32_can, device); in _can_rx_isr() local
604 if(can_interrupt_flag_get(can_instance->can_x, CAN_RIF_FLAG) != RESET) in _can_rx_isr()
606 can_flag_clear(can_instance->can_x, CAN_RIF_FLAG); in _can_rx_isr()
611 if(can_interrupt_flag_get(can_instance->can_x, CAN_RAFIF_FLAG) != RESET) in _can_rx_isr()
613 can_flag_clear(can_instance->can_x, CAN_RAFIF_FLAG); in _can_rx_isr()
617 if(can_interrupt_flag_get(can_instance->can_x, CAN_RFIF_FLAG) != RESET) in _can_rx_isr()
619 can_flag_clear(can_instance->can_x, CAN_RFIF_FLAG); in _can_rx_isr()
623 if(can_interrupt_flag_get(can_instance->can_x, CAN_ROIF_FLAG) != RESET) in _can_rx_isr()
625 can_flag_clear(can_instance->can_x, CAN_ROIF_FLAG); in _can_rx_isr()
632 struct at32_can *can_instance = rt_container_of(can, struct at32_can, device); in _can_tx_isr() local
635 if(can_interrupt_flag_get(can_instance->can_x, CAN_TSIF_FLAG) != RESET) in _can_tx_isr()
637 can_flag_clear(can_instance->can_x, CAN_TSIF_FLAG); in _can_tx_isr()
645 struct at32_can *can_instance = rt_container_of(can, struct at32_can, device); in _can_err_isr() local
647 errtype = can_instance->can_x->err; in _can_err_isr()
652 can_instance->device.status.bitpaderrcnt++; in _can_err_isr()
655 can_instance->device.status.formaterrcnt++; in _can_err_isr()
658 can_instance->device.status.ackerrcnt++; in _can_err_isr()
659 rt_hw_can_isr(&can_instance->device, RT_CAN_EVENT_TX_FAIL); in _can_err_isr()
662 can_instance->device.status.biterrcnt++; in _can_err_isr()
665 can_instance->device.status.crcerrcnt++; in _can_err_isr()
669 can_instance->device.status.rcverrcnt = errtype >> 24; in _can_err_isr()
670 can_instance->device.status.snderrcnt = (errtype >> 16 & 0xFF); in _can_err_isr()
671 can_instance->device.status.lasterrtype = (errtype >> 13 & 0x7); in _can_err_isr()
672 can_flag_clear(can_instance->can_x, CAN_BEIF_FLAG); in _can_err_isr()