SAMV7 MCAN: Remove SAMA5 kruft; beginning of some interrupt logic

This commit is contained in:
Gregory Nutt 2015-08-03 13:50:02 -06:00
parent bf8230d7b4
commit e89d8c4a5f
4 changed files with 188 additions and 782 deletions

View File

@ -1603,7 +1603,7 @@ config SAMV7_MCAN0_DEDICATED_TXBUFFER_SIZE
---help---
Number of dedicated TX buffer elements for MCAN0.
config SAMV7_MCAN0_DEDICATED_TXFIFOQ_SIZE
config SAMV7_MCAN0_TXFIFOQ_SIZE
int "MCAN0 dedicated TX FIFO queue"
default 4
range 0 32
@ -1764,31 +1764,31 @@ config SAMV7_MCAN1_RXFIFO0_SIZE
Number of receive FIFO 0 elements. Zero disables FIFO 0.
choice
prompt "MCAN1 RX FIFO0 element size"
default SAMV7_MCAN1_RXFIFO0_32BYTES
prompt "MCAN1 RX FIFO1 element size"
default SAMV7_MCAN1_RXFIFO1_32BYTES
config SAMV7_MCAN1_RXFIFO0_8BYTES
config SAMV7_MCAN1_RXFIFO1_8BYTES
bool "8 bytes"
config SAMV7_MCAN1_RXFIFO0_12BYTES
config SAMV7_MCAN1_RXFIFO1_12BYTES
bool "12 bytes"
config SAMV7_MCAN1_RXFIFO0_16BYTES
config SAMV7_MCAN1_RXFIFO1_16BYTES
bool "16 bytes"
config SAMV7_MCAN1_RXFIFO0_20BYTES
config SAMV7_MCAN1_RXFIFO1_20BYTES
bool "20 bytes"
config SAMV7_MCAN1_RXFIFO0_24BYTES
config SAMV7_MCAN1_RXFIFO1_24BYTES
bool "24 bytes"
config SAMV7_MCAN1_RXFIFO0_32BYTES
config SAMV7_MCAN1_RXFIFO1_32BYTES
bool "32 bytes"
config SAMV7_MCAN1_RXFIFO0_48BYTES
config SAMV7_MCAN1_RXFIFO1_48BYTES
bool "48 bytes"
config SAMV7_MCAN1_RXFIFO0_64BYTES
config SAMV7_MCAN1_RXFIFO1_64BYTES
bool "64 bytes"
endchoice # MCAN1 RX buffer element size
@ -1881,7 +1881,7 @@ config SAMV7_MCAN1_DEDICATED_TXBUFFER_SIZE
---help---
Number of dedicated TX buffer elements for MCAN1.
config SAMV7_MCAN1_DEDICATED_TXFIFOQ_SIZE
config SAMV7_MCAN1_TXFIFOQ_SIZE
int "MCAN1 dedicated TX FIFO queue"
default 4
range 0 32

View File

@ -214,7 +214,7 @@
#define MCAN_FBTP_FBRP_SHIFT (16) /* Bits 16-20: Fast Baud Rate Prescaler */
#define MCAN_FBTP_FBRP_MASK (31 << MCAN_FBTP_FBRP_SHIFT)
# define MCAN_FBTP_FBRP(n) ((uint32_t)(n) << MCAN_FBTP_FBRP_SHIFT)
#define MCAN_FBTP_TDCO (1 << 23) /* Bit: 23: Transceiver Delay Compensation */
#define MCAN_FBTP_TDC (1 << 23) /* Bit: 23: Transceiver Delay Compensation */
#define MCAN_FBTP_TDCO_SHIFT (24) /* Bits 24-28: Transceiver Delay Compensation Offset */
#define MCAN_FBTP_TDCO_MASK (31 << MCAN_FBTP_TDC_SHIFT)
# define MCAN_FBTP_TDCO(n) ((uint32_t)(n) << MCAN_FBTP_TDC_SHIFT)
@ -370,7 +370,7 @@
#define MCAN_INT_RF1W (1 << 5) /* Bit 5: Receive FIFO 1 Watermark Reached */
#define MCAN_INT_RF1F (1 << 6) /* Bit 6: Receive FIFO 1 Full */
#define MCAN_INT_RF1L (1 << 7) /* Bit 7: Receive FIFO 1 Message Lost */
#define MCAN_INT_HPM (1 << 8) /* Bit 8: High Priority Message */
#define MCAN_INT_HPM (1 << 8) /* Bit 8: High Priority Message Received */
#define MCAN_INT_TC (1 << 9) /* Bit 9: Transmission Completed */
#define MCAN_INT_TCF (1 << 10) /* Bit 10: Transmission Cancellation Finished */
#define MCAN_INT_TFE (1 << 11) /* Bit 11: Tx FIFO Empty */
@ -387,7 +387,7 @@
#define MCAN_INT_EW (1 << 24) /* Bit 24: Warning Status */
#define MCAN_INT_BO (1 << 25) /* Bit 25: Bus_Off Status */
#define MCAN_INT_WDI (1 << 26) /* Bit 26: Watchdog Interrupt */
#define MCAN_INT_CRCE (1 << 27) /* Bit 27: CRC Error */
#define MCAN_INT_CRCE (1 << 27) /* Bit 27: Receive CRC Error */
#define MCAN_INT_BE (1 << 28) /* Bit 28: Bit Error */
#define MCAN_INT_ACKE (1 << 29) /* Bit 29: Acknowledge Error */
#define MCAN_INT_FOE (1 << 30) /* Bit 30: Format Error */
@ -444,10 +444,10 @@
# define MCAN_HPMS_BIDX(n) ((uint32_t)(n) << MCAN_HPMS_BIDX_SHIFT)
#define MCAN_HPMS_MSI_SHIFT (6) /* Bits 6-7: Message Storage Indicator */
#define MCAN_HPMS_MSI_MASK (3 << MCAN_HPMS_MSI_SHIFT)
# define MCAN_HPMS_MSI_ NOFIFO (0 << MCAN_HPMS_MSI_SHIFT) /* No FIFO selected. */
# define MCAN_HPMS_MSI_ LOST (1 << MCAN_HPMS_MSI_SHIFT) /* FIFO message. */
# define MCAN_HPMS_MSI_ FIFO0 (2 << MCAN_HPMS_MSI_SHIFT) /* Message stored in FIFO 0. */
# define MCAN_HPMS_MSI_ FIFO1 (3 << MCAN_HPMS_MSI_SHIFT) /* Message stored in FIFO 1. */
# define MCAN_HPMS_MSI_NOFIFO (0 << MCAN_HPMS_MSI_SHIFT) /* No FIFO selected. */
# define MCAN_HPMS_MSI_LOST (1 << MCAN_HPMS_MSI_SHIFT) /* FIFO message. */
# define MCAN_HPMS_MSI_FIFO0 (2 << MCAN_HPMS_MSI_SHIFT) /* Message stored in FIFO 0. */
# define MCAN_HPMS_MSI_FIFO1 (3 << MCAN_HPMS_MSI_SHIFT) /* Message stored in FIFO 1. */
#define MCAN_HPMS_FIDX_SHIFT (8) /* Bits 8-14: Filter Index */
#define MCAN_HPMS_FIDX_MASK (0x7f << MCAN_HPMS_FIDX_SHIFT)
# define MCAN_HPMS_FIDX(n) ((uint32_t)(n) << MCAN_HPMS_FIDX_SHIFT)

