9421bade07
This patch adds a PWM driver based on Atmel Timer Counter Block. The Timer Counter Block is used in Waveform generator mode. A Timer Counter Block provides up to 6 PWM devices grouped by 2: * group 0 = PWM 0 and 1 * group 1 = PWM 2 and 3 * group 2 = PMW 4 and 5 PWM devices in a given group must be configured with the same period value. If a PWM device in a group tries to change the period value and the other device is already configured with a different value an error will be returned. This driver requires device tree support. The Timer Counter Block number used to create a PWM chip is given by the tc-block field in an "atmel,tcb-pwm" compatible node. This patch was tested on kizbox board (at91sam9g20 SoC) with pwm-leds. Signed-off-by: Boris BREZILLON <linux-arm@overkiz.com> Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
206 lines
5.6 KiB
Text
206 lines
5.6 KiB
Text
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_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_TCB
|
|
tristate "TC Block PWM"
|
|
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_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_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_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_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_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_SAMSUNG
|
|
tristate "Samsung pwm support"
|
|
depends on PLAT_SAMSUNG
|
|
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_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 SOC_AM33XX
|
|
select PWM_TIPWMSS
|
|
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 SOC_AM33XX
|
|
select PWM_TIPWMSS
|
|
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
|
|
depends on SOC_AM33XX && (PWM_TIEHRPWM || PWM_TIECAP)
|
|
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
|