# SPDX-License-Identifier: GPL-2.0-only
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_DEBUG
	bool "PWM lowlevel drivers additional checks and debug messages"
	depends on DEBUG_KERNEL
	help
	  This option enables some additional checks to help lowlevel driver
	  authors to get their callbacks implemented correctly.
	  It is expected to introduce some runtime overhead and diagnostic
	  output to the kernel log, so only enable while working on a driver.

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_APPLE
	tristate "Apple SoC PWM support"
	depends on ARCH_APPLE || COMPILE_TEST
	help
	  Generic PWM framework driver for PWM controller present on
	  Apple SoCs

	  Say Y here if you have an ARM Apple laptop, otherwise say N

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

config PWM_ATMEL
	tristate "Atmel PWM support"
	depends on ARCH_AT91 || COMPILE_TEST
	depends on HAS_IOMEM && OF
	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 OF
	select REGMAP_MMIO
	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_IPROC
	tristate "iProc PWM support"
	depends on ARCH_BCM_IPROC || COMPILE_TEST
	depends on COMMON_CLK && HAS_IOMEM
	default ARCH_BCM_IPROC
	help
	  Generic PWM framework driver for Broadcom iProc PWM block. This
	  block is used in Broadcom iProc SoC's.

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

config PWM_BCM_KONA
	tristate "Kona PWM support"
	depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
	depends on HAVE_CLK && HAS_IOMEM
	default ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS
	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 || ARCH_BRCMSTB || COMPILE_TEST
	depends on HAS_IOMEM
	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 || COMPILE_TEST
	depends on HAS_IOMEM
	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_BRCMSTB
	tristate "Broadcom STB PWM support"
	depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
	depends on HAS_IOMEM
	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_CLK
	tristate "Clock based PWM support"
	depends on HAVE_CLK || COMPILE_TEST
	help
	  Generic PWM framework driver for outputs that can be
	  muxed to clocks.

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

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
	tristate "Intel Crystalcove (CRC) PWM support"
	depends on INTEL_SOC_PMIC
	help
	  Generic PWM framework driver for Crystalcove (CRC) PMIC based PWM
	  control.

config PWM_CROS_EC
	tristate "ChromeOS EC PWM driver"
	depends on CROS_EC
	help
	  PWM driver for exposing a PWM attached to the ChromeOS Embedded
	  Controller.

config PWM_DWC_CORE
	tristate
	depends on HAS_IOMEM
	help
	  PWM driver for Synopsys DWC PWM Controller.

	  To compile this driver as a module, build the dependecies as
	  modules, this will be called pwm-dwc-core.

config PWM_DWC
	tristate "DesignWare PWM Controller (PCI bus)"
	depends on HAS_IOMEM && PCI
	select PWM_DWC_CORE
	help
	  PWM driver for Synopsys DWC PWM Controller attached to a PCI bus.

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

config PWM_EP93XX
	tristate "Cirrus Logic EP93xx PWM support"
	depends on ARCH_EP93XX || COMPILE_TEST
	depends on HAS_IOMEM
	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 HAS_IOMEM
	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_HIBVT
	tristate "HiSilicon BVT PWM support"
	depends on ARCH_HISI || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for HiSilicon BVT SoCs.

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

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_IMX1
	tristate "i.MX1 PWM support"
	depends on ARCH_MXC || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for i.MX1 and i.MX21

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

config PWM_IMX27
	tristate "i.MX27 PWM support"
	depends on ARCH_MXC || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for i.MX27 and later i.MX SoCs.

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

config PWM_IMX_TPM
	tristate "i.MX TPM PWM support"
	depends on ARCH_MXC || COMPILE_TEST
	depends on HAVE_CLK && HAS_IOMEM
	help
	  Generic PWM framework driver for i.MX7ULP TPM module, TPM's full
	  name is Low Power Timer/Pulse Width Modulation Module.

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

config PWM_INTEL_LGM
	tristate "Intel LGM PWM support"
	depends on HAS_IOMEM
	depends on (OF && X86) || COMPILE_TEST
	select REGMAP_MMIO
	help
	  Generic PWM fan controller driver for LGM SoC.

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

config PWM_IQS620A
	tristate "Azoteq IQS620A PWM support"
	depends on MFD_IQS62X || COMPILE_TEST
	help
	  Generic PWM framework driver for the Azoteq IQS620A multi-function
	  sensor.

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

config PWM_JZ4740
	tristate "Ingenic JZ47xx PWM support"
	depends on MACH_INGENIC || COMPILE_TEST
	depends on COMMON_CLK && OF
	select MFD_SYSCON
	help
	  Generic PWM framework driver for Ingenic JZ47xx based
	  machines.

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

config PWM_KEEMBAY
	tristate "Intel Keem Bay PWM driver"
	depends on ARCH_KEEMBAY || COMPILE_TEST
	depends on COMMON_CLK && HAS_IOMEM
	help
	  The platform driver for Intel Keem Bay PWM controller.

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

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 || COMPILE_TEST
	depends on HAS_IOMEM
	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 || COMPILE_TEST
	depends on HAS_IOMEM
	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
	depends on HAS_IOMEM
	tristate

