diff options
Diffstat (limited to 'drivers/pwm/pwm_stm32.h')
-rw-r--r-- | drivers/pwm/pwm_stm32.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/drivers/pwm/pwm_stm32.h b/drivers/pwm/pwm_stm32.h new file mode 100644 index 000000000..e7a1972fb --- /dev/null +++ b/drivers/pwm/pwm_stm32.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2016 Linaro Limited. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @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 */ +#if defined(CONFIG_SOC_SERIES_STM32F1X) || defined(CONFIG_SOC_SERIES_STM32L4X) + clock_control_subsys_t clock_subsys; +#elif defined(CONFIG_SOC_SERIES_STM32F4X) + struct stm32f4x_pclken pclken; +#endif +}; + +/** 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__ */ |