zephyr/drivers/pwm/pwm_stm32.h
Erwan Gouriou 726d4dc437 drivers: stm32: clean up after stm23cube based clock control
After activation of cube based driver support on L4 and F3 series,
this commits performs the clean up of F3 and L4 relative code to
native clock control drivers.
Indirectly, it makes pwm driver supported de facto on F3 series

Change-Id: Idac17103a9b5ef6eab540719343cc8f5865f15fa
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2017-02-10 14:47:41 -06:00

51 lines
983 B
C

/*
* Copyright (c) 2016 Linaro Limited.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file Header file for the STM32 PWM driver.
*/
#ifndef __PWM_STM32_H__
#define __PWM_STM32_H__
#ifdef __cplusplus
extern "C" {
#endif
/** Configuration data */
struct pwm_stm32_config {
uint32_t pwm_base;
/* clock subsystem driving this peripheral */
#ifdef CONFIG_CLOCK_CONTROL_STM32_CUBE
struct stm32_pclken pclken;
#else
#if defined(CONFIG_SOC_SERIES_STM32F1X)
clock_control_subsys_t clock_subsys;
#elif defined(CONFIG_SOC_SERIES_STM32F4X)
struct stm32f4x_pclken pclken;
#endif
#endif /* CONFIG_CLOCK_CONTROL_STM32_CUBE */
};
/** Runtime driver data */
struct pwm_stm32_data {
/* PWM peripheral handler */
TIM_HandleTypeDef hpwm;
/* Prescaler for PWM output clock
* Value used to divide the TIM clock.
* Min = 0x0000U, Max = 0xFFFFU
*/
uint32_t pwm_prescaler;
/* clock device */
struct device *clock;
};
#ifdef __cplusplus
}
#endif
#endif /* __PWM_STM32_H__ */