23 #if defined(CAN_INST_NUM) 
   26 #  ifndef CANDEV_SAMD5X_DEFAULT_BITRATE 
   30 #    define CANDEV_SAMD5X_DEFAULT_BITRATE 500000U 
   33 #  ifndef CANDEV_SAMD5X_DEFAULT_SPT 
   35 #    define CANDEV_SAMD5X_DEFAULT_SPT 875 
   38 #  ifndef CANDEV_SAMD5X_DEFAULT_STD_FILTER_NUM 
   39 #    define CANDEV_SAMD5X_DEFAULT_STD_FILTER_NUM 3 
   42 #  ifndef CANDEV_SAMD5X_DEFAULT_EXT_FILTER_NUM 
   43 #    define CANDEV_SAMD5X_DEFAULT_EXT_FILTER_NUM 3 
   46 #  ifndef CANDEV_SAMD5X_DEFAULT_RX_FIFO_0_ELTS_NUM 
   47 #    define CANDEV_SAMD5X_DEFAULT_RX_FIFO_0_ELTS_NUM 32 
   50 #  ifndef CANDEV_SAMD5X_DEFAULT_RX_FIFO_1_ELTS_NUM 
   51 #    define CANDEV_SAMD5X_DEFAULT_RX_FIFO_1_ELTS_NUM 32 
   54 #  ifndef CANDEV_SAMD5X_DEFAULT_TX_EVT_FIFO_ELTS_NUM 
   55 #    define CANDEV_SAMD5X_DEFAULT_TX_EVT_FIFO_ELTS_NUM 16 
   58 #  ifndef CANDEV_SAMD5X_DEFAULT_TX_BUFFER_NUM 
   59 #    define CANDEV_SAMD5X_DEFAULT_TX_BUFFER_NUM 16 
   62 #  ifndef CANDEV_SAMD5X_DEFAULT_TX_BUFFER_FIFO_QUEUE_NUM 
   63 #    define CANDEV_SAMD5X_DEFAULT_TX_BUFFER_FIFO_QUEUE_NUM 16 
   67 #  define CANDEV_SAMD5X_MAX_STD_FILTER 128 
   68 #  define CANDEV_SAMD5X_MAX_EXT_FILTER 64 
   69 #  define CANDEV_SAMD5X_MAX_RX_FIFO_0_ELTS 64 
   70 #  define CANDEV_SAMD5X_MAX_RX_FIFO_1_ELTS 64 
   71 #  define CANDEV_SAMD5X_MAX_RX_BUFFER 64 
   72 #  define CANDEV_SAMD5X_MAX_TX_EVT_FIFO_ELTS 32 
   73 #  define CANDEV_SAMD5X_MAX_TX_BUFFER 32 
   74 #  define CANDEV_SAMD5X_MSG_RAM_MAX_SIZE 448 
   77 #  define CANDEV_SAMD5X_NO_ERROR 0 
   78 #  define CANDEV_SAMD5X_STUFF_ERROR 1 
   79 #  define CANDEV_SAMD5X_FORM_ERROR 2 
   80 #  define CANDEV_SAMD5X_ACK_ERROR 3 
   81 #  define CANDEV_SAMD5X_BIT1_ERROR 4 
   82 #  define CANDEV_SAMD5X_BIT0_ERROR 5 
   83 #  define CANDEV_SAMD5X_CRC_ERROR 6 
   84 #  define CANDEV_SAMD5X_NO_CHANGE_ERROR 7 
  111     bool enable_pin_active_low            : 1;
 
  119     bool disable_automatic_retransmission : 1;
 
  129     bool enable_transmit_pause            : 1;
 
  136     bool start_in_monitor_mode            : 1;
 
  138 #  define HAVE_CAN_CONF_T 
  143 typedef struct can_msg_ram {
 
  145     CanMramSidfe std_filter[CANDEV_SAMD5X_DEFAULT_STD_FILTER_NUM];
 
  147     CanMramXifde ext_filter[CANDEV_SAMD5X_DEFAULT_EXT_FILTER_NUM];
 
  149     CanMramRxf0e rx_fifo_0[CANDEV_SAMD5X_DEFAULT_RX_FIFO_0_ELTS_NUM];
 
  151     CanMramRxf1e rx_fifo_1[CANDEV_SAMD5X_DEFAULT_RX_FIFO_1_ELTS_NUM];
 
  153     CanMramRxbe rx_buffer[CANDEV_SAMD5X_MAX_RX_BUFFER];
 
  155     CanMramTxefe tx_event_fifo[CANDEV_SAMD5X_DEFAULT_TX_EVT_FIFO_ELTS_NUM];
 
  157     CanMramTxbe tx_buffer[CANDEV_SAMD5X_DEFAULT_TX_BUFFER_FIFO_QUEUE_NUM];
 
  170         uint8_t last_error_code;
 
  171         uint8_t d_last_error_code;
 
  172         uint8_t tx_error_count;
 
  173         uint8_t rx_error_count;
 
  176     can_msg_ram_t msg_ram;
 
  188 void candev_samd5x_tdc_control(
can_t *dev);
 
Definitions for low-level CAN driver interface.
 
struct can can_t
Low level device structure for ESP32 CAN (extension of candev_t)
 
gpio_mode_t
Available pin modes.
 
struct candev_conf can_conf_t
Linux candev configuration.
 
ESP CAN device configuration.
 
Low level device structure for ESP32 CAN (extension of candev_t)
 
Structure to hold driver state.