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