menuconfig PWM
	bool "Pulse-Width Modulation (PWM) Support"
	help
	  Generic Pulse-Width Modulation (PWM) support.

	  In Pulse-Width Modulation, a variation of the width of pulses
	  in a rectangular pulse signal is used as a means to alter the
	  average power of the signal. Applications include efficient
	  power delivery and voltage regulation. In computer systems,
	  PWMs are commonly used to control fans or the brightness of
	  display backlights.

	  This framework provides a generic interface to PWM devices
	  within the Linux kernel. On the driver side it provides an API
	  to register and unregister a PWM chip, an abstraction of a PWM
	  controller, that supports one or more PWM devices. Client
	  drivers can request PWM devices and use the generic framework
	  to configure as well as enable and disable them.

	  This generic framework replaces the legacy PWM framework which
	  allows only a single driver implementing the required API. Not
	  all legacy implementations have been ported to the framework
	  yet. The framework provides an API that is backward compatible
	  with the legacy framework so that existing client drivers
	  continue to work as expected.

	  If unsure, say no.

if PWM

config PWM_SYSFS
	bool
	default y if SYSFS

config PWM_AB8500
	tristate "AB8500 PWM support"
	depends on AB8500_CORE && ARCH_U8500
	help
	  Generic PWM framework driver for Analog Baseband AB8500.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-ab8500.

config PWM_ATMEL
	tristate "Atmel PWM support"
	depends on ARCH_AT91 || AVR32
	help
	  Generic PWM framework driver for Atmel SoC.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-atmel.

config PWM_ATMEL_HLCDC_PWM
	tristate "Atmel HLCDC PWM support"
	depends on MFD_ATMEL_HLCDC
	depends on HAVE_CLK
	help
	  Generic PWM framework driver for the PWM output of the HLCDC
	  (Atmel High-end LCD Controller). This PWM output is mainly used
	  to control the LCD backlight.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-atmel-hlcdc.

config PWM_ATMEL_TCB
	tristate "Atmel TC Block PWM support"
	depends on ATMEL_TCLIB && OF
	help
	  Generic PWM framework driver for Atmel Timer Counter Block.

	  A Timer Counter Block provides 6 PWM devices grouped by 2.
	  Devices in a given group must have the same period.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-atmel-tcb.

config PWM_BCM_KONA
	tristate "Kona PWM support"
	depends on ARCH_BCM_MOBILE
	help
	  Generic PWM framework driver for Broadcom Kona PWM block.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-bcm-kona.

config PWM_BCM2835
	tristate "BCM2835 PWM support"
	depends on ARCH_BCM2835
	help
	  PWM framework driver for BCM2835 controller (Raspberry Pi)

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-bcm2835.

config PWM_BERLIN
	tristate "Marvell Berlin PWM support"
	depends on ARCH_BERLIN
	help
	  PWM framework driver for Marvell Berlin SoCs.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-berlin.

config PWM_BFIN
	tristate "Blackfin PWM support"
	depends on BFIN_GPTIMERS
	help
	  Generic PWM framework driver for Blackfin.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-bfin.

config PWM_BRCMSTB
	tristate "Broadcom STB PWM support"
	depends on ARCH_BRCMSTB || BMIPS_GENERIC
	help
	  Generic PWM framework driver for the Broadcom Set-top-Box
	  SoCs (BCM7xxx).

	  To compile this driver as a module, choose M Here: the module
	  will be called pwm-brcmstb.c.

config PWM_CLPS711X
	tristate "CLPS711X PWM support"
	depends on ARCH_CLPS711X || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for Cirrus Logic CLPS711X.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-clps711x.

config PWM_CRC
	bool "Intel Crystalcove (CRC) PWM support"
	depends on X86 && INTEL_SOC_PMIC
	help
	  Generic PWM framework driver for Crystalcove (CRC) PMIC based PWM
	  control.

config PWM_EP93XX
	tristate "Cirrus Logic EP93xx PWM support"
	depends on ARCH_EP93XX
	help
	  Generic PWM framework driver for Cirrus Logic EP93xx.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-ep93xx.

config PWM_FSL_FTM
	tristate "Freescale FlexTimer Module (FTM) PWM support"
	depends on OF
	select REGMAP_MMIO
	help
	  Generic FTM PWM framework driver for Freescale VF610 and
	  Layerscape LS-1 SoCs.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-fsl-ftm.

config PWM_IMG
	tristate "Imagination Technologies PWM driver"
	depends on HAS_IOMEM
	depends on MFD_SYSCON
	depends on COMMON_CLK
	depends on MIPS || COMPILE_TEST
	help
	  Generic PWM framework driver for Imagination Technologies
	  PWM block which supports 4 channels.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-img

config PWM_IMX
	tristate "i.MX PWM support"
	depends on ARCH_MXC
	help
	  Generic PWM framework driver for i.MX.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-imx.

config PWM_JZ4740
	tristate "Ingenic JZ4740 PWM support"
	depends on MACH_JZ4740
	help
	  Generic PWM framework driver for Ingenic JZ4740 based
	  machines.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-jz4740.

config PWM_LP3943
	tristate "TI/National Semiconductor LP3943 PWM support"
	depends on MFD_LP3943
	help
	  Generic PWM framework driver for LP3943 which supports two PWM
	  channels.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-lp3943.

