Merge tag 'pwm/for-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
[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 && OF
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 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_SIFIVE
405         tristate "SiFive PWM support"
406         depends on OF
407         depends on COMMON_CLK
408         depends on RISCV || COMPILE_TEST
409         help
410           Generic PWM framework driver for SiFive SoCs.
411
412           To compile this driver as a module, choose M here: the module
413           will be called pwm-sifive.
414
415 config PWM_SPEAR
416         tristate "STMicroelectronics SPEAr PWM support"
417         depends on PLAT_SPEAR
418         depends on OF
419         help
420           Generic PWM framework driver for the PWM controller on ST
421           SPEAr SoCs.
422
423           To compile this driver as a module, choose M here: the module
424           will be called pwm-spear.
425
426 config PWM_SPRD
427         tristate "Spreadtrum PWM support"
428         depends on ARCH_SPRD || COMPILE_TEST
429         depends on HAS_IOMEM
430         help
431           Generic PWM framework driver for the PWM controller on
432           Spreadtrum SoCs.
433
434           To compile this driver as a module, choose M here: the module
435           will be called pwm-sprd.
436
437 config PWM_STI
438         tristate "STiH4xx PWM support"
439         depends on ARCH_STI
440         depends on OF
441         help
442           Generic PWM framework driver for STiH4xx SoCs.
443
444           To compile this driver as a module, choose M here: the module
445           will be called pwm-sti.
446
447 config PWM_STM32
448         tristate "STMicroelectronics STM32 PWM"
449         depends on MFD_STM32_TIMERS
450         help
451           Generic PWM framework driver for STM32 SoCs.
452
453           To compile this driver as a module, choose M here: the module
454           will be called pwm-stm32.
455
456 config PWM_STM32_LP
457         tristate "STMicroelectronics STM32 PWM LP"
458         depends on MFD_STM32_LPTIMER || COMPILE_TEST
459         help
460           Generic PWM framework driver for STMicroelectronics STM32 SoCs
461           with Low-Power Timer (LPTIM).
462
463           To compile this driver as a module, choose M here: the module
464           will be called pwm-stm32-lp.
465
466 config PWM_STMPE
467         bool "STMPE expander PWM export"
468         depends on MFD_STMPE
469         help
470           This enables support for the PWMs found in the STMPE I/O
471           expanders.
472
473 config PWM_SUN4I
474         tristate "Allwinner PWM support"
475         depends on ARCH_SUNXI || COMPILE_TEST
476         depends on HAS_IOMEM && COMMON_CLK
477         help
478           Generic PWM framework driver for Allwinner SoCs.
479
480           To compile this driver as a module, choose M here: the module
481           will be called pwm-sun4i.
482
483 config PWM_TEGRA
484         tristate "NVIDIA Tegra PWM support"
485         depends on ARCH_TEGRA
486         help
487           Generic PWM framework driver for the PWFM controller found on NVIDIA
488           Tegra SoCs.
489
490           To compile this driver as a module, choose M here: the module
491           will be called pwm-tegra.
492
493 config  PWM_TIECAP
494         tristate "ECAP PWM support"
495         depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3
496         help
497           PWM driver support for the ECAP APWM controller found on TI SOCs
498
499           To compile this driver as a module, choose M here: the module
500           will be called pwm-tiecap.
501
502 config  PWM_TIEHRPWM
503         tristate "EHRPWM PWM support"
504         depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3
505         help
506           PWM driver support for the EHRPWM controller found on TI SOCs
507
508           To compile this driver as a module, choose M here: the module
509           will be called pwm-tiehrpwm.
510
511 config  PWM_TIPWMSS
512         bool
513         default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM)
514         help
515           PWM Subsystem driver support for AM33xx SOC.
516
517           PWM submodules require PWM config space access from submodule
518           drivers and require common parent driver support.
519
520 config PWM_TWL
521         tristate "TWL4030/6030 PWM support"
522         depends on TWL4030_CORE
523         help
524           Generic PWM framework driver for TWL4030/6030.
525
526           To compile this driver as a module, choose M here: the module
527           will be called pwm-twl.
528
529 config PWM_TWL_LED
530         tristate "TWL4030/6030 PWM support for LED drivers"
531         depends on TWL4030_CORE
532         help
533           Generic PWM framework driver for TWL4030/6030 LED terminals.
534
535           To compile this driver as a module, choose M here: the module
536           will be called pwm-twl-led.
537
538 config PWM_VT8500
539         tristate "vt8500 PWM support"
540         depends on ARCH_VT8500
541         help
542           Generic PWM framework driver for vt8500.
543
544           To compile this driver as a module, choose M here: the module
545           will be called pwm-vt8500.
546
547 config PWM_ZX
548         tristate "ZTE ZX PWM support"
549         depends on ARCH_ZX
550         help
551           Generic PWM framework driver for ZTE ZX family SoCs.
552
553           To compile this driver as a module, choose M here: the module
554           will be called pwm-zx.
555
556 endif