dt-bindings: pwm: mtk-disp: add MT8167 SoC binding
[linux-block.git] / drivers / pwm / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
0c2498f1 2menuconfig PWM
b817bf5c 3 bool "Pulse-Width Modulation (PWM) Support"
0c2498f1 4 help
b817bf5c 5 Generic Pulse-Width Modulation (PWM) support.
0c2498f1 6
b817bf5c
TR
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.
0c2498f1
SH
29
30if PWM
31
76abbdde
HS
32config PWM_SYSFS
33 bool
34 default y if SYSFS
35
3ad1f3a3
UKK
36config PWM_DEBUG
37 bool "PWM lowlevel drivers additional checks and debug messages"
38 depends on DEBUG_KERNEL
39 help
40 This option enables some additional checks to help lowlevel driver
41 authors to get their callbacks implemented correctly.
42 It is expected to introduce some runtime overhead and diagnostic
43 output to the kernel log, so only enable while working on a driver.
44
6173f8f4
TR
45config PWM_AB8500
46 tristate "AB8500 PWM support"
47 depends on AB8500_CORE && ARCH_U8500
48 help
49 Generic PWM framework driver for Analog Baseband AB8500.
50
51 To compile this driver as a module, choose M here: the module
52 will be called pwm-ab8500.
53
32b16d46
BS
54config PWM_ATMEL
55 tristate "Atmel PWM support"
e96c0ff4
KK
56 depends on OF
57 depends on ARCH_AT91 || COMPILE_TEST
32b16d46
BS
58 help
59 Generic PWM framework driver for Atmel SoC.
60
61 To compile this driver as a module, choose M here: the module
62 will be called pwm-atmel.
63
2b4984be
BB
64config PWM_ATMEL_HLCDC_PWM
65 tristate "Atmel HLCDC PWM support"
66 depends on MFD_ATMEL_HLCDC
d2048c49 67 depends on HAVE_CLK
2b4984be
BB
68 help
69 Generic PWM framework driver for the PWM output of the HLCDC
70 (Atmel High-end LCD Controller). This PWM output is mainly used
71 to control the LCD backlight.
72
73 To compile this driver as a module, choose M here: the module
74 will be called pwm-atmel-hlcdc.
75
9421bade 76config PWM_ATMEL_TCB
b133d2a1 77 tristate "Atmel TC Block PWM support"
061f8572
AB
78 depends on OF
79 select REGMAP_MMIO
9421bade
BB
80 help
81 Generic PWM framework driver for Atmel Timer Counter Block.
82
83 A Timer Counter Block provides 6 PWM devices grouped by 2.
84 Devices in a given group must have the same period.
85
86 To compile this driver as a module, choose M here: the module
87 will be called pwm-atmel-tcb.
88
daa5abc4
YRDR
89config PWM_BCM_IPROC
90 tristate "iProc PWM support"
5bf22ff3
SB
91 depends on ARCH_BCM_IPROC || COMPILE_TEST
92 depends on COMMON_CLK
93 default ARCH_BCM_IPROC
daa5abc4
YRDR
94 help
95 Generic PWM framework driver for Broadcom iProc PWM block. This
96 block is used in Broadcom iProc SoC's.
97
98 To compile this driver as a module, choose M here: the module
99 will be called pwm-bcm-iproc.
100
6a4e4bff
TK
101config PWM_BCM_KONA
102 tristate "Kona PWM support"
88a053d2
CP
103 depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
104 depends on HAVE_CLK && HAS_IOMEM
105 default ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS
6a4e4bff
TK
106 help
107 Generic PWM framework driver for Broadcom Kona PWM block.
108
109 To compile this driver as a module, choose M here: the module
110 will be called pwm-bcm-kona.
111
e5a06dc5
BT
112config PWM_BCM2835
113 tristate "BCM2835 PWM support"
e96c0ff4 114 depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
e5a06dc5
BT
115 help
116 PWM framework driver for BCM2835 controller (Raspberry Pi)
117
118 To compile this driver as a module, choose M here: the module
119 will be called pwm-bcm2835.
120
59d5c8b1
AT
121config PWM_BERLIN
122 tristate "Marvell Berlin PWM support"
e96c0ff4 123 depends on ARCH_BERLIN || COMPILE_TEST
59d5c8b1
AT
124 help
125 PWM framework driver for Marvell Berlin SoCs.
126
127 To compile this driver as a module, choose M here: the module
128 will be called pwm-berlin.
129
3a9f5957
FF
130config PWM_BRCMSTB
131 tristate "Broadcom STB PWM support"
e96c0ff4 132 depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
3a9f5957
FF
133 help
134 Generic PWM framework driver for the Broadcom Set-top-Box
135 SoCs (BCM7xxx).
136
137 To compile this driver as a module, choose M Here: the module
138 will be called pwm-brcmstb.c.
139
7eb3f6ff
AS
140config PWM_CLPS711X
141 tristate "CLPS711X PWM support"
142 depends on ARCH_CLPS711X || COMPILE_TEST
dec02f98 143 depends on HAS_IOMEM
7eb3f6ff
AS
144 help
145 Generic PWM framework driver for Cirrus Logic CLPS711X.
146
147 To compile this driver as a module, choose M here: the module
148 will be called pwm-clps711x.
149
a3f37a10
SK
150config PWM_CRC
151 bool "Intel Crystalcove (CRC) PWM support"
152 depends on X86 && INTEL_SOC_PMIC
153 help
154 Generic PWM framework driver for Crystalcove (CRC) PMIC based PWM
155 control.
156
1f0d3bb0
BN
157config PWM_CROS_EC
158 tristate "ChromeOS EC PWM driver"
47f11e0b 159 depends on CROS_EC
1f0d3bb0
BN
160 help
161 PWM driver for exposing a PWM attached to the ChromeOS Embedded
162 Controller.
163
a2308698
HS
164config PWM_EP93XX
165 tristate "Cirrus Logic EP93xx PWM support"
e96c0ff4 166 depends on ARCH_EP93XX || COMPILE_TEST
a2308698
HS
167 help
168 Generic PWM framework driver for Cirrus Logic EP93xx.
169
170 To compile this driver as a module, choose M here: the module
171 will be called pwm-ep93xx.
172
b505183b
XL
173config PWM_FSL_FTM
174 tristate "Freescale FlexTimer Module (FTM) PWM support"
36d5be4b 175 depends on HAS_IOMEM
b505183b 176 depends on OF
00018a8a 177 select REGMAP_MMIO
b505183b
XL
178 help
179 Generic FTM PWM framework driver for Freescale VF610 and
180 Layerscape LS-1 SoCs.
181
182 To compile this driver as a module, choose M here: the module
183 will be called pwm-fsl-ftm.
184
d09f0081 185config PWM_HIBVT
186 tristate "HiSilicon BVT PWM support"
187 depends on ARCH_HISI || COMPILE_TEST
188 help
189 Generic PWM framework driver for HiSilicon BVT SoCs.
190
191 To compile this driver as a module, choose M here: the module
192 will be called pwm-hibvt.
193
277bb6a2
NT
194config PWM_IMG
195 tristate "Imagination Technologies PWM driver"
196 depends on HAS_IOMEM
197 depends on MFD_SYSCON
198 depends on COMMON_CLK
199 depends on MIPS || COMPILE_TEST
200 help
201 Generic PWM framework driver for Imagination Technologies
202 PWM block which supports 4 channels.
203
204 To compile this driver as a module, choose M here: the module
205 will be called pwm-img
206
d80f8206
UKK
207config PWM_IMX1
208 tristate "i.MX1 PWM support"
e96c0ff4 209 depends on ARCH_MXC || COMPILE_TEST
29693248 210 help
d80f8206 211 Generic PWM framework driver for i.MX1 and i.MX21
29693248
SH
212
213 To compile this driver as a module, choose M here: the module
d80f8206
UKK
214 will be called pwm-imx1.
215
216config PWM_IMX27
217 tristate "i.MX27 PWM support"
e96c0ff4 218 depends on ARCH_MXC || COMPILE_TEST
d80f8206
UKK
219 help
220 Generic PWM framework driver for i.MX27 and later i.MX SoCs.
221
222 To compile this driver as a module, choose M here: the module
223 will be called pwm-imx27.
29693248 224
738a1cfe
AH
225config PWM_IMX_TPM
226 tristate "i.MX TPM PWM support"
227 depends on ARCH_MXC || COMPILE_TEST
228 depends on HAVE_CLK && HAS_IOMEM
229 help
230 Generic PWM framework driver for i.MX7ULP TPM module, TPM's full
231 name is Low Power Timer/Pulse Width Modulation Module.
232
233 To compile this driver as a module, choose M here: the module
234 will be called pwm-imx-tpm.
235
6f0841a8
JL
236config PWM_IQS620A
237 tristate "Azoteq IQS620A PWM support"
238 depends on MFD_IQS62X || COMPILE_TEST
239 help
240 Generic PWM framework driver for the Azoteq IQS620A multi-function
241 sensor.
242
243 To compile this driver as a module, choose M here: the module will
244 be called pwm-iqs620a.
245
f6b8a570 246config PWM_JZ4740
b4190062 247 tristate "Ingenic JZ47xx PWM support"
b48d49e0 248 depends on MIPS
ce1f9cec 249 depends on COMMON_CLK
c2693514 250 select MFD_SYSCON
f6b8a570 251 help
b4190062 252 Generic PWM framework driver for Ingenic JZ47xx based
f6b8a570
TR
253 machines.
254
255 To compile this driver as a module, choose M here: the module
256 will be called pwm-jz4740.
257
bd899ceb
VA
258config PWM_KEEMBAY
259 tristate "Intel Keem Bay PWM driver"
260 depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
261 help
262 The platform driver for Intel Keem Bay PWM controller.
263
264 To compile this driver as a module, choose M here: the module
265 will be called pwm-keembay.
266
af66b3c0
MK
267config PWM_LP3943
268 tristate "TI/National Semiconductor LP3943 PWM support"
269 depends on MFD_LP3943
270 help
271 Generic PWM framework driver for LP3943 which supports two PWM
272 channels.
273
274 To compile this driver as a module, choose M here: the module
275 will be called pwm-lp3943.
276
841e6f90
AA
277config PWM_LPC18XX_SCT
278 tristate "LPC18xx/43xx PWM/SCT support"
e96c0ff4 279 depends on ARCH_LPC18XX || COMPILE_TEST
841e6f90
AA
280 help
281 Generic PWM framework driver for NXP LPC18xx PWM/SCT which
282 supports 16 channels.
283 A maximum of 15 channels can be requested simultaneously and
284 must have the same period.
285
286 To compile this driver as a module, choose M here: the module
287 will be called pwm-lpc18xx-sct.
288
2132fa8d
APS
289config PWM_LPC32XX
290 tristate "LPC32XX PWM support"
e96c0ff4 291 depends on ARCH_LPC32XX || COMPILE_TEST
2132fa8d
APS
292 help
293 Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
294 PWM controllers.
295
296 To compile this driver as a module, choose M here: the module
297 will be called pwm-lpc32xx.
298
d16a5aa9 299config PWM_LPSS
6f90a00c 300 tristate
d16a5aa9 301
c558e39e
AS
302config PWM_LPSS_PCI
303 tristate "Intel LPSS PWM PCI driver"
6f90a00c
AS
304 depends on X86 && PCI
305 select PWM_LPSS
c558e39e
AS
306 help
307 The PCI driver for Intel Low Power Subsystem PWM controller.
308
309 To compile this driver as a module, choose M here: the module
310 will be called pwm-lpss-pci.
311
312config PWM_LPSS_PLATFORM
313 tristate "Intel LPSS PWM platform driver"
6f90a00c
AS
314 depends on X86 && ACPI
315 select PWM_LPSS
c558e39e
AS
316 help
317 The platform driver for Intel Low Power Subsystem PWM controller.
318
319 To compile this driver as a module, choose M here: the module
320 will be called pwm-lpss-platform.
321
211ed630
NA
322config PWM_MESON
323 tristate "Amlogic Meson PWM driver"
e96c0ff4
KK
324 depends on ARCH_MESON || COMPILE_TEST
325 depends on COMMON_CLK
211ed630
NA
326 help
327 The platform driver for Amlogic Meson PWM controller.
328
329 To compile this driver as a module, choose M here: the module
330 will be called pwm-meson.
331
7e3b7dc7
YH
332config PWM_MTK_DISP
333 tristate "MediaTek display PWM driver"
334 depends on ARCH_MEDIATEK || COMPILE_TEST
335 depends on HAS_IOMEM
336 help
337 Generic PWM framework driver for MediaTek disp-pwm device.
338 The PWM is used to control the backlight brightness for display.
339
340 To compile this driver as a module, choose M here: the module
341 will be called pwm-mtk-disp.
342
caf065f8
JC
343config PWM_MEDIATEK
344 tristate "MediaTek PWM support"
8cdc43af 345 depends on ARCH_MEDIATEK || RALINK || COMPILE_TEST
caf065f8
JC
346 help
347 Generic PWM framework driver for Mediatek ARM SoC.
348
349 To compile this driver as a module, choose M here: the module
aa12d7a7 350 will be called pwm-mediatek.
caf065f8 351
4dce82c1
SG
352config PWM_MXS
353 tristate "Freescale MXS PWM support"
e96c0ff4
KK
354 depends on OF
355 depends on ARCH_MXS || COMPILE_TEST
01bf32e9 356 select STMP_DEVICE
4dce82c1
SG
357 help
358 Generic PWM framework driver for Freescale MXS.
359
360 To compile this driver as a module, choose M here: the module
361 will be called pwm-mxs.
362
6604c655
NA
363config PWM_OMAP_DMTIMER
364 tristate "OMAP Dual-Mode Timer PWM support"
9f2919e9
UKK
365 depends on OF
366 depends on OMAP_DM_TIMER || COMPILE_TEST
6604c655
NA
367 help
368 Generic PWM framework driver for OMAP Dual-Mode Timer PWM output
369
370 To compile this driver as a module, choose M here: the module
371 will be called pwm-omap-dmtimer
372
88b613e6
ST
373config PWM_PCA9685
374 tristate "NXP PCA9685 PWM driver"
912b8439 375 depends on I2C
2c80a492 376 select REGMAP_I2C
88b613e6
ST
377 help
378 Generic PWM framework driver for NXP PCA9685 LED controller.
379
380 To compile this driver as a module, choose M here: the module
381 will be called pwm-pca9685.
382
17b2b478
TR
383config PWM_PXA
384 tristate "PXA PWM support"
e96c0ff4 385 depends on ARCH_PXA || COMPILE_TEST
17b2b478
TR
386 help
387 Generic PWM framework driver for PXA.
388
389 To compile this driver as a module, choose M here: the module
390 will be called pwm-pxa.
391
ed6c1476
YS
392config PWM_RCAR
393 tristate "Renesas R-Car PWM support"
48169988 394 depends on ARCH_RENESAS || COMPILE_TEST
ed6c1476
YS
395 depends on HAS_IOMEM
396 help
397 This driver exposes the PWM Timer controller found in Renesas
398 R-Car chips through the PWM API.
399
400 To compile this driver as a module, choose M here: the module
401 will be called pwm-rcar.
402
99b82abb
LP
403config PWM_RENESAS_TPU
404 tristate "Renesas TPU PWM support"
03d99531 405 depends on ARCH_RENESAS || COMPILE_TEST
2974b098 406 depends on HAS_IOMEM
99b82abb
LP
407 help
408 This driver exposes the Timer Pulse Unit (TPU) PWM controller found
409 in Renesas chips through the PWM API.
410
411 To compile this driver as a module, choose M here: the module
412 will be called pwm-renesas-tpu.
413
101353c8
BG
414config PWM_ROCKCHIP
415 tristate "Rockchip PWM support"
e96c0ff4 416 depends on ARCH_ROCKCHIP || COMPILE_TEST
101353c8
BG
417 help
418 Generic PWM framework driver for the PWM controller found on
419 Rockchip SoCs.
420
215c29d3 421config PWM_SAMSUNG
b133d2a1 422 tristate "Samsung PWM support"
db8230d2 423 depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
215c29d3
SH
424 help
425 Generic PWM framework driver for Samsung.
426
427 To compile this driver as a module, choose M here: the module
428 will be called pwm-samsung.
429
9e37a53e
YS
430config PWM_SIFIVE
431 tristate "SiFive PWM support"
432 depends on OF
433 depends on COMMON_CLK
434 depends on RISCV || COMPILE_TEST
435 help
436 Generic PWM framework driver for SiFive SoCs.
437
438 To compile this driver as a module, choose M here: the module
439 will be called pwm-sifive.
440
9db33d22
MW
441config PWM_SL28CPLD
442 tristate "Kontron sl28cpld PWM support"
443 depends on MFD_SL28CPLD || COMPILE_TEST
444 help
445 Generic PWM framework driver for board management controller
446 found on the Kontron sl28 CPLD.
447
448 To compile this driver as a module, choose M here: the module
449 will be called pwm-sl28cpld.
450
ce20364b
SH
451config PWM_SPEAR
452 tristate "STMicroelectronics SPEAr PWM support"
e96c0ff4 453 depends on PLAT_SPEAR || COMPILE_TEST
ce20364b
SH
454 depends on OF
455 help
456 Generic PWM framework driver for the PWM controller on ST
457 SPEAr SoCs.
458
459 To compile this driver as a module, choose M here: the module
460 will be called pwm-spear.
461
8aae4b02
BW
462config PWM_SPRD
463 tristate "Spreadtrum PWM support"
464 depends on ARCH_SPRD || COMPILE_TEST
465 depends on HAS_IOMEM
466 help
467 Generic PWM framework driver for the PWM controller on
468 Spreadtrum SoCs.
469
470 To compile this driver as a module, choose M here: the module
471 will be called pwm-sprd.
472
378fe115
LJ
473config PWM_STI
474 tristate "STiH4xx PWM support"
e96c0ff4 475 depends on ARCH_STI || COMPILE_TEST
378fe115
LJ
476 depends on OF
477 help
478 Generic PWM framework driver for STiH4xx SoCs.
479
480 To compile this driver as a module, choose M here: the module
481 will be called pwm-sti.
482
7edf7369
BG
483config PWM_STM32
484 tristate "STMicroelectronics STM32 PWM"
e96c0ff4 485 depends on MFD_STM32_TIMERS || COMPILE_TEST
7edf7369
BG
486 help
487 Generic PWM framework driver for STM32 SoCs.
488
489 To compile this driver as a module, choose M here: the module
490 will be called pwm-stm32.
491
e70a540b
FG
492config PWM_STM32_LP
493 tristate "STMicroelectronics STM32 PWM LP"
494 depends on MFD_STM32_LPTIMER || COMPILE_TEST
495 help
496 Generic PWM framework driver for STMicroelectronics STM32 SoCs
497 with Low-Power Timer (LPTIM).
498
499 To compile this driver as a module, choose M here: the module
500 will be called pwm-stm32-lp.
501
ef1f09ec
LW
502config PWM_STMPE
503 bool "STMPE expander PWM export"
504 depends on MFD_STMPE
505 help
506 This enables support for the PWMs found in the STMPE I/O
507 expanders.
508
09853ce7
AB
509config PWM_SUN4I
510 tristate "Allwinner PWM support"
511 depends on ARCH_SUNXI || COMPILE_TEST
512 depends on HAS_IOMEM && COMMON_CLK
513 help
514 Generic PWM framework driver for Allwinner SoCs.
515
516 To compile this driver as a module, choose M here: the module
517 will be called pwm-sun4i.
518
0134b932
TR
519config PWM_TEGRA
520 tristate "NVIDIA Tegra PWM support"
e96c0ff4 521 depends on ARCH_TEGRA || COMPILE_TEST
0134b932
TR
522 help
523 Generic PWM framework driver for the PWFM controller found on NVIDIA
524 Tegra SoCs.
525
526 To compile this driver as a module, choose M here: the module
527 will be called pwm-tegra.
528
f24e5641 529config PWM_TIECAP
8e0cb05b 530 tristate "ECAP PWM support"
e96c0ff4 531 depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
8e0cb05b 532 help
6f37709f 533 PWM driver support for the ECAP APWM controller found on TI SOCs
8e0cb05b
PA
534
535 To compile this driver as a module, choose M here: the module
536 will be called pwm-tiecap.
537
f24e5641 538config PWM_TIEHRPWM
19891b20 539 tristate "EHRPWM PWM support"
e96c0ff4 540 depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3 || COMPILE_TEST
19891b20 541 help
efc80fb3 542 PWM driver support for the EHRPWM controller found on TI SOCs
19891b20
PA
543
544 To compile this driver as a module, choose M here: the module
545 will be called pwm-tiehrpwm.
546
3744c263
PU
547config PWM_TWL
548 tristate "TWL4030/6030 PWM support"
549 depends on TWL4030_CORE
550 help
551 Generic PWM framework driver for TWL4030/6030.
552
553 To compile this driver as a module, choose M here: the module
554 will be called pwm-twl.
555
aa765647
PU
556config PWM_TWL_LED
557 tristate "TWL4030/6030 PWM support for LED drivers"
558 depends on TWL4030_CORE
559 help
560 Generic PWM framework driver for TWL4030/6030 LED terminals.
561
562 To compile this driver as a module, choose M here: the module
563 will be called pwm-twl-led.
564
a245cceb 565config PWM_VT8500
b133d2a1 566 tristate "vt8500 PWM support"
e96c0ff4 567 depends on ARCH_VT8500 || COMPILE_TEST
a245cceb
SH
568 help
569 Generic PWM framework driver for vt8500.
570
571 To compile this driver as a module, choose M here: the module
572 will be called pwm-vt8500.
573
4836193c
SG
574config PWM_ZX
575 tristate "ZTE ZX PWM support"
e96c0ff4 576 depends on ARCH_ZX || COMPILE_TEST
4836193c
SG
577 help
578 Generic PWM framework driver for ZTE ZX family SoCs.
579
580 To compile this driver as a module, choose M here: the module
581 will be called pwm-zx.
582
0c2498f1 583endif