config PWM_LPC18XX_SCT
	tristate "LPC18xx/43xx PWM/SCT support"
	depends on ARCH_LPC18XX
	help
	  Generic PWM framework driver for NXP LPC18xx PWM/SCT which
	  supports 16 channels.
	  A maximum of 15 channels can be requested simultaneously and
	  must have the same period.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-lpc18xx-sct.

config PWM_LPC32XX
	tristate "LPC32XX PWM support"
	depends on ARCH_LPC32XX
	help
	  Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
	  PWM controllers.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-lpc32xx.

config PWM_LPSS
	tristate "Intel LPSS PWM support"
	depends on X86
	help
	  Generic PWM framework driver for Intel Low Power Subsystem PWM
	  controller.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-lpss.

config PWM_LPSS_PCI
	tristate "Intel LPSS PWM PCI driver"
	depends on PWM_LPSS && PCI
	help
	  The PCI driver for Intel Low Power Subsystem PWM controller.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-lpss-pci.

config PWM_LPSS_PLATFORM
	tristate "Intel LPSS PWM platform driver"
	depends on PWM_LPSS && ACPI
	help
	  The platform driver for Intel Low Power Subsystem PWM controller.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-lpss-platform.

config PWM_MTK_DISP
	tristate "MediaTek display PWM driver"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for MediaTek disp-pwm device.
	  The PWM is used to control the backlight brightness for display.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-mtk-disp.

config PWM_MXS
	tristate "Freescale MXS PWM support"
	depends on ARCH_MXS && OF
	select STMP_DEVICE
	help
	  Generic PWM framework driver for Freescale MXS.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-mxs.

config PWM_PCA9685
	tristate "NXP PCA9685 PWM driver"
	depends on I2C
	select REGMAP_I2C
	help
	  Generic PWM framework driver for NXP PCA9685 LED controller.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-pca9685.

config PWM_PUV3
	tristate "PKUnity NetBook-0916 PWM support"
	depends on ARCH_PUV3
	help
	  Generic PWM framework driver for PKUnity NetBook-0916.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-puv3.

config PWM_PXA
	tristate "PXA PWM support"
	depends on ARCH_PXA
	help
	  Generic PWM framework driver for PXA.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-pxa.

config PWM_RCAR
	tristate "Renesas R-Car PWM support"
	depends on ARCH_RCAR_GEN1 || ARCH_RCAR_GEN2 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This driver exposes the PWM Timer controller found in Renesas
	  R-Car chips through the PWM API.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-rcar.

config PWM_RENESAS_TPU
	tristate "Renesas TPU PWM support"
	depends on ARCH_SHMOBILE || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This driver exposes the Timer Pulse Unit (TPU) PWM controller found
	  in Renesas chips through the PWM API.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-renesas-tpu.

config PWM_ROCKCHIP
	tristate "Rockchip PWM support"
	depends on ARCH_ROCKCHIP
	help
	  Generic PWM framework driver for the PWM controller found on
	  Rockchip SoCs.

config PWM_SAMSUNG
	tristate "Samsung PWM support"
	depends on PLAT_SAMSUNG || ARCH_EXYNOS
	help
	  Generic PWM framework driver for Samsung.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-samsung.

config PWM_SPEAR
	tristate "STMicroelectronics SPEAr PWM support"
	depends on PLAT_SPEAR
	depends on OF
	help
	  Generic PWM framework driver for the PWM controller on ST
	  SPEAr SoCs.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-spear.

config PWM_STI
	tristate "STiH4xx PWM support"
	depends on ARCH_STI
	depends on OF
	help
	  Generic PWM framework driver for STiH4xx SoCs.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-sti.

config PWM_SUN4I
	tristate "Allwinner PWM support"
	depends on ARCH_SUNXI || COMPILE_TEST
	depends on HAS_IOMEM && COMMON_CLK
	help
	  Generic PWM framework driver for Allwinner SoCs.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-sun4i.

config PWM_TEGRA
	tristate "NVIDIA Tegra PWM support"
	depends on ARCH_TEGRA
	help
	  Generic PWM framework driver for the PWFM controller found on NVIDIA
	  Tegra SoCs.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-tegra.

config  PWM_TIECAP
	tristate "ECAP PWM support"
	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX
	help
	  PWM driver support for the ECAP APWM controller found on AM33XX
	  TI SOC

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-tiecap.

config  PWM_TIEHRPWM
	tristate "EHRPWM PWM support"
	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX
	help
	  PWM driver support for the EHRPWM controller found on AM33XX
	  TI SOC

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-tiehrpwm.

config  PWM_TIPWMSS
	bool
	default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM)
	help
	  PWM Subsystem driver support for AM33xx SOC.

	  PWM submodules require PWM config space access from submodule
	  drivers and require common parent driver support.

config PWM_TWL
	tristate "TWL4030/6030 PWM support"
	depends on TWL4030_CORE
	help
	  Generic PWM framework driver for TWL4030/6030.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-twl.

config PWM_TWL_LED
	tristate "TWL4030/6030 PWM support for LED drivers"
	depends on TWL4030_CORE
	help
	  Generic PWM framework driver for TWL4030/6030 LED terminals.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-twl-led.

config PWM_VT8500
	tristate "vt8500 PWM support"
	depends on ARCH_VT8500
	help
	  Generic PWM framework driver for vt8500.

	  To compile this driver as a module, choose M here: the module
	  will be called pwm-vt8500.

endif