config PWM_LPSS_PCI
	tristate "Intel LPSS PWM PCI driver"
	depends on X86 || COMPILE_TEST
	depends on HAS_IOMEM && PCI
	select PWM_LPSS
	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 (X86 && ACPI) || COMPILE_TEST
	depends on HAS_IOMEM
	select PWM_LPSS
	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_MESON
	tristate "Amlogic Meson PWM driver"
	depends on ARCH_MESON || COMPILE_TEST
	depends on COMMON_CLK && HAS_IOMEM
	help
	  The platform driver for Amlogic Meson PWM controller.

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

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_MEDIATEK
	tristate "MediaTek PWM support"
	depends on ARCH_MEDIATEK || RALINK || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for Mediatek ARM SoC.

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

config PWM_MICROCHIP_CORE
	tristate "Microchip corePWM PWM support"
	depends on ARCH_MICROCHIP_POLARFIRE || COMPILE_TEST
	depends on HAS_IOMEM && OF
	help
	  PWM driver for Microchip FPGA soft IP core.

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

config PWM_MXS
	tristate "Freescale MXS PWM support"
	depends on ARCH_MXS || COMPILE_TEST
	depends on HAS_IOMEM && 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_NTXEC
	tristate "Netronix embedded controller PWM support"
	depends on MFD_NTXEC
	help
	  Say yes here if you want to support the PWM output of the embedded
	  controller found in certain e-book readers designed by the original
	  design manufacturer Netronix.

config PWM_OMAP_DMTIMER
	tristate "OMAP Dual-Mode Timer PWM support"
	depends on OF
	depends on OMAP_DM_TIMER || COMPILE_TEST
	help
	  Generic PWM framework driver for OMAP Dual-Mode Timer PWM output

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

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_PXA
	tristate "PXA PWM support"
	depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
	depends on HAS_IOMEM
	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_RASPBERRYPI_POE
	tristate "Raspberry Pi Firwmware PoE Hat PWM support"
	# Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
	# happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
	depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
	help
	  Enable Raspberry Pi firmware controller PWM bus used to control the
	  official RPI PoE hat

config PWM_RCAR
	tristate "Renesas R-Car PWM support"
	depends on ARCH_RENESAS || 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_RENESAS || 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 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for the PWM controller found on
	  Rockchip SoCs.

config PWM_RZ_MTU3
	tristate "Renesas RZ/G2L MTU3a PWM Timer support"
	depends on RZ_MTU3
	depends on HAS_IOMEM
	help
	  This driver exposes the MTU3a PWM Timer controller found in Renesas
	  RZ/G2L like chips through the PWM API.

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

config PWM_SAMSUNG
	tristate "Samsung PWM support"
	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for Samsung S3C24xx, S3C64xx, S5Pv210
	  and Exynos SoCs.
	  Choose Y here only if you build for such Samsung SoC.

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

config PWM_SIFIVE
	tristate "SiFive PWM support"
	depends on OF
	depends on COMMON_CLK && HAS_IOMEM
	depends on RISCV || COMPILE_TEST
	help
	  Generic PWM framework driver for SiFive SoCs.

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

config PWM_SL28CPLD
	tristate "Kontron sl28cpld PWM support"
	depends on MFD_SL28CPLD || COMPILE_TEST
	help
	  Generic PWM framework driver for board management controller
	  found on the Kontron sl28 CPLD.

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

config PWM_SPEAR
	tristate "STMicroelectronics SPEAr PWM support"
	depends on PLAT_SPEAR || COMPILE_TEST
	depends on HAS_IOMEM && 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_SPRD
	tristate "Spreadtrum PWM support"
	depends on ARCH_SPRD || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Generic PWM framework driver for the PWM controller on
	  Spreadtrum SoCs.

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

config PWM_STI
	tristate "STiH4xx PWM support"
	depends on ARCH_STI || COMPILE_TEST
	depends on HAS_IOMEM && 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_STM32
	tristate "STMicroelectronics STM32 PWM"
	depends on MFD_STM32_TIMERS || COMPILE_TEST
	help
	  Generic PWM framework driver for STM32 SoCs.

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

config PWM_STM32_LP
	tristate "STMicroelectronics STM32 PWM LP"
	depends on MFD_STM32_LPTIMER || COMPILE_TEST
	help
	  Generic PWM framework driver for STMicroelectronics STM32 SoCs
	  with Low-Power Timer (LPTIM).

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

config PWM_STMPE
	bool "STMPE expander PWM export"
	depends on MFD_STMPE
	help
	  This enables support for the PWMs found in the STMPE I/O
	  expanders.

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_SUNPLUS
	tristate "Sunplus PWM support"
	depends on ARCH_SUNPLUS || COMPILE_TEST
	depends on HAS_IOMEM && OF
	help
	  Generic PWM framework driver for the PWM controller on
	  Sunplus SoCs.

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

config PWM_TEGRA
	tristate "NVIDIA Tegra PWM support"
	depends on ARCH_TEGRA || COMPILE_TEST
	depends on HAS_IOMEM
	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 || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  PWM driver support for the ECAP APWM controller found on TI SOCs

	  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 || ARCH_K3 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  PWM driver support for the EHRPWM controller found on TI SOCs

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

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_VISCONTI
	tristate "Toshiba Visconti PWM support"
	depends on ARCH_VISCONTI || COMPILE_TEST
	help
	  PWM Subsystem driver support for Toshiba Visconti SoCs.

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

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

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

config PWM_XILINX
	tristate "Xilinx AXI Timer PWM support"
	depends on OF_ADDRESS
	depends on COMMON_CLK
	select REGMAP_MMIO
	help
	  PWM driver for Xilinx LogiCORE IP AXI timers. This timer is
	  typically a soft core which may be present in Xilinx FPGAs.
	  This device may also be present in Microblaze soft processors.
	  If you don't have this IP in your design, choose N.

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

endif
