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 <hebad@vestas.com>
This commit is contained in:
parent
b83a828825
commit
ff722597e8
2 changed files with 49 additions and 63 deletions
|
@ -19,8 +19,6 @@
|
||||||
#include <zephyr/logging/log.h>
|
#include <zephyr/logging/log.h>
|
||||||
#include <zephyr/irq.h>
|
#include <zephyr/irq.h>
|
||||||
|
|
||||||
#include "can_stm32.h"
|
|
||||||
|
|
||||||
LOG_MODULE_REGISTER(can_stm32, CONFIG_CAN_LOG_LEVEL);
|
LOG_MODULE_REGISTER(can_stm32, CONFIG_CAN_LOG_LEVEL);
|
||||||
|
|
||||||
#define CAN_INIT_TIMEOUT (10 * sys_clock_hw_cycles_per_sec() / MSEC_PER_SEC)
|
#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)
|
#error You must either set a sampling-point or timings (phase-seg* and prop-seg)
|
||||||
#endif
|
#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) > \
|
#if (CONFIG_CAN_MAX_STD_ID_FILTER + CONFIG_CAN_MAX_EXT_ID_FILTER * 2) > \
|
||||||
(CAN_STM32_NUM_FILTER_BANKS * 2)
|
(CAN_STM32_NUM_FILTER_BANKS * 2)
|
||||||
#error Number of configured filters exceeds available filter bank slots.
|
#error Number of configured filters exceeds available filter bank slots.
|
||||||
#endif
|
#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
|
* Mutex to prevent simultaneous access to filter registers shared between CAN1
|
||||||
* and CAN2.
|
* and CAN2.
|
||||||
|
|
|
@ -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 <zephyr/drivers/can.h>
|
|
||||||
|
|
||||||
#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_ */
|
|
Loading…
Add table
Add a link
Reference in a new issue