xref: /openbmc/linux/drivers/pwm/Kconfig (revision 1a4e39c2e5ca2eb494a53ecd73055562f690bca0)
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_TCB
54	tristate "Atmel TC Block PWM support"
55	depends on ATMEL_TCLIB && OF
56	help
57	  Generic PWM framework driver for Atmel Timer Counter Block.
58
59	  A Timer Counter Block provides 6 PWM devices grouped by 2.
60	  Devices in a given group must have the same period.
61
62	  To compile this driver as a module, choose M here: the module
63	  will be called pwm-atmel-tcb.
64
65config PWM_BCM_KONA
66	tristate "Kona PWM support"
67	depends on ARCH_BCM_MOBILE
68	help
69	  Generic PWM framework driver for Broadcom Kona PWM block.
70
71	  To compile this driver as a module, choose M here: the module
72	  will be called pwm-bcm-kona.
73
74config PWM_BFIN
75	tristate "Blackfin PWM support"
76	depends on BFIN_GPTIMERS
77	help
78	  Generic PWM framework driver for Blackfin.
79
80	  To compile this driver as a module, choose M here: the module
81	  will be called pwm-bfin.
82
83config PWM_CLPS711X
84	tristate "CLPS711X PWM support"
85	depends on ARCH_CLPS711X || COMPILE_TEST
86	depends on HAS_IOMEM
87	help
88	  Generic PWM framework driver for Cirrus Logic CLPS711X.
89
90	  To compile this driver as a module, choose M here: the module
91	  will be called pwm-clps711x.
92
93config PWM_EP93XX
94	tristate "Cirrus Logic EP93xx PWM support"
95	depends on ARCH_EP93XX
96	help
97	  Generic PWM framework driver for Cirrus Logic EP93xx.
98
99	  To compile this driver as a module, choose M here: the module
100	  will be called pwm-ep93xx.
101
102config PWM_FSL_FTM
103	tristate "Freescale FlexTimer Module (FTM) PWM support"
104	depends on OF
105	select REGMAP_MMIO
106	help
107	  Generic FTM PWM framework driver for Freescale VF610 and
108	  Layerscape LS-1 SoCs.
109
110	  To compile this driver as a module, choose M here: the module
111	  will be called pwm-fsl-ftm.
112
113config PWM_IMX
114	tristate "i.MX PWM support"
115	depends on ARCH_MXC
116	help
117	  Generic PWM framework driver for i.MX.
118
119	  To compile this driver as a module, choose M here: the module
120	  will be called pwm-imx.
121
122config PWM_JZ4740
123	tristate "Ingenic JZ4740 PWM support"
124	depends on MACH_JZ4740
125	help
126	  Generic PWM framework driver for Ingenic JZ4740 based
127	  machines.
128
129	  To compile this driver as a module, choose M here: the module
130	  will be called pwm-jz4740.
131
132config PWM_LP3943
133	tristate "TI/National Semiconductor LP3943 PWM support"
134	depends on MFD_LP3943
135	help
136	  Generic PWM framework driver for LP3943 which supports two PWM
137	  channels.
138
139	  To compile this driver as a module, choose M here: the module
140	  will be called pwm-lp3943.
141
142config PWM_LPC32XX
143	tristate "LPC32XX PWM support"
144	depends on ARCH_LPC32XX
145	help
146	  Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
147	  PWM controllers.
148
149	  To compile this driver as a module, choose M here: the module
150	  will be called pwm-lpc32xx.
151
152config PWM_LPSS
153	tristate "Intel LPSS PWM support"
154	depends on X86
155	help
156	  Generic PWM framework driver for Intel Low Power Subsystem PWM
157	  controller.
158
159	  To compile this driver as a module, choose M here: the module
160	  will be called pwm-lpss.
161
162config PWM_LPSS_PCI
163	tristate "Intel LPSS PWM PCI driver"
164	depends on PWM_LPSS && PCI
165	help
166	  The PCI driver for Intel Low Power Subsystem PWM controller.
167
168	  To compile this driver as a module, choose M here: the module
169	  will be called pwm-lpss-pci.
170
171config PWM_LPSS_PLATFORM
172	tristate "Intel LPSS PWM platform driver"
173	depends on PWM_LPSS && ACPI
174	help
175	  The platform driver for Intel Low Power Subsystem PWM controller.
176
177	  To compile this driver as a module, choose M here: the module
178	  will be called pwm-lpss-platform.
179
180config PWM_MXS
181	tristate "Freescale MXS PWM support"
182	depends on ARCH_MXS && OF
183	select STMP_DEVICE
184	help
185	  Generic PWM framework driver for Freescale MXS.
186
187	  To compile this driver as a module, choose M here: the module
188	  will be called pwm-mxs.
189
190config PWM_PCA9685
191	tristate "NXP PCA9685 PWM driver"
192	depends on OF && I2C
193	select REGMAP_I2C
194	help
195	  Generic PWM framework driver for NXP PCA9685 LED controller.
196
197	  To compile this driver as a module, choose M here: the module
198	  will be called pwm-pca9685.
199
200config PWM_PUV3
201	tristate "PKUnity NetBook-0916 PWM support"
202	depends on ARCH_PUV3
203	help
204	  Generic PWM framework driver for PKUnity NetBook-0916.
205
206	  To compile this driver as a module, choose M here: the module
207	  will be called pwm-puv3.
208
209config PWM_PXA
210	tristate "PXA PWM support"
211	depends on ARCH_PXA
212	help
213	  Generic PWM framework driver for PXA.
214
215	  To compile this driver as a module, choose M here: the module
216	  will be called pwm-pxa.
217
218config PWM_RENESAS_TPU
219	tristate "Renesas TPU PWM support"
220	depends on ARCH_SHMOBILE || COMPILE_TEST
221	depends on HAS_IOMEM
222	help
223	  This driver exposes the Timer Pulse Unit (TPU) PWM controller found
224	  in Renesas chips through the PWM API.
225
226	  To compile this driver as a module, choose M here: the module
227	  will be called pwm-renesas-tpu.
228
229config PWM_ROCKCHIP
230	tristate "Rockchip PWM support"
231	depends on ARCH_ROCKCHIP
232	help
233	  Generic PWM framework driver for the PWM controller found on
234	  Rockchip SoCs.
235
236config PWM_SAMSUNG
237	tristate "Samsung PWM support"
238	depends on PLAT_SAMSUNG
239	help
240	  Generic PWM framework driver for Samsung.
241
242	  To compile this driver as a module, choose M here: the module
243	  will be called pwm-samsung.
244
245config PWM_SPEAR
246	tristate "STMicroelectronics SPEAr PWM support"
247	depends on PLAT_SPEAR
248	depends on OF
249	help
250	  Generic PWM framework driver for the PWM controller on ST
251	  SPEAr SoCs.
252
253	  To compile this driver as a module, choose M here: the module
254	  will be called pwm-spear.
255
256config PWM_STI
257	tristate "STiH4xx PWM support"
258	depends on ARCH_STI
259	depends on OF
260	help
261	  Generic PWM framework driver for STiH4xx SoCs.
262
263	  To compile this driver as a module, choose M here: the module
264	  will be called pwm-sti.
265
266config PWM_TEGRA
267	tristate "NVIDIA Tegra PWM support"
268	depends on ARCH_TEGRA
269	help
270	  Generic PWM framework driver for the PWFM controller found on NVIDIA
271	  Tegra SoCs.
272
273	  To compile this driver as a module, choose M here: the module
274	  will be called pwm-tegra.
275
276config  PWM_TIECAP
277	tristate "ECAP PWM support"
278	depends on SOC_AM33XX || ARCH_DAVINCI_DA8XX
279	help
280	  PWM driver support for the ECAP APWM controller found on AM33XX
281	  TI SOC
282
283	  To compile this driver as a module, choose M here: the module
284	  will be called pwm-tiecap.
285
286config  PWM_TIEHRPWM
287	tristate "EHRPWM PWM support"
288	depends on SOC_AM33XX || ARCH_DAVINCI_DA8XX
289	help
290	  PWM driver support for the EHRPWM controller found on AM33XX
291	  TI SOC
292
293	  To compile this driver as a module, choose M here: the module
294	  will be called pwm-tiehrpwm.
295
296config  PWM_TIPWMSS
297	bool
298	default y if SOC_AM33XX && (PWM_TIECAP || PWM_TIEHRPWM)
299	help
300	  PWM Subsystem driver support for AM33xx SOC.
301
302	  PWM submodules require PWM config space access from submodule
303	  drivers and require common parent driver support.
304
305config PWM_TWL
306	tristate "TWL4030/6030 PWM support"
307	depends on TWL4030_CORE
308	help
309	  Generic PWM framework driver for TWL4030/6030.
310
311	  To compile this driver as a module, choose M here: the module
312	  will be called pwm-twl.
313
314config PWM_TWL_LED
315	tristate "TWL4030/6030 PWM support for LED drivers"
316	depends on TWL4030_CORE
317	help
318	  Generic PWM framework driver for TWL4030/6030 LED terminals.
319
320	  To compile this driver as a module, choose M here: the module
321	  will be called pwm-twl-led.
322
323config PWM_VT8500
324	tristate "vt8500 PWM support"
325	depends on ARCH_VT8500
326	help
327	  Generic PWM framework driver for vt8500.
328
329	  To compile this driver as a module, choose M here: the module
330	  will be called pwm-vt8500.
331
332endif
333