hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/pwm/Kconfig
....@@ -1,3 +1,4 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 menuconfig PWM
23 bool "Pulse-Width Modulation (PWM) Support"
34 help
....@@ -32,6 +33,15 @@
3233 bool
3334 default y if SYSFS
3435
36
+config 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
+
3545 config PWM_AB8500
3646 tristate "AB8500 PWM support"
3747 depends on AB8500_CORE && ARCH_U8500
....@@ -43,7 +53,8 @@
4353
4454 config PWM_ATMEL
4555 tristate "Atmel PWM support"
46
- depends on ARCH_AT91
56
+ depends on OF
57
+ depends on ARCH_AT91 || COMPILE_TEST
4758 help
4859 Generic PWM framework driver for Atmel SoC.
4960
....@@ -88,7 +99,9 @@
8899
89100 config PWM_BCM_KONA
90101 tristate "Kona PWM support"
91
- depends on ARCH_BCM_MOBILE
102
+ depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
103
+ depends on HAVE_CLK && HAS_IOMEM
104
+ default ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS
92105 help
93106 Generic PWM framework driver for Broadcom Kona PWM block.
94107
....@@ -97,7 +110,7 @@
97110
98111 config PWM_BCM2835
99112 tristate "BCM2835 PWM support"
100
- depends on ARCH_BCM2835
113
+ depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
101114 help
102115 PWM framework driver for BCM2835 controller (Raspberry Pi)
103116
....@@ -106,7 +119,7 @@
106119
107120 config PWM_BERLIN
108121 tristate "Marvell Berlin PWM support"
109
- depends on ARCH_BERLIN
122
+ depends on ARCH_BERLIN || COMPILE_TEST
110123 help
111124 PWM framework driver for Marvell Berlin SoCs.
112125
....@@ -115,7 +128,7 @@
115128
116129 config PWM_BRCMSTB
117130 tristate "Broadcom STB PWM support"
118
- depends on ARCH_BRCMSTB || BMIPS_GENERIC
131
+ depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
119132 help
120133 Generic PWM framework driver for the Broadcom Set-top-Box
121134 SoCs (BCM7xxx).
....@@ -142,14 +155,14 @@
142155
143156 config PWM_CROS_EC
144157 tristate "ChromeOS EC PWM driver"
145
- depends on MFD_CROS_EC
158
+ depends on CROS_EC
146159 help
147160 PWM driver for exposing a PWM attached to the ChromeOS Embedded
148161 Controller.
149162
150163 config PWM_EP93XX
151164 tristate "Cirrus Logic EP93xx PWM support"
152
- depends on ARCH_EP93XX
165
+ depends on ARCH_EP93XX || COMPILE_TEST
153166 help
154167 Generic PWM framework driver for Cirrus Logic EP93xx.
155168
....@@ -205,18 +218,50 @@
205218 To compile this driver as a module, choose M here: the module
206219 will be called pwm-img
207220
208
-config PWM_IMX
209
- tristate "i.MX PWM support"
210
- depends on ARCH_MXC
221
+config PWM_IMX1
222
+ tristate "i.MX1 PWM support"
223
+ depends on ARCH_MXC || COMPILE_TEST
211224 help
212
- Generic PWM framework driver for i.MX.
225
+ Generic PWM framework driver for i.MX1 and i.MX21
213226
214227 To compile this driver as a module, choose M here: the module
215
- will be called pwm-imx.
228
+ will be called pwm-imx1.
229
+
230
+config PWM_IMX27
231
+ tristate "i.MX27 PWM support"
232
+ depends on ARCH_MXC || COMPILE_TEST
233
+ help
234
+ Generic PWM framework driver for i.MX27 and later i.MX SoCs.
235
+
236
+ To compile this driver as a module, choose M here: the module
237
+ will be called pwm-imx27.
238
+
239
+config PWM_IMX_TPM
240
+ tristate "i.MX TPM PWM support"
241
+ depends on ARCH_MXC || COMPILE_TEST
242
+ depends on HAVE_CLK && HAS_IOMEM
243
+ help
244
+ Generic PWM framework driver for i.MX7ULP TPM module, TPM's full
245
+ name is Low Power Timer/Pulse Width Modulation Module.
246
+
247
+ To compile this driver as a module, choose M here: the module
248
+ will be called pwm-imx-tpm.
249
+
250
+config PWM_IQS620A
251
+ tristate "Azoteq IQS620A PWM support"
252
+ depends on MFD_IQS62X || COMPILE_TEST
253
+ help
254
+ Generic PWM framework driver for the Azoteq IQS620A multi-function
255
+ sensor.
256
+
257
+ To compile this driver as a module, choose M here: the module will
258
+ be called pwm-iqs620a.
216259
217260 config PWM_JZ4740
218261 tristate "Ingenic JZ47xx PWM support"
219
- depends on MACH_INGENIC
262
+ depends on MIPS
263
+ depends on COMMON_CLK
264
+ select MFD_SYSCON
220265 help
221266 Generic PWM framework driver for Ingenic JZ47xx based
222267 machines.
....@@ -236,7 +281,7 @@
236281
237282 config PWM_LPC18XX_SCT
238283 tristate "LPC18xx/43xx PWM/SCT support"
239
- depends on ARCH_LPC18XX
284
+ depends on ARCH_LPC18XX || COMPILE_TEST
240285 help
241286 Generic PWM framework driver for NXP LPC18xx PWM/SCT which
242287 supports 16 channels.
....@@ -248,7 +293,7 @@
248293
249294 config PWM_LPC32XX
250295 tristate "LPC32XX PWM support"
251
- depends on ARCH_LPC32XX
296
+ depends on ARCH_LPC32XX || COMPILE_TEST
252297 help
253298 Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
254299 PWM controllers.
....@@ -281,7 +326,8 @@
281326
282327 config PWM_MESON
283328 tristate "Amlogic Meson PWM driver"
284
- depends on ARCH_MESON
329
+ depends on ARCH_MESON || COMPILE_TEST
330
+ depends on COMMON_CLK
285331 help
286332 The platform driver for Amlogic Meson PWM controller.
287333
....@@ -310,7 +356,8 @@
310356
311357 config PWM_MXS
312358 tristate "Freescale MXS PWM support"
313
- depends on ARCH_MXS && OF
359
+ depends on OF
360
+ depends on ARCH_MXS || COMPILE_TEST
314361 select STMP_DEVICE
315362 help
316363 Generic PWM framework driver for Freescale MXS.
....@@ -320,7 +367,8 @@
320367
321368 config PWM_OMAP_DMTIMER
322369 tristate "OMAP Dual-Mode Timer PWM support"
323
- depends on OF && ARCH_OMAP && OMAP_DM_TIMER
370
+ depends on OF
371
+ depends on OMAP_DM_TIMER || COMPILE_TEST
324372 help
325373 Generic PWM framework driver for OMAP Dual-Mode Timer PWM output
326374
....@@ -337,18 +385,9 @@
337385 To compile this driver as a module, choose M here: the module
338386 will be called pwm-pca9685.
339387
340
-config PWM_PUV3
341
- tristate "PKUnity NetBook-0916 PWM support"
342
- depends on ARCH_PUV3
343
- help
344
- Generic PWM framework driver for PKUnity NetBook-0916.
345
-
346
- To compile this driver as a module, choose M here: the module
347
- will be called pwm-puv3.
348
-
349388 config PWM_PXA
350389 tristate "PXA PWM support"
351
- depends on ARCH_PXA
390
+ depends on ARCH_PXA || COMPILE_TEST
352391 help
353392 Generic PWM framework driver for PXA.
354393
....@@ -379,29 +418,50 @@
379418
380419 config PWM_ROCKCHIP
381420 tristate "Rockchip PWM support"
382
- depends on ARCH_ROCKCHIP
421
+ depends on ARCH_ROCKCHIP || COMPILE_TEST
383422 help
384423 Generic PWM framework driver for the PWM controller found on
385424 Rockchip SoCs.
386425
387426 config PWM_ROCKCHIP_ONESHOT
388427 bool "Rockchip PWM oneshot mode support"
389
- depends on PWM_ROCKCHIP
428
+ depends on PWM_ROCKCHIP && NO_GKI
390429 help
391430 Support Rockchip pwm oneshot mode for specified number of cycles.
392431
393432 config PWM_SAMSUNG
394433 tristate "Samsung PWM support"
395
- depends on PLAT_SAMSUNG || ARCH_EXYNOS
434
+ depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
396435 help
397436 Generic PWM framework driver for Samsung.
398437
399438 To compile this driver as a module, choose M here: the module
400439 will be called pwm-samsung.
401440
441
+config PWM_SIFIVE
442
+ tristate "SiFive PWM support"
443
+ depends on OF
444
+ depends on COMMON_CLK
445
+ depends on RISCV || COMPILE_TEST
446
+ help
447
+ Generic PWM framework driver for SiFive SoCs.
448
+
449
+ To compile this driver as a module, choose M here: the module
450
+ will be called pwm-sifive.
451
+
452
+config PWM_SL28CPLD
453
+ tristate "Kontron sl28cpld PWM support"
454
+ depends on MFD_SL28CPLD || COMPILE_TEST
455
+ help
456
+ Generic PWM framework driver for board management controller
457
+ found on the Kontron sl28 CPLD.
458
+
459
+ To compile this driver as a module, choose M here: the module
460
+ will be called pwm-sl28cpld.
461
+
402462 config PWM_SPEAR
403463 tristate "STMicroelectronics SPEAr PWM support"
404
- depends on PLAT_SPEAR
464
+ depends on PLAT_SPEAR || COMPILE_TEST
405465 depends on OF
406466 help
407467 Generic PWM framework driver for the PWM controller on ST
....@@ -410,9 +470,20 @@
410470 To compile this driver as a module, choose M here: the module
411471 will be called pwm-spear.
412472
473
+config PWM_SPRD
474
+ tristate "Spreadtrum PWM support"
475
+ depends on ARCH_SPRD || COMPILE_TEST
476
+ depends on HAS_IOMEM
477
+ help
478
+ Generic PWM framework driver for the PWM controller on
479
+ Spreadtrum SoCs.
480
+
481
+ To compile this driver as a module, choose M here: the module
482
+ will be called pwm-sprd.
483
+
413484 config PWM_STI
414485 tristate "STiH4xx PWM support"
415
- depends on ARCH_STI
486
+ depends on ARCH_STI || COMPILE_TEST
416487 depends on OF
417488 help
418489 Generic PWM framework driver for STiH4xx SoCs.
....@@ -422,7 +493,7 @@
422493
423494 config PWM_STM32
424495 tristate "STMicroelectronics STM32 PWM"
425
- depends on MFD_STM32_TIMERS
496
+ depends on MFD_STM32_TIMERS || COMPILE_TEST
426497 help
427498 Generic PWM framework driver for STM32 SoCs.
428499
....@@ -458,7 +529,7 @@
458529
459530 config PWM_TEGRA
460531 tristate "NVIDIA Tegra PWM support"
461
- depends on ARCH_TEGRA
532
+ depends on ARCH_TEGRA || COMPILE_TEST
462533 help
463534 Generic PWM framework driver for the PWFM controller found on NVIDIA
464535 Tegra SoCs.
....@@ -466,34 +537,23 @@
466537 To compile this driver as a module, choose M here: the module
467538 will be called pwm-tegra.
468539
469
-config PWM_TIECAP
540
+config PWM_TIECAP
470541 tristate "ECAP PWM support"
471
- depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE
542
+ depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
472543 help
473
- PWM driver support for the ECAP APWM controller found on AM33XX
474
- TI SOC
544
+ PWM driver support for the ECAP APWM controller found on TI SOCs
475545
476546 To compile this driver as a module, choose M here: the module
477547 will be called pwm-tiecap.
478548
479
-config PWM_TIEHRPWM
549
+config PWM_TIEHRPWM
480550 tristate "EHRPWM PWM support"
481
- depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX
551
+ depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3 || COMPILE_TEST
482552 help
483
- PWM driver support for the EHRPWM controller found on AM33XX
484
- TI SOC
553
+ PWM driver support for the EHRPWM controller found on TI SOCs
485554
486555 To compile this driver as a module, choose M here: the module
487556 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.
497557
498558 config PWM_TWL
499559 tristate "TWL4030/6030 PWM support"
....@@ -515,7 +575,7 @@
515575
516576 config PWM_VT8500
517577 tristate "vt8500 PWM support"
518
- depends on ARCH_VT8500
578
+ depends on ARCH_VT8500 || COMPILE_TEST
519579 help
520580 Generic PWM framework driver for vt8500.
521581
....@@ -524,7 +584,7 @@
524584
525585 config PWM_ZX
526586 tristate "ZTE ZX PWM support"
527
- depends on ARCH_ZX
587
+ depends on ARCH_ZX || COMPILE_TEST
528588 help
529589 Generic PWM framework driver for ZTE ZX family SoCs.
530590