/* * Copyright (c) 2020 Alexander Wachter * * SPDX-License-Identifier: Apache-2.0 * */ #ifndef ZEPHYR_DRIVERS_CAN_CAN_MCAN_PRIV_H_ #define ZEPHYR_DRIVERS_CAN_CAN_MCAN_PRIV_H_ #include /* * Register Masks are taken from the stm32cube library and extended for * full M_CAN IPs * Copyright (c) 2019 STMicroelectronics. */ /**************** Bit definition for CAN_MCAN_CREL register *****************/ /* Timestamp Day */ #define CAN_MCAN_CREL_DAY_POS (0U) #define CAN_MCAN_CREL_DAY_MSK (0xFFUL << CAN_MCAN_CREL_DAY_POS) #define CAN_MCAN_CREL_DAY CAN_MCAN_CREL_DAY_MSK /* Timestamp Month */ #define CAN_MCAN_CREL_MON_POS (8U) #define CAN_MCAN_CREL_MON_MSK (0xFFUL << CAN_MCAN_CREL_MON_POS) #define CAN_MCAN_CREL_MON CAN_MCAN_CREL_MON_MSK /* Timestamp Year */ #define CAN_MCAN_CREL_YEAR_POS (16U) #define CAN_MCAN_CREL_YEAR_MSK (0xFUL << CAN_MCAN_CREL_YEAR_POS) #define CAN_MCAN_CREL_YEAR CAN_MCAN_CREL_YEAR_MSK /* Substep of Core release */ #define CAN_MCAN_CREL_SUBSTEP_POS (20U) #define CAN_MCAN_CREL_SUBSTEP_MSK (0xFUL << CAN_MCAN_CREL_SUBSTEP_POS) #define CAN_MCAN_CREL_SUBSTEP CAN_MCAN_CREL_SUBSTEP_MSK /* Step of Core release */ #define CAN_MCAN_CREL_STEP_POS (24U) #define CAN_MCAN_CREL_STEP_MSK (0xFUL << CAN_MCAN_CREL_STEP_POS) #define CAN_MCAN_CREL_STEP CAN_MCAN_CREL_STEP_MSK /* Core release */ #define CAN_MCAN_CREL_REL_POS (28U) #define CAN_MCAN_CREL_REL_MSK (0xFUL << CAN_MCAN_CREL_REL_POS) #define CAN_MCAN_CREL_REL CAN_MCAN_CREL_REL_MSK /**************** Bit definition for CAN_MCAN_ENDN register *****************/ /* Endianness Test Value */ #define CAN_MCAN_ENDN_ETV_POS (0U) #define CAN_MCAN_ENDN_ETV_MSK (0xFFFFFFFFUL << CAN_MCAN_ENDN_ETV_POS) #define CAN_MCAN_ENDN_ETV CAN_MCAN_ENDN_ETV_MSK /*************** Bit definition for CAN_MCAN_DBTP register ******************/ /* Synchronization Jump Width */ #define CAN_MCAN_DBTP_DSJW_POS (0U) #define CAN_MCAN_DBTP_DSJW_MSK (0xFUL << CAN_MCAN_DBTP_DSJW_POS) #define CAN_MCAN_DBTP_DSJW CAN_MCAN_DBTP_DSJW_MSK /* Data time segment after sample point */ #define CAN_MCAN_DBTP_DTSEG2_POS (4U) #define CAN_MCAN_DBTP_DTSEG2_MSK (0xFUL << CAN_MCAN_DBTP_DTSEG2_POS) #define CAN_MCAN_DBTP_DTSEG2 CAN_MCAN_DBTP_DTSEG2_MSK /* Data time segment before sample point */ #define CAN_MCAN_DBTP_DTSEG1_POS (8U) #define CAN_MCAN_DBTP_DTSEG1_MSK (0x1FUL << CAN_MCAN_DBTP_DTSEG1_POS) #define CAN_MCAN_DBTP_DTSEG1 CAN_MCAN_DBTP_DTSEG1_MSK /* Data BIt Rate Prescaler */ #define CAN_MCAN_DBTP_DBRP_POS (16U) #define CAN_MCAN_DBTP_DBRP_MSK (0x1FUL << CAN_MCAN_DBTP_DBRP_POS) #define CAN_MCAN_DBTP_DBRP CAN_MCAN_DBTP_DBRP_MSK /* Transceiver Delay Compensation */ #define CAN_MCAN_DBTP_TDC_POS (23U) #define CAN_MCAN_DBTP_TDC_MSK (0x1UL << CAN_MCAN_DBTP_TDC_POS) #define CAN_MCAN_DBTP_TDC CAN_MCAN_DBTP_TDC_MSK /*************** Bit definition for CAN_MCAN_TEST register *****************/ /* Loop Back mode */ #define CAN_MCAN_TEST_LBCK_POS (4U) #define CAN_MCAN_TEST_LBCK_MSK (0x1UL << CAN_MCAN_TEST_LBCK_POS) #define CAN_MCAN_TEST_LBCK CAN_MCAN_TEST_LBCK_MSK /* Control of Transmit Pin */ #define CAN_MCAN_TEST_TX_POS (5U) #define CAN_MCAN_TEST_TX_MSK (0x3UL << CAN_MCAN_TEST_TX_POS) #define CAN_MCAN_TEST_TX CAN_MCAN_TEST_TX_MSK /* Receive Pin */ #define CAN_MCAN_TEST_RX_POS (7U) #define CAN_MCAN_TEST_RX_MSK (0x1UL << CAN_MCAN_TEST_RX_POS) #define CAN_MCAN_TEST_RX CAN_MCAN_TEST_RX_MSK /* Does not exist on STM32 begin */ /* Tx Buffer Number Prepared */ #define CAN_MCAN_TEST_TXBNP_POS (8U) #define CAN_MCAN_TEST_TXBNP_MSK (0x1FUL << CAN_MCAN_TEST_TXBNP_POS) #define CAN_MCAN_TEST_TXBNP CAN_MCAN_TEST_RX_MSK /* Prepared Valid */ #define CAN_MCAN_TEST_PVAL_POS (13U) #define CAN_MCAN_TEST_PVAL_MSK (0x1UL << CAN_MCAN_TEST_PVAL_POS) #define CAN_MCAN_TEST_PVAL CAN_MCAN_TEST_RX_MSK /* Tx Buffer Number Started */ #define CAN_MCAN_TEST_TXBNS_POS (16U) #define CAN_MCAN_TEST_TXBNS_MSK (0x1FUL << CAN_MCAN_TEST_TXBNS_POS) #define CAN_MCAN_TEST_TXBNS CAN_MCAN_TEST_RX_MSK /* Started Valid */ #define CAN_MCAN_TEST_SVAL_POS (12U) #define CAN_MCAN_TEST_SVAL_MSK (0x1UL << CAN_MCAN_TEST_SVAL_POS) #define CAN_MCAN_TEST_SVAL CAN_MCAN_TEST_RX_MSK /* Does not exist on STM32 end */ /*************** Bit definition for CAN_MCAN_RWD register ******************/ /* Watchdog configuration */ #define CAN_MCAN_RWD_WDC_POS (0U) #define CAN_MCAN_RWD_WDC_MSK (0xFFUL << CAN_MCAN_RWD_WDC_POS) #define CAN_MCAN_RWD_WDC CAN_MCAN_RWD_WDC_MSK /* Watchdog value */ #define CAN_MCAN_RWD_WDV_POS (8U) #define CAN_MCAN_RWD_WDV_MSK (0xFFUL << CAN_MCAN_RWD_WDV_POS) #define CAN_MCAN_RWD_WDV CAN_MCAN_RWD_WDV_MSK /*************** Bit definition for CAN_MCAN_CCCR register ******************/ /* Initialization */ #define CAN_MCAN_CCCR_INIT_POS (0U) #define CAN_MCAN_CCCR_INIT_MSK (0x1UL << CAN_MCAN_CCCR_INIT_POS) #define CAN_MCAN_CCCR_INIT CAN_MCAN_CCCR_INIT_MSK /* Configuration Change Enable */ #define CAN_MCAN_CCCR_CCE_POS (1U) #define CAN_MCAN_CCCR_CCE_MSK (0x1UL << CAN_MCAN_CCCR_CCE_POS) #define CAN_MCAN_CCCR_CCE CAN_MCAN_CCCR_CCE_MSK /* ASM Restricted Operation Mode */ #define CAN_MCAN_CCCR_ASM_POS (2U) #define CAN_MCAN_CCCR_ASM_MSK (0x1UL << CAN_MCAN_CCCR_ASM_POS) #define CAN_MCAN_CCCR_ASM CAN_MCAN_CCCR_ASM_MSK /* Clock Stop Acknowledge */ #define CAN_MCAN_CCCR_CSA_POS (3U) #define CAN_MCAN_CCCR_CSA_MSK (0x1UL << CAN_MCAN_CCCR_CSA_POS) #define CAN_MCAN_CCCR_CSA CAN_MCAN_CCCR_CSA_MSK /* Clock Stop Request */ #define CAN_MCAN_CCCR_CSR_POS (4U) #define CAN_MCAN_CCCR_CSR_MSK (0x1UL << CAN_MCAN_CCCR_CSR_POS) #define CAN_MCAN_CCCR_CSR CAN_MCAN_CCCR_CSR_MSK /* Bus Monitoring Mode */ #define CAN_MCAN_CCCR_MON_POS (5U) #define CAN_MCAN_CCCR_MON_MSK (0x1UL << CAN_MCAN_CCCR_MON_POS) #define CAN_MCAN_CCCR_MON CAN_MCAN_CCCR_MON_MSK /* Disable Automatic Retransmission */ #define CAN_MCAN_CCCR_DAR_POS (6U) #define CAN_MCAN_CCCR_DAR_MSK (0x1UL << CAN_MCAN_CCCR_DAR_POS) #define CAN_MCAN_CCCR_DAR CAN_MCAN_CCCR_DAR_MSK /* Test Mode Enable */ #define CAN_MCAN_CCCR_TEST_POS (7U) #define CAN_MCAN_CCCR_TEST_MSK (0x1UL << CAN_MCAN_CCCR_TEST_POS) #define CAN_MCAN_CCCR_TEST CAN_MCAN_CCCR_TEST_MSK /* FD Operation Enable */ #define CAN_MCAN_CCCR_FDOE_POS (8U) #define CAN_MCAN_CCCR_FDOE_MSK (0x1UL << CAN_MCAN_CCCR_FDOE_POS) #define CAN_MCAN_CCCR_FDOE CAN_MCAN_CCCR_FDOE_MSK /* FDCAN Bit Rate Switching */ #define CAN_MCAN_CCCR_BRSE_POS (9U) #define CAN_MCAN_CCCR_BRSE_MSK (0x1UL << CAN_MCAN_CCCR_BRSE_POS) #define CAN_MCAN_CCCR_BRSE CAN_MCAN_CCCR_BRSE_MSK /* does not exist on stm32 begin*/ /* Use Timestamping Uni */ #define CAN_MCAN_CCCR_UTSU_POS (10U) #define CAN_MCAN_CCCR_UTSU_MSK (0x1UL << CAN_MCAN_CCCR_UTSU_POS) #define CAN_MCAN_CCCR_UTSU CAN_MCAN_CCCR_UTSU_MSK /* FDCAN Wide Message Marker */ #define CAN_MCAN_CCCR_WMM_POS (11U) #define CAN_MCAN_CCCR_WMM_MSK (0x1UL << CAN_MCAN_CCCR_WMM_POS) #define CAN_MCAN_CCCR_WMM CAN_MCAN_CCCR_WMM_MSK /* end */ /* Protocol Exception Handling Disable */ #define CAN_MCAN_CCCR_PXHD_POS (12U) #define CAN_MCAN_CCCR_PXHD_MSK (0x1UL << CAN_MCAN_CCCR_PXHD_POS) #define CAN_MCAN_CCCR_PXHD CAN_MCAN_CCCR_PXHD_MSK /* Edge Filtering during Bus Integration */ #define CAN_MCAN_CCCR_EFBI_POS (13U) #define CAN_MCAN_CCCR_EFBI_MSK (0x1UL << CAN_MCAN_CCCR_EFBI_POS) #define CAN_MCAN_CCCR_EFBI CAN_MCAN_CCCR_EFBI_MSK /* Two CAN bit times Pause */ #define CAN_MCAN_CCCR_TXP_POS (14U) #define CAN_MCAN_CCCR_TXP_MSK (0x1UL << CAN_MCAN_CCCR_TXP_POS) #define CAN_MCAN_CCCR_TXP CAN_MCAN_CCCR_TXP_MSK /* Non ISO Operation */ #define CAN_MCAN_CCCR_NISO_POS (15U) #define CAN_MCAN_CCCR_NISO_MSK (0x1UL << CAN_MCAN_CCCR_NISO_POS) #define CAN_MCAN_CCCR_NISO CAN_MCAN_CCCR_NISO_MSK /*************** Bit definition for CAN_MCAN_NBTP register ******************/ /* Nominal Time segment after sample point */ #define CAN_MCAN_NBTP_NTSEG2_POS (0U) #define CAN_MCAN_NBTP_NTSEG2_MSK (0x7FUL << CAN_MCAN_NBTP_NTSEG2_POS) #define CAN_MCAN_NBTP_NTSEG2 CAN_MCAN_NBTP_NTSEG2_MSK /* Nominal Time segment before sample point */ #define CAN_MCAN_NBTP_NTSEG1_POS (8U) #define CAN_MCAN_NBTP_NTSEG1_MSK (0xFFUL << CAN_MCAN_NBTP_NTSEG1_POS) #define CAN_MCAN_NBTP_NTSEG1 CAN_MCAN_NBTP_NTSEG1_MSK /* Bit Rate Prescaler */ #define CAN_MCAN_NBTP_NBRP_POS (16U) #define CAN_MCAN_NBTP_NBRP_MSK (0x1FFUL << CAN_MCAN_NBTP_NBRP_POS) #define CAN_MCAN_NBTP_NBRP CAN_MCAN_NBTP_NBRP_MSK /* Nominal (Re)Synchronization Jump Width */ #define CAN_MCAN_NBTP_NSJW_POS (25U) #define CAN_MCAN_NBTP_NSJW_MSK (0x7FUL << CAN_MCAN_NBTP_NSJW_POS) #define CAN_MCAN_NBTP_NSJW CAN_MCAN_NBTP_NSJW_MSK /*************** Bit definition for CAN_MCAN_TSCC register ******************/ /* Timestamp Select */ #define CAN_MCAN_TSCC_TSS_POS (0U) #define CAN_MCAN_TSCC_TSS_MSK (0x3UL << CAN_MCAN_TSCC_TSS_POS) #define CAN_MCAN_TSCC_TSS CAN_MCAN_TSCC_TSS_MSK /* Timestamp Counter Prescaler */ #define CAN_MCAN_TSCC_TCP_POS (16U) #define CAN_MCAN_TSCC_TCP_MSK (0xFUL << CAN_MCAN_TSCC_TCP_POS) #define CAN_MCAN_TSCC_TCP CAN_MCAN_TSCC_TCP_MSK /*************** Bit definition for CAN_MCAN_TSCV register ******************/ /* Timestamp Counter */ #define CAN_MCAN_TSCV_TSC_POS (0U) #define CAN_MCAN_TSCV_TSC_MSK (0xFFFFUL << CAN_MCAN_TSCV_TSC_POS) #define CAN_MCAN_TSCV_TSC CAN_MCAN_TSCV_TSC_MSK /*************** Bit definition for CAN_MCAN_TOCC register ******************/ /* Enable Timeout Counter */ #define CAN_MCAN_TOCC_ETOC_POS (0U) #define CAN_MCAN_TOCC_ETOC_MSK (0x1UL << CAN_MCAN_TOCC_ETOC_POS) #define CAN_MCAN_TOCC_ETOC CAN_MCAN_TOCC_ETOC_MSK /* Timeout Select */ #define CAN_MCAN_TOCC_TOS_POS (1U) #define CAN_MCAN_TOCC_TOS_MSK (0x3UL << CAN_MCAN_TOCC_TOS_POS) #define CAN_MCAN_TOCC_TOS CAN_MCAN_TOCC_TOS_MSK /* Timeout Period */ #define CAN_MCAN_TOCC_TOP_POS (16U) #define CAN_MCAN_TOCC_TOP_MSK (0xFFFFUL << CAN_MCAN_TOCC_TOP_POS) #define CAN_MCAN_TOCC_TOP CAN_MCAN_TOCC_TOP_MSK /*************** Bit definition for CAN_MCAN_TOCV register ******************/ /* Timeout Counter */ #define CAN_MCAN_TOCV_TOC_POS (0U) #define CAN_MCAN_TOCV_TOC_MSK (0xFFFFUL << CAN_MCAN_TOCV_TOC_POS) #define CAN_MCAN_TOCV_TOC CAN_MCAN_TOCV_TOC_MSK /*************** Bit definition for CAN_MCAN_ECR register *******************/ /* Transmit Error Counter */ #define CAN_MCAN_ECR_TEC_POS (0U) #define CAN_MCAN_ECR_TEC_MSK (0xFFUL << CAN_MCAN_ECR_TEC_POS) #define CAN_MCAN_ECR_TEC CAN_MCAN_ECR_TEC_MSK /* Receive Error Counter */ #define CAN_MCAN_ECR_REC_POS (8U) #define CAN_MCAN_ECR_REC_MSK (0x7FUL << CAN_MCAN_ECR_REC_POS) #define CAN_MCAN_ECR_REC CAN_MCAN_ECR_REC_MSK /* Receive Error Passive */ #define CAN_MCAN_ECR_RP_POS (15U) #define CAN_MCAN_ECR_RP_MSK (0x1UL << CAN_MCAN_ECR_RP_POS) #define CAN_MCAN_ECR_RP CAN_MCAN_ECR_RP_MSK /* CAN Error Logging */ #define CAN_MCAN_ECR_CEL_POS (16U) #define CAN_MCAN_ECR_CEL_MSK (0xFFUL << CAN_MCAN_ECR_CEL_POS) #define CAN_MCAN_ECR_CEL CAN_MCAN_ECR_CEL_MSK /*************** Bit definition for CAN_MCAN_PSR register *******************/ /* Last Error Code */ #define CAN_MCAN_PSR_LEC_POS (0U) #define CAN_MCAN_PSR_LEC_MSK (0x7UL << CAN_MCAN_PSR_LEC_POS) #define CAN_MCAN_PSR_LEC CAN_MCAN_PSR_LEC_MSK /* Activity */ #define CAN_MCAN_PSR_ACT_POS (3U) #define CAN_MCAN_PSR_ACT_MSK (0x3UL << CAN_MCAN_PSR_ACT_POS) #define CAN_MCAN_PSR_ACT CAN_MCAN_PSR_ACT_MSK /* Error Passive */ #define CAN_MCAN_PSR_EP_POS (5U) #define CAN_MCAN_PSR_EP_MSK (0x1UL << CAN_MCAN_PSR_EP_POS) #define CAN_MCAN_PSR_EP CAN_MCAN_PSR_EP_MSK /* Warning Status */ #define CAN_MCAN_PSR_EW_POS (6U) #define CAN_MCAN_PSR_EW_MSK (0x1UL << CAN_MCAN_PSR_EW_POS) #define CAN_MCAN_PSR_EW CAN_MCAN_PSR_EW_MSK /* Bus_Off Status */ #define CAN_MCAN_PSR_BO_POS (7U) #define CAN_MCAN_PSR_BO_MSK (0x1UL << CAN_MCAN_PSR_BO_POS) #define CAN_MCAN_PSR_BO CAN_MCAN_PSR_BO_MSK /* Data Last Error Code */ #define CAN_MCAN_PSR_DLEC_POS (8U) #define CAN_MCAN_PSR_DLEC_MSK (0x7UL << CAN_MCAN_PSR_DLEC_POS) #define CAN_MCAN_PSR_DLEC CAN_MCAN_PSR_DLEC_MSK /* ESI flag of last received FDCAN Message */ #define CAN_MCAN_PSR_RESI_POS (11U) #define CAN_MCAN_PSR_RESI_MSK (0x1UL << CAN_MCAN_PSR_RESI_POS) #define CAN_MCAN_PSR_RESI CAN_MCAN_PSR_RESI_MSK /* BRS flag of last received FDCAN Message */ #define CAN_MCAN_PSR_RBRS_POS (12U) #define CAN_MCAN_PSR_RBRS_MSK (0x1UL << CAN_MCAN_PSR_RBRS_POS) #define CAN_MCAN_PSR_RBRS CAN_MCAN_PSR_RBRS_MSK /* Received FDCAN Message */ #define CAN_MCAN_PSR_REDL_POS (13U) #define CAN_MCAN_PSR_REDL_MSK (0x1UL << CAN_MCAN_PSR_REDL_POS) #define CAN_MCAN_PSR_REDL CAN_MCAN_PSR_REDL_MSK /* Protocol Exception Event */ #define CAN_MCAN_PSR_PXE_POS (14U) #define CAN_MCAN_PSR_PXE_MSK (0x1UL << CAN_MCAN_PSR_PXE_POS) #define CAN_MCAN_PSR_PXE CAN_MCAN_PSR_PXE_MSK /* Transmitter Delay Compensation Value */ #define CAN_MCAN_PSR_TDCV_POS (16U) #define CAN_MCAN_PSR_TDCV_MSK (0x7FUL << CAN_MCAN_PSR_TDCV_POS) #define CAN_MCAN_PSR_TDCV CAN_MCAN_PSR_TDCV_MSK /*************** Bit definition for CAN_MCAN_TDCR register ******************/ /* Transmitter Delay Compensation Filter */ #define CAN_MCAN_TDCR_TDCF_POS (0U) #define CAN_MCAN_TDCR_TDCF_MSK (0x7FUL << CAN_MCAN_TDCR_TDCF_POS) #define CAN_MCAN_TDCR_TDCF CAN_MCAN_TDCR_TDCF_MSK /* Transmitter Delay Compensation Offset */ #define CAN_MCAN_TDCR_TDCO_POS (8U) #define CAN_MCAN_TDCR_TDCO_MSK (0x7FUL << CAN_MCAN_TDCR_TDCO_POS) #define CAN_MCAN_TDCR_TDCO CAN_MCAN_TDCR_TDCO_MSK /*************** Bit definition for CAN_MCAN_IR register ********************/ #ifdef CONFIG_CAN_STM32FD /* Rx FIFO 0 New Message */ #define CAN_MCAN_IR_RF0N_POS (0U) #define CAN_MCAN_IR_RF0N_MSK (0x1UL << CAN_MCAN_IR_RF0N_POS) #define CAN_MCAN_IR_RF0N CAN_MCAN_IR_RF0N_MSK /* Rx FIFO 0 Full */ #define CAN_MCAN_IR_RF0F_POS (1U) #define CAN_MCAN_IR_RF0F_MSK (0x1UL << CAN_MCAN_IR_RF0F_POS) #define CAN_MCAN_IR_RF0F CAN_MCAN_IR_RF0F_MSK /* Rx FIFO 0 Message Lost */ #define CAN_MCAN_IR_RF0L_POS (2U) #define CAN_MCAN_IR_RF0L_MSK (0x1UL << CAN_MCAN_IR_RF0L_POS) #define CAN_MCAN_IR_RF0L CAN_MCAN_IR_RF0L_MSK /* Rx FIFO 1 New Message */ #define CAN_MCAN_IR_RF1N_POS (3U) #define CAN_MCAN_IR_RF1N_MSK (0x1UL << CAN_MCAN_IR_RF1N_POS) #define CAN_MCAN_IR_RF1N CAN_MCAN_IR_RF1N_MSK /* Rx FIFO 1 Full */ #define CAN_MCAN_IR_RF1F_POS (4U) #define CAN_MCAN_IR_RF1F_MSK (0x1UL << CAN_MCAN_IR_RF1F_POS) #define CAN_MCAN_IR_RF1F CAN_MCAN_IR_RF1F_MSK /* Rx FIFO 1 Message Lost */ #define CAN_MCAN_IR_RF1L_POS (5U) #define CAN_MCAN_IR_RF1L_MSK (0x1UL << CAN_MCAN_IR_RF1L_POS) #define CAN_MCAN_IR_RF1L CAN_MCAN_IR_RF1L_MSK /* High Priority Message */ #define CAN_MCAN_IR_HPM_POS (6U) #define CAN_MCAN_IR_HPM_MSK (0x1UL << CAN_MCAN_IR_HPM_POS) #define CAN_MCAN_IR_HPM CAN_MCAN_IR_HPM_MSK /* Transmission Completed */ #define CAN_MCAN_IR_TC_POS (7U) #define CAN_MCAN_IR_TC_MSK (0x1UL << CAN_MCAN_IR_TC_POS) #define CAN_MCAN_IR_TC CAN_MCAN_IR_TC_MSK /* Transmission Cancellation Finished */ #define CAN_MCAN_IR_TCF_POS (8U) #define CAN_MCAN_IR_TCF_MSK (0x1UL << CAN_MCAN_IR_TCF_POS) #define CAN_MCAN_IR_TCF CAN_MCAN_IR_TCF_MSK /* Tx FIFO Empty */ #define CAN_MCAN_IR_TFE_POS (9U) #define CAN_MCAN_IR_TFE_MSK (0x1UL << CAN_MCAN_IR_TFE_POS) #define CAN_MCAN_IR_TFE CAN_MCAN_IR_TFE_MSK /* Tx Event FIFO New Entry */ #define CAN_MCAN_IR_TEFN_POS (10U) #define CAN_MCAN_IR_TEFN_MSK (0x1UL << CAN_MCAN_IR_TEFN_POS) #define CAN_MCAN_IR_TEFN CAN_MCAN_IR_TEFN_MSK /* Tx Event FIFO Full */ #define CAN_MCAN_IR_TEFF_POS (11U) #define CAN_MCAN_IR_TEFF_MSK (0x1UL << CAN_MCAN_IR_TEFF_POS) #define CAN_MCAN_IR_TEFF CAN_MCAN_IR_TEFF_MSK /* Tx Event FIFO Element Lost */ #define CAN_MCAN_IR_TEFL_POS (12U) #define CAN_MCAN_IR_TEFL_MSK (0x1UL << CAN_MCAN_IR_TEFL_POS) #define CAN_MCAN_IR_TEFL CAN_MCAN_IR_TEFL_MSK /* Timestamp Wraparound */ #define CAN_MCAN_IR_TSW_POS (13U) #define CAN_MCAN_IR_TSW_MSK (0x1UL << CAN_MCAN_IR_TSW_POS) #define CAN_MCAN_IR_TSW CAN_MCAN_IR_TSW_MSK /* Message RAM Access Failure */ #define CAN_MCAN_IR_MRAF_POS (14U) #define CAN_MCAN_IR_MRAF_MSK (0x1UL << CAN_MCAN_IR_MRAF_POS) #define CAN_MCAN_IR_MRAF CAN_MCAN_IR_MRAF_MSK /* Timeout Occurred */ #define CAN_MCAN_IR_TOO_POS (15U) #define CAN_MCAN_IR_TOO_MSK (0x1UL << CAN_MCAN_IR_TOO_POS) #define CAN_MCAN_IR_TOO CAN_MCAN_IR_TOO_MSK /* Error Logging Overflow */ #define CAN_MCAN_IR_ELO_POS (16U) #define CAN_MCAN_IR_ELO_MSK (0x1UL << CAN_MCAN_IR_ELO_POS) #define CAN_MCAN_IR_ELO CAN_MCAN_IR_ELO_MSK /* Error Passive */ #define CAN_MCAN_IR_EP_POS (17U) #define CAN_MCAN_IR_EP_MSK (0x1UL << CAN_MCAN_IR_EP_POS) #define CAN_MCAN_IR_EP CAN_MCAN_IR_EP_MSK /* Warning Status */ #define CAN_MCAN_IR_EW_POS (18U) #define CAN_MCAN_IR_EW_MSK (0x1UL << CAN_MCAN_IR_EW_POS) #define CAN_MCAN_IR_EW CAN_MCAN_IR_EW_MSK /* Bus_Off Status */ #define CAN_MCAN_IR_BO_POS (19U) #define CAN_MCAN_IR_BO_MSK (0x1UL << CAN_MCAN_IR_BO_POS) #define CAN_MCAN_IR_BO CAN_MCAN_IR_BO_MSK /* Watchdog Interrupt */ #define CAN_MCAN_IR_WDI_POS (20U) #define CAN_MCAN_IR_WDI_MSK (0x1UL << CAN_MCAN_IR_WDI_POS) #define CAN_MCAN_IR_WDI CAN_MCAN_IR_WDI_MSK /* Protocol Error in Arbitration Phase */ #define CAN_MCAN_IR_PEA_POS (21U) #define CAN_MCAN_IR_PEA_MSK (0x1UL << CAN_MCAN_IR_PEA_POS) #define CAN_MCAN_IR_PEA CAN_MCAN_IR_PEA_MSK /* Protocol Error in Data Phase */ #define CAN_MCAN_IR_PED_POS (22U) #define CAN_MCAN_IR_PED_MSK (0x1UL << CAN_MCAN_IR_PED_POS) #define CAN_MCAN_IR_PED CAN_MCAN_IR_PED_MSK /* Access to Reserved Address */ #define CAN_MCAN_IR_ARA_POS (23U) #define CAN_MCAN_IR_ARA_MSK (0x1UL << CAN_MCAN_IR_ARA_POS) #define CAN_MCAN_IR_ARA CAN_MCAN_IR_ARA_MSK #else /* CONFIG_CAN_STM32FD */ /* Rx FIFO 0 New Message */ #define CAN_MCAN_IR_RF0N_POS (0U) #define CAN_MCAN_IR_RF0N_MSK (0x1UL << CAN_MCAN_IR_RF0N_POS) #define CAN_MCAN_IR_RF0N CAN_MCAN_IR_RF0N_MSK /* Rx FIFO 0 Watermark Reached*/ #define CAN_MCAN_IR_RF0W_POS (1U) #define CAN_MCAN_IR_RF0W_MSK (0x1UL << CAN_MCAN_IR_RF0W_POS) #define CAN_MCAN_IR_RF0W CAN_MCAN_IR_RF0W_MSK /* Rx FIFO 0 Full */ #define CAN_MCAN_IR_RF0F_POS (2U) #define CAN_MCAN_IR_RF0F_MSK (0x1UL << CAN_MCAN_IR_RF0F_POS) #define CAN_MCAN_IR_RF0F CAN_MCAN_IR_RF0F_MSK /* Rx FIFO 0 Message Lost */ #define CAN_MCAN_IR_RF0L_POS (3U) #define CAN_MCAN_IR_RF0L_MSK (0x1UL << CAN_MCAN_IR_RF0L_POS) #define CAN_MCAN_IR_RF0L CAN_MCAN_IR_RF0L_MSK /* Rx FIFO 1 New Message */ #define CAN_MCAN_IR_RF1N_POS (4U) #define CAN_MCAN_IR_RF1N_MSK (0x1UL << CAN_MCAN_IR_RF1N_POS) #define CAN_MCAN_IR_RF1N CAN_MCAN_IR_RF1N_MSK /* Rx FIFO 1 Watermark Reached*/ #define CAN_MCAN_IR_RF1W_POS (5U) #define CAN_MCAN_IR_RF1W_MSK (0x1UL << CAN_MCAN_IR_RF1W_POS) #define CAN_MCAN_IR_RF1W CAN_MCAN_IR_RF1W_MSK /* Rx FIFO 1 Full */ #define CAN_MCAN_IR_RF1F_POS (6U) #define CAN_MCAN_IR_RF1F_MSK (0x1UL << CAN_MCAN_IR_RF1F_POS) #define CAN_MCAN_IR_RF1F CAN_MCAN_IR_RF1F_MSK /* Rx FIFO 1 Message Lost */ #define CAN_MCAN_IR_RF1L_POS (7U) #define CAN_MCAN_IR_RF1L_MSK (0x1UL << CAN_MCAN_IR_RF1L_POS) #define CAN_MCAN_IR_RF1L CAN_MCAN_IR_RF1L_MSK /* High Priority Message */ #define CAN_MCAN_IR_HPM_POS (8U) #define CAN_MCAN_IR_HPM_MSK (0x1UL << CAN_MCAN_IR_HPM_POS) #define CAN_MCAN_IR_HPM CAN_MCAN_IR_HPM_MSK /* Transmission Completed */ #define CAN_MCAN_IR_TC_POS (9U) #define CAN_MCAN_IR_TC_MSK (0x1UL << CAN_MCAN_IR_TC_POS) #define CAN_MCAN_IR_TC CAN_MCAN_IR_TC_MSK /* Transmission Cancellation Finished */ #define CAN_MCAN_IR_TCF_POS (10U) #define CAN_MCAN_IR_TCF_MSK (0x1UL << CAN_MCAN_IR_TCF_POS) #define CAN_MCAN_IR_TCF CAN_MCAN_IR_TCF_MSK /* Tx FIFO Empty */ #define CAN_MCAN_IR_TFE_POS (11U) #define CAN_MCAN_IR_TFE_MSK (0x1UL << CAN_MCAN_IR_TFE_POS) #define CAN_MCAN_IR_TFE CAN_MCAN_IR_TFE_MSK /* Tx Event FIFO New Entry */ #define CAN_MCAN_IR_TEFN_POS (12U) #define CAN_MCAN_IR_TEFN_MSK (0x1UL << CAN_MCAN_IR_TEFN_POS) #define CAN_MCAN_IR_TEFN CAN_MCAN_IR_TEFN_MSK /* Tx Event FIFO Watermark */ #define CAN_MCAN_IR_TEFW_POS (13U) #define CAN_MCAN_IR_TEFW_MSK (0x1UL << CAN_MCAN_IR_TEFW_POS) #define CAN_MCAN_IR_TEFW CAN_MCAN_IR_TEFW_MSK /* Tx Event FIFO Full */ #define CAN_MCAN_IR_TEFF_POS (14U) #define CAN_MCAN_IR_TEFF_MSK (0x1UL << CAN_MCAN_IR_TEFF_POS) #define CAN_MCAN_IR_TEFF CAN_MCAN_IR_TEFF_MSK /* Tx Event FIFO Element Lost */ #define CAN_MCAN_IR_TEFL_POS (15U) #define CAN_MCAN_IR_TEFL_MSK (0x1UL << CAN_MCAN_IR_TEFL_POS) #define CAN_MCAN_IR_TEFL CAN_MCAN_IR_TEFL_MSK /* Timestamp Wraparound */ #define CAN_MCAN_IR_TSW_POS (16U) #define CAN_MCAN_IR_TSW_MSK (0x1UL << CAN_MCAN_IR_TSW_POS) #define CAN_MCAN_IR_TSW CAN_MCAN_IR_TSW_MSK /* Message RAM Access Failure */ #define CAN_MCAN_IR_MRAF_POS (17U) #define CAN_MCAN_IR_MRAF_MSK (0x1UL << CAN_MCAN_IR_MRAF_POS) #define CAN_MCAN_IR_MRAF CAN_MCAN_IR_MRAF_MSK /* Timeout Occurred */ #define CAN_MCAN_IR_TOO_POS (18U) #define CAN_MCAN_IR_TOO_MSK (0x1UL << CAN_MCAN_IR_TOO_POS) #define CAN_MCAN_IR_TOO CAN_MCAN_IR_TOO_MSK /* Message stored to Dedicated Rx Buffer */ #define CAN_MCAN_IR_DRX_POS (19U) #define CAN_MCAN_IR_DRX_MSK (0x1UL << CAN_MCAN_IR_DRX_POS) #define CAN_MCAN_IR_DRX CAN_MCAN_IR_DRX_MSK /* Bit Error Corrected */ #define CAN_MCAN_IR_BEC_POS (20U) #define CAN_MCAN_IR_BEC_MSK (0x1UL << CAN_MCAN_IR_BEC_POS) #define CAN_MCAN_IR_BEC CAN_MCAN_IR_BEC_MSK /* Bit Error Uncorrected */ #define CAN_MCAN_IR_BEU_POS (21U) #define CAN_MCAN_IR_BEU_MSK (0x1UL << CAN_MCAN_IR_BEU_POS) #define CAN_MCAN_IR_BEU CAN_MCAN_IR_BEU_MSK /* Error Logging Overflow */ #define CAN_MCAN_IR_ELO_POS (22U) #define CAN_MCAN_IR_ELO_MSK (0x1UL << CAN_MCAN_IR_ELO_POS) #define CAN_MCAN_IR_ELO CAN_MCAN_IR_ELO_MSK /* Error Passive*/ #define CAN_MCAN_IR_EP_POS (23U) #define CAN_MCAN_IR_EP_MSK (0x1UL << CAN_MCAN_IR_EP_POS) #define CAN_MCAN_IR_EP CAN_MCAN_IR_EP_MSK /* Warning Status*/ #define CAN_MCAN_IR_EW_POS (24U) #define CAN_MCAN_IR_EW_MSK (0x1UL << CAN_MCAN_IR_EW_POS) #define CAN_MCAN_IR_EW CAN_MCAN_IR_EW_MSK /* Bus_Off Status*/ #define CAN_MCAN_IR_BO_POS (25U) #define CAN_MCAN_IR_BO_MSK (0x1UL << CAN_MCAN_IR_BO_POS) #define CAN_MCAN_IR_BO CAN_MCAN_IR_BO_MSK /* Watchdog Interrupt */ #define CAN_MCAN_IR_WDI_POS (26U) #define CAN_MCAN_IR_WDI_MSK (0x1UL << CAN_MCAN_IR_WDI_POS) #define CAN_MCAN_IR_WDI CAN_MCAN_IR_WDI_MSK /* Protocol Error in Arbitration Phase */ #define CAN_MCAN_IR_PEA_POS (27U) #define CAN_MCAN_IR_PEA_MSK (0x1UL << CAN_MCAN_IR_PEA_POS) #define CAN_MCAN_IR_PEA CAN_MCAN_IR_PEA_MSK /* Protocol Error in Data Phase */ #define CAN_MCAN_IR_PED_POS (28U) #define CAN_MCAN_IR_PED_MSK (0x1UL << CAN_MCAN_IR_PED_POS) #define CAN_MCAN_IR_PED CAN_MCAN_IR_PED_MSK /* Access to Reserved Address */ #define CAN_MCAN_IR_ARA_POS (29U) #define CAN_MCAN_IR_ARA_MSK (0x1UL << CAN_MCAN_IR_ARA_POS) #define CAN_MCAN_IR_ARA CAN_MCAN_IR_ARA_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_IE register ********************/ #ifdef CONFIG_CAN_STM32FD /* Rx FIFO 0 New Message Enable */ #define CAN_MCAN_IE_RF0N_POS (0U) #define CAN_MCAN_IE_RF0N_MSK (0x1UL << CAN_MCAN_IE_RF0N_POS) #define CAN_MCAN_IE_RF0N CAN_MCAN_IE_RF0N_MSK /* Rx FIFO 0 Full Enable */ #define CAN_MCAN_IE_RF0F_POS (1U) #define CAN_MCAN_IE_RF0F_MSK (0x1UL << CAN_MCAN_IE_RF0F_POS) #define CAN_MCAN_IE_RF0F CAN_MCAN_IE_RF0F_MSK /* Rx FIFO 0 Message Lost Enable */ #define CAN_MCAN_IE_RF0L_POS (2U) #define CAN_MCAN_IE_RF0L_MSK (0x1UL << CAN_MCAN_IE_RF0L_POS) #define CAN_MCAN_IE_RF0L CAN_MCAN_IE_RF0L_MSK /* Rx FIFO 1 New Message Enable */ #define CAN_MCAN_IE_RF1N_POS (3U) #define CAN_MCAN_IE_RF1N_MSK (0x1UL << CAN_MCAN_IE_RF1N_POS) #define CAN_MCAN_IE_RF1N CAN_MCAN_IE_RF1N_MSK /* Rx FIFO 1 Full Enable */ #define CAN_MCAN_IE_RF1F_POS (4U) #define CAN_MCAN_IE_RF1F_MSK (0x1UL << CAN_MCAN_IE_RF1F_POS) #define CAN_MCAN_IE_RF1F CAN_MCAN_IE_RF1F_MSK /* Rx FIFO 1 Message Lost Enable */ #define CAN_MCAN_IE_RF1L_POS (5U) #define CAN_MCAN_IE_RF1L_MSK (0x1UL << CAN_MCAN_IE_RF1L_POS) #define CAN_MCAN_IE_RF1L CAN_MCAN_IE_RF1L_MSK /* High Priority Message Enable */ #define CAN_MCAN_IE_HPM_POS (6U) #define CAN_MCAN_IE_HPM_MSK (0x1UL << CAN_MCAN_IE_HPM_POS) #define CAN_MCAN_IE_HPM CAN_MCAN_IE_HPM_MSK /* Transmission Completed Enable */ #define CAN_MCAN_IE_TC_POS (7U) #define CAN_MCAN_IE_TC_MSK (0x1UL << CAN_MCAN_IE_TC_POS) #define CAN_MCAN_IE_TC CAN_MCAN_IE_TC_MSK /* Transmission Cancellation Finished Enable*/ #define CAN_MCAN_IE_TCF_POS (8U) #define CAN_MCAN_IE_TCF_MSK (0x1UL << CAN_MCAN_IE_TCF_POS) #define CAN_MCAN_IE_TCF CAN_MCAN_IE_TCF_MSK /* Tx FIFO Empty Enable */ #define CAN_MCAN_IE_TFE_POS (9U) #define CAN_MCAN_IE_TFE_MSK (0x1UL << CAN_MCAN_IE_TFE_POS) #define CAN_MCAN_IE_TFE CAN_MCAN_IE_TFE_MSK /* Tx Event FIFO New Entry Enable */ #define CAN_MCAN_IE_TEFN_POS (10U) #define CAN_MCAN_IE_TEFN_MSK (0x1UL << CAN_MCAN_IE_TEFN_POS) #define CAN_MCAN_IE_TEFN CAN_MCAN_IE_TEFN_MSK /* Tx Event FIFO Full Enable */ #define CAN_MCAN_IE_TEFF_POS (11U) #define CAN_MCAN_IE_TEFF_MSK (0x1UL << CAN_MCAN_IE_TEFF_POS) #define CAN_MCAN_IE_TEFF CAN_MCAN_IE_TEFF_MSK /* Tx Event FIFO Element Lost Enable */ #define CAN_MCAN_IE_TEFL_POS (12U) #define CAN_MCAN_IE_TEFL_MSK (0x1UL << CAN_MCAN_IE_TEFL_POS) #define CAN_MCAN_IE_TEFL CAN_MCAN_IE_TEFL_MSK /* Timestamp Wraparound Enable */ #define CAN_MCAN_IE_TSW_POS (13U) #define CAN_MCAN_IE_TSW_MSK (0x1UL << CAN_MCAN_IE_TSW_POS) #define CAN_MCAN_IE_TSW CAN_MCAN_IE_TSW_MSK /* Message RAM Access Failure Enable */ #define CAN_MCAN_IE_MRAF_POS (14U) #define CAN_MCAN_IE_MRAF_MSK (0x1UL << CAN_MCAN_IE_MRAF_POS) #define CAN_MCAN_IE_MRAF CAN_MCAN_IE_MRAF_MSK /* Timeout Occurred Enable */ #define CAN_MCAN_IE_TOO_POS (15U) #define CAN_MCAN_IE_TOO_MSK (0x1UL << CAN_MCAN_IE_TOO_POS) #define CAN_MCAN_IE_TOO CAN_MCAN_IE_TOO_MSK /* Error Logging Overflow Enable */ #define CAN_MCAN_IE_ELO_POS (16U) #define CAN_MCAN_IE_ELO_MSK (0x1UL << CAN_MCAN_IE_ELO_POS) #define CAN_MCAN_IE_ELO CAN_MCAN_IE_ELO_MSK /* Error Passive Enable */ #define CAN_MCAN_IE_EP_POS (17U) #define CAN_MCAN_IE_EP_MSK (0x1UL << CAN_MCAN_IE_EP_POS) #define CAN_MCAN_IE_EP CAN_MCAN_IE_EP_MSK /* Warning Status Enable */ #define CAN_MCAN_IE_EW_POS (18U) #define CAN_MCAN_IE_EW_MSK (0x1UL << CAN_MCAN_IE_EW_POS) #define CAN_MCAN_IE_EW CAN_MCAN_IE_EW_MSK /* Bus_Off Status Enable */ #define CAN_MCAN_IE_BO_POS (19U) #define CAN_MCAN_IE_BO_MSK (0x1UL << CAN_MCAN_IE_BO_POS) #define CAN_MCAN_IE_BO CAN_MCAN_IE_BO_MSK /* Watchdog Interrupt Enable */ #define CAN_MCAN_IE_WDI_POS (20U) #define CAN_MCAN_IE_WDI_MSK (0x1UL << CAN_MCAN_IE_WDI_POS) #define CAN_MCAN_IE_WDI CAN_MCAN_IE_WDIE_MSK /* Protocol Error in Arbitration Phase Enable */ #define CAN_MCAN_IE_PEA_POS (21U) #define CAN_MCAN_IE_PEA_MSK (0x1UL << CAN_MCAN_IE_PEA_POS) #define CAN_MCAN_IE_PEA CAN_MCAN_IE_PEA_MSK /* Protocol Error in Data Phase Enable */ #define CAN_MCAN_IE_PED_POS (22U) #define CAN_MCAN_IE_PED_MSK (0x1UL << CAN_MCAN_IE_PED_POS) #define CAN_MCAN_IE_PED CAN_MCAN_IE_PED_MSK /* Access to Reserved Address Enable */ #define CAN_MCAN_IE_ARA_POS (23U) #define CAN_MCAN_IE_ARA_MSK (0x1UL << CAN_MCAN_IE_ARA_POS) #define CAN_MCAN_IE_ARA CAN_MCAN_IE_ARA_MSK #else /* CONFIG_CAN_STM32FD */ /* Rx FIFO 0 New Message */ #define CAN_MCAN_IE_RF0N_POS (0U) #define CAN_MCAN_IE_RF0N_MSK (0x1UL << CAN_MCAN_IE_RF0N_POS) #define CAN_MCAN_IE_RF0N CAN_MCAN_IE_RF0N_MSK /* Rx FIFO 0 Watermark Reached*/ #define CAN_MCAN_IE_RF0W_POS (1U) #define CAN_MCAN_IE_RF0W_MSK (0x1UL << CAN_MCAN_IE_RF0W_POS) #define CAN_MCAN_IE_RF0W CAN_MCAN_IE_RF0W_MSK /* Rx FIFO 0 Full */ #define CAN_MCAN_IE_RF0F_POS (2U) #define CAN_MCAN_IE_RF0F_MSK (0x1UL << CAN_MCAN_IE_RF0F_POS) #define CAN_MCAN_IE_RF0F CAN_MCAN_IE_RF0F_MSK /* Rx FIFO 0 Message Lost */ #define CAN_MCAN_IE_RF0L_POS (3U) #define CAN_MCAN_IE_RF0L_MSK (0x1UL << CAN_MCAN_IE_RF0L_POS) #define CAN_MCAN_IE_RF0L CAN_MCAN_IE_RF0L_MSK /* Rx FIFO 1 New Message */ #define CAN_MCAN_IE_RF1N_POS (4U) #define CAN_MCAN_IE_RF1N_MSK (0x1UL << CAN_MCAN_IE_RF1N_POS) #define CAN_MCAN_IE_RF1N CAN_MCAN_IE_RF1N_MSK /* Rx FIFO 1 Watermark Reached*/ #define CAN_MCAN_IE_RF1W_POS (5U) #define CAN_MCAN_IE_RF1W_MSK (0x1UL << CAN_MCAN_IE_RF1W_POS) #define CAN_MCAN_IE_RF1W CAN_MCAN_IE_RF1W_MSK /* Rx FIFO 1 Full */ #define CAN_MCAN_IE_RF1F_POS (6U) #define CAN_MCAN_IE_RF1F_MSK (0x1UL << CAN_MCAN_IE_RF1F_POS) #define CAN_MCAN_IE_RF1F CAN_MCAN_IE_RF1F_MSK /* Rx FIFO 1 Message Lost */ #define CAN_MCAN_IE_RF1L_POS (7U) #define CAN_MCAN_IE_RF1L_MSK (0x1UL << CAN_MCAN_IE_RF1L_POS) #define CAN_MCAN_IE_RF1L CAN_MCAN_IE_RF1L_MSK /* High Priority Message */ #define CAN_MCAN_IE_HPM_POS (8U) #define CAN_MCAN_IE_HPM_MSK (0x1UL << CAN_MCAN_IE_HPM_POS) #define CAN_MCAN_IE_HPM CAN_MCAN_IE_HPM_MSK /* Transmission Completed */ #define CAN_MCAN_IE_TC_POS (9U) #define CAN_MCAN_IE_TC_MSK (0x1UL << CAN_MCAN_IE_TC_POS) #define CAN_MCAN_IE_TC CAN_MCAN_IE_TC_MSK /* Transmission Cancellation Finished */ #define CAN_MCAN_IE_TCF_POS (10U) #define CAN_MCAN_IE_TCF_MSK (0x1UL << CAN_MCAN_IE_TCF_POS) #define CAN_MCAN_IE_TCF CAN_MCAN_IE_TCF_MSK /* Tx FIFO Empty */ #define CAN_MCAN_IE_TFE_POS (11U) #define CAN_MCAN_IE_TFE_MSK (0x1UL << CAN_MCAN_IE_TFE_POS) #define CAN_MCAN_IE_TFE CAN_MCAN_IE_TFE_MSK /* Tx Event FIFO New Entry */ #define CAN_MCAN_IE_TEFN_POS (12U) #define CAN_MCAN_IE_TEFN_MSK (0x1UL << CAN_MCAN_IE_TEFN_POS) #define CAN_MCAN_IE_TEFN CAN_MCAN_IE_TEFN_MSK /* Tx Event FIFO Watermark */ #define CAN_MCAN_IE_TEFW_POS (13U) #define CAN_MCAN_IE_TEFW_MSK (0x1UL << CAN_MCAN_IE_TEFW_POS) #define CAN_MCAN_IE_TEFW CAN_MCAN_IE_TEFW_MSK /* Tx Event FIFO Full */ #define CAN_MCAN_IE_TEFF_POS (14U) #define CAN_MCAN_IE_TEFF_MSK (0x1UL << CAN_MCAN_IE_TEFF_POS) #define CAN_MCAN_IE_TEFF CAN_MCAN_IE_TEFF_MSK /* Tx Event FIFO Element Lost */ #define CAN_MCAN_IE_TEFL_POS (15U) #define CAN_MCAN_IE_TEFL_MSK (0x1UL << CAN_MCAN_IE_TEFL_POS) #define CAN_MCAN_IE_TEFL CAN_MCAN_IE_TEFL_MSK /* Timestamp Wraparound */ #define CAN_MCAN_IE_TSW_POS (16U) #define CAN_MCAN_IE_TSW_MSK (0x1UL << CAN_MCAN_IE_TSW_POS) #define CAN_MCAN_IE_TSW CAN_MCAN_IE_TSW_MSK /* Message RAM Access Failure */ #define CAN_MCAN_IE_MRAF_POS (17U) #define CAN_MCAN_IE_MRAF_MSK (0x1UL << CAN_MCAN_IE_MRAF_POS) #define CAN_MCAN_IE_MRAF CAN_MCAN_IE_MRAF_MSK /* Timeout Occurred */ #define CAN_MCAN_IE_TOO_POS (18U) #define CAN_MCAN_IE_TOO_MSK (0x1UL << CAN_MCAN_IE_TOO_POS) #define CAN_MCAN_IE_TOO CAN_MCAN_IE_TOO_MSK /* Message stored to Dedicated Rx Buffer */ #define CAN_MCAN_IE_DRX_POS (19U) #define CAN_MCAN_IE_DRX_MSK (0x1UL << CAN_MCAN_IE_DRX_POS) #define CAN_MCAN_IE_DRX CAN_MCAN_IE_DRX_MSK /* Bit Error Corrected */ #define CAN_MCAN_IE_BEC_POS (20U) #define CAN_MCAN_IE_BEC_MSK (0x1UL << CAN_MCAN_IE_BEC_POS) #define CAN_MCAN_IE_BEC CAN_MCAN_IE_BEC_MSK /* Bit Error Uncorrected */ #define CAN_MCAN_IE_BEU_POS (21U) #define CAN_MCAN_IE_BEU_MSK (0x1UL << CAN_MCAN_IE_BEU_POS) #define CAN_MCAN_IE_BEU CAN_MCAN_IE_BEU_MSK /* Error Logging Overflow */ #define CAN_MCAN_IE_ELO_POS (22U) #define CAN_MCAN_IE_ELO_MSK (0x1UL << CAN_MCAN_IE_ELO_POS) #define CAN_MCAN_IE_ELO CAN_MCAN_IE_ELO_MSK /* Error Passive*/ #define CAN_MCAN_IE_EP_POS (23U) #define CAN_MCAN_IE_EP_MSK (0x1UL << CAN_MCAN_IE_EP_POS) #define CAN_MCAN_IE_EP CAN_MCAN_IE_EP_MSK /* Warning Status*/ #define CAN_MCAN_IE_EW_POS (24U) #define CAN_MCAN_IE_EW_MSK (0x1UL << CAN_MCAN_IE_EW_POS) #define CAN_MCAN_IE_EW CAN_MCAN_IE_EW_MSK /* Bus_Off Status*/ #define CAN_MCAN_IE_BO_POS (25U) #define CAN_MCAN_IE_BO_MSK (0x1UL << CAN_MCAN_IE_BO_POS) #define CAN_MCAN_IE_BO CAN_MCAN_IE_BO_MSK /* Watchdog Interrupt */ #define CAN_MCAN_IE_WDI_POS (26U) #define CAN_MCAN_IE_WDI_MSK (0x1UL << CAN_MCAN_IE_WDI_POS) #define CAN_MCAN_IE_WDI CAN_MCAN_IE_WDI_MSK /* Protocol Error in Arbitration Phase */ #define CAN_MCAN_IE_PEA_POS (27U) #define CAN_MCAN_IE_PEA_MSK (0x1UL << CAN_MCAN_IE_PEA_POS) #define CAN_MCAN_IE_PEA CAN_MCAN_IE_PEA_MSK /* Protocol Error in Data Phase */ #define CAN_MCAN_IE_PED_POS (28U) #define CAN_MCAN_IE_PED_MSK (0x1UL << CAN_MCAN_IE_PED_POS) #define CAN_MCAN_IE_PED CAN_MCAN_IE_PED_MSK /* Access to Reserved Address */ #define CAN_MCAN_IE_ARA_POS (29U) #define CAN_MCAN_IE_ARA_MSK (0x1UL << CAN_MCAN_IE_ARA_POS) #define CAN_MCAN_IE_ARA CAN_MCAN_IE_ARA_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_ILS register *******************/ #ifdef CONFIG_CAN_STM32FD /* Rx FIFO 0 */ #define CAN_MCAN_ILS_RXFIFO0_POS (0U) #define CAN_MCAN_ILS_RXFIFO0_MSK (0x1UL << CAN_MCAN_ILS_RXFIFO0_POS) #define CAN_MCAN_ILS_RXFIFO0 CAN_MCAN_ILS_RXFIFO0_MSK /* Rx FIFO 1 */ #define CAN_MCAN_ILS_RXFIFO1_POS (1U) #define CAN_MCAN_ILS_RXFIFO1_MSK (0x1UL << CAN_MCAN_ILS_RXFIFO1_POS) #define CAN_MCAN_ILS_RXFIFO1 CAN_MCAN_ILS_RXFIFO1_MSK /* Transmission Cancellation Finished */ #define CAN_MCAN_ILS_SMSG_POS (2U) #define CAN_MCAN_ILS_SMSG_MSK (0x1UL << CAN_MCAN_ILS_SMSG_POS) #define CAN_MCAN_ILS_SMSG CAN_MCAN_ILS_SMSG_MSK /* Tx Event FIFO Element Lost */ #define CAN_MCAN_ILS_TFERR_POS (3U) #define CAN_MCAN_ILS_TFERR_MSK (0x1UL << CAN_MCAN_ILS_TFERR_POS) #define CAN_MCAN_ILS_TFERR CAN_MCAN_ILS_TFERR_MSK /* Timeout Occurred */ #define CAN_MCAN_ILS_MISC_POS (4U) #define CAN_MCAN_ILS_MISC_MSK (0x1UL << CAN_MCAN_ILS_MISC_POS) #define CAN_MCAN_ILS_MISC CAN_MCAN_ILS_MISC_MSK /* Error Passive Error Logging Overflow */ #define CAN_MCAN_ILS_BERR_POS (5U) #define CAN_MCAN_ILS_BERR_MSK (0x1UL << CAN_MCAN_ILS_BERR_POS) #define CAN_MCAN_ILS_BERR CAN_MCAN_ILS_BERR_MSK /* Access to Reserved Address Line */ #define CAN_MCAN_ILS_PERR_POS (6U) #define CAN_MCAN_ILS_PERR_MSK (0x1UL << CAN_MCAN_ILS_PERR_POS) #define CAN_MCAN_ILS_PERR CAN_MCAN_ILS_PERR_MSK #else/* CONFIG_CAN_STM32FD */ /* Rx FIFO 0 New Message */ #define CAN_MCAN_ILS_RF0N_POS (0U) #define CAN_MCAN_ILS_RF0N_MSK (0x1UL << CAN_MCAN_ILS_RF0N_POS) #define CAN_MCAN_ILS_RF0N CAN_MCAN_ILS_RF0N_MSK /* Rx FIFO 0 Watermark Reached*/ #define CAN_MCAN_ILS_RF0W_POS (1U) #define CAN_MCAN_ILS_RF0W_MSK (0x1UL << CAN_MCAN_ILS_RF0W_POS) #define CAN_MCAN_ILS_RF0W CAN_MCAN_ILS_RF0W_MSK /* Rx FIFO 0 Full */ #define CAN_MCAN_ILS_RF0F_POS (2U) #define CAN_MCAN_ILS_RF0F_MSK (0x1UL << CAN_MCAN_ILS_RF0F_POS) #define CAN_MCAN_ILS_RF0F CAN_MCAN_ILS_RF0F_MSK /* Rx FIFO 0 Message Lost */ #define CAN_MCAN_ILS_RF0L_POS (3U) #define CAN_MCAN_ILS_RF0L_MSK (0x1UL << CAN_MCAN_ILS_RF0L_POS) #define CAN_MCAN_ILS_RF0L CAN_MCAN_ILS_RF0L_MSK /* Rx FIFO 1 New Message */ #define CAN_MCAN_ILS_RF1N_POS (4U) #define CAN_MCAN_ILS_RF1N_MSK (0x1UL << CAN_MCAN_ILS_RF1N_POS) #define CAN_MCAN_ILS_RF1N CAN_MCAN_ILS_RF1N_MSK /* Rx FIFO 1 Watermark Reached*/ #define CAN_MCAN_ILS_RF1W_POS (5U) #define CAN_MCAN_ILS_RF1W_MSK (0x1UL << CAN_MCAN_ILS_RF1W_POS) #define CAN_MCAN_ILS_RF1W CAN_MCAN_ILS_RF1W_MSK /* Rx FIFO 1 Full */ #define CAN_MCAN_ILS_RF1F_POS (6U) #define CAN_MCAN_ILS_RF1F_MSK (0x1UL << CAN_MCAN_ILS_RF1F_POS) #define CAN_MCAN_ILS_RF1F CAN_MCAN_ILS_RF1F_MSK /* Rx FIFO 1 Message Lost */ #define CAN_MCAN_ILS_RF1L_POS (7U) #define CAN_MCAN_ILS_RF1L_MSK (0x1UL << CAN_MCAN_ILS_RF1L_POS) #define CAN_MCAN_ILS_RF1L CAN_MCAN_ILS_RF1L_MSK /* High Priority Message */ #define CAN_MCAN_ILS_HPM_POS (8U) #define CAN_MCAN_ILS_HPM_MSK (0x1UL << CAN_MCAN_ILS_HPM_POS) #define CAN_MCAN_ILS_HPM CAN_MCAN_ILS_HPM_MSK /* Transmission Completed */ #define CAN_MCAN_ILS_TC_POS (9U) #define CAN_MCAN_ILS_TC_MSK (0x1UL << CAN_MCAN_ILS_TC_POS) #define CAN_MCAN_ILS_TC CAN_MCAN_ILS_TC_MSK /* Transmission Cancellation Finished */ #define CAN_MCAN_ILS_TCF_POS (10U) #define CAN_MCAN_ILS_TCF_MSK (0x1UL << CAN_MCAN_ILS_TCF_POS) #define CAN_MCAN_ILS_TCF CAN_MCAN_ILS_TCF_MSK /* Tx FIFO Empty */ #define CAN_MCAN_ILS_TFE_POS (11U) #define CAN_MCAN_ILS_TFE_MSK (0x1UL << CAN_MCAN_ILS_TFE_POS) #define CAN_MCAN_ILS_TFE CAN_MCAN_ILS_TFE_MSK /* Tx Event FIFO New Entry */ #define CAN_MCAN_ILS_TEFN_POS (12U) #define CAN_MCAN_ILS_TEFN_MSK (0x1UL << CAN_MCAN_ILS_TEFN_POS) #define CAN_MCAN_ILS_TEFN CAN_MCAN_ILS_TEFN_MSK /* Tx Event FIFO Watermark */ #define CAN_MCAN_ILS_TEFW_POS (13U) #define CAN_MCAN_ILS_TEFW_MSK (0x1UL << CAN_MCAN_ILS_TEFW_POS) #define CAN_MCAN_ILS_TEFW CAN_MCAN_ILS_TEFW_MSK /* Tx Event FIFO Full */ #define CAN_MCAN_ILS_TEFF_POS (14U) #define CAN_MCAN_ILS_TEFF_MSK (0x1UL << CAN_MCAN_ILS_TEFF_POS) #define CAN_MCAN_ILS_TEFF CAN_MCAN_ILS_TEFF_MSK /* Tx Event FIFO Element Lost */ #define CAN_MCAN_ILS_TEFL_POS (15U) #define CAN_MCAN_ILS_TEFL_MSK (0x1UL << CAN_MCAN_ILS_TEFL_POS) #define CAN_MCAN_ILS_TEFL CAN_MCAN_ILS_TEFL_MSK /* Timestamp Wraparound */ #define CAN_MCAN_ILS_TSW_POS (16U) #define CAN_MCAN_ILS_TSW_MSK (0x1UL << CAN_MCAN_ILS_TSW_POS) #define CAN_MCAN_ILS_TSW CAN_MCAN_ILS_TSW_MSK /* Message RAM Access Failure */ #define CAN_MCAN_ILS_MRAF_POS (17U) #define CAN_MCAN_ILS_MRAF_MSK (0x1UL << CAN_MCAN_ILS_MRAF_POS) #define CAN_MCAN_ILS_MRAF CAN_MCAN_ILS_MRAF_MSK /* Timeout Occurred */ #define CAN_MCAN_ILS_TOO_POS (18U) #define CAN_MCAN_ILS_TOO_MSK (0x1UL << CAN_MCAN_ILS_TOO_POS) #define CAN_MCAN_ILS_TOO CAN_MCAN_ILS_TOO_MSK /* Message stored to Dedicated Rx Buffer */ #define CAN_MCAN_ILS_DRX_POS (19U) #define CAN_MCAN_ILS_DRX_MSK (0x1UL << CAN_MCAN_ILS_DRX_POS) #define CAN_MCAN_ILS_DRX CAN_MCAN_ILS_DRX_MSK /* Bit Error Corrected */ #define CAN_MCAN_ILS_BEC_POS (20U) #define CAN_MCAN_ILS_BEC_MSK (0x1UL << CAN_MCAN_ILS_BEC_POS) #define CAN_MCAN_ILS_BEC CAN_MCAN_ILS_BEC_MSK /* Bit Error Uncorrected */ #define CAN_MCAN_ILS_BEU_POS (21U) #define CAN_MCAN_ILS_BEU_MSK (0x1UL << CAN_MCAN_ILS_BEU_POS) #define CAN_MCAN_ILS_BEU CAN_MCAN_ILS_BEU_MSK /* Error Logging Overflow */ #define CAN_MCAN_ILS_ELO_POS (22U) #define CAN_MCAN_ILS_ELO_MSK (0x1UL << CAN_MCAN_ILS_ELO_POS) #define CAN_MCAN_ILS_ELO CAN_MCAN_ILS_ELO_MSK /* Error Passive*/ #define CAN_MCAN_ILS_EP_POS (23U) #define CAN_MCAN_ILS_EP_MSK (0x1UL << CAN_MCAN_ILS_EP_POS) #define CAN_MCAN_ILS_EP CAN_MCAN_ILS_EP_MSK /* Warning Status*/ #define CAN_MCAN_ILS_EW_POS (24U) #define CAN_MCAN_ILS_EW_MSK (0x1UL << CAN_MCAN_ILS_EW_POS) #define CAN_MCAN_ILS_EW CAN_MCAN_ILS_EW_MSK /* Bus_Off Status*/ #define CAN_MCAN_ILS_BO_POS (25U) #define CAN_MCAN_ILS_BO_MSK (0x1UL << CAN_MCAN_ILS_BO_POS) #define CAN_MCAN_ILS_BO CAN_MCAN_ILS_BO_MSK /* Watchdog Interrupt */ #define CAN_MCAN_ILS_WDI_POS (26U) #define CAN_MCAN_ILS_WDI_MSK (0x1UL << CAN_MCAN_ILS_WDI_POS) #define CAN_MCAN_ILS_WDI CAN_MCAN_ILS_WDI_MSK /* Protocol Error in Arbitration Phase */ #define CAN_MCAN_ILS_PEA_POS (27U) #define CAN_MCAN_ILS_PEA_MSK (0x1UL << CAN_MCAN_ILS_PEA_POS) #define CAN_MCAN_ILS_PEA CAN_MCAN_ILS_PEA_MSK /* Protocol Error in Data Phase */ #define CAN_MCAN_ILS_PED_POS (28U) #define CAN_MCAN_ILS_PED_MSK (0x1UL << CAN_MCAN_ILS_PED_POS) #define CAN_MCAN_ILS_PED CAN_MCAN_ILS_PED_MSK /* Access to Reserved Address */ #define CAN_MCAN_ILS_ARA_POS (29U) #define CAN_MCAN_ILS_ARA_MSK (0x1UL << CAN_MCAN_ILS_ARA_POS) #define CAN_MCAN_ILS_ARA CAN_MCAN_IL_ARA_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_ILE register *******************/ /* Enable Interrupt Line 0 */ #define CAN_MCAN_ILE_EINT0_POS (0U) #define CAN_MCAN_ILE_EINT0_MSK (0x1UL << CAN_MCAN_ILE_EINT0_POS) #define CAN_MCAN_ILE_EINT0 CAN_MCAN_ILE_EINT0_MSK /* Enable Interrupt Line 1 */ #define CAN_MCAN_ILE_EINT1_POS (1U) #define CAN_MCAN_ILE_EINT1_MSK (0x1UL << CAN_MCAN_ILE_EINT1_POS) #define CAN_MCAN_ILE_EINT1 CAN_MCAN_ILE_EINT1_MSK /*************** Bit definition for CAN_MCAN_RXGFC register *****************/ #ifdef CONFIG_CAN_STM32FD /* Reject Remote Frames Extended */ #define CAN_MCAN_RXGFC_RRFE_POS (0U) #define CAN_MCAN_RXGFC_RRFE_MSK (0x1UL << CAN_MCAN_RXGFC_RRFE_POS) #define CAN_MCAN_RXGFC_RRFE CAN_MCAN_RXGFC_RRFE_MSK /* Reject Remote Frames Standard */ #define CAN_MCAN_RXGFC_RRFS_POS (1U) #define CAN_MCAN_RXGFC_RRFS_MSK (0x1UL << CAN_MCAN_RXGFC_RRFS_POS) #define CAN_MCAN_RXGFC_RRFS CAN_MCAN_RXGFC_RRFS_MSK /* Accept Non-matching Frames Extended */ #define CAN_MCAN_RXGFC_ANFE_POS (2U) #define CAN_MCAN_RXGFC_ANFE_MSK (0x3UL << CAN_MCAN_RXGFC_ANFE_POS) #define CAN_MCAN_RXGFC_ANFE CAN_MCAN_RXGFC_ANFE_MSK /* Accept Non-matching Frames Standard */ #define CAN_MCAN_RXGFC_ANFS_POS (4U) #define CAN_MCAN_RXGFC_ANFS_MSK (0x3UL << CAN_MCAN_RXGFC_ANFS_POS) #define CAN_MCAN_RXGFC_ANFS CAN_MCAN_RXGFC_ANFS_MSK /* FIFO 1 operation mode */ #define CAN_MCAN_RXGFC_F1OM_POS (8U) #define CAN_MCAN_RXGFC_F1OM_MSK (0x1UL << CAN_MCAN_RXGFC_F1OM_POS) #define CAN_MCAN_RXGFC_F1OM CAN_MCAN_RXGFC_F1OM_MSK /* FIFO 0 operation mode */ #define CAN_MCAN_RXGFC_F0OM_POS (9U) #define CAN_MCAN_RXGFC_F0OM_MSK (0x1UL << CAN_MCAN_RXGFC_F0OM_POS) #define CAN_MCAN_RXGFC_F0OM CAN_MCAN_RXGFC_F0OM_MSK /* List Size Standard */ #define CAN_MCAN_RXGFC_LSS_POS (16U) #define CAN_MCAN_RXGFC_LSS_MSK (0x1FUL << CAN_MCAN_RXGFC_LSS_POS) #define CAN_MCAN_RXGFC_LSS CAN_MCAN_RXGFC_LSS_MSK /* List Size Extended */ #define CAN_MCAN_RXGFC_LSE_POS (24U) #define CAN_MCAN_RXGFC_LSE_MSK (0xFUL << CAN_MCAN_RXGFC_LSE_POS) #define CAN_MCAN_RXGFC_LSE CAN_MCAN_RXGFC_LSE_MSK #else /* CONFIG_CAN_STM32FD */ /* Reject Remote Frames Extended */ #define CAN_MCAN_GFC_RRFE_POS (0U) #define CAN_MCAN_GFC_RRFE_MSK (0x1UL << CAN_MCAN_GFC_RRFE_POS) #define CAN_MCAN_GFC_RRFE CAN_MCAN_GFC_RRFE_MSK /* Reject Remote Frames Standard */ #define CAN_MCAN_GFC_RRFS_POS (1U) #define CAN_MCAN_GFC_RRFS_MSK (0x1UL << CAN_MCAN_GFC_RRFS_POS) #define CAN_MCAN_GFC_RRFS CAN_MCAN_GFC_RRFS_MSK /* Accept Non-matching Frames Extended */ #define CAN_MCAN_GFC_ANFE_POS (2U) #define CAN_MCAN_GFC_ANFE_MSK (0x3UL << CAN_MCAN_GFC_ANFE_POS) #define CAN_MCAN_GFC_ANFE CAN_MCAN_GFC_ANFE_MSK /* Accept Non-matching Frames Standard */ #define CAN_MCAN_GFC_ANFS_POS (4U) #define CAN_MCAN_GFC_ANFS_MSK (0x3UL << CAN_MCAN_GFC_ANFS_POS) #define CAN_MCAN_GFC_ANFS CAN_MCAN_GFC_ANFS_MSK /* Filter List Standard Start Address */ #define CAN_MCAN_SIDFC_FLSSA_POS (2U) #define CAN_MCAN_SIDFC_FLSSA_MSK (0x3FFFUL << CAN_MCAN_SIDFC_FLSSA_POS) #define CAN_MCAN_SIDFC_FLSSA CAN_MCAN_SIDFC_FLSSA_MSK /* List Size Standard */ #define CAN_MCAN_SIDFC_LSS_POS (16U) #define CAN_MCAN_SIDFC_LSS_MSK (0xFFUL << CAN_MCAN_SIDFC_LSS_POS) #define CAN_MCAN_SIDFC_LSS CAN_MCAN_SIDFC_LSS_MSK /* Filter List Extended Start Address */ #define CAN_MCAN_XIDFC_FLESA_POS (2U) #define CAN_MCAN_XIDFC_FLESA_MSK (0x3FFFUL << CAN_MCAN_XIDFC_FLESA_POS) #define CAN_MCAN_XIDFC_FLESA CAN_MCAN_XIDFC_FLESA_MSK /* List Size Extended */ #define CAN_MCAN_XIDFC_LSS_POS (16U) #define CAN_MCAN_XIDFC_LSS_MSK (0x7FUL << CAN_MCAN_XIDFC_LSS_POS) #define CAN_MCAN_XIDFC_LSS CAN_MCAN_XIDFC_LSS_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_XIDAM register *****************/ /* Extended ID Mask */ #define CAN_MCAN_XIDAM_EIDM_POS (0U) #define CAN_MCAN_XIDAM_EIDM_MSK (0x1FFFFFFFUL << CAN_MCAN_XIDAM_EIDM_POS) #define CAN_MCAN_XIDAM_EIDM CAN_MCAN_XIDAM_EIDM_MSK /*************** Bit definition for CAN_MCAN_HPMS register ******************/ #ifdef CONFIG_CAN_STM32FD /* Buffer Index */ #define CAN_MCAN_HPMS_BIDX_POS (0U) #define CAN_MCAN_HPMS_BIDX_MSK (0x7UL << CAN_MCAN_HPMS_BIDX_POS) #define CAN_MCAN_HPMS_BIDX CAN_MCAN_HPMS_BIDX_MSK /* Message Storage Indicator */ #define CAN_MCAN_HPMS_MSI_POS (6U) #define CAN_MCAN_HPMS_MSI_MSK (0x3UL << CAN_MCAN_HPMS_MSI_POS) #define CAN_MCAN_HPMS_MSI CAN_MCAN_HPMS_MSI_MSK /* Filter Index */ #define CAN_MCAN_HPMS_FIDX_POS (8U) #define CAN_MCAN_HPMS_FIDX_MSK (0x1FUL << CAN_MCAN_HPMS_FIDX_POS) #define CAN_MCAN_HPMS_FIDX CAN_MCAN_HPMS_FIDX_MSK /* Filter List */ #define CAN_MCAN_HPMS_FLST_POS (15U) #define CAN_MCAN_HPMS_FLST_MSK (0x1UL << CAN_MCAN_HPMS_FLST_POS) #define CAN_MCAN_HPMS_FLST CAN_MCAN_HPMS_FLST_MSK #else /* CONFIG_CAN_STM32FD */ /* Buffer Index */ #define CAN_MCAN_HPMS_BIDX_POS (0U) #define CAN_MCAN_HPMS_BIDX_MSK (0x3FUL << CAN_MCAN_HPMS_BIDX_POS) #define CAN_MCAN_HPMS_BIDX CAN_MCAN_HPMS_BIDX_MSK /* Message Storage Indicator */ #define CAN_MCAN_HPMS_MSI_POS (6U) #define CAN_MCAN_HPMS_MSI_MSK (0x3UL << CAN_MCAN_HPMS_MSI_POS) #define CAN_MCAN_HPMS_MSI CAN_MCAN_HPMS_MSI_MSK /* Filter Index */ #define CAN_MCAN_HPMS_FIDX_POS (8U) #define CAN_MCAN_HPMS_FIDX_MSK (0x7FUL << CAN_MCAN_HPMS_FIDX_POS) #define CAN_MCAN_HPMS_FIDX CAN_MCAN_HPMS_FIDX_MSK /* Filter List */ #define CAN_MCAN_HPMS_FLST_POS (15U) #define CAN_MCAN_HPMS_FLST_MSK (0x1UL << CAN_MCAN_HPMS_FLST_POS) #define CAN_MCAN_HPMS_FLST CAN_MCAN_HPMS_FLST_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_RXF0C register *****************/ /* Rx FIFO 0 Start Address */ #define CAN_MCAN_RXF0C_F0SA_POS (2U) #define CAN_MCAN_RXF0C_F0SA_MSK (0x3FFFUL << CAN_MCAN_RXF0C_F0SA_POS) #define CAN_MCAN_RXF0C_F0SA CAN_MCAN_RXF0C_F0SA_MSK /* Rx FIFO 0 Size */ #define CAN_MCAN_RXF0C_F0S_POS (16U) #define CAN_MCAN_RXF0C_F0S_MSK (0x7FUL << CAN_MCAN_RXF0C_F0S_POS) #define CAN_MCAN_RXF0C_F0S CAN_MCAN_RXF0C_F0S_MSK /* Rx FIFO 0 Watermark */ #define CAN_MCAN_RXF0C_F0WM_POS (24) #define CAN_MCAN_RXF0C_F0WM_MSK (0x7FUL << CAN_MCAN_RXF0C_F0WM_POS) #define CAN_MCAN_RXF0C_F0WM CAN_MCAN_RXF0C_F0WM_MSK /* FIFO 0 Operation Mode */ #define CAN_MCAN_RXF0C_F0OM_POS (31) #define CAN_MCAN_RXF0C_F0OM_MSK (0x1UL << CAN_MCAN_RXF0C_F0OM_POS) #define CAN_MCAN_RXF0C_F0OM CAN_MCAN_RXF0C_F0OM_MSK /*************** Bit definition for CAN_MCAN_RXF0S register *****************/ #ifdef CONFIG_CAN_STM32FD /* Rx FIFO 0 Fill Level */ #define CAN_MCAN_RXF0S_F0FL_POS (0U) #define CAN_MCAN_RXF0S_F0FL_MSK (0xFUL << CAN_MCAN_RXF0S_F0FL_POS) #define CAN_MCAN_RXF0S_F0FL CAN_MCAN_RXF0S_F0FL_MSK /* Rx FIFO 0 Get Index */ #define CAN_MCAN_RXF0S_F0GI_POS (8U) #define CAN_MCAN_RXF0S_F0GI_MSK (0x3UL << CAN_MCAN_RXF0S_F0GI_POS) #define CAN_MCAN_RXF0S_F0GI CAN_MCAN_RXF0S_F0GI_MSK /* Rx FIFO 0 Put Index */ #define CAN_MCAN_RXF0S_F0PI_POS (16U) #define CAN_MCAN_RXF0S_F0PI_MSK (0x3UL << CAN_MCAN_RXF0S_F0PI_POS) #define CAN_MCAN_RXF0S_F0PI CAN_MCAN_RXF0S_F0PI_MSK /* Rx FIFO 0 Full */ #define CAN_MCAN_RXF0S_F0F_POS (24U) #define CAN_MCAN_RXF0S_F0F_MSK (0x1UL << CAN_MCAN_RXF0S_F0F_POS) #define CAN_MCAN_RXF0S_F0F CAN_MCAN_RXF0S_F0F_MSK /* Rx FIFO 0 Message Lost */ #define CAN_MCAN_RXF0S_RF0L_POS (25U) #define CAN_MCAN_RXF0S_RF0L_MSK (0x1UL << CAN_MCAN_RXF0S_RF0L_POS) #define CAN_MCAN_RXF0S_RF0L CAN_MCAN_RXF0S_RF0L_MSK #else /* CONFIG_CAN_STM32FD */ /* Rx FIFO 0 Fill Level */ #define CAN_MCAN_RXF0S_F0FL_POS (0U) #define CAN_MCAN_RXF0S_F0FL_MSK (0x7FUL << CAN_MCAN_RXF0S_F0FL_POS) #define CAN_MCAN_RXF0S_F0FL CAN_MCAN_RXF0S_F0FL_MSK /* Rx FIFO 0 Get Index */ #define CAN_MCAN_RXF0S_F0GI_POS (8U) #define CAN_MCAN_RXF0S_F0GI_MSK (0x3FUL << CAN_MCAN_RXF0S_F0GI_POS) #define CAN_MCAN_RXF0S_F0GI CAN_MCAN_RXF0S_F0GI_MSK /* Rx FIFO 0 Put Index */ #define CAN_MCAN_RXF0S_F0PI_POS (16U) #define CAN_MCAN_RXF0S_F0PI_MSK (0x3FUL << CAN_MCAN_RXF0S_F0PI_POS) #define CAN_MCAN_RXF0S_F0PI CAN_MCAN_RXF0S_F0PI_MSK /* Rx FIFO 0 Full */ #define CAN_MCAN_RXF0S_F0F_POS (24U) #define CAN_MCAN_RXF0S_F0F_MSK (0x1UL << CAN_MCAN_RXF0S_F0F_POS) #define CAN_MCAN_RXF0S_F0F CAN_MCAN_RXF0S_F0F_MSK /* Rx FIFO 0 Message Lost */ #define CAN_MCAN_RXF0S_RF0L_POS (25U) #define CAN_MCAN_RXF0S_RF0L_MSK (0x1UL << CAN_MCAN_RXF0S_RF0L_POS) #define CAN_MCAN_RXF0S_RF0L CAN_MCAN_RXF0S_RF0L_MSK #endif /*************** Bit definition for CAN_MCAN_RXF0A register *****************/ #ifdef CONFIG_CAN_STM32FD /* Rx FIFO 0 Acknowledge Index */ #define CAN_MCAN_RXF0A_F0AI_POS (0U) #define CAN_MCAN_RXF0A_F0AI_MSK (0x7UL << CAN_MCAN_RXF0A_F0AI_POS) #define CAN_MCAN_RXF0A_F0AI CAN_MCAN_RXF0A_F0AI_MSK #else /* Rx FIFO 0 Acknowledge Index */ #define CAN_MCAN_RXF0A_F0AI_POS (0U) #define CAN_MCAN_RXF0A_F0AI_MSK (0x3FUL << CAN_MCAN_RXF0A_F0AI_POS) #define CAN_MCAN_RXF0A_F0AI CAN_MCAN_RXF0A_F0AI_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_RXBC register ******************/ /* Rx Buffer Start Address */ #define CAN_MCAN_RXBC_RBSA_POS (2U) #define CAN_MCAN_RXBC_RBSA_MSK (0x3FFFUL << CAN_MCAN_RXBC_RBSA_POS) #define CAN_MCAN_RXBC_RBSA CAN_MCAN_RXBC_RBSA_MSK /*************** Bit definition for CAN_MCAN_RXF1C register *****************/ /* Rx FIFO 0 Start Address */ #define CAN_MCAN_RXF1C_F1SA_POS (2U) #define CAN_MCAN_RXF1C_F1SA_MSK (0x3FFFUL << CAN_MCAN_RXF1C_F1SA_POS) #define CAN_MCAN_RXF1C_F1SA CAN_MCAN_RXF1C_F1SA_MSK /* Rx FIFO 0 Size */ #define CAN_MCAN_RXF1C_F1S_POS (16U) #define CAN_MCAN_RXF1C_F1S_MSK (0x7FUL << CAN_MCAN_RXF1C_F1S_POS) #define CAN_MCAN_RXF1C_F1S CAN_MCAN_RXF1C_F1S_MSK /* Rx FIFO 0 Watermark */ #define CAN_MCAN_RXF1C_F1WM_POS (24) #define CAN_MCAN_RXF1C_F1WM_MSK (0x7FUL << CAN_MCAN_RXF1C_F1WM_POS) #define CAN_MCAN_RXF1C_F1WM CAN_MCAN_RXF1C_F1WM_MSK /* FIFO 0 Operation Mode */ #define CAN_MCAN_RXF1C_F1OM_POS (31) #define CAN_MCAN_RXF1C_F1OM_MSK (0x1UL << CAN_MCAN_RXF1C_F1OM_POS) #define CAN_MCAN_RXF1C_F1OM CAN_MCAN_RXF1C_F1OM_MSK /*************** Bit definition for CAN_MCAN_RXF1S register *****************/ #ifdef CONFIG_CAN_STM32FD /* Rx FIFO 1 Fill Level */ #define CAN_MCAN_RXF1S_F1FL_POS (0U) #define CAN_MCAN_RXF1S_F1FL_MSK (0xFUL << CAN_MCAN_RXF1S_F1FL_POS) #define CAN_MCAN_RXF1S_F1FL CAN_MCAN_RXF1S_F1FL_MSK /* Rx FIFO 1 Get Index */ #define CAN_MCAN_RXF1S_F1GI_POS (8U) #define CAN_MCAN_RXF1S_F1GI_MSK (0x3UL << CAN_MCAN_RXF1S_F1GI_POS) #define CAN_MCAN_RXF1S_F1GI CAN_MCAN_RXF1S_F1GI_MSK /* Rx FIFO 1 Put Index */ #define CAN_MCAN_RXF1S_F1PI_POS (16U) #define CAN_MCAN_RXF1S_F1PI_MSK (0x3UL << CAN_MCAN_RXF1S_F1PI_POS) #define CAN_MCAN_RXF1S_F1PI CAN_MCAN_RXF1S_F1PI_MSK /* Rx FIFO 1 Full */ #define CAN_MCAN_RXF1S_F1F_POS (24U) #define CAN_MCAN_RXF1S_F1F_MSK (0x1UL << CAN_MCAN_RXF1S_F1F_POS) #define CAN_MCAN_RXF1S_F1F CAN_MCAN_RXF1S_F1F_MSK /* Rx FIFO 1 Message Lost */ #define CAN_MCAN_RXF1S_RF1L_POS (25U) #define CAN_MCAN_RXF1S_RF1L_MSK (0x1UL << CAN_MCAN_RXF1S_RF1L_POS) #define CAN_MCAN_RXF1S_RF1L CAN_MCAN_RXF1S_RF1L_MSK #else /* CONFIG_CAN_STM32FD */ /* Rx FIFO 1 Fill Level */ #define CAN_MCAN_RXF1S_F1FL_POS (0U) #define CAN_MCAN_RXF1S_F1FL_MSK (0x7FUL << CAN_MCAN_RXF1S_F1FL_POS) #define CAN_MCAN_RXF1S_F1FL CAN_MCAN_RXF1S_F1FL_MSK /* Rx FIFO 1 Get Index */ #define CAN_MCAN_RXF1S_F1GI_POS (8U) #define CAN_MCAN_RXF1S_F1GI_MSK (0x3FUL << CAN_MCAN_RXF1S_F1GI_POS) #define CAN_MCAN_RXF1S_F1GI CAN_MCAN_RXF1S_F1GI_MSK /* Rx FIFO 1 Put Index */ #define CAN_MCAN_RXF1S_F1PI_POS (16U) #define CAN_MCAN_RXF1S_F1PI_MSK (0x3FUL << CAN_MCAN_RXF1S_F1PI_POS) #define CAN_MCAN_RXF1S_F1PI CAN_MCAN_RXF1S_F1PI_MSK /* Rx FIFO 1 Full */ #define CAN_MCAN_RXF1S_F1F_POS (24U) #define CAN_MCAN_RXF1S_F1F_MSK (0x1UL << CAN_MCAN_RXF1S_F1F_POS) #define CAN_MCAN_RXF1S_F1F CAN_MCAN_RXF1S_F1F_MSK /* Rx FIFO 1 Message Lost */ #define CAN_MCAN_RXF1S_RF1L_POS (25U) #define CAN_MCAN_RXF1S_RF1L_MSK (0x1UL << CAN_MCAN_RXF1S_RF1L_POS) #define CAN_MCAN_RXF1S_RF1L CAN_MCAN_RXF1S_RF1L_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_RXF1A register *****************/ /* Rx FIFO 1 Acknowledge Index */ #ifdef CONFIG_CAN_STM32FD #define CAN_MCAN_RXF1A_F1AI_POS (0U) #define CAN_MCAN_RXF1A_F1AI_MSK (0x7UL << CAN_MCAN_RXF1A_F1AI_POS) #define CAN_MCAN_RXF1A_F1AI CAN_MCAN_RXF1A_F1AI_MSK #else #define CAN_MCAN_RXF1A_F1AI_POS (0U) #define CAN_MCAN_RXF1A_F1AI_MSK (0x3FUL << CAN_MCAN_RXF1A_F1AI_POS) #define CAN_MCAN_RXF1A_F1AI CAN_MCAN_RXF1A_F1AI_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_RXESC register *****************/ /* Rx FIFO 0 Data Field Size */ #define CAN_MCAN_RXESC_F0DS_POS (0U) #define CAN_MCAN_RXESC_F0DS_MSK (0x7UL << CAN_MCAN_RXESC_F0DS_POS) #define CAN_MCAN_RXESC_F0DS CAN_MCAN_RXESC_F0DS_MSK /* Rx FIFO 1 Data Field Size */ #define CAN_MCAN_RXESC_F1DS_POS (4U) #define CAN_MCAN_RXESC_F1DS_MSK (0x7UL << CAN_MCAN_RXESC_F1DS_POS) #define CAN_MCAN_RXESC_F1DS CAN_MCAN_RXESC_F1DS_MSK /* Receive Buffer Data Field Size */ #define CAN_MCAN_RXESC_RBDS_POS (8U) #define CAN_MCAN_RXESC_RBDS_MSK (0x7UL << CAN_MCAN_RXESC_RBDS_POS) #define CAN_MCAN_RXESC_RBDS CAN_MCAN_RXESC_RBDS_MSK /*************** Bit definition for CAN_MCAN_TXBC register ******************/ #ifdef CONFIG_CAN_STM32FD /* Tx FIFO/Queue Mode */ #define CAN_MCAN_TXBC_TFQM_POS (24U) #define CAN_MCAN_TXBC_TFQM_MSK (0x1UL << CAN_MCAN_TXBC_TFQM_POS) #define CAN_MCAN_TXBC_TFQM CAN_MCAN_TXBC_TFQM_MSK #else /* Tx Buffers Start Address */ #define CAN_MCAN_TXBC_TBSA_POS (2U) #define CAN_MCAN_TXBC_TBSA_MSK (0x3FFFUL << CAN_MCAN_TXBC_TBSA_POS) #define CAN_MCAN_TXBC_TBSA CAN_MCAN_TXBC_TBSA_MSK /* Number of Dedicated Transmit Buffers */ #define CAN_MCAN_TXBC_NDTB_POS (16U) #define CAN_MCAN_TXBC_NDTB_MSK (0x3FUL << CAN_MCAN_TXBC_NDTB_POS) #define CAN_MCAN_TXBC_NDTB CAN_MCAN_TXBC_NDTB_MSK /* Transmit FIFO/Queue Size */ #define CAN_MCAN_TXBC_TFQS_POS (24U) #define CAN_MCAN_TXBC_TFQS_MSK (0x3FUL << CAN_MCAN_TXBC_TFQS_POS) #define CAN_MCAN_TXBC_TFQS CAN_MCAN_TXBC_TFQS_MSK /* Tx FIFO/Queue Mode */ #define CAN_MCAN_TXBC_TFQM_POS (30U) #define CAN_MCAN_TXBC_TFQM_MSK (0x3FUL << CAN_MCAN_TXBC_TFQM_POS) #define CAN_MCAN_TXBC_TFQM CAN_MCAN_TXBC_TFQM_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXFQS register *****************/ #ifdef CONFIG_CAN_STM32FD /* Tx FIFO Free Level */ #define CAN_MCAN_TXFQS_TFFL_POS (0U) #define CAN_MCAN_TXFQS_TFFL_MSK (0x7UL << CAN_MCAN_TXFQS_TFFL_POS) #define CAN_MCAN_TXFQS_TFFL CAN_MCAN_TXFQS_TFFL_MSK /* Tx FIFO Get Index */ #define CAN_MCAN_TXFQS_TFGI_POS (8U) #define CAN_MCAN_TXFQS_TFGI_MSK (0x3UL << CAN_MCAN_TXFQS_TFGI_POS) #define CAN_MCAN_TXFQS_TFGI CAN_MCAN_TXFQS_TFGI_MSK /* Tx FIFO/Queue Put Index */ #define CAN_MCAN_TXFQS_TFQPI_POS (16U) #define CAN_MCAN_TXFQS_TFQPI_MSK (0x3UL << CAN_MCAN_TXFQS_TFQPI_POS) #define CAN_MCAN_TXFQS_TFQPI CAN_MCAN_TXFQS_TFQPI_MSK /* Tx FIFO/Queue Full */ #define CAN_MCAN_TXFQS_TFQF_POS (21U) #define CAN_MCAN_TXFQS_TFQF_MSK (0x1UL << CAN_MCAN_TXFQS_TFQF_POS) #define CAN_MCAN_TXFQS_TFQF CAN_MCAN_TXFQS_TFQF_MSK #else /* CONFIG_CAN_STM32FD */ /* Tx FIFO Free Level */ #define CAN_MCAN_TXFQS_TFFL_POS (0U) #define CAN_MCAN_TXFQS_TFFL_MSK (0x3FUL << CAN_MCAN_TXFQS_TFFL_POS) #define CAN_MCAN_TXFQS_TFFL CAN_MCAN_TXFQS_TFFL_MSK /* Tx FIFO Get Index */ #define CAN_MCAN_TXFQS_TFGI_POS (8U) #define CAN_MCAN_TXFQS_TFGI_MSK (0x1FUL << CAN_MCAN_TXFQS_TFGI_POS) #define CAN_MCAN_TXFQS_TFGI CAN_MCAN_TXFQS_TFGI_MSK /* Tx FIFO/Queue Put Index */ #define CAN_MCAN_TXFQS_TFQPI_POS (16U) #define CAN_MCAN_TXFQS_TFQPI_MSK (0x1FUL << CAN_MCAN_TXFQS_TFQPI_POS) #define CAN_MCAN_TXFQS_TFQPI CAN_MCAN_TXFQS_TFQPI_MSK /* Tx FIFO/Queue Full */ #define CAN_MCAN_TXFQS_TFQF_POS (21U) #define CAN_MCAN_TXFQS_TFQF_MSK (0x1UL << CAN_MCAN_TXFQS_TFQF_POS) #define CAN_MCAN_TXFQS_TFQF CAN_MCAN_TXFQS_TFQF_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXESC register *****************/ /* Tx Buffer Data Field Size */ #define CAN_MCAN_TXESC_TBDS_POS (0U) #define CAN_MCAN_TXESC_TBDS_MSK (0x7UL << CAN_MCAN_TXESC_TBDS_POS) #define CAN_MCAN_TXESC_TBDS CAN_MCAN_TXESC_TBDS_MSK /*************** Bit definition for CAN_MCAN_TXBRP register *****************/ #ifdef CONFIG_CAN_STM32FD /* Transmission Request Pending */ #define CAN_MCAN_TXBRP_TRP_POS (0U) #define CAN_MCAN_TXBRP_TRP_MSK (0x7UL << CAN_MCAN_TXBRP_TRP_POS) #define CAN_MCAN_TXBRP_TRP CAN_MCAN_TXBRP_TRP_MSK #else /* Transmission Request Pending */ #define CAN_MCAN_TXBRP_TRP_POS (0U) #define CAN_MCAN_TXBRP_TRP_MSK (0xFFFFFFFFUL << CAN_MCAN_TXBRP_TRP_POS) #define CAN_MCAN_TXBRP_TRP CAN_MCAN_TXBRP_TRP_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXBAR register *****************/ #ifdef CONFIG_CAN_STM32FD /* Add Request */ #define CAN_MCAN_TXBAR_AR_POS (0U) #define CAN_MCAN_TXBAR_AR_MSK (0x7UL << CAN_MCAN_TXBAR_AR_POS) #define CAN_MCAN_TXBAR_AR CAN_MCAN_TXBAR_AR_MSK #else /* Add Request */ #define CAN_MCAN_TXBAR_AR_POS (0U) #define CAN_MCAN_TXBAR_AR_MSK (0xFFFFFFFFUL << CAN_MCAN_TXBAR_AR_POS) #define CAN_MCAN_TXBAR_AR CAN_MCAN_TXBAR_AR_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXBCR register *****************/ #ifdef CONFIG_CAN_STM32FD /* Cancellation Request */ #define CAN_MCAN_TXBCR_CR_POS (0U) #define CAN_MCAN_TXBCR_CR_MSK (0x7UL << CAN_MCAN_TXBCR_CR_POS) #define CAN_MCAN_TXBCR_CR CAN_MCAN_TXBCR_CR_MSK #else /* Cancellation Request */ #define CAN_MCAN_TXBCR_CR_POS (0U) #define CAN_MCAN_TXBCR_CR_MSK (0xFFFFFFFFUL << CAN_MCAN_TXBCR_CR_POS) #define CAN_MCAN_TXBCR_CR CAN_MCAN_TXBCR_CR_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXBTO register *****************/ #ifdef CONFIG_CAN_STM32FD /* Transmission Occurred */ #define CAN_MCAN_TXBTO_TO_POS (0U) #define CAN_MCAN_TXBTO_TO_MSK (0x7UL << CAN_MCAN_TXBTO_TO_POS) #define CAN_MCAN_TXBTO_TO CAN_MCAN_TXBTO_TO_MSK #else /* Transmission Occurred */ #define CAN_MCAN_TXBTO_TO_POS (0U) #define CAN_MCAN_TXBTO_TO_MSK (0xFFFFFFFFUL << CAN_MCAN_TXBTO_TO_POS) #define CAN_MCAN_TXBTO_TO CAN_MCAN_TXBTO_TO_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXBCF register *****************/ #ifdef CONFIG_CAN_STM32FD /* Cancellation Finished */ #define CAN_MCAN_TXBCF_CF_POS (0U) #define CAN_MCAN_TXBCF_CF_MSK (0x7UL << CAN_MCAN_TXBCF_CF_POS) #define CAN_MCAN_TXBCF_CF CAN_MCAN_TXBCF_CF_MSK #else /* Cancellation Finished */ #define CAN_MCAN_TXBCF_CF_POS (0U) #define CAN_MCAN_TXBCF_CF_MSK (0xFFFFFFFFUL << CAN_MCAN_TXBCF_CF_POS) #define CAN_MCAN_TXBCF_CF CAN_MCAN_TXBCF_CF_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXBTIE register ****************/ #ifdef CONFIG_CAN_STM32FD /* Transmission Interrupt Enable */ #define CAN_MCAN_TXBTIE_TIE_POS (0U) #define CAN_MCAN_TXBTIE_TIE_MSK (0x7UL << CAN_MCAN_TXBTIE_TIE_POS) #define CAN_MCAN_TXBTIE_TIE CAN_MCAN_TXBTIE_TIE_MSK #else /* Transmission Interrupt Enable */ #define CAN_MCAN_TXBTIE_TIE_POS (0U) #define CAN_MCAN_TXBTIE_TIE_MSK (0xFFFFFFFFUL << CAN_MCAN_TXBTIE_TIE_POS) #define CAN_MCAN_TXBTIE_TIE CAN_MCAN_TXBTIE_TIE_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_ TXBCIE register ***************/ #ifdef CONFIG_CAN_STM32FD /* Cancellation Finished Interrupt Enable */ #define CAN_MCAN_TXBCIE_CFIE_POS (0U) #define CAN_MCAN_TXBCIE_CFIE_MSK (0x7UL << CAN_MCAN_TXBCIE_CFIE_POS) #define CAN_MCAN_TXBCIE_CFIE CAN_MCAN_TXBCIE_CFIE_MSK #else /* Cancellation Finished Interrupt Enable */ #define CAN_MCAN_TXBCIE_CFIE_POS (0U) #define CAN_MCAN_TXBCIE_CFIE_MSK (0xFFFFFFFFUL << CAN_MCAN_TXBCIE_CFIE_POS) #define CAN_MCAN_TXBCIE_CFIE CAN_MCAN_TXBCIE_CFIE_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXEFC register *****************/ /* Event FIFO Watermark */ #define CAN_MCAN_TXEFC_EFSA_POS (2U) #define CAN_MCAN_TXEFC_EFSA_MSK (0x3FFFUL << CAN_MCAN_TXEFC_EFSA_POS) #define CAN_MCAN_TXEFC_EFSA CAN_MCAN_TXEFC_EFSA_MSK /* Event FIFO Size */ #define CAN_MCAN_TXEFC_EFS_POS (16U) #define CAN_MCAN_TXEFC_EFS_MSK (0x3FUL << CAN_MCAN_TXEFC_EFS_POS) #define CAN_MCAN_TXEFC_EFS CAN_MCAN_TXEFC_EFS_MSK /* Event FIFO Start Address */ #define CAN_MCAN_TXEFC_EFWM_POS (24U) #define CAN_MCAN_TXEFC_EFWM_MSK (0x3FUL << CAN_MCAN_TXEFC_EFWM_POS) #define CAN_MCAN_TXEFC_EFWM CAN_MCAN_TXEFC_EFWM_POS /*************** Bit definition for CAN_MCAN_TXEFS register *****************/ #ifdef CONFIG_CAN_STM32FD /* Event FIFO Fill Level */ #define CAN_MCAN_TXEFS_EFFL_POS (0U) #define CAN_MCAN_TXEFS_EFFL_MSK (0x7UL << CAN_MCAN_TXEFS_EFFL_POS) #define CAN_MCAN_TXEFS_EFFL CAN_MCAN_TXEFS_EFFL_MSK /* Event FIFO Get Index */ #define CAN_MCAN_TXEFS_EFGI_POS (8U) #define CAN_MCAN_TXEFS_EFGI_MSK (0x3UL << CAN_MCAN_TXEFS_EFGI_POS) #define CAN_MCAN_TXEFS_EFGI CAN_MCAN_TXEFS_EFGI_MSK /* Event FIFO Put Index */ #define CAN_MCAN_TXEFS_EFPI_POS (16U) #define CAN_MCAN_TXEFS_EFPI_MSK (0x3UL << CAN_MCAN_TXEFS_EFPI_POS) #define CAN_MCAN_TXEFS_EFPI CAN_MCAN_TXEFS_EFPI_MSK /* Event FIFO Full */ #define CAN_MCAN_TXEFS_EFF_POS (24U) #define CAN_MCAN_TXEFS_EFF_MSK (0x1UL << CAN_MCAN_TXEFS_EFF_POS) #define CAN_MCAN_TXEFS_EFF CAN_MCAN_TXEFS_EFF_MSK /* Tx Event FIFO Element Lost */ #define CAN_MCAN_TXEFS_TEFL_POS (25U) #define CAN_MCAN_TXEFS_TEFL_MSK (0x1UL << CAN_MCAN_TXEFS_TEFL_POS) #define CAN_MCAN_TXEFS_TEFL CAN_MCAN_TXEFS_TEFL_MSK #else /* CONFIG_CAN_STM32FD */ /* Event FIFO Fill Level */ #define CAN_MCAN_TXEFS_EFFL_POS (0U) #define CAN_MCAN_TXEFS_EFFL_MSK (0x3FUL << CAN_MCAN_TXEFS_EFFL_POS) #define CAN_MCAN_TXEFS_EFFL CAN_MCAN_TXEFS_EFFL_MSK /* Event FIFO Get Index */ #define CAN_MCAN_TXEFS_EFGI_POS (8U) #define CAN_MCAN_TXEFS_EFGI_MSK (0x1FUL << CAN_MCAN_TXEFS_EFGI_POS) #define CAN_MCAN_TXEFS_EFGI CAN_MCAN_TXEFS_EFGI_MSK #define CAN_MCAN_TXEFS_EFPI_POS (16U) /* Event FIFO Put Index */ #define CAN_MCAN_TXEFS_EFPI_MSK (0x1FUL << CAN_MCAN_TXEFS_EFPI_POS) #define CAN_MCAN_TXEFS_EFPI CAN_MCAN_TXEFS_EFPI_MSK /* Event FIFO Full */ #define CAN_MCAN_TXEFS_EFF_POS (24U) #define CAN_MCAN_TXEFS_EFF_MSK (0x1UL << CAN_MCAN_TXEFS_EFF_POS) #define CAN_MCAN_TXEFS_EFF CAN_MCAN_TXEFS_EFF_MSK /* Tx Event FIFO Element Lost */ #define CAN_MCAN_TXEFS_TEFL_POS (25U) #define CAN_MCAN_TXEFS_TEFL_MSK (0x1UL << CAN_MCAN_TXEFS_TEFL_POS) #define CAN_MCAN_TXEFS_TEFL CAN_MCAN_TXEFS_TEFL_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_TXEFA register *****************/ #ifdef CONFIG_CAN_STM32FD /* Event FIFO Acknowledge Index */ #define CAN_MCAN_TXEFA_EFAI_POS (0U) #define CAN_MCAN_TXEFA_EFAI_MSK (0x3UL << CAN_MCAN_TXEFA_EFAI_POS) #define CAN_MCAN_TXEFA_EFAI CAN_MCAN_TXEFA_EFAI_MSK #else /* Event FIFO Acknowledge Index */ #define CAN_MCAN_TXEFA_EFAI_POS (0U) #define CAN_MCAN_TXEFA_EFAI_MSK (0x1FUL << CAN_MCAN_TXEFA_EFAI_POS) #define CAN_MCAN_TXEFA_EFAI CAN_MCAN_TXEFA_EFAI_MSK #endif /* CONFIG_CAN_STM32FD */ /*************** Bit definition for CAN_MCAN_MRBA register *****************/ #ifdef CONFIG_CAN_MCUX_MCAN /* Event FIFO Acknowledge Index */ #define CAN_MCAN_MRBA_BA_POS (16U) #define CAN_MCAN_MRBA_BA_MSK (0xFFFFUL << CAN_MCAN_MRBA_BA_POS) #define CAN_MCAN_MRBA_BA CAN_MCAN_MRBA_BA_MSK #endif /* CONFIG_CAN_MCUX_MCAN */ #ifdef CONFIG_CAN_STM32FD struct can_mcan_reg { volatile uint32_t crel; /* Core Release Register */ volatile uint32_t endn; /* Endian Register */ volatile uint32_t cust; /* Customer Register */ volatile uint32_t dbtp; /* Data Bit Timing & Prescaler Register */ volatile uint32_t test; /* Test Register */ volatile uint32_t rwd; /* RAM Watchdog */ volatile uint32_t cccr; /* CC Control Register */ volatile uint32_t nbtp; /* Nominal Bit Timing & Prescaler Register */ volatile uint32_t tscc; /* Timestamp Counter Configuration */ volatile uint32_t tscv; /* Timestamp Counter Value */ volatile uint32_t tocc; /* Timeout Counter Configuration */ volatile uint32_t tocv; /* Timeout Counter Value */ uint32_t res1[4]; /* Reserved (4) */ volatile uint32_t ecr; /* Error Counter Register */ volatile uint32_t psr; /* Protocol Status Register */ volatile uint32_t tdcr; /* Transmitter Delay Compensation */ uint32_t res2; /* Reserved (1) */ volatile uint32_t ir; /* Interrupt Register */ volatile uint32_t ie; /* Interrupt Enable */ volatile uint32_t ils; /* Interrupt Line Select */ volatile uint32_t ile; /* Interrupt Line Enable */ uint32_t res3[8]; /* Reserved (8) */ volatile uint32_t rxgfc; /* Global Filter Configuration */ volatile uint32_t xidam; /* Extended ID AND Mask */ volatile uint32_t hpms; /* High Priority Message Status */ uint32_t res4; /* Reserved (1) */ volatile uint32_t rxf0s; /* Rx FIFO 0 Status */ volatile uint32_t rxf0a; /* Rx FIFO 0 Acknowledge */ volatile uint32_t rxf1s; /* Rx FIFO 1 Status */ volatile uint32_t rxf1a; /* Rx FIFO 1 Acknowledge */ uint32_t res5[8]; /* Reserved (8) */ volatile uint32_t txbc; /* Tx Buffer Configuration */ volatile uint32_t txfqs; /* Tx FIFO/Queue Status */ volatile uint32_t txbrp; /* Tx Buffer Request Pending */ volatile uint32_t txbar; /* Tx Buffer Add Request */ volatile uint32_t txbcr; /* Tx Buffer Cancellation */ volatile uint32_t txbto; /* Tx Buffer Transmission */ volatile uint32_t txbcf; /* Tx Buffer Cancellation Finished */ volatile uint32_t txbtie; /* Tx Buffer Transmission Interrupt Enable */ volatile uint32_t txcbie; /* Tx Buffer Cancellation Fi.Interrupt En. */ volatile uint32_t txefs; /* Tx Event FIFO Status */ volatile uint32_t txefa; /* Tx Event FIFO Acknowledge */ }; #else /* CONFIG_CAN_STM32FD */ struct can_mcan_reg { volatile uint32_t crel; /* Core Release Register */ volatile uint32_t endn; /* Endian Register */ volatile uint32_t cust; /* Customer Register */ volatile uint32_t dbtp; /* Data Bit Timing & Prescaler Register */ volatile uint32_t test; /* Test Register */ volatile uint32_t rwd; /* RAM Watchdog */ volatile uint32_t cccr; /* CC Control Register */ volatile uint32_t nbtp; /* Nominal Bit Timing & Prescaler Register */ volatile uint32_t tscc; /* Timestamp Counter Configuration */ volatile uint32_t tscv; /* Timestamp Counter Value */ volatile uint32_t tocc; /* Timeout Counter Configuration */ volatile uint32_t tocv; /* Timeout Counter Value */ uint32_t res1[4]; /* Reserved (4) */ volatile uint32_t ecr; /* Error Counter Register */ volatile uint32_t psr; /* Protocol Status Register */ volatile uint32_t tdcr; /* Transmitter Delay Compensation */ uint32_t res2; /* Reserved (1) */ volatile uint32_t ir; /* Interrupt Register */ volatile uint32_t ie; /* Interrupt Enable */ volatile uint32_t ils; /* Interrupt Line Select */ volatile uint32_t ile; /* Interrupt Line Enable */ uint32_t res3[8]; /* Reserved (8) */ volatile uint32_t gfc; /* Global Filter Configuration */ volatile uint32_t sidfc; /* Standard ID Filter Configuration */ volatile uint32_t xidfc; /* Extended ID Filter Configuration */ volatile uint32_t res4; /* Reserved (1) */ volatile uint32_t xidam; /* Extended ID AND Mask */ volatile uint32_t hpms; /* High Priority Message Status */ volatile uint32_t ndata1; /* New Data 1 */ volatile uint32_t ndata2; /* New Data 2 */ volatile uint32_t rxf0c; /* Rx FIFO 0 Configuration */ volatile uint32_t rxf0s; /* Rx FIFO 0 Status */ volatile uint32_t rxf0a; /* FIFO 0 Acknowledge */ volatile uint32_t rxbc; /* Rx Buffer Configuration */ volatile uint32_t rxf1c; /* Rx FIFO 1 Configuration */ volatile uint32_t rxf1s; /* Rx FIFO 1 Status */ volatile uint32_t rxf1a; /* Rx FIFO 1 Acknowledge*/ volatile uint32_t rxesc; /* Rx Buffer / FIFO Element Size Config */ volatile uint32_t txbc; /* Buffer Configuration */ volatile uint32_t txfqs; /* FIFO/Queue Status */ volatile uint32_t txesc; /* Tx Buffer Element Size Configuration */ volatile uint32_t txbrp; /* Buffer Request Pending */ volatile uint32_t txbar; /* Add Request */ volatile uint32_t txbcr; /* Buffer Cancellation Request */ volatile uint32_t txbto; /* Tx Buffer Transmission Occurred */ volatile uint32_t txbcf; /* Tx Buffer Cancellation Finished */ volatile uint32_t txbtie; /* Tx Buffer Transmission Interrupt Enable */ volatile uint32_t txbcie; /* Tx Buffer Cancellation Fin. Interrupt En. */ volatile uint32_t res5[2]; /* Reserved (2) */ volatile uint32_t txefc; /* Tx Event FIFO Configuration */ volatile uint32_t txefs; /* Tx Event FIFO Status */ volatile uint32_t txefa; /* Tx Event FIFO Acknowledge */ #ifdef CONFIG_CAN_MCUX_MCAN volatile uint32_t res6[65]; /* Reserved (65) */ volatile uint32_t mrba; /* Message RAM Base Address */ #endif /* CONFIG_CAN_MCUX_MCAN */ }; #endif /* CONFIG_CAN_STM32FD */ #endif /* ZEPHYR_DRIVERS_CAN_CAN_MCAN_PRIV_H_*/