xref: /linux/drivers/pwm/Kconfig (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig 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
30if PWM
31
32config PWM_DEBUG
33	bool "PWM lowlevel drivers additional checks and debug messages"
34	depends on DEBUG_KERNEL
35	help
36	  This option enables some additional checks to help lowlevel driver
37	  authors to get their callbacks implemented correctly.
38	  It is expected to introduce some runtime overhead and diagnostic
39	  output to the kernel log, so only enable while working on a driver.
40
41config PWM_PROVIDE_GPIO
42	bool "Provide a GPIO chip for each PWM chip"
43	depends on GPIOLIB
44	help
45	  Most PWMs can emit both a constant active high and a constant active
46	  low signal and so they can be used as GPIO. Say Y here to let each
47	  PWM chip provide a GPIO chip and so be easily plugged into consumers
48	  that know how to handle GPIOs but not PWMs.
49
50config PWM_AB8500
51	tristate "AB8500 PWM support"
52	depends on AB8500_CORE && ARCH_U8500
53	help
54	  Generic PWM framework driver for Analog Baseband AB8500.
55
56	  To compile this driver as a module, choose M here: the module
57	  will be called pwm-ab8500.
58
59config PWM_ADP5585
60	tristate "ADP5585 PWM support"
61	depends on MFD_ADP5585
62	help
63	  This option enables support for the PWM function found in the Analog
64	  Devices ADP5585.
65
66config PWM_APPLE
67	tristate "Apple SoC PWM support"
68	depends on ARCH_APPLE || COMPILE_TEST
69	help
70	  Generic PWM framework driver for PWM controller present on
71	  Apple SoCs
72
73	  Say Y here if you have an ARM Apple laptop, otherwise say N
74
75	  To compile this driver as a module, choose M here: the module
76	  will be called pwm-apple.
77
78config PWM_ARGON_FAN_HAT
79	tristate "Argon40 Fan HAT support"
80	depends on I2C && OF
81	help
82	  Generic PWM framework driver for Argon40 Fan HAT.
83
84	  To compile this driver as a module, choose M here: the module
85	  will be called pwm-argon-fan-hat.
86
87config PWM_ATMEL
88	tristate "Atmel PWM support"
89	depends on ARCH_AT91 || COMPILE_TEST
90	depends on HAS_IOMEM && OF
91	help
92	  Generic PWM framework driver for Atmel SoC.
93
94	  To compile this driver as a module, choose M here: the module
95	  will be called pwm-atmel.
96
97config PWM_ATMEL_HLCDC_PWM
98	tristate "Atmel HLCDC PWM support"
99	depends on MFD_ATMEL_HLCDC
100	depends on HAVE_CLK
101	help
102	  Generic PWM framework driver for the PWM output of the HLCDC
103	  (Atmel High-end LCD Controller). This PWM output is mainly used
104	  to control the LCD backlight.
105
106	  To compile this driver as a module, choose M here: the module
107	  will be called pwm-atmel-hlcdc.
108
109config PWM_ATMEL_TCB
110	tristate "Atmel TC Block PWM support"
111	depends on OF
112	select REGMAP_MMIO
113	help
114	  Generic PWM framework driver for Atmel Timer Counter Block.
115
116	  A Timer Counter Block provides 6 PWM devices grouped by 2.
117	  Devices in a given group must have the same period.
118
119	  To compile this driver as a module, choose M here: the module
120	  will be called pwm-atmel-tcb.
121
122config PWM_AXI_PWMGEN
123	tristate "Analog Devices AXI PWM generator"
124	depends on MICROBLAZE || NIOS2 || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_INTEL_SOCFPGA || COMPILE_TEST
125	select REGMAP_MMIO
126	help
127	  This enables support for the Analog Devices AXI PWM generator.
128
129	  This is a configurable PWM generator with variable pulse width and
130	  period.
131
132	  To compile this driver as a module, choose M here: the module will be
133	  called pwm-axi-pwmgen.
134
135config PWM_BCM2835
136	tristate "BCM2835 PWM support"
137	depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
138	depends on HAS_IOMEM
139	help
140	  PWM framework driver for BCM2835 controller (Raspberry Pi)
141
142	  To compile this driver as a module, choose M here: the module
143	  will be called pwm-bcm2835.
144
145config PWM_BCM_IPROC
146	tristate "iProc PWM support"
147	depends on ARCH_BCM_IPROC || COMPILE_TEST
148	depends on COMMON_CLK && HAS_IOMEM
149	default ARCH_BCM_IPROC
150	help
151	  Generic PWM framework driver for Broadcom iProc PWM block. This
152	  block is used in Broadcom iProc SoC's.
153
154	  To compile this driver as a module, choose M here: the module
155	  will be called pwm-bcm-iproc.
156
157config PWM_BCM_KONA
158	tristate "Kona PWM support"
159	depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
160	depends on HAVE_CLK && HAS_IOMEM
161	default ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS
162	help
163	  Generic PWM framework driver for Broadcom Kona PWM block.
164
165	  To compile this driver as a module, choose M here: the module
166	  will be called pwm-bcm-kona.
167
168config PWM_BERLIN
169	tristate "Marvell Berlin PWM support"
170	depends on ARCH_BERLIN || COMPILE_TEST
171	depends on HAS_IOMEM
172	help
173	  PWM framework driver for Marvell Berlin SoCs.
174
175	  To compile this driver as a module, choose M here: the module
176	  will be called pwm-berlin.
177
178config PWM_BRCMSTB
179	tristate "Broadcom STB PWM support"
180	depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
181	depends on HAS_IOMEM
182	help
183	  Generic PWM framework driver for the Broadcom Set-top-Box
184	  SoCs (BCM7xxx).
185
186	  To compile this driver as a module, choose M Here: the module
187	  will be called pwm-brcmstb.c.
188
189config PWM_CLK
190	tristate "Clock based PWM support"
191	depends on HAVE_CLK || COMPILE_TEST
192	help
193	  Generic PWM framework driver for outputs that can be
194	  muxed to clocks.
195
196	  To compile this driver as a module, choose M here: the module
197	  will be called pwm-clk.
198
199config PWM_CLPS711X
200	tristate "CLPS711X PWM support"
201	depends on ARCH_CLPS711X || COMPILE_TEST
202	depends on HAS_IOMEM
203	help
204	  Generic PWM framework driver for Cirrus Logic CLPS711X.
205
206	  To compile this driver as a module, choose M here: the module
207	  will be called pwm-clps711x.
208
209config PWM_CRC
210	tristate "Intel Crystalcove (CRC) PWM support"
211	depends on INTEL_SOC_PMIC
212	help
213	  Generic PWM framework driver for Crystalcove (CRC) PMIC based PWM
214	  control.
215
216config PWM_CROS_EC
217	tristate "ChromeOS EC PWM driver"
218	depends on CROS_EC
219	help
220	  PWM driver for exposing a PWM attached to the ChromeOS Embedded
221	  Controller.
222
223config PWM_DWC_CORE
224	tristate
225	depends on HAS_IOMEM
226	help
227	  PWM driver for Synopsys DWC PWM Controller.
228
229	  To compile this driver as a module, build the dependecies as
230	  modules, this will be called pwm-dwc-core.
231
232config PWM_DWC
233	tristate "DesignWare PWM Controller (PCI bus)"
234	depends on HAS_IOMEM && PCI
235	select PWM_DWC_CORE
236	help
237	  PWM driver for Synopsys DWC PWM Controller attached to a PCI bus.
238
239	  To compile this driver as a module, choose M here: the module
240	  will be called pwm-dwc.
241
242config PWM_EP93XX
243	tristate "Cirrus Logic EP93xx PWM support"
244	depends on ARCH_EP93XX || COMPILE_TEST
245	depends on HAS_IOMEM
246	help
247	  Generic PWM framework driver for Cirrus Logic EP93xx.
248
249	  To compile this driver as a module, choose M here: the module
250	  will be called pwm-ep93xx.
251
252config PWM_FSL_FTM
253	tristate "Freescale FlexTimer Module (FTM) PWM support"
254	depends on HAS_IOMEM
255	depends on OF
256	select REGMAP_MMIO
257	help
258	  Generic FTM PWM framework driver for Freescale VF610 and
259	  Layerscape LS-1 SoCs.
260
261	  To compile this driver as a module, choose M here: the module
262	  will be called pwm-fsl-ftm.
263
264config PWM_GPIO
265	tristate "GPIO PWM support"
266	depends on GPIOLIB
267	depends on HIGH_RES_TIMERS
268	help
269	  Generic PWM framework driver for software PWM toggling a GPIO pin
270	  from kernel high-resolution timers.
271
272	  To compile this driver as a module, choose M here: the module
273	  will be called pwm-gpio.
274
275config PWM_HIBVT
276	tristate "HiSilicon BVT PWM support"
277	depends on ARCH_HISI || COMPILE_TEST
278	depends on HAS_IOMEM
279	help
280	  Generic PWM framework driver for HiSilicon BVT SoCs.
281
282	  To compile this driver as a module, choose M here: the module
283	  will be called pwm-hibvt.
284
285config PWM_IMG
286	tristate "Imagination Technologies PWM driver"
287	depends on HAS_IOMEM
288	depends on MFD_SYSCON
289	depends on COMMON_CLK
290	depends on MIPS || COMPILE_TEST
291	help
292	  Generic PWM framework driver for Imagination Technologies
293	  PWM block which supports 4 channels.
294
295	  To compile this driver as a module, choose M here: the module
296	  will be called pwm-img
297
298config PWM_IMX1
299	tristate "i.MX1 PWM support"
300	depends on ARCH_MXC || COMPILE_TEST
301	depends on HAS_IOMEM
302	help
303	  Generic PWM framework driver for i.MX1 and i.MX21
304
305	  To compile this driver as a module, choose M here: the module
306	  will be called pwm-imx1.
307
308config PWM_IMX27
309	tristate "i.MX27 PWM support"
310	depends on ARCH_MXC || COMPILE_TEST
311	depends on HAS_IOMEM
312	help
313	  Generic PWM framework driver for i.MX27 and later i.MX SoCs.
314
315	  To compile this driver as a module, choose M here: the module
316	  will be called pwm-imx27.
317
318config PWM_IMX_TPM
319	tristate "i.MX TPM PWM support"
320	depends on ARCH_MXC || COMPILE_TEST
321	depends on HAVE_CLK && HAS_IOMEM
322	help
323	  Generic PWM framework driver for i.MX7ULP TPM module, TPM's full
324	  name is Low Power Timer/Pulse Width Modulation Module.
325
326	  To compile this driver as a module, choose M here: the module
327	  will be called pwm-imx-tpm.
328
329config PWM_INTEL_LGM
330	tristate "Intel LGM PWM support"
331	depends on HAS_IOMEM
332	depends on (OF && X86) || COMPILE_TEST
333	select REGMAP_MMIO
334	help
335	  Generic PWM fan controller driver for LGM SoC.
336
337	  To compile this driver as a module, choose M here: the module
338	  will be called pwm-intel-lgm.
339
340config PWM_IQS620A
341	tristate "Azoteq IQS620A PWM support"
342	depends on MFD_IQS62X || COMPILE_TEST
343	help
344	  Generic PWM framework driver for the Azoteq IQS620A multi-function
345	  sensor.
346
347	  To compile this driver as a module, choose M here: the module will
348	  be called pwm-iqs620a.
349
350config PWM_JZ4740
351	tristate "Ingenic JZ47xx PWM support"
352	depends on MACH_INGENIC || COMPILE_TEST
353	depends on COMMON_CLK && OF
354	select MFD_SYSCON
355	help
356	  Generic PWM framework driver for Ingenic JZ47xx based
357	  machines.
358
359	  To compile this driver as a module, choose M here: the module
360	  will be called pwm-jz4740.
361
362config PWM_KEEMBAY
363	tristate "Intel Keem Bay PWM driver"
364	depends on ARCH_KEEMBAY || COMPILE_TEST
365	depends on COMMON_CLK && HAS_IOMEM
366	help
367	  The platform driver for Intel Keem Bay PWM controller.
368
369	  To compile this driver as a module, choose M here: the module
370	  will be called pwm-keembay.
371
372config PWM_LOONGSON
373	tristate "Loongson PWM support"
374	depends on MACH_LOONGSON64 || COMPILE_TEST
375	depends on COMMON_CLK
376	help
377	  Generic PWM framework driver for Loongson family.
378	  It can be found on Loongson-2K series cpus and Loongson LS7A
379	  bridge chips.
380
381	  To compile this driver as a module, choose M here: the module
382	  will be called pwm-loongson.
383
384config PWM_LP3943
385	tristate "TI/National Semiconductor LP3943 PWM support"
386	depends on MFD_LP3943
387	help
388	  Generic PWM framework driver for LP3943 which supports two PWM
389	  channels.
390
391	  To compile this driver as a module, choose M here: the module
392	  will be called pwm-lp3943.
393
394config PWM_LPC18XX_SCT
395	tristate "LPC18xx/43xx PWM/SCT support"
396	depends on ARCH_LPC18XX || COMPILE_TEST
397	depends on HAS_IOMEM
398	help
399	  Generic PWM framework driver for NXP LPC18xx PWM/SCT which
400	  supports 16 channels.
401	  A maximum of 15 channels can be requested simultaneously and
402	  must have the same period.
403
404	  To compile this driver as a module, choose M here: the module
405	  will be called pwm-lpc18xx-sct.
406
407config PWM_LPC32XX
408	tristate "LPC32XX PWM support"
409	depends on ARCH_LPC32XX || COMPILE_TEST
410	depends on HAS_IOMEM
411	help
412	  Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
413	  PWM controllers.
414
415	  To compile this driver as a module, choose M here: the module
416	  will be called pwm-lpc32xx.
417
418config PWM_LPSS
419	depends on HAS_IOMEM
420	tristate
421
422config PWM_LPSS_PCI
423	tristate "Intel LPSS PWM PCI driver"
424	depends on X86 || COMPILE_TEST
425	depends on HAS_IOMEM && PCI
426	select PWM_LPSS
427	help
428	  The PCI driver for Intel Low Power Subsystem PWM controller.
429
430	  To compile this driver as a module, choose M here: the module
431	  will be called pwm-lpss-pci.
432
433config PWM_LPSS_PLATFORM
434	tristate "Intel LPSS PWM platform driver"
435	depends on (X86 && ACPI) || COMPILE_TEST
436	depends on HAS_IOMEM
437	select PWM_LPSS
438	help
439	  The platform driver for Intel Low Power Subsystem PWM controller.
440
441	  To compile this driver as a module, choose M here: the module
442	  will be called pwm-lpss-platform.
443
444config PWM_MAX7360
445	tristate "MAX7360 PWMs"
446	depends on MFD_MAX7360
447	help
448	  PWM driver for Maxim Integrated MAX7360 multifunction device, with
449	  support for up to 8 PWM outputs.
450
451	  To compile this driver as a module, choose M here: the module
452	  will be called pwm-max7360.
453
454config PWM_MC33XS2410
455	tristate "MC33XS2410 PWM support"
456	depends on OF
457	depends on SPI
458	select AUXILIARY_BUS
459	help
460	  NXP MC33XS2410 high-side switch driver. The MC33XS2410 is a four
461	  channel high-side switch. The device is operational from 3.0 V
462	  to 60 V. The device is controlled by SPI port for configuration.
463
464	  To compile this driver as a module, choose M here: the module
465	  will be called pwm-mc33xs2410.
466
467config PWM_MEDIATEK
468	tristate "MediaTek PWM support"
469	depends on ARCH_MEDIATEK || RALINK || COMPILE_TEST
470	depends on HAS_IOMEM
471	help
472	  Generic PWM framework driver for Mediatek ARM SoC.
473
474	  To compile this driver as a module, choose M here: the module
475	  will be called pwm-mediatek.
476
477config PWM_MESON
478	tristate "Amlogic Meson PWM driver"
479	depends on ARCH_MESON || COMPILE_TEST
480	depends on COMMON_CLK && HAS_IOMEM
481	help
482	  The platform driver for Amlogic Meson PWM controller.
483
484	  To compile this driver as a module, choose M here: the module
485	  will be called pwm-meson.
486
487config PWM_MICROCHIP_CORE
488	tristate "Microchip corePWM PWM support"
489	depends on ARCH_MICROCHIP_POLARFIRE || COMPILE_TEST
490	depends on HAS_IOMEM && OF
491	help
492	  PWM driver for Microchip FPGA soft IP core.
493
494	  To compile this driver as a module, choose M here: the module
495	  will be called pwm-microchip-core.
496
497config PWM_MTK_DISP
498	tristate "MediaTek display PWM driver"
499	depends on ARCH_MEDIATEK || COMPILE_TEST
500	depends on HAS_IOMEM
501	help
502	  Generic PWM framework driver for MediaTek disp-pwm device.
503	  The PWM is used to control the backlight brightness for display.
504
505	  To compile this driver as a module, choose M here: the module
506	  will be called pwm-mtk-disp.
507
508config PWM_MXS
509	tristate "Freescale MXS PWM support"
510	depends on ARCH_MXS || COMPILE_TEST
511	depends on HAS_IOMEM && OF
512	select STMP_DEVICE
513	help
514	  Generic PWM framework driver for Freescale MXS.
515
516	  To compile this driver as a module, choose M here: the module
517	  will be called pwm-mxs.
518
519config PWM_NTXEC
520	tristate "Netronix embedded controller PWM support"
521	depends on MFD_NTXEC
522	help
523	  Say yes here if you want to support the PWM output of the embedded
524	  controller found in certain e-book readers designed by the original
525	  design manufacturer Netronix.
526
527config PWM_OMAP_DMTIMER
528	tristate "OMAP Dual-Mode Timer PWM support"
529	depends on OF
530	depends on OMAP_DM_TIMER || COMPILE_TEST
531	help
532	  Generic PWM framework driver for OMAP Dual-Mode Timer PWM output
533
534	  To compile this driver as a module, choose M here: the module
535	  will be called pwm-omap-dmtimer
536
537config PWM_PCA9685
538	tristate "NXP PCA9685 PWM driver"
539	depends on I2C
540	select REGMAP_I2C
541	help
542	  Generic PWM framework driver for NXP PCA9685 LED controller.
543
544	  To compile this driver as a module, choose M here: the module
545	  will be called pwm-pca9685.
546
547config PWM_PXA
548	tristate "PXA PWM support"
549	depends on ARCH_PXA || ARCH_MMP || ARCH_SPACEMIT || COMPILE_TEST
550	depends on HAS_IOMEM
551	help
552	  Generic PWM framework driver for PXA.
553
554	  To compile this driver as a module, choose M here: the module
555	  will be called pwm-pxa.
556
557config PWM_RASPBERRYPI_POE
558	tristate "Raspberry Pi Firmware PoE Hat PWM support"
559	# Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
560	# happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
561	depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
562	help
563	  Enable Raspberry Pi firmware controller PWM bus used to control the
564	  official RPI PoE hat
565
566config PWM_RENESAS_RCAR
567	tristate "Renesas R-Car PWM support"
568	depends on ARCH_RENESAS || COMPILE_TEST
569	depends on HAS_IOMEM
570	help
571	  This driver exposes the PWM Timer controller found in Renesas
572	  R-Car chips through the PWM API.
573
574	  To compile this driver as a module, choose M here: the module
575	  will be called pwm-rcar.
576
577config PWM_RENESAS_RZG2L_GPT
578	tristate "Renesas RZ/G2L General PWM Timer support"
579	depends on ARCH_RZG2L || COMPILE_TEST
580	depends on HAS_IOMEM
581	help
582	  This driver exposes the General PWM Timer controller found in Renesas
583	  RZ/G2L like chips through the PWM API.
584
585	  To compile this driver as a module, choose M here: the module
586	  will be called pwm-rzg2l-gpt.
587
588config PWM_RENESAS_RZ_MTU3
589	tristate "Renesas RZ/G2L MTU3a PWM Timer support"
590	depends on RZ_MTU3
591	depends on HAS_IOMEM
592	help
593	  This driver exposes the MTU3a PWM Timer controller found in Renesas
594	  RZ/G2L like chips through the PWM API.
595
596	  To compile this driver as a module, choose M here: the module
597	  will be called pwm-rz-mtu3.
598
599config PWM_RENESAS_TPU
600	tristate "Renesas TPU PWM support"
601	depends on ARCH_RENESAS || COMPILE_TEST
602	depends on HAS_IOMEM
603	help
604	  This driver exposes the Timer Pulse Unit (TPU) PWM controller found
605	  in Renesas chips through the PWM API.
606
607	  To compile this driver as a module, choose M here: the module
608	  will be called pwm-renesas-tpu.
609
610config PWM_ROCKCHIP
611	tristate "Rockchip PWM support"
612	depends on ARCH_ROCKCHIP || COMPILE_TEST
613	depends on HAS_IOMEM
614	help
615	  Generic PWM framework driver for the PWM controller found on
616	  Rockchip SoCs.
617
618config PWM_SAMSUNG
619	tristate "Samsung PWM support"
620	depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
621	depends on HAS_IOMEM
622	help
623	  Generic PWM framework driver for Samsung S3C24xx, S3C64xx, S5Pv210
624	  and Exynos SoCs.
625	  Choose Y here only if you build for such Samsung SoC.
626
627	  To compile this driver as a module, choose M here: the module
628	  will be called pwm-samsung.
629
630config PWM_SIFIVE
631	tristate "SiFive PWM support"
632	depends on OF
633	depends on COMMON_CLK && HAS_IOMEM
634	depends on ARCH_SIFIVE || COMPILE_TEST
635	help
636	  Generic PWM framework driver for SiFive SoCs.
637
638	  To compile this driver as a module, choose M here: the module
639	  will be called pwm-sifive.
640
641config PWM_SL28CPLD
642	tristate "Kontron sl28cpld PWM support"
643	depends on MFD_SL28CPLD || COMPILE_TEST
644	help
645	  Generic PWM framework driver for board management controller
646	  found on the Kontron sl28 CPLD.
647
648	  To compile this driver as a module, choose M here: the module
649	  will be called pwm-sl28cpld.
650
651config PWM_SOPHGO_SG2042
652	tristate "Sophgo SG2042 PWM support"
653	depends on ARCH_SOPHGO || COMPILE_TEST
654	help
655	  PWM driver for the PWM controller on Sophgo SG2042 SoC. The PWM
656	  controller supports outputing 4 channels of PWM waveforms.
657
658	  To compile this driver as a module, choose M here: the module
659	  will be called pwm_sophgo_sg2042.
660
661config PWM_SPEAR
662	tristate "STMicroelectronics SPEAr PWM support"
663	depends on PLAT_SPEAR || COMPILE_TEST
664	depends on HAS_IOMEM && OF
665	help
666	  Generic PWM framework driver for the PWM controller on ST
667	  SPEAr SoCs.
668
669	  To compile this driver as a module, choose M here: the module
670	  will be called pwm-spear.
671
672config PWM_SPRD
673	tristate "Spreadtrum PWM support"
674	depends on ARCH_SPRD || COMPILE_TEST
675	depends on HAS_IOMEM
676	help
677	  Generic PWM framework driver for the PWM controller on
678	  Spreadtrum SoCs.
679
680	  To compile this driver as a module, choose M here: the module
681	  will be called pwm-sprd.
682
683config PWM_STI
684	tristate "STiH4xx PWM support"
685	depends on ARCH_STI || COMPILE_TEST
686	depends on HAS_IOMEM && OF
687	help
688	  Generic PWM framework driver for STiH4xx SoCs.
689
690	  To compile this driver as a module, choose M here: the module
691	  will be called pwm-sti.
692
693config PWM_STM32
694	tristate "STMicroelectronics STM32 PWM"
695	depends on MFD_STM32_TIMERS || COMPILE_TEST
696	help
697	  Generic PWM framework driver for STM32 SoCs.
698
699	  To compile this driver as a module, choose M here: the module
700	  will be called pwm-stm32.
701
702config PWM_STM32_LP
703	tristate "STMicroelectronics STM32 PWM LP"
704	depends on MFD_STM32_LPTIMER || COMPILE_TEST
705	help
706	  Generic PWM framework driver for STMicroelectronics STM32 SoCs
707	  with Low-Power Timer (LPTIM).
708
709	  To compile this driver as a module, choose M here: the module
710	  will be called pwm-stm32-lp.
711
712config PWM_STMPE
713	tristate "STMPE expander PWM export"
714	depends on MFD_STMPE
715	help
716	  This enables support for the PWMs found in the STMPE I/O
717	  expanders.
718
719config PWM_SUN4I
720	tristate "Allwinner PWM support"
721	depends on ARCH_SUNXI || COMPILE_TEST
722	depends on HAS_IOMEM && COMMON_CLK
723	help
724	  Generic PWM framework driver for Allwinner SoCs.
725
726	  To compile this driver as a module, choose M here: the module
727	  will be called pwm-sun4i.
728
729config PWM_SUNPLUS
730	tristate "Sunplus PWM support"
731	depends on ARCH_SUNPLUS || COMPILE_TEST
732	depends on HAS_IOMEM && OF
733	help
734	  Generic PWM framework driver for the PWM controller on
735	  Sunplus SoCs.
736
737	  To compile this driver as a module, choose M here: the module
738	  will be called pwm-sunplus.
739
740config PWM_TEGRA
741	tristate "NVIDIA Tegra PWM support"
742	depends on ARCH_TEGRA || COMPILE_TEST
743	depends on HAS_IOMEM
744	help
745	  Generic PWM framework driver for the PWFM controller found on NVIDIA
746	  Tegra SoCs.
747
748	  To compile this driver as a module, choose M here: the module
749	  will be called pwm-tegra.
750
751config PWM_TIECAP
752	tristate "ECAP PWM support"
753	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
754	depends on HAS_IOMEM
755	help
756	  PWM driver support for the ECAP APWM controller found on TI SOCs
757
758	  To compile this driver as a module, choose M here: the module
759	  will be called pwm-tiecap.
760
761config PWM_TIEHRPWM
762	tristate "EHRPWM PWM support"
763	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3 || COMPILE_TEST
764	depends on HAS_IOMEM
765	help
766	  PWM driver support for the EHRPWM controller found on TI SOCs
767
768	  To compile this driver as a module, choose M here: the module
769	  will be called pwm-tiehrpwm.
770
771config PWM_TWL
772	tristate "TWL4030/6030 PWM support"
773	depends on TWL4030_CORE
774	help
775	  Generic PWM framework driver for TWL4030/6030.
776
777	  To compile this driver as a module, choose M here: the module
778	  will be called pwm-twl.
779
780config PWM_TWL_LED
781	tristate "TWL4030/6030 PWM support for LED drivers"
782	depends on TWL4030_CORE
783	help
784	  Generic PWM framework driver for TWL4030/6030 LED terminals.
785
786	  To compile this driver as a module, choose M here: the module
787	  will be called pwm-twl-led.
788
789config PWM_VISCONTI
790	tristate "Toshiba Visconti PWM support"
791	depends on ARCH_VISCONTI || COMPILE_TEST
792	help
793	  PWM Subsystem driver support for Toshiba Visconti SoCs.
794
795	  To compile this driver as a module, choose M here: the module
796	  will be called pwm-visconti.
797
798config PWM_VT8500
799	tristate "vt8500 PWM support"
800	depends on ARCH_VT8500 || COMPILE_TEST
801	depends on HAS_IOMEM
802	help
803	  Generic PWM framework driver for vt8500.
804
805	  To compile this driver as a module, choose M here: the module
806	  will be called pwm-vt8500.
807
808config PWM_XILINX
809	tristate "Xilinx AXI Timer PWM support"
810	depends on OF_ADDRESS
811	depends on COMMON_CLK
812	select REGMAP_MMIO
813	help
814	  PWM driver for Xilinx LogiCORE IP AXI timers. This timer is
815	  typically a soft core which may be present in Xilinx FPGAs.
816	  This device may also be present in Microblaze soft processors.
817	  If you don't have this IP in your design, choose N.
818
819	  To compile this driver as a module, choose M here: the module
820	  will be called pwm-xilinx.
821
822endif
823