Skip to content

Commit 72e41d6

Browse files
drivers: can: stm32: bxcan: use proper namespace for Kconfig symbols
Use proper namespace for the STM32 bxCAN Kconfig symbols, renaming CONFIG_CAN_MAX_STD_ID_FILTER to CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTER and CONFIG_CAN_MAX_EXT_ID_FILTER to CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER. This prevents Kconfig symbol clashes between different CAN controller drivers. Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
1 parent a15ce5f commit 72e41d6

File tree

2 files changed

+30
-28
lines changed

2 files changed

+30
-28
lines changed

drivers/can/Kconfig.stm32

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ config CAN_STM32_BXCAN
1414

1515
if CAN_STM32_BXCAN
1616

17-
config CAN_MAX_STD_ID_FILTER
17+
config CAN_STM32_BXCAN_MAX_STD_ID_FILTER
1818
int "Maximum number of standard (11-bit) ID filters"
1919
default 14
2020
range 0 28
@@ -30,7 +30,7 @@ config CAN_MAX_STD_ID_FILTER
3030

3131
CAN_MAX_STD_ID_FILTER + CAN_MAX_EXT_ID_FILTER * 2 <= 28
3232

33-
config CAN_MAX_EXT_ID_FILTER
33+
config CAN_STM32_BXCAN_MAX_EXT_ID_FILTER
3434
int "Maximum number of extended (29-bit) ID filters"
3535
default 7
3636
range 0 14

drivers/can/can_stm32_bxcan.c

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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_FILTER + CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTER * 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_FILTER + CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER * 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_FILTER];
58+
can_rx_callback_t rx_cb_ext[CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER];
59+
void *cb_arg_std[CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTER];
60+
void *cb_arg_ext[CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER];
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_FILTER) {
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_FILTER;
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_FILTER;
590590
} else {
591-
return CONFIG_CAN_MAX_STD_ID_FILTER;
591+
return CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTER;
592592
}
593593
}
594594

@@ -643,15 +643,15 @@ 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 */
646+
/* configure scale of filter banks < CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER for ext ids */
647647
/* We have to have set filters after initializing master CAN */
648648
if (cfg->can == cfg->master_can) {
649649
cfg->master_can->FMR |= CAN_FMR_FINIT;
650-
cfg->master_can->FS1R |= ((1U << CONFIG_CAN_MAX_EXT_ID_FILTER) - 1);
650+
cfg->master_can->FS1R |= ((1U << CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER) - 1);
651651

652652
#if DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) > 1
653653
/* reserve ext_id filters on slave CAN device */
654-
cfg->master_can->FS1R |= ((1U << CONFIG_CAN_MAX_EXT_ID_FILTER) - 1)
654+
cfg->master_can->FS1R |= ((1U << CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER) - 1)
655655
<< CAN_STM32_NUM_FILTER_BANKS;
656656
#endif /* DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) > 1 */
657657

@@ -863,7 +863,7 @@ static void can_stm32_set_filter_bank(int filter_id, CAN_FilterRegister_TypeDef
863863
filter_reg->FR1 = id;
864864
filter_reg->FR2 = mask;
865865
} else {
866-
if ((filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER) % 2 == 0) {
866+
if ((filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER) % 2 == 0) {
867867
/* even std filter id: first 1/2 bank */
868868
filter_reg->FR1 = id | (mask << 16);
869869
} else {
@@ -919,7 +919,7 @@ static inline int can_stm32_set_filter(const struct device *dev, const struct ca
919919
}
920920

921921
if ((filter->flags & CAN_FILTER_IDE) != 0) {
922-
for (int i = 0; i < CONFIG_CAN_MAX_EXT_ID_FILTER; i++) {
922+
for (int i = 0; i < CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER; i++) {
923923
if (data->rx_cb_ext[i] == NULL) {
924924
id = can_stm32_filter_to_ext_id(filter);
925925
mask = can_stm32_filter_to_ext_mask(filter);
@@ -929,12 +929,13 @@ static inline int can_stm32_set_filter(const struct device *dev, const struct ca
929929
}
930930
}
931931
} else {
932-
for (int i = 0; i < CONFIG_CAN_MAX_STD_ID_FILTER; i++) {
932+
for (int i = 0; i < CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTER; i++) {
933933
if (data->rx_cb_std[i] == NULL) {
934934
id = can_stm32_filter_to_std_id(filter);
935935
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;
936+
filter_id = CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER + i;
937+
bank_num = bank_offset + CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER +
938+
i / 2;
938939
break;
939940
}
940941
}
@@ -965,7 +966,7 @@ static inline int can_stm32_set_filter(const struct device *dev, const struct ca
965966
* This driver uses masked mode for all filters (CAN_FM1R left at reset value
966967
* 0x00) in order to simplify mapping between filter match index from the FIFOs
967968
* 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,
969+
* banks below CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER, followed by the std ID filters,
969970
* which consume only 1/2 bank per filter.
970971
*
971972
* The more complicated list mode must be implemented if someone requires more
@@ -993,8 +994,9 @@ static int can_stm32_add_rx_filter(const struct device *dev, can_rx_callback_t c
993994
data->rx_cb_ext[filter_id] = cb;
994995
data->cb_arg_ext[filter_id] = cb_arg;
995996
} 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;
997+
data->rx_cb_std[filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER] = cb;
998+
data->cb_arg_std[filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER] =
999+
cb_arg;
9981000
}
9991001
}
10001002

@@ -1026,7 +1028,7 @@ static void can_stm32_remove_rx_filter(const struct device *dev, int filter_id)
10261028
bank_offset = CAN_STM32_NUM_FILTER_BANKS;
10271029
}
10281030

1029-
if (filter_id < CONFIG_CAN_MAX_EXT_ID_FILTER) {
1031+
if (filter_id < CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER) {
10301032
ide = true;
10311033
bank_num = bank_offset + filter_id;
10321034

@@ -1035,18 +1037,18 @@ static void can_stm32_remove_rx_filter(const struct device *dev, int filter_id)
10351037

10361038
bank_unused = true;
10371039
} else {
1038-
int filter_index = filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER;
1040+
int filter_index = filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER;
10391041

10401042
ide = false;
1041-
bank_num = bank_offset + CONFIG_CAN_MAX_EXT_ID_FILTER +
1042-
(filter_id - CONFIG_CAN_MAX_EXT_ID_FILTER) / 2;
1043+
bank_num = bank_offset + CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER +
1044+
(filter_id - CONFIG_CAN_STM32_BXCAN_MAX_EXT_ID_FILTER) / 2;
10431045

10441046
data->rx_cb_std[filter_index] = NULL;
10451047
data->cb_arg_std[filter_index] = NULL;
10461048

10471049
if (filter_index % 2 == 1) {
10481050
bank_unused = data->rx_cb_std[filter_index - 1] == NULL;
1049-
} else if (filter_index + 1 < CONFIG_CAN_MAX_STD_ID_FILTER) {
1051+
} else if (filter_index + 1 < CONFIG_CAN_STM32_BXCAN_MAX_STD_ID_FILTER) {
10501052
bank_unused = data->rx_cb_std[filter_index + 1] == NULL;
10511053
} else {
10521054
bank_unused = true;

0 commit comments

Comments
 (0)