File diff suppressed because it is too large Load Diff

View File

@ -47,55 +47,12 @@
#include <nuttx/can.h>
#if defined(CONFIG_CAN) && (defined(CONFIG_SAMV7_CAN0) || \
defined(CONFIG_SAMV7_CAN1))
#if defined(CONFIG_CAN) && (defined(CONFIG_SAMV7_MCAN0) || \
defined(CONFIG_SAMV7_MCAN1))
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
/* CAN BAUD */
#if defined(CONFIG_SAMV7_CAN0) && !defined(CONFIG_SAMV7_CAN0_BAUD)
# error "CONFIG_SAMV7_CAN0_BAUD is not defined"
#endif
#if defined(CONFIG_SAMV7_CAN1) && !defined(CONFIG_SAMV7_CAN1_BAUD)
# error "CONFIG_SAMV7_CAN1_BAUD is not defined"
#endif
/* There must be at least one but not more than three receive mailboxes */
#ifdef CONFIG_SAMV7_CAN0
# if !defined(CONFIG_SAMV7_CAN0_NRECVMB) || CONFIG_SAMV7_CAN0_NRECVMB < 1
# undef CONFIG_SAMV7_CAN0_NRECVMB
# define CONFIG_SAMV7_CAN0_NRECVMB 1
# endif
# if CONFIG_SAMV7_CAN0_NRECVMB > 3
# warning Current implementation only supports up to three receive mailboxes
# undef CONFIG_SAMV7_CAN0_NRECVMB
# define CONFIG_SAMV7_CAN0_NRECVMB 3
# endif
#else
# undef CONFIG_SAMV7_CAN0_NRECVMB
# define CONFIG_SAMV7_CAN0_NRECVMB 0
#endif
#ifdef CONFIG_SAMV7_CAN1
# if !defined(CONFIG_SAMV7_CAN1_NRECVMB) || CONFIG_SAMV7_CAN1_NRECVMB < 1
# undef CONFIG_SAMV7_CAN1_NRECVMB
# define CONFIG_SAMV7_CAN1_NRECVMB 1
# endif
# if CONFIG_SAMV7_CAN1_NRECVMB > 3
# warning Current implementation only supports up to three receive mailboxes
# undef CONFIG_SAMV7_CAN1_NRECVMB
# define CONFIG_SAMV7_CAN1_NRECVMB 3
# endif
#else
# undef CONFIG_SAMV7_CAN1_NRECVMB
# define CONFIG_SAMV7_CAN1_NRECVMB 0
#endif
/* Port numbers for use with sam_mcan_initialize() */
@ -149,5 +106,5 @@ FAR struct can_dev_s *sam_mcan_initialize(int port);
#endif
#endif /* __ASSEMBLY__ */
#endif /* CONFIG_CAN && (CONFIG_SAMV7_CAN0 || CONFIG_SAMV7_CAN1) */
#endif /* CONFIG_CAN && (CONFIG_SAMV7_MCAN0 || CONFIG_SAMV7_MCAN1) */
#endif /* __ARCH_ARM_SRC_SAMV7_SAM_MCAN_H */