diff --git a/arch/arm/src/stm32/stm32_tim.c b/arch/arm/src/stm32/stm32_tim.c index 31ddf810c58..7f3e2642707 100644 --- a/arch/arm/src/stm32/stm32_tim.c +++ b/arch/arm/src/stm32/stm32_tim.c @@ -360,6 +360,8 @@ static int stm32_tim_checkint(struct stm32_tim_dev_s *dev, int source); static const struct stm32_tim_ops_s stm32_tim_ops = { + .enable = stm32_tim_enable, + .disable = stm32_tim_disable, .setmode = stm32_tim_setmode, .setclock = stm32_tim_setclock, .setperiod = stm32_tim_setperiod, diff --git a/arch/arm/src/stm32/stm32_tim.h b/arch/arm/src/stm32/stm32_tim.h index 1916a34399a..6e01e6693d7 100644 --- a/arch/arm/src/stm32/stm32_tim.h +++ b/arch/arm/src/stm32/stm32_tim.h @@ -54,6 +54,8 @@ #define STM32_TIM_DISABLEINT(d,s) ((d)->ops->disableint(d,s)) #define STM32_TIM_ACKINT(d,s) ((d)->ops->ackint(d,s)) #define STM32_TIM_CHECKINT(d,s) ((d)->ops->checkint(d,s)) +#define STM32_TIM_ENABLE(d) ((d)->ops->enable(d)) +#define STM32_TIM_DISABLE(d) ((d)->ops->disable(d)) /**************************************************************************** * Public Types @@ -153,6 +155,8 @@ struct stm32_tim_ops_s { /* Basic Timers */ + void (*enable)(struct stm32_tim_dev_s *dev); + void (*disable)(struct stm32_tim_dev_s *dev); int (*setmode)(struct stm32_tim_dev_s *dev, stm32_tim_mode_t mode); int (*setclock)(struct stm32_tim_dev_s *dev, uint32_t freq); void (*setperiod)(struct stm32_tim_dev_s *dev, uint32_t period); diff --git a/arch/arm/src/stm32f0l0g0/stm32_tim.c b/arch/arm/src/stm32f0l0g0/stm32_tim.c index ab2f5633ab8..4b79d565f9c 100644 --- a/arch/arm/src/stm32f0l0g0/stm32_tim.c +++ b/arch/arm/src/stm32f0l0g0/stm32_tim.c @@ -266,6 +266,13 @@ struct stm32_tim_priv_s * Private Function prototypes ****************************************************************************/ +/* Timer helpers */ + +static void stm32_tim_reload_counter(struct stm32_tim_dev_s *dev); +static void stm32_tim_enable(struct stm32_tim_dev_s *dev); +static void stm32_tim_disable(struct stm32_tim_dev_s *dev); +static void stm32_tim_reset(struct stm32_tim_dev_s *dev); + /* Timer methods */ static int stm32_tim_setmode(struct stm32_tim_dev_s *dev, @@ -298,6 +305,8 @@ static void stm32_tim_ackint(struct stm32_tim_dev_s *dev, int source); static const struct stm32_tim_ops_s stm32_tim_ops = { + .enable = &stm32_tim_enable, + .disable = &stm32_tim_disable, .setmode = &stm32_tim_setmode, .setclock = &stm32_tim_setclock, .getclock = &stm32_tim_getclock, diff --git a/arch/arm/src/stm32f0l0g0/stm32_tim.h b/arch/arm/src/stm32f0l0g0/stm32_tim.h index a5d99347ce6..967abca2a28 100644 --- a/arch/arm/src/stm32f0l0g0/stm32_tim.h +++ b/arch/arm/src/stm32f0l0g0/stm32_tim.h @@ -65,6 +65,8 @@ #define STM32_TIM_ENABLEINT(d,s) ((d)->ops->enableint(d,s)) #define STM32_TIM_DISABLEINT(d,s) ((d)->ops->disableint(d,s)) #define STM32_TIM_ACKINT(d,s) ((d)->ops->ackint(d,s)) +#define STM32_TIM_ENABLE(d) ((d)->ops->enable(d)) +#define STM32_TIM_DISABLE(d) ((d)->ops->disable(d)) /**************************************************************************** * Public Types @@ -160,6 +162,8 @@ struct stm32_tim_ops_s { /* Basic Timers */ + void (*enable)(struct stm32_tim_dev_s *dev); + void (*disable)(struct stm32_tim_dev_s *dev); int (*setmode)(struct stm32_tim_dev_s *dev, stm32_tim_mode_t mode); int (*setclock)(struct stm32_tim_dev_s *dev, uint32_t freq); uint32_t (*getclock)(struct stm32_tim_dev_s *dev); diff --git a/arch/arm/src/stm32f7/stm32_tim.c b/arch/arm/src/stm32f7/stm32_tim.c index 5e4724a1509..524e9d83f43 100644 --- a/arch/arm/src/stm32f7/stm32_tim.c +++ b/arch/arm/src/stm32f7/stm32_tim.c @@ -1222,6 +1222,8 @@ static int stm32_tim_getcapture(struct stm32_tim_dev_s *dev, struct stm32_tim_ops_s stm32_tim_ops = { + .enable = stm32_tim_enable, + .disable = stm32_tim_disable, .setmode = stm32_tim_setmode, .setclock = stm32_tim_setclock, .setperiod = stm32_tim_setperiod, diff --git a/arch/arm/src/stm32f7/stm32_tim.h b/arch/arm/src/stm32f7/stm32_tim.h index d4dc454ea5f..e09b9b569b5 100644 --- a/arch/arm/src/stm32f7/stm32_tim.h +++ b/arch/arm/src/stm32f7/stm32_tim.h @@ -52,6 +52,8 @@ #define STM32_TIM_DISABLEINT(d,s) ((d)->ops->disableint(d,s)) #define STM32_TIM_ACKINT(d,s) ((d)->ops->ackint(d,s)) #define STM32_TIM_CHECKINT(d,s) ((d)->ops->checkint(d,s)) +#define STM32_TIM_ENABLE(d) ((d)->ops->enable(d)) +#define STM32_TIM_DISABLE(d) ((d)->ops->disable(d)) /**************************************************************************** * Public Types @@ -149,6 +151,8 @@ struct stm32_tim_ops_s { /* Basic Timers */ + void (*enable)(struct stm32_tim_dev_s *dev); + void (*disable)(struct stm32_tim_dev_s *dev); int (*setmode)(struct stm32_tim_dev_s *dev, stm32_tim_mode_t mode); int (*setclock)(struct stm32_tim_dev_s *dev, uint32_t freq); void (*setperiod)(struct stm32_tim_dev_s *dev, uint32_t period); diff --git a/arch/arm/src/stm32h7/stm32_tim.c b/arch/arm/src/stm32h7/stm32_tim.c index 76c499a61ec..6ef544ba9a1 100644 --- a/arch/arm/src/stm32h7/stm32_tim.c +++ b/arch/arm/src/stm32h7/stm32_tim.c @@ -251,6 +251,13 @@ struct stm32_tim_priv_s * Private Function prototypes ****************************************************************************/ +/* Timer helpers */ + +static void stm32_tim_reload_counter(struct stm32_tim_dev_s *dev); +static void stm32_tim_enable(struct stm32_tim_dev_s *dev); +static void stm32_tim_disable(struct stm32_tim_dev_s *dev); +static void stm32_tim_reset(struct stm32_tim_dev_s *dev); + /* Timer methods */ static int stm32_tim_setmode(struct stm32_tim_dev_s *dev, @@ -287,6 +294,8 @@ static int stm32_tim_checkint(struct stm32_tim_dev_s *dev, static const struct stm32_tim_ops_s stm32_tim_ops = { + .enable = &stm32_tim_enable, + .disable = &stm32_tim_disable, .setmode = &stm32_tim_setmode, .setclock = &stm32_tim_setclock, .setperiod = &stm32_tim_setperiod, diff --git a/arch/arm/src/stm32h7/stm32_tim.h b/arch/arm/src/stm32h7/stm32_tim.h index 38fbd04f7ad..245386f9f05 100644 --- a/arch/arm/src/stm32h7/stm32_tim.h +++ b/arch/arm/src/stm32h7/stm32_tim.h @@ -52,6 +52,8 @@ #define STM32_TIM_DISABLEINT(d,s) ((d)->ops->disableint(d,s)) #define STM32_TIM_ACKINT(d,s) ((d)->ops->ackint(d,s)) #define STM32_TIM_CHECKINT(d,s) ((d)->ops->checkint(d,s)) +#define STM32_TIM_ENABLE(d) ((d)->ops->enable(d)) +#define STM32_TIM_DISABLE(d) ((d)->ops->disable(d)) /**************************************************************************** * Public Types @@ -151,6 +153,8 @@ struct stm32_tim_ops_s { /* Basic Timers */ + void (*enable)(struct stm32_tim_dev_s *dev); + void (*disable)(struct stm32_tim_dev_s *dev); int (*setmode)(struct stm32_tim_dev_s *dev, stm32_tim_mode_t mode); int (*setclock)(struct stm32_tim_dev_s *dev, uint32_t freq); void (*setperiod)(struct stm32_tim_dev_s *dev, uint32_t period); diff --git a/arch/arm/src/stm32l5/stm32l5_tim.c b/arch/arm/src/stm32l5/stm32l5_tim.c index 1de30f99144..4e88e07e822 100644 --- a/arch/arm/src/stm32l5/stm32l5_tim.c +++ b/arch/arm/src/stm32l5/stm32l5_tim.c @@ -283,6 +283,8 @@ static int stm32l5_tim_checkint(struct stm32l5_tim_dev_s *dev, static const struct stm32l5_tim_ops_s stm32l5_tim_ops = { + .enable = stm32l5_tim_enable, + .disable = stm32l5_tim_disable, .setmode = stm32l5_tim_setmode, .setclock = stm32l5_tim_setclock, .getclock = stm32l5_tim_getclock, diff --git a/arch/arm/src/stm32l5/stm32l5_tim.h b/arch/arm/src/stm32l5/stm32l5_tim.h index 903bb5cd80b..f114ff9c618 100644 --- a/arch/arm/src/stm32l5/stm32l5_tim.h +++ b/arch/arm/src/stm32l5/stm32l5_tim.h @@ -52,6 +52,8 @@ #define STM32L5_TIM_DISABLEINT(d,s) ((d)->ops->disableint(d,s)) #define STM32L5_TIM_ACKINT(d,s) ((d)->ops->ackint(d,s)) #define STM32L5_TIM_CHECKINT(d,s) ((d)->ops->checkint(d,s)) +#define STM32_TIM_ENABLE(d) ((d)->ops->enable(d)) +#define STM32_TIM_DISABLE(d) ((d)->ops->disable(d)) /**************************************************************************** * Public Types @@ -149,6 +151,8 @@ struct stm32l5_tim_ops_s { /* Basic Timers */ + void (*enable)(struct stm32l5_tim_dev_s *dev); + void (*disable)(struct stm32l5_tim_dev_s *dev); int (*setmode)(struct stm32l5_tim_dev_s *dev, enum stm32l5_tim_mode_e mode); int (*setclock)(struct stm32l5_tim_dev_s *dev, uint32_t freq); diff --git a/arch/arm/src/stm32u5/stm32_tim.c b/arch/arm/src/stm32u5/stm32_tim.c index 8f79b2aeb5b..906230515f8 100644 --- a/arch/arm/src/stm32u5/stm32_tim.c +++ b/arch/arm/src/stm32u5/stm32_tim.c @@ -283,6 +283,8 @@ static int stm32_tim_checkint(struct stm32_tim_dev_s *dev, static const struct stm32_tim_ops_s stm32_tim_ops = { + .enable = stm32_tim_enable, + .disable = stm32_tim_disable, .setmode = stm32_tim_setmode, .setclock = stm32_tim_setclock, .getclock = stm32_tim_getclock, diff --git a/arch/arm/src/stm32u5/stm32_tim.h b/arch/arm/src/stm32u5/stm32_tim.h index ea82cbae0d6..e043e98f0e0 100644 --- a/arch/arm/src/stm32u5/stm32_tim.h +++ b/arch/arm/src/stm32u5/stm32_tim.h @@ -52,6 +52,8 @@ #define STM32U5_TIM_DISABLEINT(d,s) ((d)->ops->disableint(d,s)) #define STM32U5_TIM_ACKINT(d,s) ((d)->ops->ackint(d,s)) #define STM32U5_TIM_CHECKINT(d,s) ((d)->ops->checkint(d,s)) +#define STM32_TIM_ENABLE(d) ((d)->ops->enable(d)) +#define STM32_TIM_DISABLE(d) ((d)->ops->disable(d)) /**************************************************************************** * Public Types @@ -143,6 +145,8 @@ struct stm32_tim_ops_s { /* Basic Timers */ + void (*enable)(struct stm32_tim_dev_s *dev); + void (*disable)(struct stm32_tim_dev_s *dev); int (*setmode)(struct stm32_tim_dev_s *dev, enum stm32_tim_mode_e mode); int (*setclock)(struct stm32_tim_dev_s *dev, uint32_t freq); diff --git a/arch/arm/src/stm32wl5/stm32wl5_tim.c b/arch/arm/src/stm32wl5/stm32wl5_tim.c index 1657b24cf44..8a2ff45d866 100644 --- a/arch/arm/src/stm32wl5/stm32wl5_tim.c +++ b/arch/arm/src/stm32wl5/stm32wl5_tim.c @@ -285,6 +285,8 @@ static int stm32wl5_tim_checkint(struct stm32wl5_tim_dev_s *dev, static const struct stm32wl5_tim_ops_s stm32wl5_tim_ops = { + .enable = stm32wl5_tim_enable, + .disable = stm32wl5_tim_disable, .setmode = stm32wl5_tim_setmode, .setclock = stm32wl5_tim_setclock, .getclock = stm32wl5_tim_getclock, diff --git a/arch/arm/src/stm32wl5/stm32wl5_tim.h b/arch/arm/src/stm32wl5/stm32wl5_tim.h index 3d7161c3b6c..9826600b87a 100644 --- a/arch/arm/src/stm32wl5/stm32wl5_tim.h +++ b/arch/arm/src/stm32wl5/stm32wl5_tim.h @@ -52,6 +52,8 @@ #define STM32WL5_TIM_DISABLEINT(d,s) ((d)->ops->disableint(d,s)) #define STM32WL5_TIM_ACKINT(d,s) ((d)->ops->ackint(d,s)) #define STM32WL5_TIM_CHECKINT(d,s) ((d)->ops->checkint(d,s)) +#define STM32_TIM_ENABLE(d) ((d)->ops->enable(d)) +#define STM32_TIM_DISABLE(d) ((d)->ops->disable(d)) /**************************************************************************** * Public Types @@ -141,6 +143,8 @@ struct stm32wl5_tim_ops_s { /* Basic Timers */ + void (*enable)(struct stm32wl5_tim_dev_s *dev); + void (*disable)(struct stm32wl5_tim_dev_s *dev); int (*setmode)(struct stm32wl5_tim_dev_s *dev, enum stm32wl5_tim_mode_e mode); int (*setclock)(struct stm32wl5_tim_dev_s *dev, uint32_t freq);