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_IPQ 351 tristate "IPQ PWM support" 352 depends on ARCH_QCOM || COMPILE_TEST 353 depends on HAVE_CLK && HAS_IOMEM 354 help 355 Generic PWM framework driver for IPQ PWM block which supports 356 4 pwm channels. Each of the these channels can be configured 357 independent of each other. 358 359 To compile this driver as a module, choose M here: the module 360 will be called pwm-ipq. 361 362config PWM_IQS620A 363 tristate "Azoteq IQS620A PWM support" 364 depends on MFD_IQS62X || COMPILE_TEST 365 help 366 Generic PWM framework driver for the Azoteq IQS620A multi-function 367 sensor. 368 369 To compile this driver as a module, choose M here: the module will 370 be called pwm-iqs620a. 371 372config PWM_JZ4740 373 tristate "Ingenic JZ47xx PWM support" 374 depends on MACH_INGENIC || COMPILE_TEST 375 depends on COMMON_CLK && OF 376 select MFD_SYSCON 377 help 378 Generic PWM framework driver for Ingenic JZ47xx based 379 machines. 380 381 To compile this driver as a module, choose M here: the module 382 will be called pwm-jz4740. 383 384config PWM_KEEMBAY 385 tristate "Intel Keem Bay PWM driver" 386 depends on ARCH_KEEMBAY || COMPILE_TEST 387 depends on COMMON_CLK && HAS_IOMEM 388 help 389 The platform driver for Intel Keem Bay PWM controller. 390 391 To compile this driver as a module, choose M here: the module 392 will be called pwm-keembay. 393 394config PWM_LOONGSON 395 tristate "Loongson PWM support" 396 depends on MACH_LOONGSON64 || COMPILE_TEST 397 depends on COMMON_CLK 398 help 399 Generic PWM framework driver for Loongson family. 400 It can be found on Loongson-2K series cpus and Loongson LS7A 401 bridge chips. 402 403 To compile this driver as a module, choose M here: the module 404 will be called pwm-loongson. 405 406config PWM_LP3943 407 tristate "TI/National Semiconductor LP3943 PWM support" 408 depends on MFD_LP3943 409 help 410 Generic PWM framework driver for LP3943 which supports two PWM 411 channels. 412 413 To compile this driver as a module, choose M here: the module 414 will be called pwm-lp3943. 415 416config PWM_LPC18XX_SCT 417 tristate "LPC18xx/43xx PWM/SCT support" 418 depends on ARCH_LPC18XX || COMPILE_TEST 419 depends on HAS_IOMEM 420 help 421 Generic PWM framework driver for NXP LPC18xx PWM/SCT which 422 supports 16 channels. 423 A maximum of 15 channels can be requested simultaneously and 424 must have the same period. 425 426 To compile this driver as a module, choose M here: the module 427 will be called pwm-lpc18xx-sct. 428 429config PWM_LPC32XX 430 tristate "LPC32XX PWM support" 431 depends on ARCH_LPC32XX || COMPILE_TEST 432 depends on HAS_IOMEM 433 help 434 Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two 435 PWM controllers. 436 437 To compile this driver as a module, choose M here: the module 438 will be called pwm-lpc32xx. 439 440config PWM_LPSS 441 depends on HAS_IOMEM 442 tristate 443 444config PWM_LPSS_PCI 445 tristate "Intel LPSS PWM PCI driver" 446 depends on X86 || COMPILE_TEST 447 depends on HAS_IOMEM && PCI 448 select PWM_LPSS 449 help 450 The PCI driver for Intel Low Power Subsystem PWM controller. 451 452 To compile this driver as a module, choose M here: the module 453 will be called pwm-lpss-pci. 454 455config PWM_LPSS_PLATFORM 456 tristate "Intel LPSS PWM platform driver" 457 depends on (X86 && ACPI) || COMPILE_TEST 458 depends on HAS_IOMEM 459 select PWM_LPSS 460 help 461 The platform driver for Intel Low Power Subsystem PWM controller. 462 463 To compile this driver as a module, choose M here: the module 464 will be called pwm-lpss-platform. 465 466config PWM_MAX7360 467 tristate "MAX7360 PWMs" 468 depends on MFD_MAX7360 469 help 470 PWM driver for Maxim Integrated MAX7360 multifunction device, with 471 support for up to 8 PWM outputs. 472 473 To compile this driver as a module, choose M here: the module 474 will be called pwm-max7360. 475 476config PWM_MC33XS2410 477 tristate "MC33XS2410 PWM support" 478 depends on OF 479 depends on SPI 480 select AUXILIARY_BUS 481 help 482 NXP MC33XS2410 high-side switch driver. The MC33XS2410 is a four 483 channel high-side switch. The device is operational from 3.0 V 484 to 60 V. The device is controlled by SPI port for configuration. 485 486 To compile this driver as a module, choose M here: the module 487 will be called pwm-mc33xs2410. 488 489config PWM_MEDIATEK 490 tristate "MediaTek PWM support" 491 depends on ARCH_MEDIATEK || RALINK || COMPILE_TEST 492 depends on HAS_IOMEM 493 help 494 Generic PWM framework driver for Mediatek ARM SoC. 495 496 To compile this driver as a module, choose M here: the module 497 will be called pwm-mediatek. 498 499config PWM_MESON 500 tristate "Amlogic Meson PWM driver" 501 depends on ARCH_MESON || COMPILE_TEST 502 depends on COMMON_CLK && HAS_IOMEM 503 help 504 The platform driver for Amlogic Meson PWM controller. 505 506 To compile this driver as a module, choose M here: the module 507 will be called pwm-meson. 508 509config PWM_MICROCHIP_CORE 510 tristate "Microchip corePWM PWM support" 511 depends on ARCH_MICROCHIP_POLARFIRE || COMPILE_TEST 512 depends on HAS_IOMEM && OF 513 help 514 PWM driver for Microchip FPGA soft IP core. 515 516 To compile this driver as a module, choose M here: the module 517 will be called pwm-microchip-core. 518 519config PWM_MTK_DISP 520 tristate "MediaTek display PWM driver" 521 depends on ARCH_MEDIATEK || COMPILE_TEST 522 depends on HAS_IOMEM 523 help 524 Generic PWM framework driver for MediaTek disp-pwm device. 525 The PWM is used to control the backlight brightness for display. 526 527 To compile this driver as a module, choose M here: the module 528 will be called pwm-mtk-disp. 529 530config PWM_MXS 531 tristate "Freescale MXS PWM support" 532 depends on ARCH_MXS || COMPILE_TEST 533 depends on HAS_IOMEM && OF 534 select STMP_DEVICE 535 help 536 Generic PWM framework driver for Freescale MXS. 537 538 To compile this driver as a module, choose M here: the module 539 will be called pwm-mxs. 540 541config PWM_NTXEC 542 tristate "Netronix embedded controller PWM support" 543 depends on MFD_NTXEC 544 help 545 Say yes here if you want to support the PWM output of the embedded 546 controller found in certain e-book readers designed by the original 547 design manufacturer Netronix. 548 549config PWM_OMAP_DMTIMER 550 tristate "OMAP Dual-Mode Timer PWM support" 551 depends on OF 552 depends on OMAP_DM_TIMER || COMPILE_TEST 553 help 554 Generic PWM framework driver for OMAP Dual-Mode Timer PWM output 555 556 To compile this driver as a module, choose M here: the module 557 will be called pwm-omap-dmtimer 558 559config PWM_PCA9685 560 tristate "NXP PCA9685 PWM driver" 561 depends on I2C 562 select REGMAP_I2C 563 help 564 Generic PWM framework driver for NXP PCA9685 LED controller. 565 566 To compile this driver as a module, choose M here: the module 567 will be called pwm-pca9685. 568 569config PWM_PXA 570 tristate "PXA PWM support" 571 depends on ARCH_PXA || ARCH_MMP || ARCH_SPACEMIT || COMPILE_TEST 572 depends on HAS_IOMEM 573 help 574 Generic PWM framework driver for PXA. 575 576 To compile this driver as a module, choose M here: the module 577 will be called pwm-pxa. 578 579config PWM_RASPBERRYPI_POE 580 tristate "Raspberry Pi Firmware PoE Hat PWM support" 581 # Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only 582 # happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE. 583 depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE) 584 help 585 Enable Raspberry Pi firmware controller PWM bus used to control the 586 official RPI PoE hat 587 588config PWM_RENESAS_RCAR 589 tristate "Renesas R-Car PWM support" 590 depends on ARCH_RENESAS || COMPILE_TEST 591 depends on HAS_IOMEM 592 help 593 This driver exposes the PWM Timer controller found in Renesas 594 R-Car chips through the PWM API. 595 596 To compile this driver as a module, choose M here: the module 597 will be called pwm-rcar. 598 599config PWM_RENESAS_RZG2L_GPT 600 tristate "Renesas RZ/G2L General PWM Timer support" 601 depends on ARCH_RZG2L || COMPILE_TEST 602 depends on HAS_IOMEM 603 help 604 This driver exposes the General PWM Timer controller found in Renesas 605 RZ/G2L like chips through the PWM API. 606 607 To compile this driver as a module, choose M here: the module 608 will be called pwm-rzg2l-gpt. 609 610config PWM_RENESAS_RZ_MTU3 611 tristate "Renesas RZ/G2L MTU3a PWM Timer support" 612 depends on RZ_MTU3 613 depends on HAS_IOMEM 614 help 615 This driver exposes the MTU3a PWM Timer controller found in Renesas 616 RZ/G2L like chips through the PWM API. 617 618 To compile this driver as a module, choose M here: the module 619 will be called pwm-rz-mtu3. 620 621config PWM_RENESAS_TPU 622 tristate "Renesas TPU PWM support" 623 depends on ARCH_RENESAS || COMPILE_TEST 624 depends on HAS_IOMEM 625 help 626 This driver exposes the Timer Pulse Unit (TPU) PWM controller found 627 in Renesas chips through the PWM API. 628 629 To compile this driver as a module, choose M here: the module 630 will be called pwm-renesas-tpu. 631 632config PWM_ROCKCHIP 633 tristate "Rockchip PWM support" 634 depends on ARCH_ROCKCHIP || COMPILE_TEST 635 depends on HAS_IOMEM 636 help 637 Generic PWM framework driver for the PWM controller found on 638 Rockchip SoCs. 639 640config PWM_SAMSUNG 641 tristate "Samsung PWM support" 642 depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 643 depends on HAS_IOMEM 644 help 645 Generic PWM framework driver for Samsung S3C24xx, S3C64xx, S5Pv210 646 and Exynos SoCs. 647 Choose Y here only if you build for such Samsung SoC. 648 649 To compile this driver as a module, choose M here: the module 650 will be called pwm-samsung. 651 652config PWM_SIFIVE 653 tristate "SiFive PWM support" 654 depends on OF 655 depends on COMMON_CLK && HAS_IOMEM 656 depends on ARCH_SIFIVE || COMPILE_TEST 657 help 658 Generic PWM framework driver for SiFive SoCs. 659 660 To compile this driver as a module, choose M here: the module 661 will be called pwm-sifive. 662 663config PWM_SL28CPLD 664 tristate "Kontron sl28cpld PWM support" 665 depends on MFD_SL28CPLD || COMPILE_TEST 666 help 667 Generic PWM framework driver for board management controller 668 found on the Kontron sl28 CPLD. 669 670 To compile this driver as a module, choose M here: the module 671 will be called pwm-sl28cpld. 672 673config PWM_SOPHGO_SG2042 674 tristate "Sophgo SG2042 PWM support" 675 depends on ARCH_SOPHGO || COMPILE_TEST 676 help 677 PWM driver for the PWM controller on Sophgo SG2042 SoC. The PWM 678 controller supports outputing 4 channels of PWM waveforms. 679 680 To compile this driver as a module, choose M here: the module 681 will be called pwm_sophgo_sg2042. 682 683config PWM_SPEAR 684 tristate "STMicroelectronics SPEAr PWM support" 685 depends on PLAT_SPEAR || COMPILE_TEST 686 depends on HAS_IOMEM && OF 687 help 688 Generic PWM framework driver for the PWM controller on ST 689 SPEAr SoCs. 690 691 To compile this driver as a module, choose M here: the module 692 will be called pwm-spear. 693 694config PWM_SPRD 695 tristate "Spreadtrum PWM support" 696 depends on ARCH_SPRD || COMPILE_TEST 697 depends on HAS_IOMEM 698 help 699 Generic PWM framework driver for the PWM controller on 700 Spreadtrum SoCs. 701 702 To compile this driver as a module, choose M here: the module 703 will be called pwm-sprd. 704 705config PWM_STI 706 tristate "STiH4xx PWM support" 707 depends on ARCH_STI || COMPILE_TEST 708 depends on HAS_IOMEM && OF 709 help 710 Generic PWM framework driver for STiH4xx SoCs. 711 712 To compile this driver as a module, choose M here: the module 713 will be called pwm-sti. 714 715config PWM_STM32 716 tristate "STMicroelectronics STM32 PWM" 717 depends on MFD_STM32_TIMERS || COMPILE_TEST 718 help 719 Generic PWM framework driver for STM32 SoCs. 720 721 To compile this driver as a module, choose M here: the module 722 will be called pwm-stm32. 723 724config PWM_STM32_LP 725 tristate "STMicroelectronics STM32 PWM LP" 726 depends on MFD_STM32_LPTIMER || COMPILE_TEST 727 help 728 Generic PWM framework driver for STMicroelectronics STM32 SoCs 729 with Low-Power Timer (LPTIM). 730 731 To compile this driver as a module, choose M here: the module 732 will be called pwm-stm32-lp. 733 734config PWM_STMPE 735 tristate "STMPE expander PWM export" 736 depends on MFD_STMPE 737 help 738 This enables support for the PWMs found in the STMPE I/O 739 expanders. 740 741config PWM_SUN4I 742 tristate "Allwinner PWM support" 743 depends on ARCH_SUNXI || COMPILE_TEST 744 depends on HAS_IOMEM && COMMON_CLK 745 help 746 Generic PWM framework driver for Allwinner SoCs. 747 748 To compile this driver as a module, choose M here: the module 749 will be called pwm-sun4i. 750 751config PWM_SUNPLUS 752 tristate "Sunplus PWM support" 753 depends on ARCH_SUNPLUS || COMPILE_TEST 754 depends on HAS_IOMEM && OF 755 help 756 Generic PWM framework driver for the PWM controller on 757 Sunplus SoCs. 758 759 To compile this driver as a module, choose M here: the module 760 will be called pwm-sunplus. 761 762config PWM_TEGRA 763 tristate "NVIDIA Tegra PWM support" 764 depends on ARCH_TEGRA || COMPILE_TEST 765 depends on HAS_IOMEM 766 help 767 Generic PWM framework driver for the PWFM controller found on NVIDIA 768 Tegra SoCs. 769 770 To compile this driver as a module, choose M here: the module 771 will be called pwm-tegra. 772 773config PWM_TH1520 774 tristate "TH1520 PWM support" 775 depends on ARCH_THEAD || COMPILE_TEST 776 depends on RUST 777 depends on HAS_IOMEM && COMMON_CLK 778 select RUST_PWM_ABSTRACTIONS 779 help 780 This option enables the driver for the PWM controller found on the 781 T-HEAD TH1520 SoC. 782 783 To compile this driver as a module, choose M here; the module 784 will be called pwm-th1520. If you are unsure, say N. 785 786config PWM_TIECAP 787 tristate "ECAP PWM support" 788 depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST 789 depends on HAS_IOMEM 790 help 791 PWM driver support for the ECAP APWM controller found on TI SOCs 792 793 To compile this driver as a module, choose M here: the module 794 will be called pwm-tiecap. 795 796config PWM_TIEHRPWM 797 tristate "EHRPWM PWM support" 798 depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3 || COMPILE_TEST 799 depends on HAS_IOMEM 800 help 801 PWM driver support for the EHRPWM controller found on TI SOCs 802 803 To compile this driver as a module, choose M here: the module 804 will be called pwm-tiehrpwm. 805 806config PWM_TWL 807 tristate "TWL4030/6030 PWM support" 808 depends on TWL4030_CORE 809 help 810 Generic PWM framework driver for TWL4030/6030. 811 812 To compile this driver as a module, choose M here: the module 813 will be called pwm-twl. 814 815config PWM_TWL_LED 816 tristate "TWL4030/6030 PWM support for LED drivers" 817 depends on TWL4030_CORE 818 help 819 Generic PWM framework driver for TWL4030/6030 LED terminals. 820 821 To compile this driver as a module, choose M here: the module 822 will be called pwm-twl-led. 823 824config PWM_VISCONTI 825 tristate "Toshiba Visconti PWM support" 826 depends on ARCH_VISCONTI || COMPILE_TEST 827 help 828 PWM Subsystem driver support for Toshiba Visconti SoCs. 829 830 To compile this driver as a module, choose M here: the module 831 will be called pwm-visconti. 832 833config PWM_VT8500 834 tristate "vt8500 PWM support" 835 depends on ARCH_VT8500 || COMPILE_TEST 836 depends on HAS_IOMEM 837 help 838 Generic PWM framework driver for vt8500. 839 840 To compile this driver as a module, choose M here: the module 841 will be called pwm-vt8500. 842 843config PWM_XILINX 844 tristate "Xilinx AXI Timer PWM support" 845 depends on OF_ADDRESS 846 depends on COMMON_CLK 847 select REGMAP_MMIO 848 help 849 PWM driver for Xilinx LogiCORE IP AXI timers. This timer is 850 typically a soft core which may be present in Xilinx FPGAs. 851 This device may also be present in Microblaze soft processors. 852 If you don't have this IP in your design, choose N. 853 854 To compile this driver as a module, choose M here: the module 855 will be called pwm-xilinx. 856 857 config RUST_PWM_ABSTRACTIONS 858 bool 859 depends on RUST 860 help 861 This option enables the safe Rust abstraction layer for the PWM 862 subsystem. It provides idiomatic wrappers and traits necessary for 863 writing PWM controller drivers in Rust. 864 865 The abstractions handle resource management (like memory and reference 866 counting) and provide safe interfaces to the underlying C core, 867 allowing driver logic to be written in safe Rust. 868 869endif 870