|
@@ -136,6 +136,17 @@
|
|
|
|
|
|
/* FLEXCAN message buffers */
|
|
|
#define FLEXCAN_MB_CNT_CODE(x) (((x) & 0xf) << 24)
|
|
|
+#define FLEXCAN_MB_CODE_RX_INACTIVE (0x0 << 24)
|
|
|
+#define FLEXCAN_MB_CODE_RX_EMPTY (0x4 << 24)
|
|
|
+#define FLEXCAN_MB_CODE_RX_FULL (0x2 << 24)
|
|
|
+#define FLEXCAN_MB_CODE_RX_OVERRRUN (0x6 << 24)
|
|
|
+#define FLEXCAN_MB_CODE_RX_RANSWER (0xa << 24)
|
|
|
+
|
|
|
+#define FLEXCAN_MB_CODE_TX_INACTIVE (0x8 << 24)
|
|
|
+#define FLEXCAN_MB_CODE_TX_ABORT (0x9 << 24)
|
|
|
+#define FLEXCAN_MB_CODE_TX_DATA (0xc << 24)
|
|
|
+#define FLEXCAN_MB_CODE_TX_TANSWER (0xe << 24)
|
|
|
+
|
|
|
#define FLEXCAN_MB_CNT_SRR BIT(22)
|
|
|
#define FLEXCAN_MB_CNT_IDE BIT(21)
|
|
|
#define FLEXCAN_MB_CNT_RTR BIT(20)
|
|
@@ -867,8 +878,8 @@ static int flexcan_chip_start(struct net_device *dev)
|
|
|
netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl);
|
|
|
flexcan_write(reg_ctrl, ®s->ctrl);
|
|
|
|
|
|
- /* Abort any pending TX, mark Mailbox as INACTIVE */
|
|
|
- flexcan_write(FLEXCAN_MB_CNT_CODE(0x4),
|
|
|
+ /* mark TX mailbox as INACTIVE */
|
|
|
+ flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE,
|
|
|
®s->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl);
|
|
|
|
|
|
/* acceptance mask/acceptance code (accept everything) */
|