From ff722597e85e17a9a4c031c90cb5f3ac804963b6 Mon Sep 17 00:00:00 2001 From: Henrik Brix Andersen Date: Tue, 15 Aug 2023 10:24:49 +0200 Subject: [PATCH] drivers: can: stm32: bxcan: fold private header into implementation file Fold the contents of the private header for the STM32 bxCAN driver into the implementation file. Signed-off-by: Henrik Brix Andersen --- drivers/can/can_stm32.c | 51 ++++++++++++++++++++++++++++++++-- drivers/can/can_stm32.h | 61 ----------------------------------------- 2 files changed, 49 insertions(+), 63 deletions(-) delete mode 100644 drivers/can/can_stm32.h diff --git a/drivers/can/can_stm32.c b/drivers/can/can_stm32.c index 0119a0f490a..6674597764b 100644 --- a/drivers/can/can_stm32.c +++ b/drivers/can/can_stm32.c @@ -19,8 +19,6 @@ #include #include -#include "can_stm32.h" - LOG_MODULE_REGISTER(can_stm32, CONFIG_CAN_LOG_LEVEL); #define CAN_INIT_TIMEOUT (10 * sys_clock_hw_cycles_per_sec() / MSEC_PER_SEC) @@ -44,11 +42,60 @@ LOG_MODULE_REGISTER(can_stm32, CONFIG_CAN_LOG_LEVEL); #error You must either set a sampling-point or timings (phase-seg* and prop-seg) #endif +#define CAN_STM32_NUM_FILTER_BANKS (14) +#define CAN_STM32_MAX_FILTER_ID \ + (CONFIG_CAN_MAX_EXT_ID_FILTER + CONFIG_CAN_MAX_STD_ID_FILTER * 2) + +#define CAN_STM32_FIRX_STD_IDE_POS (3U) +#define CAN_STM32_FIRX_STD_RTR_POS (4U) +#define CAN_STM32_FIRX_STD_ID_POS (5U) + +#define CAN_STM32_FIRX_EXT_IDE_POS (2U) +#define CAN_STM32_FIRX_EXT_RTR_POS (1U) +#define CAN_STM32_FIRX_EXT_STD_ID_POS (21U) +#define CAN_STM32_FIRX_EXT_EXT_ID_POS (3U) + #if (CONFIG_CAN_MAX_STD_ID_FILTER + CONFIG_CAN_MAX_EXT_ID_FILTER * 2) > \ (CAN_STM32_NUM_FILTER_BANKS * 2) #error Number of configured filters exceeds available filter bank slots. #endif +struct can_stm32_mailbox { + can_tx_callback_t tx_callback; + void *callback_arg; +}; + +struct can_stm32_data { + struct k_mutex inst_mutex; + struct k_sem tx_int_sem; + struct can_stm32_mailbox mb0; + struct can_stm32_mailbox mb1; + struct can_stm32_mailbox mb2; + can_rx_callback_t rx_cb_std[CONFIG_CAN_MAX_STD_ID_FILTER]; + can_rx_callback_t rx_cb_ext[CONFIG_CAN_MAX_EXT_ID_FILTER]; + void *cb_arg_std[CONFIG_CAN_MAX_STD_ID_FILTER]; + void *cb_arg_ext[CONFIG_CAN_MAX_EXT_ID_FILTER]; + can_state_change_callback_t state_change_cb; + void *state_change_cb_data; + enum can_state state; + bool started; +}; + +struct can_stm32_config { + CAN_TypeDef *can; /*!< CAN Registers*/ + CAN_TypeDef *master_can; /*!< CAN Registers for shared filter */ + uint32_t bus_speed; + uint16_t sample_point; + uint8_t sjw; + uint8_t prop_ts1; + uint8_t ts2; + struct stm32_pclken pclken; + void (*config_irq)(CAN_TypeDef *can); + const struct pinctrl_dev_config *pcfg; + const struct device *phy; + uint32_t max_bitrate; +}; + /* * Mutex to prevent simultaneous access to filter registers shared between CAN1 * and CAN2. diff --git a/drivers/can/can_stm32.h b/drivers/can/can_stm32.h deleted file mode 100644 index a90dcc51152..00000000000 --- a/drivers/can/can_stm32.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2018 Alexander Wachter - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#ifndef ZEPHYR_DRIVERS_CAN_STM32_H_ -#define ZEPHYR_DRIVERS_CAN_STM32_H_ - -#include - -#define CAN_STM32_NUM_FILTER_BANKS (14) -#define CAN_STM32_MAX_FILTER_ID \ - (CONFIG_CAN_MAX_EXT_ID_FILTER + CONFIG_CAN_MAX_STD_ID_FILTER * 2) - -#define CAN_STM32_FIRX_STD_IDE_POS (3U) -#define CAN_STM32_FIRX_STD_RTR_POS (4U) -#define CAN_STM32_FIRX_STD_ID_POS (5U) - -#define CAN_STM32_FIRX_EXT_IDE_POS (2U) -#define CAN_STM32_FIRX_EXT_RTR_POS (1U) -#define CAN_STM32_FIRX_EXT_STD_ID_POS (21U) -#define CAN_STM32_FIRX_EXT_EXT_ID_POS (3U) - -struct can_stm32_mailbox { - can_tx_callback_t tx_callback; - void *callback_arg; -}; - -struct can_stm32_data { - struct k_mutex inst_mutex; - struct k_sem tx_int_sem; - struct can_stm32_mailbox mb0; - struct can_stm32_mailbox mb1; - struct can_stm32_mailbox mb2; - can_rx_callback_t rx_cb_std[CONFIG_CAN_MAX_STD_ID_FILTER]; - can_rx_callback_t rx_cb_ext[CONFIG_CAN_MAX_EXT_ID_FILTER]; - void *cb_arg_std[CONFIG_CAN_MAX_STD_ID_FILTER]; - void *cb_arg_ext[CONFIG_CAN_MAX_EXT_ID_FILTER]; - can_state_change_callback_t state_change_cb; - void *state_change_cb_data; - enum can_state state; - bool started; -}; - -struct can_stm32_config { - CAN_TypeDef *can; /*!< CAN Registers*/ - CAN_TypeDef *master_can; /*!< CAN Registers for shared filter */ - uint32_t bus_speed; - uint16_t sample_point; - uint8_t sjw; - uint8_t prop_ts1; - uint8_t ts2; - struct stm32_pclken pclken; - void (*config_irq)(CAN_TypeDef *can); - const struct pinctrl_dev_config *pcfg; - const struct device *phy; - uint32_t max_bitrate; -}; - -#endif /* ZEPHYR_DRIVERS_CAN_STM32_H_ */