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