Merge branch 'linux-5.6' of git://github.com/skeggsb/linux into drm-fixes
[linux-2.6-microblaze.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 || ARCH_BRCMSTB
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
332         depends on OMAP_DM_TIMER || COMPILE_TEST
333         help
334           Generic PWM framework driver for OMAP Dual-Mode Timer PWM output
335
336           To compile this driver as a module, choose M here: the module
337           will be called pwm-omap-dmtimer
338
339 config PWM_PCA9685
340         tristate "NXP PCA9685 PWM driver"
341         depends on I2C
342         select REGMAP_I2C
343         help
344           Generic PWM framework driver for NXP PCA9685 LED controller.
345
346           To compile this driver as a module, choose M here: the module
347           will be called pwm-pca9685.
348
349 config PWM_PUV3
350         tristate "PKUnity NetBook-0916 PWM support"
351         depends on ARCH_PUV3
352         help
353           Generic PWM framework driver for PKUnity NetBook-0916.
354
355           To compile this driver as a module, choose M here: the module
356           will be called pwm-puv3.
357
358 config PWM_PXA
359         tristate "PXA PWM support"
360         depends on ARCH_PXA
361         help
362           Generic PWM framework driver for PXA.
363
364           To compile this driver as a module, choose M here: the module
365           will be called pwm-pxa.
366
367 config PWM_RCAR
368         tristate "Renesas R-Car PWM support"
369         depends on ARCH_RENESAS || COMPILE_TEST
370         depends on HAS_IOMEM
371         help
372           This driver exposes the PWM Timer controller found in Renesas
373           R-Car chips through the PWM API.
374
375           To compile this driver as a module, choose M here: the module
376           will be called pwm-rcar.
377
378 config PWM_RENESAS_TPU
379         tristate "Renesas TPU PWM support"
380         depends on ARCH_RENESAS || COMPILE_TEST
381         depends on HAS_IOMEM
382         help
383           This driver exposes the Timer Pulse Unit (TPU) PWM controller found
384           in Renesas chips through the PWM API.
385
386           To compile this driver as a module, choose M here: the module
387           will be called pwm-renesas-tpu.
388
389 config PWM_ROCKCHIP
390         tristate "Rockchip PWM support"
391         depends on ARCH_ROCKCHIP
392         help
393           Generic PWM framework driver for the PWM controller found on
394           Rockchip SoCs.
395
396 config PWM_SAMSUNG
397         tristate "Samsung PWM support"
398         depends on PLAT_SAMSUNG || ARCH_EXYNOS
399         help
400           Generic PWM framework driver for Samsung.
401
402           To compile this driver as a module, choose M here: the module
403           will be called pwm-samsung.
404
405 config PWM_SIFIVE
406         tristate "SiFive PWM support"
407         depends on OF
408         depends on COMMON_CLK
409         depends on RISCV || COMPILE_TEST
410         help
411           Generic PWM framework driver for SiFive SoCs.
412
413           To compile this driver as a module, choose M here: the module
414           will be called pwm-sifive.
415
416 config PWM_SPEAR
417         tristate "STMicroelectronics SPEAr PWM support"
418         depends on PLAT_SPEAR
419         depends on OF
420         help
421           Generic PWM framework driver for the PWM controller on ST
422           SPEAr SoCs.
423
424           To compile this driver as a module, choose M here: the module
425           will be called pwm-spear.
426
427 config PWM_SPRD
428         tristate "Spreadtrum PWM support"
429         depends on ARCH_SPRD || COMPILE_TEST
430         depends on HAS_IOMEM
431         help
432           Generic PWM framework driver for the PWM controller on
433           Spreadtrum SoCs.
434
435           To compile this driver as a module, choose M here: the module
436           will be called pwm-sprd.
437
438 config PWM_STI
439         tristate "STiH4xx PWM support"
440         depends on ARCH_STI
441         depends on OF
442         help
443           Generic PWM framework driver for STiH4xx SoCs.
444
445           To compile this driver as a module, choose M here: the module
446           will be called pwm-sti.
447
448 config PWM_STM32
449         tristate "STMicroelectronics STM32 PWM"
450         depends on MFD_STM32_TIMERS
451         help
452           Generic PWM framework driver for STM32 SoCs.
453
454           To compile this driver as a module, choose M here: the module
455           will be called pwm-stm32.
456
457 config PWM_STM32_LP
458         tristate "STMicroelectronics STM32 PWM LP"
459         depends on MFD_STM32_LPTIMER || COMPILE_TEST
460         help
461           Generic PWM framework driver for STMicroelectronics STM32 SoCs
462           with Low-Power Timer (LPTIM).
463
464           To compile this driver as a module, choose M here: the module
465           will be called pwm-stm32-lp.
466
467 config PWM_STMPE
468         bool "STMPE expander PWM export"
469         depends on MFD_STMPE
470         help
471           This enables support for the PWMs found in the STMPE I/O
472           expanders.
473
474 config PWM_SUN4I
475         tristate "Allwinner PWM support"
476         depends on ARCH_SUNXI || COMPILE_TEST
477         depends on HAS_IOMEM && COMMON_CLK
478         help
479           Generic PWM framework driver for Allwinner SoCs.
480
481           To compile this driver as a module, choose M here: the module
482           will be called pwm-sun4i.
483
484 config PWM_TEGRA
485         tristate "NVIDIA Tegra PWM support"
486         depends on ARCH_TEGRA
487         help
488           Generic PWM framework driver for the PWFM controller found on NVIDIA
489           Tegra SoCs.
490
491           To compile this driver as a module, choose M here: the module
492           will be called pwm-tegra.
493
494 config PWM_TIECAP
495         tristate "ECAP PWM support"
496         depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3
497         help
498           PWM driver support for the ECAP APWM controller found on TI SOCs
499
500           To compile this driver as a module, choose M here: the module
501           will be called pwm-tiecap.
502
503 config PWM_TIEHRPWM
504         tristate "EHRPWM PWM support"
505         depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3
506         help
507           PWM driver support for the EHRPWM controller found on TI SOCs
508
509           To compile this driver as a module, choose M here: the module
510           will be called pwm-tiehrpwm.
511
512 config PWM_TWL
513         tristate "TWL4030/6030 PWM support"
514         depends on TWL4030_CORE
515         help
516           Generic PWM framework driver for TWL4030/6030.
517
518           To compile this driver as a module, choose M here: the module
519           will be called pwm-twl.
520
521 config PWM_TWL_LED
522         tristate "TWL4030/6030 PWM support for LED drivers"
523         depends on TWL4030_CORE
524         help
525           Generic PWM framework driver for TWL4030/6030 LED terminals.
526
527           To compile this driver as a module, choose M here: the module
528           will be called pwm-twl-led.
529
530 config PWM_VT8500
531         tristate "vt8500 PWM support"
532         depends on ARCH_VT8500
533         help
534           Generic PWM framework driver for vt8500.
535
536           To compile this driver as a module, choose M here: the module
537           will be called pwm-vt8500.
538
539 config PWM_ZX
540         tristate "ZTE ZX PWM support"
541         depends on ARCH_ZX
542         help
543           Generic PWM framework driver for ZTE ZX family SoCs.
544
545           To compile this driver as a module, choose M here: the module
546           will be called pwm-zx.
547
548 endif