Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / drivers / pwm / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig PWM
3         bool "Pulse-Width Modulation (PWM) Support"
4         help
5           Generic Pulse-Width Modulation (PWM) support.
6
7           In Pulse-Width Modulation, a variation of the width of pulses
8           in a rectangular pulse signal is used as a means to alter the
9           average power of the signal. Applications include efficient
10           power delivery and voltage regulation. In computer systems,
11           PWMs are commonly used to control fans or the brightness of
12           display backlights.
13
14           This framework provides a generic interface to PWM devices
15           within the Linux kernel. On the driver side it provides an API
16           to register and unregister a PWM chip, an abstraction of a PWM
17           controller, that supports one or more PWM devices. Client
18           drivers can request PWM devices and use the generic framework
19           to configure as well as enable and disable them.
20
21           This generic framework replaces the legacy PWM framework which
22           allows only a single driver implementing the required API. Not
23           all legacy implementations have been ported to the framework
24           yet. The framework provides an API that is backward compatible
25           with the legacy framework so that existing client drivers
26           continue to work as expected.
27
28           If unsure, say no.
29
30 if PWM
31
32 config PWM_SYSFS
33         bool
34         default y if SYSFS
35
36 config PWM_AB8500
37         tristate "AB8500 PWM support"
38         depends on AB8500_CORE && ARCH_U8500
39         help
40           Generic PWM framework driver for Analog Baseband AB8500.
41
42           To compile this driver as a module, choose M here: the module
43           will be called pwm-ab8500.
44
45 config PWM_ATMEL
46         tristate "Atmel PWM support"
47         depends on ARCH_AT91
48         help
49           Generic PWM framework driver for Atmel SoC.
50
51           To compile this driver as a module, choose M here: the module
52           will be called pwm-atmel.
53
54 config PWM_ATMEL_HLCDC_PWM
55         tristate "Atmel HLCDC PWM support"
56         depends on MFD_ATMEL_HLCDC
57         depends on HAVE_CLK
58         help
59           Generic PWM framework driver for the PWM output of the HLCDC
60           (Atmel High-end LCD Controller). This PWM output is mainly used
61           to control the LCD backlight.
62
63           To compile this driver as a module, choose M here: the module
64           will be called pwm-atmel-hlcdc.
65
66 config PWM_ATMEL_TCB
67         tristate "Atmel TC Block PWM support"
68         depends on ATMEL_TCLIB && OF
69         help
70           Generic PWM framework driver for Atmel Timer Counter Block.
71
72           A Timer Counter Block provides 6 PWM devices grouped by 2.
73           Devices in a given group must have the same period.
74
75           To compile this driver as a module, choose M here: the module
76           will be called pwm-atmel-tcb.
77
78 config PWM_BCM_IPROC
79         tristate "iProc PWM support"
80         depends on ARCH_BCM_IPROC || COMPILE_TEST
81         depends on COMMON_CLK
82         default ARCH_BCM_IPROC
83         help
84           Generic PWM framework driver for Broadcom iProc PWM block. This
85           block is used in Broadcom iProc SoC's.
86
87           To compile this driver as a module, choose M here: the module
88           will be called pwm-bcm-iproc.
89
90 config PWM_BCM_KONA
91         tristate "Kona PWM support"
92         depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
93         depends on HAVE_CLK && HAS_IOMEM
94         default ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS
95         help
96           Generic PWM framework driver for Broadcom Kona PWM block.
97
98           To compile this driver as a module, choose M here: the module
99           will be called pwm-bcm-kona.
100
101 config PWM_BCM2835
102         tristate "BCM2835 PWM support"
103         depends on ARCH_BCM2835
104         help
105           PWM framework driver for BCM2835 controller (Raspberry Pi)
106
107           To compile this driver as a module, choose M here: the module
108           will be called pwm-bcm2835.
109
110 config PWM_BERLIN
111         tristate "Marvell Berlin PWM support"
112         depends on ARCH_BERLIN
113         help
114           PWM framework driver for Marvell Berlin SoCs.
115
116           To compile this driver as a module, choose M here: the module
117           will be called pwm-berlin.
118
119 config PWM_BRCMSTB
120         tristate "Broadcom STB PWM support"
121         depends on ARCH_BRCMSTB || BMIPS_GENERIC
122         help
123           Generic PWM framework driver for the Broadcom Set-top-Box
124           SoCs (BCM7xxx).
125
126           To compile this driver as a module, choose M Here: the module
127           will be called pwm-brcmstb.c.
128
129 config PWM_CLPS711X
130         tristate "CLPS711X PWM support"
131         depends on ARCH_CLPS711X || COMPILE_TEST
132         depends on HAS_IOMEM
133         help
134           Generic PWM framework driver for Cirrus Logic CLPS711X.
135
136           To compile this driver as a module, choose M here: the module
137           will be called pwm-clps711x.
138
139 config PWM_CRC
140         bool "Intel Crystalcove (CRC) PWM support"
141         depends on X86 && INTEL_SOC_PMIC
142         help
143           Generic PWM framework driver for Crystalcove (CRC) PMIC based PWM
144           control.
145
146 config PWM_CROS_EC
147         tristate "ChromeOS EC PWM driver"
148         depends on MFD_CROS_EC
149         help
150           PWM driver for exposing a PWM attached to the ChromeOS Embedded
151           Controller.
152
153 config PWM_EP93XX
154         tristate "Cirrus Logic EP93xx PWM support"
155         depends on ARCH_EP93XX
156         help
157           Generic PWM framework driver for Cirrus Logic EP93xx.
158
159           To compile this driver as a module, choose M here: the module
160           will be called pwm-ep93xx.
161
162 config PWM_FSL_FTM
163         tristate "Freescale FlexTimer Module (FTM) PWM support"
164         depends on HAS_IOMEM
165         depends on OF
166         select REGMAP_MMIO
167         help
168           Generic FTM PWM framework driver for Freescale VF610 and
169           Layerscape LS-1 SoCs.
170
171           To compile this driver as a module, choose M here: the module
172           will be called pwm-fsl-ftm.
173
174 config PWM_HIBVT
175         tristate "HiSilicon BVT PWM support"
176         depends on ARCH_HISI || COMPILE_TEST
177         help
178           Generic PWM framework driver for HiSilicon BVT SoCs.
179
180           To compile this driver as a module, choose M here: the module
181           will be called pwm-hibvt.
182
183 config PWM_IMG
184         tristate "Imagination Technologies PWM driver"
185         depends on HAS_IOMEM
186         depends on MFD_SYSCON
187         depends on COMMON_CLK
188         depends on MIPS || COMPILE_TEST
189         help
190           Generic PWM framework driver for Imagination Technologies
191           PWM block which supports 4 channels.
192
193           To compile this driver as a module, choose M here: the module
194           will be called pwm-img
195
196 config PWM_IMX1
197         tristate "i.MX1 PWM support"
198         depends on ARCH_MXC
199         help
200           Generic PWM framework driver for i.MX1 and i.MX21
201
202           To compile this driver as a module, choose M here: the module
203           will be called pwm-imx1.
204
205 config PWM_IMX27
206         tristate "i.MX27 PWM support"
207         depends on ARCH_MXC
208         help
209           Generic PWM framework driver for i.MX27 and later i.MX SoCs.
210
211           To compile this driver as a module, choose M here: the module
212           will be called pwm-imx27.
213
214 config PWM_IMX_TPM
215         tristate "i.MX TPM PWM support"
216         depends on ARCH_MXC || COMPILE_TEST
217         depends on HAVE_CLK && HAS_IOMEM
218         help
219           Generic PWM framework driver for i.MX7ULP TPM module, TPM's full
220           name is Low Power Timer/Pulse Width Modulation Module.
221
222           To compile this driver as a module, choose M here: the module
223           will be called pwm-imx-tpm.
224
225 config PWM_JZ4740
226         tristate "Ingenic JZ47xx PWM support"
227         depends on MACH_INGENIC
228         help
229           Generic PWM framework driver for Ingenic JZ47xx based
230           machines.
231
232           To compile this driver as a module, choose M here: the module
233           will be called pwm-jz4740.
234
235 config PWM_LP3943
236         tristate "TI/National Semiconductor LP3943 PWM support"
237         depends on MFD_LP3943
238         help
239           Generic PWM framework driver for LP3943 which supports two PWM
240           channels.
241
242           To compile this driver as a module, choose M here: the module
243           will be called pwm-lp3943.
244
245 config PWM_LPC18XX_SCT
246         tristate "LPC18xx/43xx PWM/SCT support"
247         depends on ARCH_LPC18XX
248         help
249           Generic PWM framework driver for NXP LPC18xx PWM/SCT which
250           supports 16 channels.
251           A maximum of 15 channels can be requested simultaneously and
252           must have the same period.
253
254           To compile this driver as a module, choose M here: the module
255           will be called pwm-lpc18xx-sct.
256
257 config PWM_LPC32XX
258         tristate "LPC32XX PWM support"
259         depends on ARCH_LPC32XX
260         help
261           Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
262           PWM controllers.
263
264           To compile this driver as a module, choose M here: the module
265           will be called pwm-lpc32xx.
266
267 config PWM_LPSS
268         tristate
269
270 config PWM_LPSS_PCI
271         tristate "Intel LPSS PWM PCI driver"
272         depends on X86 && PCI
273         select PWM_LPSS
274         help
275           The PCI driver for Intel Low Power Subsystem PWM controller.
276
277           To compile this driver as a module, choose M here: the module
278           will be called pwm-lpss-pci.
279
280 config PWM_LPSS_PLATFORM
281         tristate "Intel LPSS PWM platform driver"
282         depends on X86 && ACPI
283         select PWM_LPSS
284         help
285           The platform driver for Intel Low Power Subsystem PWM controller.
286
287           To compile this driver as a module, choose M here: the module
288           will be called pwm-lpss-platform.
289
290 config PWM_MESON
291         tristate "Amlogic Meson PWM driver"
292         depends on ARCH_MESON
293         help
294           The platform driver for Amlogic Meson PWM controller.
295
296           To compile this driver as a module, choose M here: the module
297           will be called pwm-meson.
298
299 config PWM_MTK_DISP
300         tristate "MediaTek display PWM driver"
301         depends on ARCH_MEDIATEK || COMPILE_TEST
302         depends on HAS_IOMEM
303         help
304           Generic PWM framework driver for MediaTek disp-pwm device.
305           The PWM is used to control the backlight brightness for display.
306
307           To compile this driver as a module, choose M here: the module
308           will be called pwm-mtk-disp.
309
310 config PWM_MEDIATEK
311         tristate "MediaTek PWM support"
312         depends on ARCH_MEDIATEK || RALINK || COMPILE_TEST
313         help
314           Generic PWM framework driver for Mediatek ARM SoC.
315
316           To compile this driver as a module, choose M here: the module
317           will be called pwm-mediatek.
318
319 config PWM_MXS
320         tristate "Freescale MXS PWM support"
321         depends on ARCH_MXS && OF
322         select STMP_DEVICE
323         help
324           Generic PWM framework driver for Freescale MXS.
325
326           To compile this driver as a module, choose M here: the module
327           will be called pwm-mxs.
328
329 config PWM_OMAP_DMTIMER
330         tristate "OMAP Dual-Mode Timer PWM support"
331         depends on OF && ARCH_OMAP && OMAP_DM_TIMER
332         help
333           Generic PWM framework driver for OMAP Dual-Mode Timer PWM output
334
335           To compile this driver as a module, choose M here: the module
336           will be called pwm-omap-dmtimer
337
338 config PWM_PCA9685
339         tristate "NXP PCA9685 PWM driver"
340         depends on I2C
341         select REGMAP_I2C
342         help
343           Generic PWM framework driver for NXP PCA9685 LED controller.
344
345           To compile this driver as a module, choose M here: the module
346           will be called pwm-pca9685.
347
348 config PWM_PUV3
349         tristate "PKUnity NetBook-0916 PWM support"
350         depends on ARCH_PUV3
351         help
352           Generic PWM framework driver for PKUnity NetBook-0916.
353
354           To compile this driver as a module, choose M here: the module
355           will be called pwm-puv3.
356
357 config PWM_PXA
358         tristate "PXA PWM support"
359         depends on ARCH_PXA
360         help
361           Generic PWM framework driver for PXA.
362
363           To compile this driver as a module, choose M here: the module
364           will be called pwm-pxa.
365
366 config PWM_RCAR
367         tristate "Renesas R-Car PWM support"
368         depends on ARCH_RENESAS || COMPILE_TEST
369         depends on HAS_IOMEM
370         help
371           This driver exposes the PWM Timer controller found in Renesas
372           R-Car chips through the PWM API.
373
374           To compile this driver as a module, choose M here: the module
375           will be called pwm-rcar.
376
377 config PWM_RENESAS_TPU
378         tristate "Renesas TPU PWM support"
379         depends on ARCH_RENESAS || COMPILE_TEST
380         depends on HAS_IOMEM
381         help
382           This driver exposes the Timer Pulse Unit (TPU) PWM controller found
383           in Renesas chips through the PWM API.
384
385           To compile this driver as a module, choose M here: the module
386           will be called pwm-renesas-tpu.
387
388 config PWM_ROCKCHIP
389         tristate "Rockchip PWM support"
390         depends on ARCH_ROCKCHIP
391         help
392           Generic PWM framework driver for the PWM controller found on
393           Rockchip SoCs.
394
395 config PWM_SAMSUNG
396         tristate "Samsung PWM support"
397         depends on PLAT_SAMSUNG || ARCH_EXYNOS
398         help
399           Generic PWM framework driver for Samsung.
400
401           To compile this driver as a module, choose M here: the module
402           will be called pwm-samsung.
403
404 config PWM_SPEAR
405         tristate "STMicroelectronics SPEAr PWM support"
406         depends on PLAT_SPEAR
407         depends on OF
408         help
409           Generic PWM framework driver for the PWM controller on ST
410           SPEAr SoCs.
411
412           To compile this driver as a module, choose M here: the module
413           will be called pwm-spear.
414
415 config PWM_STI
416         tristate "STiH4xx PWM support"
417         depends on ARCH_STI
418         depends on OF
419         help
420           Generic PWM framework driver for STiH4xx SoCs.
421
422           To compile this driver as a module, choose M here: the module
423           will be called pwm-sti.
424
425 config PWM_STM32
426         tristate "STMicroelectronics STM32 PWM"
427         depends on MFD_STM32_TIMERS
428         help
429           Generic PWM framework driver for STM32 SoCs.
430
431           To compile this driver as a module, choose M here: the module
432           will be called pwm-stm32.
433
434 config PWM_STM32_LP
435         tristate "STMicroelectronics STM32 PWM LP"
436         depends on MFD_STM32_LPTIMER || COMPILE_TEST
437         help
438           Generic PWM framework driver for STMicroelectronics STM32 SoCs
439           with Low-Power Timer (LPTIM).
440
441           To compile this driver as a module, choose M here: the module
442           will be called pwm-stm32-lp.
443
444 config PWM_STMPE
445         bool "STMPE expander PWM export"
446         depends on MFD_STMPE
447         help
448           This enables support for the PWMs found in the STMPE I/O
449           expanders.
450
451 config PWM_SUN4I
452         tristate "Allwinner PWM support"
453         depends on ARCH_SUNXI || COMPILE_TEST
454         depends on HAS_IOMEM && COMMON_CLK
455         help
456           Generic PWM framework driver for Allwinner SoCs.
457
458           To compile this driver as a module, choose M here: the module
459           will be called pwm-sun4i.
460
461 config PWM_TEGRA
462         tristate "NVIDIA Tegra PWM support"
463         depends on ARCH_TEGRA
464         help
465           Generic PWM framework driver for the PWFM controller found on NVIDIA
466           Tegra SoCs.
467
468           To compile this driver as a module, choose M here: the module
469           will be called pwm-tegra.
470
471 config  PWM_TIECAP
472         tristate "ECAP PWM support"
473         depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3
474         help
475           PWM driver support for the ECAP APWM controller found on TI SOCs
476
477           To compile this driver as a module, choose M here: the module
478           will be called pwm-tiecap.
479
480 config  PWM_TIEHRPWM
481         tristate "EHRPWM PWM support"
482         depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3
483         help
484           PWM driver support for the EHRPWM controller found on TI SOCs
485
486           To compile this driver as a module, choose M here: the module
487           will be called pwm-tiehrpwm.
488
489 config  PWM_TIPWMSS
490         bool
491         default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM)
492         help
493           PWM Subsystem driver support for AM33xx SOC.
494
495           PWM submodules require PWM config space access from submodule
496           drivers and require common parent driver support.
497
498 config PWM_TWL
499         tristate "TWL4030/6030 PWM support"
500         depends on TWL4030_CORE
501         help
502           Generic PWM framework driver for TWL4030/6030.
503
504           To compile this driver as a module, choose M here: the module
505           will be called pwm-twl.
506
507 config PWM_TWL_LED
508         tristate "TWL4030/6030 PWM support for LED drivers"
509         depends on TWL4030_CORE
510         help
511           Generic PWM framework driver for TWL4030/6030 LED terminals.
512
513           To compile this driver as a module, choose M here: the module
514           will be called pwm-twl-led.
515
516 config PWM_VT8500
517         tristate "vt8500 PWM support"
518         depends on ARCH_VT8500
519         help
520           Generic PWM framework driver for vt8500.
521
522           To compile this driver as a module, choose M here: the module
523           will be called pwm-vt8500.
524
525 config PWM_ZX
526         tristate "ZTE ZX PWM support"
527         depends on ARCH_ZX
528         help
529           Generic PWM framework driver for ZTE ZX family SoCs.
530
531           To compile this driver as a module, choose M here: the module
532           will be called pwm-zx.
533
534 endif