@@ -26,7 +26,7 @@ LOG_MODULE_REGISTER(can_stm32, CONFIG_CAN_LOG_LEVEL);
2626
2727#define CAN_STM32_NUM_FILTER_BANKS (14)
2828#define CAN_STM32_MAX_FILTER_ID \
29- (CONFIG_CAN_MAX_EXT_ID_FILTER + CONFIG_CAN_MAX_STD_ID_FILTER * 2)
29+ (CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS + CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTERS * 2)
3030
3131#define CAN_STM32_FIRX_STD_IDE_POS (3U)
3232#define CAN_STM32_FIRX_STD_RTR_POS (4U)
@@ -37,7 +37,7 @@ LOG_MODULE_REGISTER(can_stm32, CONFIG_CAN_LOG_LEVEL);
3737#define CAN_STM32_FIRX_EXT_STD_ID_POS (21U)
3838#define CAN_STM32_FIRX_EXT_EXT_ID_POS (3U)
3939
40- #if (CONFIG_CAN_MAX_STD_ID_FILTER + CONFIG_CAN_MAX_EXT_ID_FILTER * 2 ) > \
40+ #if (CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTERS + CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS * 2 ) > \
4141 (CAN_STM32_NUM_FILTER_BANKS * 2 )
4242#error Number of configured filters exceeds available filter bank slots.
4343#endif
@@ -54,10 +54,10 @@ struct can_stm32_data {
5454 struct can_stm32_mailbox mb0 ;
5555 struct can_stm32_mailbox mb1 ;
5656 struct can_stm32_mailbox mb2 ;
57- can_rx_callback_t rx_cb_std [CONFIG_CAN_MAX_STD_ID_FILTER ];
58- can_rx_callback_t rx_cb_ext [CONFIG_CAN_MAX_EXT_ID_FILTER ];
59- void * cb_arg_std [CONFIG_CAN_MAX_STD_ID_FILTER ];
60- void * cb_arg_ext [CONFIG_CAN_MAX_EXT_ID_FILTER ];
57+ can_rx_callback_t rx_cb_std [CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTERS ];
58+ can_rx_callback_t rx_cb_ext [CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ];
59+ void * cb_arg_std [CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTERS ];
60+ void * cb_arg_ext [CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ];
6161 enum can_state state ;
6262};
6363
@@ -130,11 +130,11 @@ static inline void can_stm32_rx_isr_handler(const struct device *dev)
130130
131131 can_stm32_rx_fifo_pop (mbox , & frame );
132132
133- if (filter_id < CONFIG_CAN_MAX_EXT_ID_FILTER ) {
133+ if (filter_id < CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ) {
134134 callback = data -> rx_cb_ext [filter_id ];
135135 cb_arg = data -> cb_arg_ext [filter_id ];
136136 } else if (filter_id < CAN_STM32_MAX_FILTER_ID ) {
137- index = filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER ;
137+ index = filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ;
138138 callback = data -> rx_cb_std [index ];
139139 cb_arg = data -> cb_arg_std [index ];
140140 }
@@ -586,9 +586,9 @@ static int can_stm32_get_max_filters(const struct device *dev, bool ide)
586586 ARG_UNUSED (dev );
587587
588588 if (ide ) {
589- return CONFIG_CAN_MAX_EXT_ID_FILTER ;
589+ return CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ;
590590 } else {
591- return CONFIG_CAN_MAX_STD_ID_FILTER ;
591+ return CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTERS ;
592592 }
593593}
594594
@@ -643,15 +643,17 @@ static int can_stm32_init(const struct device *dev)
643643 return ret ;
644644 }
645645
646- /* configure scale of filter banks < CONFIG_CAN_MAX_EXT_ID_FILTER for ext ids */
647- /* We have to have set filters after initializing master CAN */
646+ /*
647+ * Configure scale of filter banks < CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS for ext ids
648+ * We have to have set filters after initializing master CAN
649+ */
648650 if (cfg -> can == cfg -> master_can ) {
649651 cfg -> master_can -> FMR |= CAN_FMR_FINIT ;
650- cfg -> master_can -> FS1R |= ((1U << CONFIG_CAN_MAX_EXT_ID_FILTER ) - 1 );
652+ cfg -> master_can -> FS1R |= ((1U << CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ) - 1 );
651653
652654#if DT_NUM_INST_STATUS_OKAY (DT_DRV_COMPAT ) > 1
653655 /* reserve ext_id filters on slave CAN device */
654- cfg -> master_can -> FS1R |= ((1U << CONFIG_CAN_MAX_EXT_ID_FILTER ) - 1 )
656+ cfg -> master_can -> FS1R |= ((1U << CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ) - 1 )
655657 << CAN_STM32_NUM_FILTER_BANKS ;
656658#endif /* DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) > 1 */
657659
@@ -863,7 +865,7 @@ static void can_stm32_set_filter_bank(int filter_id, CAN_FilterRegister_TypeDef
863865 filter_reg -> FR1 = id ;
864866 filter_reg -> FR2 = mask ;
865867 } else {
866- if ((filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER ) % 2 == 0 ) {
868+ if ((filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ) % 2 == 0 ) {
867869 /* even std filter id: first 1/2 bank */
868870 filter_reg -> FR1 = id | (mask << 16 );
869871 } else {
@@ -919,7 +921,7 @@ static inline int can_stm32_set_filter(const struct device *dev, const struct ca
919921 }
920922
921923 if ((filter -> flags & CAN_FILTER_IDE ) != 0 ) {
922- for (int i = 0 ; i < CONFIG_CAN_MAX_EXT_ID_FILTER ; i ++ ) {
924+ for (int i = 0 ; i < CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ; i ++ ) {
923925 if (data -> rx_cb_ext [i ] == NULL ) {
924926 id = can_stm32_filter_to_ext_id (filter );
925927 mask = can_stm32_filter_to_ext_mask (filter );
@@ -929,12 +931,13 @@ static inline int can_stm32_set_filter(const struct device *dev, const struct ca
929931 }
930932 }
931933 } else {
932- for (int i = 0 ; i < CONFIG_CAN_MAX_STD_ID_FILTER ; i ++ ) {
934+ for (int i = 0 ; i < CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTERS ; i ++ ) {
933935 if (data -> rx_cb_std [i ] == NULL ) {
934936 id = can_stm32_filter_to_std_id (filter );
935937 mask = can_stm32_filter_to_std_mask (filter );
936- filter_id = CONFIG_CAN_MAX_EXT_ID_FILTER + i ;
937- bank_num = bank_offset + CONFIG_CAN_MAX_EXT_ID_FILTER + i / 2 ;
938+ filter_id = CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS + i ;
939+ bank_num = bank_offset + CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS +
940+ i / 2 ;
938941 break ;
939942 }
940943 }
@@ -965,7 +968,7 @@ static inline int can_stm32_set_filter(const struct device *dev, const struct ca
965968 * This driver uses masked mode for all filters (CAN_FM1R left at reset value
966969 * 0x00) in order to simplify mapping between filter match index from the FIFOs
967970 * and array index for the callbacks. All ext ID filters are stored in the
968- * banks below CONFIG_CAN_MAX_EXT_ID_FILTER , followed by the std ID filters,
971+ * banks below CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS , followed by the std ID filters,
969972 * which consume only 1/2 bank per filter.
970973 *
971974 * The more complicated list mode must be implemented if someone requires more
@@ -993,8 +996,9 @@ static int can_stm32_add_rx_filter(const struct device *dev, can_rx_callback_t c
993996 data -> rx_cb_ext [filter_id ] = cb ;
994997 data -> cb_arg_ext [filter_id ] = cb_arg ;
995998 } else {
996- data -> rx_cb_std [filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER ] = cb ;
997- data -> cb_arg_std [filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER ] = cb_arg ;
999+ data -> rx_cb_std [filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ] = cb ;
1000+ data -> cb_arg_std [filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ] =
1001+ cb_arg ;
9981002 }
9991003 }
10001004
@@ -1026,7 +1030,7 @@ static void can_stm32_remove_rx_filter(const struct device *dev, int filter_id)
10261030 bank_offset = CAN_STM32_NUM_FILTER_BANKS ;
10271031 }
10281032
1029- if (filter_id < CONFIG_CAN_MAX_EXT_ID_FILTER ) {
1033+ if (filter_id < CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ) {
10301034 ide = true;
10311035 bank_num = bank_offset + filter_id ;
10321036
@@ -1035,18 +1039,18 @@ static void can_stm32_remove_rx_filter(const struct device *dev, int filter_id)
10351039
10361040 bank_unused = true;
10371041 } else {
1038- int filter_index = filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER ;
1042+ int filter_index = filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ;
10391043
10401044 ide = false;
1041- bank_num = bank_offset + CONFIG_CAN_MAX_EXT_ID_FILTER +
1042- (filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER ) / 2 ;
1045+ bank_num = bank_offset + CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS +
1046+ (filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTERS ) / 2 ;
10431047
10441048 data -> rx_cb_std [filter_index ] = NULL ;
10451049 data -> cb_arg_std [filter_index ] = NULL ;
10461050
10471051 if (filter_index % 2 == 1 ) {
10481052 bank_unused = data -> rx_cb_std [filter_index - 1 ] == NULL ;
1049- } else if (filter_index + 1 < CONFIG_CAN_MAX_STD_ID_FILTER ) {
1053+ } else if (filter_index + 1 < CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTERS ) {
10501054 bank_unused = data -> rx_cb_std [filter_index + 1 ] == NULL ;
10511055 } else {
10521056 bank_unused = true;
0 commit comments