| /* |
| * 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 { |
| u32_t pwm_base; |
| /* clock subsystem driving this peripheral */ |
| #ifdef CONFIG_CLOCK_CONTROL_STM32_CUBE |
| struct stm32_pclken pclken; |
| #else |
| clock_control_subsys_t clock_subsys; |
| #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 |
| */ |
| u32_t pwm_prescaler; |
| /* clock device */ |
| struct device *clock; |
| }; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __PWM_STM32_H__ */ |