# STM32 PWM configuration options

# Copyright (c) 2016 Linaro Limited.
# SPDX-License-Identifier: Apache-2.0

menuconfig PWM_STM32
	bool "STM32 MCU PWM driver"
	depends on SOC_FAMILY_STM32
	select USE_STM32_HAL_TIM
	help
	  This option enables the PWM driver for STM32 family of
	  processors. Say y if you wish to use PWM port on STM32
	  MCU.

if PWM_STM32

config PWM_STM32_1
	bool "STM32 PWM 1 Output"
	help
	  Enable output for PWM1 in the driver. Say y here
	  if you want to use PWM1 output.

config PWM_STM32_2
	bool "STM32 PWM 2 Output"
	help
	  Enable output for PWM2 in the driver. Say y here
	  if you want to use PWM2 output.

config PWM_STM32_3
	bool "STM32 PWM 3 Output"
	help
	  Enable output for PWM3 in the driver. Say y here
	  if you want to use PWM3 output.

config PWM_STM32_4
	bool "STM32 PWM 4 Output"
	help
	  Enable output for PWM4 in the driver. Say y here
	  if you want to use PWM4 output.

config PWM_STM32_5
	bool "STM32 PWM 5 Output"
	help
	  Enable output for PWM5 in the driver. Say y here
	  if you want to use PWM5 output.

config PWM_STM32_6
	bool "STM32 PWM 6 Output"
	help
	  Enable output for PWM6 in the driver. Say y here
	  if you want to use PWM6 output.

config PWM_STM32_7
	bool "STM32 PWM 7 Output"
	help
	  Enable output for PWM7 in the driver. Say y here
	  if you want to use PWM7 output.

config PWM_STM32_8
	bool "STM32 PWM 8 Output"
	help
	  Enable output for PWM8 in the driver. Say y here
	  if you want to use PWM8 output.

config PWM_STM32_9
	bool "STM32 PWM 9 Output"
	help
	  Enable output for PWM9 in the driver. Say y here
	  if you want to use PWM9 output.

config PWM_STM32_10
	bool "STM32 PWM 10 Output"
	help
	  Enable output for PWM10 in the driver. Say y here
	  if you want to use PWM10 output.

config PWM_STM32_11
	bool "STM32 PWM 11 Output"
	help
	  Enable output for PWM11 in the driver. Say y here
	  if you want to use PWM11 output.

config PWM_STM32_12
	bool "STM32 PWM 12 Output"
	help
	  Enable output for PWM12 in the driver. Say y here
	  if you want to use PWM12 output.

config PWM_STM32_13
	bool "STM32 PWM 13 Output"
	help
	  Enable output for PWM13 in the driver. Say y here
	  if you want to use PWM13 output.

config PWM_STM32_14
	bool "STM32 PWM 14 Output"
	help
	  Enable output for PWM14 in the driver. Say y here
	  if you want to use PWM14 output.

config PWM_STM32_15
	bool "STM32 PWM 15 Output"
	help
	  Enable output for PWM15 in the driver. Say y here
	  if you want to use PWM15 output.

config PWM_STM32_16
	bool "STM32 PWM 16 Output"
	help
	  Enable output for PWM16 in the driver. Say y here
	  if you want to use PWM16 output.

config PWM_STM32_17
	bool "STM32 PWM 17 Output"
	help
	  Enable output for PWM17 in the driver. Say y here
	  if you want to use PWM17 output.

config PWM_STM32_18
	bool "STM32 PWM 18 Output"
	help
	  Enable output for PWM18 in the driver. Say y here
	  if you want to use PWM18 output.

config PWM_STM32_19
	bool "STM32 PWM 19 Output"
	help
	  Enable output for PWM19 in the driver. Say y here
	  if you want to use PWM19 output.

config PWM_STM32_20
	bool "STM32 PWM 20 Output"
	help
	  Enable output for PWM20 in the driver. Say y here
	  if you want to use PWM20 output.

endif # PWM_STM32
