| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | menuconfig PWM |
|---|
| 2 | 3 | bool "Pulse-Width Modulation (PWM) Support" |
|---|
| 3 | 4 | help |
|---|
| .. | .. |
|---|
| 32 | 33 | bool |
|---|
| 33 | 34 | default y if SYSFS |
|---|
| 34 | 35 | |
|---|
| 36 | +config PWM_DEBUG |
|---|
| 37 | + bool "PWM lowlevel drivers additional checks and debug messages" |
|---|
| 38 | + depends on DEBUG_KERNEL |
|---|
| 39 | + help |
|---|
| 40 | + This option enables some additional checks to help lowlevel driver |
|---|
| 41 | + authors to get their callbacks implemented correctly. |
|---|
| 42 | + It is expected to introduce some runtime overhead and diagnostic |
|---|
| 43 | + output to the kernel log, so only enable while working on a driver. |
|---|
| 44 | + |
|---|
| 35 | 45 | config PWM_AB8500 |
|---|
| 36 | 46 | tristate "AB8500 PWM support" |
|---|
| 37 | 47 | depends on AB8500_CORE && ARCH_U8500 |
|---|
| .. | .. |
|---|
| 43 | 53 | |
|---|
| 44 | 54 | config PWM_ATMEL |
|---|
| 45 | 55 | tristate "Atmel PWM support" |
|---|
| 46 | | - depends on ARCH_AT91 |
|---|
| 56 | + depends on OF |
|---|
| 57 | + depends on ARCH_AT91 || COMPILE_TEST |
|---|
| 47 | 58 | help |
|---|
| 48 | 59 | Generic PWM framework driver for Atmel SoC. |
|---|
| 49 | 60 | |
|---|
| .. | .. |
|---|
| 88 | 99 | |
|---|
| 89 | 100 | config PWM_BCM_KONA |
|---|
| 90 | 101 | tristate "Kona PWM support" |
|---|
| 91 | | - depends on ARCH_BCM_MOBILE |
|---|
| 102 | + depends on ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS || COMPILE_TEST |
|---|
| 103 | + depends on HAVE_CLK && HAS_IOMEM |
|---|
| 104 | + default ARCH_BCM_MOBILE || ARCH_BCM_CYGNUS |
|---|
| 92 | 105 | help |
|---|
| 93 | 106 | Generic PWM framework driver for Broadcom Kona PWM block. |
|---|
| 94 | 107 | |
|---|
| .. | .. |
|---|
| 97 | 110 | |
|---|
| 98 | 111 | config PWM_BCM2835 |
|---|
| 99 | 112 | tristate "BCM2835 PWM support" |
|---|
| 100 | | - depends on ARCH_BCM2835 |
|---|
| 113 | + depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST |
|---|
| 101 | 114 | help |
|---|
| 102 | 115 | PWM framework driver for BCM2835 controller (Raspberry Pi) |
|---|
| 103 | 116 | |
|---|
| .. | .. |
|---|
| 106 | 119 | |
|---|
| 107 | 120 | config PWM_BERLIN |
|---|
| 108 | 121 | tristate "Marvell Berlin PWM support" |
|---|
| 109 | | - depends on ARCH_BERLIN |
|---|
| 122 | + depends on ARCH_BERLIN || COMPILE_TEST |
|---|
| 110 | 123 | help |
|---|
| 111 | 124 | PWM framework driver for Marvell Berlin SoCs. |
|---|
| 112 | 125 | |
|---|
| .. | .. |
|---|
| 115 | 128 | |
|---|
| 116 | 129 | config PWM_BRCMSTB |
|---|
| 117 | 130 | tristate "Broadcom STB PWM support" |
|---|
| 118 | | - depends on ARCH_BRCMSTB || BMIPS_GENERIC |
|---|
| 131 | + depends on ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST |
|---|
| 119 | 132 | help |
|---|
| 120 | 133 | Generic PWM framework driver for the Broadcom Set-top-Box |
|---|
| 121 | 134 | SoCs (BCM7xxx). |
|---|
| .. | .. |
|---|
| 142 | 155 | |
|---|
| 143 | 156 | config PWM_CROS_EC |
|---|
| 144 | 157 | tristate "ChromeOS EC PWM driver" |
|---|
| 145 | | - depends on MFD_CROS_EC |
|---|
| 158 | + depends on CROS_EC |
|---|
| 146 | 159 | help |
|---|
| 147 | 160 | PWM driver for exposing a PWM attached to the ChromeOS Embedded |
|---|
| 148 | 161 | Controller. |
|---|
| 149 | 162 | |
|---|
| 150 | 163 | config PWM_EP93XX |
|---|
| 151 | 164 | tristate "Cirrus Logic EP93xx PWM support" |
|---|
| 152 | | - depends on ARCH_EP93XX |
|---|
| 165 | + depends on ARCH_EP93XX || COMPILE_TEST |
|---|
| 153 | 166 | help |
|---|
| 154 | 167 | Generic PWM framework driver for Cirrus Logic EP93xx. |
|---|
| 155 | 168 | |
|---|
| .. | .. |
|---|
| 205 | 218 | To compile this driver as a module, choose M here: the module |
|---|
| 206 | 219 | will be called pwm-img |
|---|
| 207 | 220 | |
|---|
| 208 | | -config PWM_IMX |
|---|
| 209 | | - tristate "i.MX PWM support" |
|---|
| 210 | | - depends on ARCH_MXC |
|---|
| 221 | +config PWM_IMX1 |
|---|
| 222 | + tristate "i.MX1 PWM support" |
|---|
| 223 | + depends on ARCH_MXC || COMPILE_TEST |
|---|
| 211 | 224 | help |
|---|
| 212 | | - Generic PWM framework driver for i.MX. |
|---|
| 225 | + Generic PWM framework driver for i.MX1 and i.MX21 |
|---|
| 213 | 226 | |
|---|
| 214 | 227 | To compile this driver as a module, choose M here: the module |
|---|
| 215 | | - will be called pwm-imx. |
|---|
| 228 | + will be called pwm-imx1. |
|---|
| 229 | + |
|---|
| 230 | +config PWM_IMX27 |
|---|
| 231 | + tristate "i.MX27 PWM support" |
|---|
| 232 | + depends on ARCH_MXC || COMPILE_TEST |
|---|
| 233 | + help |
|---|
| 234 | + Generic PWM framework driver for i.MX27 and later i.MX SoCs. |
|---|
| 235 | + |
|---|
| 236 | + To compile this driver as a module, choose M here: the module |
|---|
| 237 | + will be called pwm-imx27. |
|---|
| 238 | + |
|---|
| 239 | +config PWM_IMX_TPM |
|---|
| 240 | + tristate "i.MX TPM PWM support" |
|---|
| 241 | + depends on ARCH_MXC || COMPILE_TEST |
|---|
| 242 | + depends on HAVE_CLK && HAS_IOMEM |
|---|
| 243 | + help |
|---|
| 244 | + Generic PWM framework driver for i.MX7ULP TPM module, TPM's full |
|---|
| 245 | + name is Low Power Timer/Pulse Width Modulation Module. |
|---|
| 246 | + |
|---|
| 247 | + To compile this driver as a module, choose M here: the module |
|---|
| 248 | + will be called pwm-imx-tpm. |
|---|
| 249 | + |
|---|
| 250 | +config PWM_IQS620A |
|---|
| 251 | + tristate "Azoteq IQS620A PWM support" |
|---|
| 252 | + depends on MFD_IQS62X || COMPILE_TEST |
|---|
| 253 | + help |
|---|
| 254 | + Generic PWM framework driver for the Azoteq IQS620A multi-function |
|---|
| 255 | + sensor. |
|---|
| 256 | + |
|---|
| 257 | + To compile this driver as a module, choose M here: the module will |
|---|
| 258 | + be called pwm-iqs620a. |
|---|
| 216 | 259 | |
|---|
| 217 | 260 | config PWM_JZ4740 |
|---|
| 218 | 261 | tristate "Ingenic JZ47xx PWM support" |
|---|
| 219 | | - depends on MACH_INGENIC |
|---|
| 262 | + depends on MIPS |
|---|
| 263 | + depends on COMMON_CLK |
|---|
| 264 | + select MFD_SYSCON |
|---|
| 220 | 265 | help |
|---|
| 221 | 266 | Generic PWM framework driver for Ingenic JZ47xx based |
|---|
| 222 | 267 | machines. |
|---|
| .. | .. |
|---|
| 236 | 281 | |
|---|
| 237 | 282 | config PWM_LPC18XX_SCT |
|---|
| 238 | 283 | tristate "LPC18xx/43xx PWM/SCT support" |
|---|
| 239 | | - depends on ARCH_LPC18XX |
|---|
| 284 | + depends on ARCH_LPC18XX || COMPILE_TEST |
|---|
| 240 | 285 | help |
|---|
| 241 | 286 | Generic PWM framework driver for NXP LPC18xx PWM/SCT which |
|---|
| 242 | 287 | supports 16 channels. |
|---|
| .. | .. |
|---|
| 248 | 293 | |
|---|
| 249 | 294 | config PWM_LPC32XX |
|---|
| 250 | 295 | tristate "LPC32XX PWM support" |
|---|
| 251 | | - depends on ARCH_LPC32XX |
|---|
| 296 | + depends on ARCH_LPC32XX || COMPILE_TEST |
|---|
| 252 | 297 | help |
|---|
| 253 | 298 | Generic PWM framework driver for LPC32XX. The LPC32XX SOC has two |
|---|
| 254 | 299 | PWM controllers. |
|---|
| .. | .. |
|---|
| 281 | 326 | |
|---|
| 282 | 327 | config PWM_MESON |
|---|
| 283 | 328 | tristate "Amlogic Meson PWM driver" |
|---|
| 284 | | - depends on ARCH_MESON |
|---|
| 329 | + depends on ARCH_MESON || COMPILE_TEST |
|---|
| 330 | + depends on COMMON_CLK |
|---|
| 285 | 331 | help |
|---|
| 286 | 332 | The platform driver for Amlogic Meson PWM controller. |
|---|
| 287 | 333 | |
|---|
| .. | .. |
|---|
| 310 | 356 | |
|---|
| 311 | 357 | config PWM_MXS |
|---|
| 312 | 358 | tristate "Freescale MXS PWM support" |
|---|
| 313 | | - depends on ARCH_MXS && OF |
|---|
| 359 | + depends on OF |
|---|
| 360 | + depends on ARCH_MXS || COMPILE_TEST |
|---|
| 314 | 361 | select STMP_DEVICE |
|---|
| 315 | 362 | help |
|---|
| 316 | 363 | Generic PWM framework driver for Freescale MXS. |
|---|
| .. | .. |
|---|
| 320 | 367 | |
|---|
| 321 | 368 | config PWM_OMAP_DMTIMER |
|---|
| 322 | 369 | tristate "OMAP Dual-Mode Timer PWM support" |
|---|
| 323 | | - depends on OF && ARCH_OMAP && OMAP_DM_TIMER |
|---|
| 370 | + depends on OF |
|---|
| 371 | + depends on OMAP_DM_TIMER || COMPILE_TEST |
|---|
| 324 | 372 | help |
|---|
| 325 | 373 | Generic PWM framework driver for OMAP Dual-Mode Timer PWM output |
|---|
| 326 | 374 | |
|---|
| .. | .. |
|---|
| 337 | 385 | To compile this driver as a module, choose M here: the module |
|---|
| 338 | 386 | will be called pwm-pca9685. |
|---|
| 339 | 387 | |
|---|
| 340 | | -config PWM_PUV3 |
|---|
| 341 | | - tristate "PKUnity NetBook-0916 PWM support" |
|---|
| 342 | | - depends on ARCH_PUV3 |
|---|
| 343 | | - help |
|---|
| 344 | | - Generic PWM framework driver for PKUnity NetBook-0916. |
|---|
| 345 | | - |
|---|
| 346 | | - To compile this driver as a module, choose M here: the module |
|---|
| 347 | | - will be called pwm-puv3. |
|---|
| 348 | | - |
|---|
| 349 | 388 | config PWM_PXA |
|---|
| 350 | 389 | tristate "PXA PWM support" |
|---|
| 351 | | - depends on ARCH_PXA |
|---|
| 390 | + depends on ARCH_PXA || COMPILE_TEST |
|---|
| 352 | 391 | help |
|---|
| 353 | 392 | Generic PWM framework driver for PXA. |
|---|
| 354 | 393 | |
|---|
| .. | .. |
|---|
| 379 | 418 | |
|---|
| 380 | 419 | config PWM_ROCKCHIP |
|---|
| 381 | 420 | tristate "Rockchip PWM support" |
|---|
| 382 | | - depends on ARCH_ROCKCHIP |
|---|
| 421 | + depends on ARCH_ROCKCHIP || COMPILE_TEST |
|---|
| 383 | 422 | help |
|---|
| 384 | 423 | Generic PWM framework driver for the PWM controller found on |
|---|
| 385 | 424 | Rockchip SoCs. |
|---|
| 386 | 425 | |
|---|
| 387 | 426 | config PWM_ROCKCHIP_ONESHOT |
|---|
| 388 | 427 | bool "Rockchip PWM oneshot mode support" |
|---|
| 389 | | - depends on PWM_ROCKCHIP |
|---|
| 428 | + depends on PWM_ROCKCHIP && NO_GKI |
|---|
| 390 | 429 | help |
|---|
| 391 | 430 | Support Rockchip pwm oneshot mode for specified number of cycles. |
|---|
| 392 | 431 | |
|---|
| 393 | 432 | config PWM_SAMSUNG |
|---|
| 394 | 433 | tristate "Samsung PWM support" |
|---|
| 395 | | - depends on PLAT_SAMSUNG || ARCH_EXYNOS |
|---|
| 434 | + depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST |
|---|
| 396 | 435 | help |
|---|
| 397 | 436 | Generic PWM framework driver for Samsung. |
|---|
| 398 | 437 | |
|---|
| 399 | 438 | To compile this driver as a module, choose M here: the module |
|---|
| 400 | 439 | will be called pwm-samsung. |
|---|
| 401 | 440 | |
|---|
| 441 | +config PWM_SIFIVE |
|---|
| 442 | + tristate "SiFive PWM support" |
|---|
| 443 | + depends on OF |
|---|
| 444 | + depends on COMMON_CLK |
|---|
| 445 | + depends on RISCV || COMPILE_TEST |
|---|
| 446 | + help |
|---|
| 447 | + Generic PWM framework driver for SiFive SoCs. |
|---|
| 448 | + |
|---|
| 449 | + To compile this driver as a module, choose M here: the module |
|---|
| 450 | + will be called pwm-sifive. |
|---|
| 451 | + |
|---|
| 452 | +config PWM_SL28CPLD |
|---|
| 453 | + tristate "Kontron sl28cpld PWM support" |
|---|
| 454 | + depends on MFD_SL28CPLD || COMPILE_TEST |
|---|
| 455 | + help |
|---|
| 456 | + Generic PWM framework driver for board management controller |
|---|
| 457 | + found on the Kontron sl28 CPLD. |
|---|
| 458 | + |
|---|
| 459 | + To compile this driver as a module, choose M here: the module |
|---|
| 460 | + will be called pwm-sl28cpld. |
|---|
| 461 | + |
|---|
| 402 | 462 | config PWM_SPEAR |
|---|
| 403 | 463 | tristate "STMicroelectronics SPEAr PWM support" |
|---|
| 404 | | - depends on PLAT_SPEAR |
|---|
| 464 | + depends on PLAT_SPEAR || COMPILE_TEST |
|---|
| 405 | 465 | depends on OF |
|---|
| 406 | 466 | help |
|---|
| 407 | 467 | Generic PWM framework driver for the PWM controller on ST |
|---|
| .. | .. |
|---|
| 410 | 470 | To compile this driver as a module, choose M here: the module |
|---|
| 411 | 471 | will be called pwm-spear. |
|---|
| 412 | 472 | |
|---|
| 473 | +config PWM_SPRD |
|---|
| 474 | + tristate "Spreadtrum PWM support" |
|---|
| 475 | + depends on ARCH_SPRD || COMPILE_TEST |
|---|
| 476 | + depends on HAS_IOMEM |
|---|
| 477 | + help |
|---|
| 478 | + Generic PWM framework driver for the PWM controller on |
|---|
| 479 | + Spreadtrum SoCs. |
|---|
| 480 | + |
|---|
| 481 | + To compile this driver as a module, choose M here: the module |
|---|
| 482 | + will be called pwm-sprd. |
|---|
| 483 | + |
|---|
| 413 | 484 | config PWM_STI |
|---|
| 414 | 485 | tristate "STiH4xx PWM support" |
|---|
| 415 | | - depends on ARCH_STI |
|---|
| 486 | + depends on ARCH_STI || COMPILE_TEST |
|---|
| 416 | 487 | depends on OF |
|---|
| 417 | 488 | help |
|---|
| 418 | 489 | Generic PWM framework driver for STiH4xx SoCs. |
|---|
| .. | .. |
|---|
| 422 | 493 | |
|---|
| 423 | 494 | config PWM_STM32 |
|---|
| 424 | 495 | tristate "STMicroelectronics STM32 PWM" |
|---|
| 425 | | - depends on MFD_STM32_TIMERS |
|---|
| 496 | + depends on MFD_STM32_TIMERS || COMPILE_TEST |
|---|
| 426 | 497 | help |
|---|
| 427 | 498 | Generic PWM framework driver for STM32 SoCs. |
|---|
| 428 | 499 | |
|---|
| .. | .. |
|---|
| 458 | 529 | |
|---|
| 459 | 530 | config PWM_TEGRA |
|---|
| 460 | 531 | tristate "NVIDIA Tegra PWM support" |
|---|
| 461 | | - depends on ARCH_TEGRA |
|---|
| 532 | + depends on ARCH_TEGRA || COMPILE_TEST |
|---|
| 462 | 533 | help |
|---|
| 463 | 534 | Generic PWM framework driver for the PWFM controller found on NVIDIA |
|---|
| 464 | 535 | Tegra SoCs. |
|---|
| .. | .. |
|---|
| 466 | 537 | To compile this driver as a module, choose M here: the module |
|---|
| 467 | 538 | will be called pwm-tegra. |
|---|
| 468 | 539 | |
|---|
| 469 | | -config PWM_TIECAP |
|---|
| 540 | +config PWM_TIECAP |
|---|
| 470 | 541 | tristate "ECAP PWM support" |
|---|
| 471 | | - depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE |
|---|
| 542 | + depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST |
|---|
| 472 | 543 | help |
|---|
| 473 | | - PWM driver support for the ECAP APWM controller found on AM33XX |
|---|
| 474 | | - TI SOC |
|---|
| 544 | + PWM driver support for the ECAP APWM controller found on TI SOCs |
|---|
| 475 | 545 | |
|---|
| 476 | 546 | To compile this driver as a module, choose M here: the module |
|---|
| 477 | 547 | will be called pwm-tiecap. |
|---|
| 478 | 548 | |
|---|
| 479 | | -config PWM_TIEHRPWM |
|---|
| 549 | +config PWM_TIEHRPWM |
|---|
| 480 | 550 | tristate "EHRPWM PWM support" |
|---|
| 481 | | - depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX |
|---|
| 551 | + depends on ARCH_OMAP2PLUS || ARCH_DAVINCI_DA8XX || ARCH_K3 || COMPILE_TEST |
|---|
| 482 | 552 | help |
|---|
| 483 | | - PWM driver support for the EHRPWM controller found on AM33XX |
|---|
| 484 | | - TI SOC |
|---|
| 553 | + PWM driver support for the EHRPWM controller found on TI SOCs |
|---|
| 485 | 554 | |
|---|
| 486 | 555 | To compile this driver as a module, choose M here: the module |
|---|
| 487 | 556 | will be called pwm-tiehrpwm. |
|---|
| 488 | | - |
|---|
| 489 | | -config PWM_TIPWMSS |
|---|
| 490 | | - bool |
|---|
| 491 | | - default y if (ARCH_OMAP2PLUS) && (PWM_TIECAP || PWM_TIEHRPWM) |
|---|
| 492 | | - help |
|---|
| 493 | | - PWM Subsystem driver support for AM33xx SOC. |
|---|
| 494 | | - |
|---|
| 495 | | - PWM submodules require PWM config space access from submodule |
|---|
| 496 | | - drivers and require common parent driver support. |
|---|
| 497 | 557 | |
|---|
| 498 | 558 | config PWM_TWL |
|---|
| 499 | 559 | tristate "TWL4030/6030 PWM support" |
|---|
| .. | .. |
|---|
| 515 | 575 | |
|---|
| 516 | 576 | config PWM_VT8500 |
|---|
| 517 | 577 | tristate "vt8500 PWM support" |
|---|
| 518 | | - depends on ARCH_VT8500 |
|---|
| 578 | + depends on ARCH_VT8500 || COMPILE_TEST |
|---|
| 519 | 579 | help |
|---|
| 520 | 580 | Generic PWM framework driver for vt8500. |
|---|
| 521 | 581 | |
|---|
| .. | .. |
|---|
| 524 | 584 | |
|---|
| 525 | 585 | config PWM_ZX |
|---|
| 526 | 586 | tristate "ZTE ZX PWM support" |
|---|
| 527 | | - depends on ARCH_ZX |
|---|
| 587 | + depends on ARCH_ZX || COMPILE_TEST |
|---|
| 528 | 588 | help |
|---|
| 529 | 589 | Generic PWM framework driver for ZTE ZX family SoCs. |
|---|
| 530 | 590 | |
|---|