Kconfig 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. menuconfig PWM
  3. bool "Pulse-Width Modulation (PWM) Support"
  4. help
  5. Generic Pulse-Width Modulation (PWM) support.
  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. This framework provides a generic interface to PWM devices
  13. within the Linux kernel. On the driver side it provides an API
  14. to register and unregister a PWM chip, an abstraction of a PWM
  15. controller, that supports one or more PWM devices. Client
  16. drivers can request PWM devices and use the generic framework
  17. to configure as well as enable and disable them.
  18. This generic framework replaces the legacy PWM framework which
  19. allows only a single driver implementing the required API. Not
  20. all legacy implementations have been ported to the framework
  21. yet. The framework provides an API that is backward compatible
  22. with the legacy framework so that existing client drivers
  23. continue to work as expected.
  24. If unsure, say no.
  25. if PWM
  26. config PWM_SYSFS
  27. bool
  28. default y if SYSFS
  29. config PWM_DEBUG
  30. bool "PWM lowlevel drivers additional checks and debug messages"
  31. depends on DEBUG_KERNEL
  32. help
  33. This option enables some additional checks to help lowlevel driver
  34. authors to get their callbacks implemented correctly.
  35. It is expected to introduce some runtime overhead and diagnostic
  36. output to the kernel log, so only enable while working on a driver.
  37. config PWM_AB8500
  38. tristate "AB8500 PWM support"
  39. depends on AB8500_CORE && ARCH_U8500
  40. help
  41. Generic PWM framework driver for Analog Baseband AB8500.
  42. To compile this driver as a module, choose M here: the module
  43. will be called pwm-ab8500.
  44. config PWM_ATMEL
  45. tristate "Atmel PWM support"
  46. depends on OF
  47. depends on ARCH_AT91 || COMPILE_TEST
  48. help
  49. Generic PWM framework driver for Atmel SoC.
  50. To compile this driver as a module, choose M here: the module
  51. will be called pwm-atmel.
  52. config PWM_ATMEL_HLCDC_PWM
  53. tristate "Atmel HLCDC PWM support"
  54. depends on MFD_ATMEL_HLCDC
  55. depends on HAVE_CLK
  56. help
  57. Generic PWM framework driver for the PWM output of the HLCDC
  58. (Atmel High-end LCD Controller). This PWM output is mainly used
  59. to control the LCD backlight.
  60. To compile this driver as a module, choose M here: the module
  61. will be called pwm-atmel-hlcdc.
  62. config PWM_ATMEL_TCB
  63. tristate "Atmel TC Block PWM support"
  64. depends on ATMEL_TCLIB && OF
  65. help
  66. Generic PWM framework driver for Atmel Timer Counter Block.
  67. A Timer Counter Block provides 6 PWM devices grouped by 2.
  68. Devices in a given group must have the same period.
  69. To compile this driver as a module, choose M here: the module
  70. will be called pwm-atmel-tcb.
  71. config PWM_BCM_IPROC
  72. tristate "iProc PWM support"
  73. depends on ARCH_BCM_IPROC || COMPILE_TEST
  74. depends on COMMON_CLK
  75. default ARCH_BCM_IPROC
  76. help
  77. Generic PWM framework driver for Broadcom iProc PWM block. This
  78. block is used in Broadcom iProc SoC's.
  79. To compile this driver as a module, choose M here: the module
  80. will be called pwm-bcm-iproc.
  81. config PWM_BCM_KONA
  82. tristate "Kona PWM support"
  83. depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST
  84. depends on HAVE_CLK && HAS_IOMEM
  85. default ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS
  86. help
  87. Generic PWM framework driver for Broadcom Kona PWM block.
  88. To compile this driver as a module, choose M here: the module
  89. will be called pwm-bcm-kona.
  90. config PWM_BCM2835
  91. tristate "BCM2835 PWM support"
  92. depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
  93. help
  94. PWM framework driver for BCM2835 controller (Raspberry Pi)
  95. To compile this driver as a module, choose M here: the module
  96. will be called pwm-bcm2835.
  97. config PWM_BERLIN
  98. tristate "Marvell Berlin PWM support"
  99. depends on ARCH_BERLIN || COMPILE_TEST
  100. help
  101. PWM framework driver for Marvell Berlin SoCs.
  102. To compile this driver as a module, choose M here: the module
  103. will be called pwm-berlin.
  104. config PWM_BRCMSTB
  105. tristate "Broadcom STB PWM support"
  106. depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
  107. help
  108. Generic PWM framework driver for the Broadcom Set-top-Box
  109. SoCs (BCM7xxx).
  110. To compile this driver as a module, choose M Here: the module
  111. will be called pwm-brcmstb.c.
  112. config PWM_CLPS711X
  113. tristate "CLPS711X PWM support"
  114. depends on ARCH_CLPS711X || COMPILE_TEST
  115. depends on HAS_IOMEM
  116. help
  117. Generic PWM framework driver for Cirrus Logic CLPS711X.
  118. To compile this driver as a module, choose M here: the module
  119. will be called pwm-clps711x.
  120. config PWM_CRC
  121. bool "Intel Crystalcove (CRC) PWM support"
  122. depends on X86 && INTEL_SOC_PMIC
  123. help
  124. Generic PWM framework driver for Crystalcove (CRC) PMIC based PWM
  125. control.
  126. config PWM_CROS_EC
  127. tristate "ChromeOS EC PWM driver"
  128. depends on CROS_EC
  129. help
  130. PWM driver for exposing a PWM attached to the ChromeOS Embedded
  131. Controller.
  132. config PWM_EP93XX
  133. tristate "Cirrus Logic EP93xx PWM support"
  134. depends on ARCH_EP93XX || COMPILE_TEST
  135. help
  136. Generic PWM framework driver for Cirrus Logic EP93xx.
  137. To compile this driver as a module, choose M here: the module
  138. will be called pwm-ep93xx.
  139. config PWM_FSL_FTM
  140. tristate "Freescale FlexTimer Module (FTM) PWM support"
  141. depends on HAS_IOMEM
  142. depends on OF
  143. select REGMAP_MMIO
  144. help
  145. Generic FTM PWM framework driver for Freescale VF610 and
  146. Layerscape LS-1 SoCs.
  147. To compile this driver as a module, choose M here: the module
  148. will be called pwm-fsl-ftm.
  149. config PWM_HIBVT
  150. tristate "HiSilicon BVT PWM support"
  151. depends on ARCH_HISI || COMPILE_TEST
  152. help
  153. Generic PWM framework driver for HiSilicon BVT SoCs.
  154. To compile this driver as a module, choose M here: the module
  155. will be called pwm-hibvt.
  156. config PWM_IMG
  157. tristate "Imagination Technologies PWM driver"
  158. depends on HAS_IOMEM
  159. depends on MFD_SYSCON
  160. depends on COMMON_CLK
  161. depends on MIPS || COMPILE_TEST
  162. help
  163. Generic PWM framework driver for Imagination Technologies
  164. PWM block which supports 4 channels.
  165. To compile this driver as a module, choose M here: the module
  166. will be called pwm-img
  167. config PWM_IMX1
  168. tristate "i.MX1 PWM support"
  169. depends on ARCH_MXC || COMPILE_TEST
  170. help
  171. Generic PWM framework driver for i.MX1 and i.MX21
  172. To compile this driver as a module, choose M here: the module
  173. will be called pwm-imx1.
  174. config PWM_IMX27
  175. tristate "i.MX27 PWM support"
  176. depends on ARCH_MXC || COMPILE_TEST
  177. help
  178. Generic PWM framework driver for i.MX27 and later i.MX SoCs.
  179. To compile this driver as a module, choose M here: the module
  180. will be called pwm-imx27.
  181. config PWM_IMX_TPM
  182. tristate "i.MX TPM PWM support"
  183. depends on ARCH_MXC || COMPILE_TEST
  184. depends on HAVE_CLK && HAS_IOMEM
  185. help
  186. Generic PWM framework driver for i.MX7ULP TPM module, TPM's full
  187. name is Low Power Timer/Pulse Width Modulation Module.
  188. To compile this driver as a module, choose M here: the module
  189. will be called pwm-imx-tpm.
  190. config PWM_IQS620A
  191. tristate "Azoteq IQS620A PWM support"
  192. depends on MFD_IQS62X || COMPILE_TEST
  193. help
  194. Generic PWM framework driver for the Azoteq IQS620A multi-function
  195. sensor.
  196. To compile this driver as a module, choose M here: the module will
  197. be called pwm-iqs620a.
  198. config PWM_JZ4740
  199. tristate "Ingenic JZ47xx PWM support"
  200. depends on MIPS
  201. depends on COMMON_CLK
  202. select MFD_SYSCON
  203. help
  204. Generic PWM framework driver for Ingenic JZ47xx based
  205. machines.
  206. To compile this driver as a module, choose M here: the module
  207. will be called pwm-jz4740.
  208. config PWM_LP3943
  209. tristate "TI/National Semiconductor LP3943 PWM support"
  210. depends on MFD_LP3943
  211. help
  212. Generic PWM framework driver for LP3943 which supports two PWM
  213. channels.
  214. To compile this driver as a module, choose M here: the module
  215. will be called pwm-lp3943.
  216. config PWM_LPC18XX_SCT
  217. tristate "LPC18xx/43xx PWM/SCT support"
  218. depends on ARCH_LPC18XX || COMPILE_TEST
  219. help
  220. Generic PWM framework driver for NXP LPC18xx PWM/SCT which
  221. supports 16 channels.
  222. A maximum of 15 channels can be requested simultaneously and
  223. must have the same period.
  224. To compile this driver as a module, choose M here: the module
  225. will be called pwm-lpc18xx-sct.
  226. config PWM_LPC32XX
  227. tristate "LPC32XX PWM support"
  228. depends on ARCH_LPC32XX || COMPILE_TEST
  229. help
  230. Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two
  231. PWM controllers.
  232. To compile this driver as a module, choose M here: the module
  233. will be called pwm-lpc32xx.
  234. config PWM_LPSS
  235. tristate
  236. config PWM_LPSS_PCI
  237. tristate "Intel LPSS PWM PCI driver"
  238. depends on X86 && PCI
  239. select PWM_LPSS
  240. help
  241. The PCI driver for Intel Low Power Subsystem PWM controller.
  242. To compile this driver as a module, choose M here: the module
  243. will be called pwm-lpss-pci.
  244. config PWM_LPSS_PLATFORM
  245. tristate "Intel LPSS PWM platform driver"
  246. depends on X86 && ACPI
  247. select PWM_LPSS
  248. help
  249. The platform driver for Intel Low Power Subsystem PWM controller.
  250. To compile this driver as a module, choose M here: the module
  251. will be called pwm-lpss-platform.
  252. config PWM_MESON
  253. tristate "Amlogic Meson PWM driver"
  254. depends on ARCH_MESON || COMPILE_TEST
  255. depends on COMMON_CLK
  256. help
  257. The platform driver for Amlogic Meson PWM controller.
  258. To compile this driver as a module, choose M here: the module
  259. will be called pwm-meson.
  260. config PWM_MTK_DISP
  261. tristate "MediaTek display PWM driver"
  262. depends on ARCH_MEDIATEK || COMPILE_TEST
  263. depends on HAS_IOMEM
  264. help
  265. Generic PWM framework driver for MediaTek disp-pwm device.
  266. The PWM is used to control the backlight brightness for display.
  267. To compile this driver as a module, choose M here: the module
  268. will be called pwm-mtk-disp.
  269. config PWM_MEDIATEK
  270. tristate "MediaTek PWM support"
  271. depends on ARCH_MEDIATEK || RALINK || COMPILE_TEST
  272. help
  273. Generic PWM framework driver for Mediatek ARM SoC.
  274. To compile this driver as a module, choose M here: the module
  275. will be called pwm-mediatek.
  276. config PWM_MXS
  277. tristate "Freescale MXS PWM support"
  278. depends on OF
  279. depends on ARCH_MXS || COMPILE_TEST
  280. select STMP_DEVICE
  281. help
  282. Generic PWM framework driver for Freescale MXS.
  283. To compile this driver as a module, choose M here: the module
  284. will be called pwm-mxs.
  285. config PWM_OMAP_DMTIMER
  286. tristate "OMAP Dual-Mode Timer PWM support"
  287. depends on OF
  288. depends on OMAP_DM_TIMER || COMPILE_TEST
  289. help
  290. Generic PWM framework driver for OMAP Dual-Mode Timer PWM output
  291. To compile this driver as a module, choose M here: the module
  292. will be called pwm-omap-dmtimer
  293. config PWM_PCA9685
  294. tristate "NXP PCA9685 PWM driver"
  295. depends on I2C
  296. select REGMAP_I2C
  297. help
  298. Generic PWM framework driver for NXP PCA9685 LED controller.
  299. To compile this driver as a module, choose M here: the module
  300. will be called pwm-pca9685.
  301. config PWM_PXA
  302. tristate "PXA PWM support"
  303. depends on ARCH_PXA || COMPILE_TEST
  304. help
  305. Generic PWM framework driver for PXA.
  306. To compile this driver as a module, choose M here: the module
  307. will be called pwm-pxa.
  308. config PWM_RCAR
  309. tristate "Renesas R-Car PWM support"
  310. depends on ARCH_RENESAS || COMPILE_TEST
  311. depends on HAS_IOMEM
  312. help
  313. This driver exposes the PWM Timer controller found in Renesas
  314. R-Car chips through the PWM API.
  315. To compile this driver as a module, choose M here: the module
  316. will be called pwm-rcar.
  317. config PWM_RENESAS_TPU
  318. tristate "Renesas TPU PWM support"
  319. depends on ARCH_RENESAS || COMPILE_TEST
  320. depends on HAS_IOMEM
  321. help
  322. This driver exposes the Timer Pulse Unit (TPU) PWM controller found
  323. in Renesas chips through the PWM API.
  324. To compile this driver as a module, choose M here: the module
  325. will be called pwm-renesas-tpu.
  326. config PWM_ROCKCHIP
  327. tristate "Rockchip PWM support"
  328. depends on ARCH_ROCKCHIP || COMPILE_TEST
  329. help
  330. Generic PWM framework driver for the PWM controller found on
  331. Rockchip SoCs.
  332. config PWM_SAMSUNG
  333. tristate "Samsung PWM support"
  334. depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
  335. help
  336. Generic PWM framework driver for Samsung.
  337. To compile this driver as a module, choose M here: the module
  338. will be called pwm-samsung.
  339. config PWM_SIFIVE
  340. tristate "SiFive PWM support"
  341. depends on OF
  342. depends on COMMON_CLK
  343. depends on RISCV || COMPILE_TEST
  344. help
  345. Generic PWM framework driver for SiFive SoCs.
  346. To compile this driver as a module, choose M here: the module
  347. will be called pwm-sifive.
  348. config PWM_SL28CPLD
  349. tristate "Kontron sl28cpld PWM support"
  350. depends on MFD_SL28CPLD || COMPILE_TEST
  351. help
  352. Generic PWM framework driver for board management controller
  353. found on the Kontron sl28 CPLD.
  354. To compile this driver as a module, choose M here: the module
  355. will be called pwm-sl28cpld.
  356. config PWM_SPEAR
  357. tristate "STMicroelectronics SPEAr PWM support"
  358. depends on PLAT_SPEAR || COMPILE_TEST
  359. depends on OF
  360. help
  361. Generic PWM framework driver for the PWM controller on ST
  362. SPEAr SoCs.
  363. To compile this driver as a module, choose M here: the module
  364. will be called pwm-spear.
  365. config PWM_SPRD
  366. tristate "Spreadtrum PWM support"
  367. depends on ARCH_SPRD || COMPILE_TEST
  368. depends on HAS_IOMEM
  369. help
  370. Generic PWM framework driver for the PWM controller on
  371. Spreadtrum SoCs.
  372. To compile this driver as a module, choose M here: the module
  373. will be called pwm-sprd.
  374. config PWM_STI
  375. tristate "STiH4xx PWM support"
  376. depends on ARCH_STI || COMPILE_TEST
  377. depends on OF
  378. help
  379. Generic PWM framework driver for STiH4xx SoCs.
  380. To compile this driver as a module, choose M here: the module
  381. will be called pwm-sti.
  382. config PWM_STM32
  383. tristate "STMicroelectronics STM32 PWM"
  384. depends on MFD_STM32_TIMERS || COMPILE_TEST
  385. help
  386. Generic PWM framework driver for STM32 SoCs.
  387. To compile this driver as a module, choose M here: the module
  388. will be called pwm-stm32.
  389. config PWM_STM32_LP
  390. tristate "STMicroelectronics STM32 PWM LP"
  391. depends on MFD_STM32_LPTIMER || COMPILE_TEST
  392. help
  393. Generic PWM framework driver for STMicroelectronics STM32 SoCs
  394. with Low-Power Timer (LPTIM).
  395. To compile this driver as a module, choose M here: the module
  396. will be called pwm-stm32-lp.
  397. config PWM_STMPE
  398. bool "STMPE expander PWM export"
  399. depends on MFD_STMPE
  400. help
  401. This enables support for the PWMs found in the STMPE I/O
  402. expanders.
  403. config PWM_SUN4I
  404. tristate "Allwinner PWM support"
  405. depends on ARCH_SUNXI || COMPILE_TEST
  406. depends on HAS_IOMEM && COMMON_CLK
  407. help
  408. Generic PWM framework driver for Allwinner SoCs.
  409. To compile this driver as a module, choose M here: the module
  410. will be called pwm-sun4i.
  411. config PWM_TEGRA
  412. tristate "NVIDIA Tegra PWM support"
  413. depends on ARCH_TEGRA || COMPILE_TEST
  414. help
  415. Generic PWM framework driver for the PWFM controller found on NVIDIA
  416. Tegra SoCs.
  417. To compile this driver as a module, choose M here: the module
  418. will be called pwm-tegra.
  419. config PWM_LIGHT
  420. tristate "LIGHT PWM support"
  421. depends on PWM
  422. help
  423. Generic PWM driver for the Thead Light PWM light SoCs.
  424. To compile this driver as a module, choose M here: the module
  425. will be called pwm-light.
  426. config PWM_TIECAP
  427. tristate "ECAP PWM support"
  428. depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
  429. help
  430. PWM driver support for the ECAP APWM controller found on TI SOCs
  431. To compile this driver as a module, choose M here: the module
  432. will be called pwm-tiecap.
  433. config PWM_TIEHRPWM
  434. tristate "EHRPWM PWM support"
  435. depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3 || COMPILE_TEST
  436. help
  437. PWM driver support for the EHRPWM controller found on TI SOCs
  438. To compile this driver as a module, choose M here: the module
  439. will be called pwm-tiehrpwm.
  440. config PWM_TWL
  441. tristate "TWL4030/6030 PWM support"
  442. depends on TWL4030_CORE
  443. help
  444. Generic PWM framework driver for TWL4030/6030.
  445. To compile this driver as a module, choose M here: the module
  446. will be called pwm-twl.
  447. config PWM_TWL_LED
  448. tristate "TWL4030/6030 PWM support for LED drivers"
  449. depends on TWL4030_CORE
  450. help
  451. Generic PWM framework driver for TWL4030/6030 LED terminals.
  452. To compile this driver as a module, choose M here: the module
  453. will be called pwm-twl-led.
  454. config PWM_VT8500
  455. tristate "vt8500 PWM support"
  456. depends on ARCH_VT8500 || COMPILE_TEST
  457. help
  458. Generic PWM framework driver for vt8500.
  459. To compile this driver as a module, choose M here: the module
  460. will be called pwm-vt8500.
  461. config PWM_ZX
  462. tristate "ZTE ZX PWM support"
  463. depends on ARCH_ZX || COMPILE_TEST
  464. help
  465. Generic PWM framework driver for ZTE ZX family SoCs.
  466. To compile this driver as a module, choose M here: the module
  467. will be called pwm-zx.
  468. endif