xref: /openbmc/linux/drivers/pwm/Kconfig (revision 2572f00d)
1menuconfig PWM
2	bool "Pulse-Width Modulation (PWM) Support"
3	help
4	  Generic Pulse-Width Modulation (PWM) support.
5
6	  In Pulse-Width Modulation, a variation of the width of pulses
7	  in a rectangular pulse signal is used as a means to alter the
8	  average power of the signal. Applications include efficient
9	  power delivery and voltage regulation. In computer systems,
10	  PWMs are commonly used to control fans or the brightness of
11	  display backlights.
12
13	  This framework provides a generic interface to PWM devices
14	  within the Linux kernel. On the driver side it provides an API
15	  to register and unregister a PWM chip, an abstraction of a PWM
16	  controller, that supports one or more PWM devices. Client
17	  drivers can request PWM devices and use the generic framework
18	  to configure as well as enable and disable them.
19
20	  This generic framework replaces the legacy PWM framework which
21	  allows only a single driver implementing the required API. Not
22	  all legacy implementations have been ported to the framework
23	  yet. The framework provides an API that is backward compatible
24	  with the legacy framework so that existing client drivers
25	  continue to work as expected.
26
27	  If unsure, say no.
28
29if PWM
30
31config PWM_SYSFS
32	bool
33	default y if SYSFS
34
35config PWM_AB8500
36	tristate "AB8500 PWM support"
37	depends on AB8500_CORE && ARCH_U8500
38	help
39	  Generic PWM framework driver for Analog Baseband AB8500.
40
41	  To compile this driver as a module, choose M here: the module
42	  will be called pwm-ab8500.
43
44config PWM_ATMEL
45	tristate "Atmel PWM support"
46	depends on ARCH_AT91 || AVR32
47	help
48	  Generic PWM framework driver for Atmel SoC.
49
50	  To compile this driver as a module, choose M here: the module
51	  will be called pwm-atmel.
52
53config PWM_ATMEL_HLCDC_PWM
54	tristate "Atmel HLCDC PWM support"
55	depends on MFD_ATMEL_HLCDC
56	depends on HAVE_CLK
57	help
58	  Generic PWM framework driver for the PWM output of the HLCDC
59	  (Atmel High-end LCD Controller). This PWM output is mainly used
60	  to control the LCD backlight.
61
62	  To compile this driver as a module, choose M here: the module
63	  will be called pwm-atmel-hlcdc.
64
65config PWM_ATMEL_TCB
66	tristate "Atmel TC Block PWM support"
67	depends on ATMEL_TCLIB && OF
68	help
69	  Generic PWM framework driver for Atmel Timer Counter Block.
70
71	  A Timer Counter Block provides 6 PWM devices grouped by 2.
72	  Devices in a given group must have the same period.
73
74	  To compile this driver as a module, choose M here: the module
75	  will be called pwm-atmel-tcb.
76
77config PWM_BCM_KONA
78	tristate "Kona PWM support"
79	depends on ARCH_BCM_MOBILE
80	help
81	  Generic PWM framework driver for Broadcom Kona PWM block.
82
83	  To compile this driver as a module, choose M here: the module
84	  will be called pwm-bcm-kona.
85
86config PWM_BCM2835
87	tristate "BCM2835 PWM support"
88	depends on ARCH_BCM2835
89	help
90	  PWM framework driver for BCM2835 controller (Raspberry Pi)
91
92	  To compile this driver as a module, choose M here: the module
93	  will be called pwm-bcm2835.
94
95config PWM_BERLIN
96	tristate "Marvell Berlin PWM support"
97	depends on ARCH_BERLIN
98	help
99	  PWM framework driver for Marvell Berlin SoCs.
100
101	  To compile this driver as a module, choose M here: the module
102	  will be called pwm-berlin.
103
104config PWM_BFIN
105	tristate "Blackfin PWM support"
106	depends on BFIN_GPTIMERS
107	help
108	  Generic PWM framework driver for Blackfin.
109
110	  To compile this driver as a module, choose M here: the module
111	  will be called pwm-bfin.
112
113config PWM_BRCMSTB
114	tristate "Broadcom STB PWM support"
115	depends on ARCH_BRCMSTB || BMIPS_GENERIC
116	help
117	  Generic PWM framework driver for the Broadcom Set-top-Box
118	  SoCs (BCM7xxx).
119
120	  To compile this driver as a module, choose M Here: the module
121	  will be called pwm-brcmstb.c.
122
123config PWM_CLPS711X
124	tristate "CLPS711X PWM support"
125	depends on ARCH_CLPS711X || COMPILE_TEST
126	depends on HAS_IOMEM
127	help
128	  Generic PWM framework driver for Cirrus Logic CLPS711X.
129
130	  To compile this driver as a module, choose M here: the module
131	  will be called pwm-clps711x.
132
133config PWM_CRC
134	bool "Intel Crystalcove (CRC) PWM support"
135	depends on X86 && INTEL_SOC_PMIC
136	help
137	  Generic PWM framework driver for Crystalcove (CRC) PMIC based PWM
138	  control.
139
140config PWM_EP93XX
141	tristate "Cirrus Logic EP93xx PWM support"
142	depends on ARCH_EP93XX
143	help
144	  Generic PWM framework driver for Cirrus Logic EP93xx.
145
146	  To compile this driver as a module, choose M here: the module
147	  will be called pwm-ep93xx.
148
149config PWM_FSL_FTM
150	tristate "Freescale FlexTimer Module (FTM) PWM support"
151	depends on OF
152	select REGMAP_MMIO
153	help
154	  Generic FTM PWM framework driver for Freescale VF610 and
155	  Layerscape LS-1 SoCs.
156
157	  To compile this driver as a module, choose M here: the module
158	  will be called pwm-fsl-ftm.
159
160config PWM_IMG
161	tristate "Imagination Technologies PWM driver"
162	depends on HAS_IOMEM
163	depends on MFD_SYSCON
164	depends on COMMON_CLK
165	depends on MIPS || COMPILE_TEST
166	help
167	  Generic PWM framework driver for Imagination Technologies
168	  PWM block which supports 4 channels.
169
170	  To compile this driver as a module, choose M here: the module
171	  will be called pwm-img
172
173config PWM_IMX
174	tristate "i.MX PWM support"
175	depends on ARCH_MXC
176	help
177	  Generic PWM framework driver for i.MX.
178
179	  To compile this driver as a module, choose M here: the module
180	  will be called pwm-imx.
181
182config PWM_JZ4740
183	tristate "Ingenic JZ4740 PWM support"
184	depends on MACH_JZ4740
185	help
186	  Generic PWM framework driver for Ingenic JZ4740 based
187	  machines.
188
189	  To compile this driver as a module, choose M here: the module
190	  will be called pwm-jz4740.
191
192config PWM_LP3943
193	tristate "TI/National Semiconductor LP3943 PWM support"
194	depends on MFD_LP3943
195	help
196	  Generic PWM framework driver for LP3943 which supports two PWM
197	  channels.
198
199	  To compile this driver as a module, choose M here: the module
200	  will be called pwm-lp3943.
201
202config PWM_LPC18XX_SCT
203	tristate "LPC18xx/43xx PWM/SCT support"
204	depends on ARCH_LPC18XX
205	help
206	  Generic PWM framework driver for NXP LPC18xx PWM/SCT which
207	  supports 16 channels.
208	  A maximum of 15 channels can be requested simultaneously and
209	  must have the same period.
210
211	  To compile this driver as a module, choose M here: the module
212	  will be called pwm-lpc18xx-sct.
213
214config PWM_LPC32XX
215	tristate "LPC32XX PWM support"
216	depends on ARCH_LPC32XX
217	help
218	  Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
219	  PWM controllers.
220
221	  To compile this driver as a module, choose M here: the module
222	  will be called pwm-lpc32xx.
223
224config PWM_LPSS
225	tristate "Intel LPSS PWM support"
226	depends on X86
227	help
228	  Generic PWM framework driver for Intel Low Power Subsystem PWM
229	  controller.
230
231	  To compile this driver as a module, choose M here: the module
232	  will be called pwm-lpss.
233
234config PWM_LPSS_PCI
235	tristate "Intel LPSS PWM PCI driver"
236	depends on PWM_LPSS && PCI
237	help
238	  The PCI driver for Intel Low Power Subsystem PWM controller.
239
240	  To compile this driver as a module, choose M here: the module
241	  will be called pwm-lpss-pci.
242
243config PWM_LPSS_PLATFORM
244	tristate "Intel LPSS PWM platform driver"
245	depends on PWM_LPSS && ACPI
246	help
247	  The platform driver for Intel Low Power Subsystem PWM controller.
248
249	  To compile this driver as a module, choose M here: the module
250	  will be called pwm-lpss-platform.
251
252config PWM_MTK_DISP
253	tristate "MediaTek display PWM driver"
254	depends on ARCH_MEDIATEK || COMPILE_TEST
255	depends on HAS_IOMEM
256	help
257	  Generic PWM framework driver for MediaTek disp-pwm device.
258	  The PWM is used to control the backlight brightness for display.
259
260	  To compile this driver as a module, choose M here: the module
261	  will be called pwm-mtk-disp.
262
263config PWM_MXS
264	tristate "Freescale MXS PWM support"
265	depends on ARCH_MXS && OF
266	select STMP_DEVICE
267	help
268	  Generic PWM framework driver for Freescale MXS.
269
270	  To compile this driver as a module, choose M here: the module
271	  will be called pwm-mxs.
272
273config PWM_PCA9685
274	tristate "NXP PCA9685 PWM driver"
275	depends on I2C
276	select REGMAP_I2C
277	help
278	  Generic PWM framework driver for NXP PCA9685 LED controller.
279
280	  To compile this driver as a module, choose M here: the module
281	  will be called pwm-pca9685.
282
283config PWM_PUV3
284	tristate "PKUnity NetBook-0916 PWM support"
285	depends on ARCH_PUV3
286	help
287	  Generic PWM framework driver for PKUnity NetBook-0916.
288
289	  To compile this driver as a module, choose M here: the module
290	  will be called pwm-puv3.
291
292config PWM_PXA
293	tristate "PXA PWM support"
294	depends on ARCH_PXA
295	help
296	  Generic PWM framework driver for PXA.
297
298	  To compile this driver as a module, choose M here: the module
299	  will be called pwm-pxa.
300
301config PWM_RCAR
302	tristate "Renesas R-Car PWM support"
303	depends on ARCH_RCAR_GEN1 || ARCH_RCAR_GEN2 || COMPILE_TEST
304	depends on HAS_IOMEM
305	help
306	  This driver exposes the PWM Timer controller found in Renesas
307	  R-Car chips through the PWM API.
308
309	  To compile this driver as a module, choose M here: the module
310	  will be called pwm-rcar.
311
312config PWM_RENESAS_TPU
313	tristate "Renesas TPU PWM support"
314	depends on ARCH_SHMOBILE || COMPILE_TEST
315	depends on HAS_IOMEM
316	help
317	  This driver exposes the Timer Pulse Unit (TPU) PWM controller found
318	  in Renesas chips through the PWM API.
319
320	  To compile this driver as a module, choose M here: the module
321	  will be called pwm-renesas-tpu.
322
323config PWM_ROCKCHIP
324	tristate "Rockchip PWM support"
325	depends on ARCH_ROCKCHIP
326	help
327	  Generic PWM framework driver for the PWM controller found on
328	  Rockchip SoCs.
329
330config PWM_SAMSUNG
331	tristate "Samsung PWM support"
332	depends on PLAT_SAMSUNG || ARCH_EXYNOS
333	help
334	  Generic PWM framework driver for Samsung.
335
336	  To compile this driver as a module, choose M here: the module
337	  will be called pwm-samsung.
338
339config PWM_SPEAR
340	tristate "STMicroelectronics SPEAr PWM support"
341	depends on PLAT_SPEAR
342	depends on OF
343	help
344	  Generic PWM framework driver for the PWM controller on ST
345	  SPEAr SoCs.
346
347	  To compile this driver as a module, choose M here: the module
348	  will be called pwm-spear.
349
350config PWM_STI
351	tristate "STiH4xx PWM support"
352	depends on ARCH_STI
353	depends on OF
354	help
355	  Generic PWM framework driver for STiH4xx SoCs.
356
357	  To compile this driver as a module, choose M here: the module
358	  will be called pwm-sti.
359
360config PWM_SUN4I
361	tristate "Allwinner PWM support"
362	depends on ARCH_SUNXI || COMPILE_TEST
363	depends on HAS_IOMEM && COMMON_CLK
364	help
365	  Generic PWM framework driver for Allwinner SoCs.
366
367	  To compile this driver as a module, choose M here: the module
368	  will be called pwm-sun4i.
369
370config PWM_TEGRA
371	tristate "NVIDIA Tegra PWM support"
372	depends on ARCH_TEGRA
373	help
374	  Generic PWM framework driver for the PWFM controller found on NVIDIA
375	  Tegra SoCs.
376
377	  To compile this driver as a module, choose M here: the module
378	  will be called pwm-tegra.
379
380config  PWM_TIECAP
381	tristate "ECAP PWM support"
382	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX
383	help
384	  PWM driver support for the ECAP APWM controller found on AM33XX
385	  TI SOC
386
387	  To compile this driver as a module, choose M here: the module
388	  will be called pwm-tiecap.
389
390config  PWM_TIEHRPWM
391	tristate "EHRPWM PWM support"
392	depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX
393	help
394	  PWM driver support for the EHRPWM controller found on AM33XX
395	  TI SOC
396
397	  To compile this driver as a module, choose M here: the module
398	  will be called pwm-tiehrpwm.
399
400config  PWM_TIPWMSS
401	bool
402	default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM)
403	help
404	  PWM Subsystem driver support for AM33xx SOC.
405
406	  PWM submodules require PWM config space access from submodule
407	  drivers and require common parent driver support.
408
409config PWM_TWL
410	tristate "TWL4030/6030 PWM support"
411	depends on TWL4030_CORE
412	help
413	  Generic PWM framework driver for TWL4030/6030.
414
415	  To compile this driver as a module, choose M here: the module
416	  will be called pwm-twl.
417
418config PWM_TWL_LED
419	tristate "TWL4030/6030 PWM support for LED drivers"
420	depends on TWL4030_CORE
421	help
422	  Generic PWM framework driver for TWL4030/6030 LED terminals.
423
424	  To compile this driver as a module, choose M here: the module
425	  will be called pwm-twl-led.
426
427config PWM_VT8500
428	tristate "vt8500 PWM support"
429	depends on ARCH_VT8500
430	help
431	  Generic PWM framework driver for vt8500.
432
433	  To compile this driver as a module, choose M here: the module
434	  will be called pwm-vt8500.
435
436endif
437