# Kconfig.stm32 - 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 PWM && 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.

config PWM_STM32_1
	bool "STM32 PWM 1 Output"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	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"
	depends on PWM_STM32
	help
	  Enable output for PWM20 in the driver. Say y here
	  if you want to use PWM20 output.
