1menu "Clock Source drivers" 2 depends on GENERIC_CLOCKEVENTS 3 4config TIMER_OF 5 bool 6 select TIMER_PROBE 7 8config TIMER_ACPI 9 bool 10 select TIMER_PROBE 11 12config TIMER_PROBE 13 bool 14 15config CLKSRC_I8253 16 bool 17 18config CLKEVT_I8253 19 bool 20 21config I8253_LOCK 22 bool 23 24config OMAP_DM_TIMER 25 bool 26 27config CLKBLD_I8253 28 def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK 29 30config CLKSRC_MMIO 31 bool 32 33config BCM2835_TIMER 34 bool "BCM2835 timer driver" if COMPILE_TEST 35 select CLKSRC_MMIO 36 help 37 Enables the support for the BCM2835 timer driver. 38 39config BCM_KONA_TIMER 40 bool "BCM mobile timer driver" if COMPILE_TEST 41 select CLKSRC_MMIO 42 help 43 Enables the support for the BCM Kona mobile timer driver. 44 45config DIGICOLOR_TIMER 46 bool "Digicolor timer driver" if COMPILE_TEST 47 select CLKSRC_MMIO 48 depends on HAS_IOMEM 49 help 50 Enables the support for the digicolor timer driver. 51 52config DW_APB_TIMER 53 bool "DW APB timer driver" if COMPILE_TEST 54 help 55 Enables the support for the dw_apb timer. 56 57config DW_APB_TIMER_OF 58 bool 59 select DW_APB_TIMER 60 select TIMER_OF 61 62config FTTMR010_TIMER 63 bool "Faraday Technology timer driver" if COMPILE_TEST 64 depends on HAS_IOMEM 65 select CLKSRC_MMIO 66 select TIMER_OF 67 select MFD_SYSCON 68 help 69 Enables support for the Faraday Technology timer block 70 FTTMR010. 71 72config ROCKCHIP_TIMER 73 bool "Rockchip timer driver" if COMPILE_TEST 74 depends on ARM || ARM64 75 select TIMER_OF 76 select CLKSRC_MMIO 77 help 78 Enables the support for the rockchip timer driver. 79 80config ARMADA_370_XP_TIMER 81 bool "Armada 370 and XP timer driver" if COMPILE_TEST 82 depends on ARM 83 select TIMER_OF 84 select CLKSRC_MMIO 85 help 86 Enables the support for the Armada 370 and XP timer driver. 87 88config MESON6_TIMER 89 bool "Meson6 timer driver" if COMPILE_TEST 90 select CLKSRC_MMIO 91 help 92 Enables the support for the Meson6 timer driver. 93 94config ORION_TIMER 95 bool "Orion timer driver" if COMPILE_TEST 96 depends on ARM 97 select TIMER_OF 98 select CLKSRC_MMIO 99 help 100 Enables the support for the Orion timer driver 101 102config OWL_TIMER 103 bool "Owl timer driver" if COMPILE_TEST 104 select CLKSRC_MMIO 105 help 106 Enables the support for the Actions Semi Owl timer driver. 107 108config SUN4I_TIMER 109 bool "Sun4i timer driver" if COMPILE_TEST 110 depends on HAS_IOMEM 111 select CLKSRC_MMIO 112 select TIMER_OF 113 help 114 Enables support for the Sun4i timer. 115 116config SUN5I_HSTIMER 117 bool "Sun5i timer driver" if COMPILE_TEST 118 select CLKSRC_MMIO 119 depends on COMMON_CLK 120 help 121 Enables support the Sun5i timer. 122 123config TEGRA_TIMER 124 bool "Tegra timer driver" if COMPILE_TEST 125 select CLKSRC_MMIO 126 depends on ARM 127 help 128 Enables support for the Tegra driver. 129 130config VT8500_TIMER 131 bool "VT8500 timer driver" if COMPILE_TEST 132 depends on HAS_IOMEM 133 help 134 Enables support for the VT8500 driver. 135 136config NPCM7XX_TIMER 137 bool "NPCM7xx timer driver" if COMPILE_TEST 138 depends on HAS_IOMEM 139 select CLKSRC_MMIO 140 help 141 Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture, 142 While TIMER0 serves as clockevent and TIMER1 serves as clocksource. 143 144config CADENCE_TTC_TIMER 145 bool "Cadence TTC timer driver" if COMPILE_TEST 146 depends on COMMON_CLK 147 help 148 Enables support for the cadence ttc driver. 149 150config ASM9260_TIMER 151 bool "ASM9260 timer driver" if COMPILE_TEST 152 select CLKSRC_MMIO 153 select TIMER_OF 154 help 155 Enables support for the ASM9260 timer. 156 157config CLKSRC_NOMADIK_MTU 158 bool "Nomakdik clocksource driver" if COMPILE_TEST 159 depends on ARM 160 select CLKSRC_MMIO 161 help 162 Support for Multi Timer Unit. MTU provides access 163 to multiple interrupt generating programmable 164 32-bit free running decrementing counters. 165 166config CLKSRC_NOMADIK_MTU_SCHED_CLOCK 167 bool 168 depends on CLKSRC_NOMADIK_MTU 169 help 170 Use the Multi Timer Unit as the sched_clock. 171 172config CLKSRC_DBX500_PRCMU 173 bool "Clocksource PRCMU Timer" if COMPILE_TEST 174 depends on HAS_IOMEM 175 help 176 Use the always on PRCMU Timer as clocksource 177 178config CLPS711X_TIMER 179 bool "Cirrus logic timer driver" if COMPILE_TEST 180 select CLKSRC_MMIO 181 help 182 Enables support for the Cirrus Logic PS711 timer. 183 184config ATLAS7_TIMER 185 bool "Atlas7 timer driver" if COMPILE_TEST 186 select CLKSRC_MMIO 187 help 188 Enables support for the Atlas7 timer. 189 190config MXS_TIMER 191 bool "Mxs timer driver" if COMPILE_TEST 192 select CLKSRC_MMIO 193 select STMP_DEVICE 194 help 195 Enables support for the Mxs timer. 196 197config PRIMA2_TIMER 198 bool "Prima2 timer driver" if COMPILE_TEST 199 select CLKSRC_MMIO 200 help 201 Enables support for the Prima2 timer. 202 203config U300_TIMER 204 bool "U300 timer driver" if COMPILE_TEST 205 depends on ARM 206 select CLKSRC_MMIO 207 help 208 Enables support for the U300 timer. 209 210config NSPIRE_TIMER 211 bool "NSpire timer driver" if COMPILE_TEST 212 select CLKSRC_MMIO 213 help 214 Enables support for the Nspire timer. 215 216config KEYSTONE_TIMER 217 bool "Keystone timer driver" if COMPILE_TEST 218 depends on ARM || ARM64 219 select CLKSRC_MMIO 220 help 221 Enables support for the Keystone timer. 222 223config INTEGRATOR_AP_TIMER 224 bool "Integrator-ap timer driver" if COMPILE_TEST 225 select CLKSRC_MMIO 226 help 227 Enables support for the Integrator-ap timer. 228 229config CLKSRC_DBX500_PRCMU_SCHED_CLOCK 230 bool "Clocksource PRCMU Timer sched_clock" 231 depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK) 232 default y 233 help 234 Use the always on PRCMU Timer as sched_clock 235 236config CLKSRC_EFM32 237 bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32 238 depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST) 239 select CLKSRC_MMIO 240 default ARCH_EFM32 241 help 242 Support to use the timers of EFM32 SoCs as clock source and clock 243 event device. 244 245config CLKSRC_LPC32XX 246 bool "Clocksource for LPC32XX" if COMPILE_TEST 247 depends on HAS_IOMEM 248 depends on ARM 249 select CLKSRC_MMIO 250 select TIMER_OF 251 help 252 Support for the LPC32XX clocksource. 253 254config CLKSRC_PISTACHIO 255 bool "Clocksource for Pistachio SoC" if COMPILE_TEST 256 depends on HAS_IOMEM 257 select TIMER_OF 258 help 259 Enables the clocksource for the Pistachio SoC. 260 261config CLKSRC_TI_32K 262 bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST 263 depends on GENERIC_SCHED_CLOCK 264 select TIMER_OF if OF 265 help 266 This option enables support for Texas Instruments 32.768 Hz clocksource 267 available on many OMAP-like platforms. 268 269config CLKSRC_NPS 270 bool "NPS400 clocksource driver" if COMPILE_TEST 271 depends on !PHYS_ADDR_T_64BIT 272 select CLKSRC_MMIO 273 select TIMER_OF if OF 274 help 275 NPS400 clocksource support. 276 Got 64 bit counter with update rate up to 1000MHz. 277 This counter is accessed via couple of 32 bit memory mapped registers. 278 279config CLKSRC_STM32 280 bool "Clocksource for STM32 SoCs" if !ARCH_STM32 281 depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST) 282 select CLKSRC_MMIO 283 select TIMER_OF 284 285config CLKSRC_MPS2 286 bool "Clocksource for MPS2 SoCs" if COMPILE_TEST 287 depends on GENERIC_SCHED_CLOCK 288 select CLKSRC_MMIO 289 select TIMER_OF 290 291config ARC_TIMERS 292 bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST 293 select TIMER_OF 294 help 295 These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores 296 (ARC700 as well as ARC HS38). 297 TIMER0 serves as clockevent while TIMER1 provides clocksource 298 299config ARC_TIMERS_64BIT 300 bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST 301 depends on ARC_TIMERS 302 select TIMER_OF 303 help 304 This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP) 305 RTC is implemented inside the core, while GFRC sits outside the core in 306 ARConnect IP block. Driver automatically picks one of them for clocksource 307 as appropriate. 308 309config ARM_ARCH_TIMER 310 bool 311 select TIMER_OF if OF 312 select TIMER_ACPI if ACPI 313 314config ARM_ARCH_TIMER_EVTSTREAM 315 bool "Enable ARM architected timer event stream generation by default" 316 default y if ARM_ARCH_TIMER 317 depends on ARM_ARCH_TIMER 318 help 319 This option enables support by default for event stream generation 320 based on the ARM architected timer. It is used for waking up CPUs 321 executing the wfe instruction at a frequency represented as a 322 power-of-2 divisor of the clock rate. The behaviour can also be 323 overridden on the command line using the 324 clocksource.arm_arch_timer.evtstream parameter. 325 The main use of the event stream is wfe-based timeouts of userspace 326 locking implementations. It might also be useful for imposing timeout 327 on wfe to safeguard against any programming errors in case an expected 328 event is not generated. 329 This must be disabled for hardware validation purposes to detect any 330 hardware anomalies of missing events. 331 332config ARM_ARCH_TIMER_OOL_WORKAROUND 333 bool 334 335config FSL_ERRATUM_A008585 336 bool "Workaround for Freescale/NXP Erratum A-008585" 337 default y 338 depends on ARM_ARCH_TIMER && ARM64 339 select ARM_ARCH_TIMER_OOL_WORKAROUND 340 help 341 This option enables a workaround for Freescale/NXP Erratum 342 A-008585 ("ARM generic timer may contain an erroneous 343 value"). The workaround will only be active if the 344 fsl,erratum-a008585 property is found in the timer node. 345 346config HISILICON_ERRATUM_161010101 347 bool "Workaround for Hisilicon Erratum 161010101" 348 default y 349 select ARM_ARCH_TIMER_OOL_WORKAROUND 350 depends on ARM_ARCH_TIMER && ARM64 351 help 352 This option enables a workaround for Hisilicon Erratum 353 161010101. The workaround will be active if the hisilicon,erratum-161010101 354 property is found in the timer node. 355 356config ARM64_ERRATUM_858921 357 bool "Workaround for Cortex-A73 erratum 858921" 358 default y 359 select ARM_ARCH_TIMER_OOL_WORKAROUND 360 depends on ARM_ARCH_TIMER && ARM64 361 help 362 This option enables a workaround applicable to Cortex-A73 363 (all versions), whose counter may return incorrect values. 364 The workaround will be dynamically enabled when an affected 365 core is detected. 366 367config ARM_GLOBAL_TIMER 368 bool "Support for the ARM global timer" if COMPILE_TEST 369 select TIMER_OF if OF 370 depends on ARM 371 help 372 This options enables support for the ARM global timer unit 373 374config ARM_TIMER_SP804 375 bool "Support for Dual Timer SP804 module" 376 depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP 377 select CLKSRC_MMIO 378 select TIMER_OF if OF 379 380config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK 381 bool 382 depends on ARM_GLOBAL_TIMER 383 default y 384 help 385 Use ARM global timer clock source as sched_clock 386 387config ARMV7M_SYSTICK 388 bool "Support for the ARMv7M system time" if COMPILE_TEST 389 select TIMER_OF if OF 390 select CLKSRC_MMIO 391 help 392 This options enables support for the ARMv7M system timer unit 393 394config ATMEL_PIT 395 select TIMER_OF if OF 396 def_bool SOC_AT91SAM9 || SOC_SAMA5 397 398config ATMEL_ST 399 bool "Atmel ST timer support" if COMPILE_TEST 400 depends on HAS_IOMEM 401 select TIMER_OF 402 select MFD_SYSCON 403 help 404 Support for the Atmel ST timer. 405 406config CLKSRC_EXYNOS_MCT 407 bool "Exynos multi core timer driver" if COMPILE_TEST 408 depends on ARM || ARM64 409 help 410 Support for Multi Core Timer controller on Exynos SoCs. 411 412config CLKSRC_SAMSUNG_PWM 413 bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST 414 depends on HAS_IOMEM 415 help 416 This is a new clocksource driver for the PWM timer found in 417 Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver 418 for all devicetree enabled platforms. This driver will be 419 needed only on systems that do not have the Exynos MCT available. 420 421config FSL_FTM_TIMER 422 bool "Freescale FlexTimer Module driver" if COMPILE_TEST 423 depends on HAS_IOMEM 424 select CLKSRC_MMIO 425 help 426 Support for Freescale FlexTimer Module (FTM) timer. 427 428config VF_PIT_TIMER 429 bool 430 select CLKSRC_MMIO 431 help 432 Support for Period Interrupt Timer on Freescale Vybrid Family SoCs. 433 434config OXNAS_RPS_TIMER 435 bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST 436 select TIMER_OF 437 select CLKSRC_MMIO 438 help 439 This enables support for the Oxford Semiconductor OXNAS RPS timers. 440 441config SYS_SUPPORTS_SH_CMT 442 bool 443 444config MTK_TIMER 445 bool "Mediatek timer driver" if COMPILE_TEST 446 depends on HAS_IOMEM 447 select TIMER_OF 448 select CLKSRC_MMIO 449 help 450 Support for Mediatek timer driver. 451 452config SPRD_TIMER 453 bool "Spreadtrum timer driver" if EXPERT 454 depends on HAS_IOMEM 455 depends on (ARCH_SPRD || COMPILE_TEST) 456 default ARCH_SPRD 457 select TIMER_OF 458 help 459 Enables support for the Spreadtrum timer driver. 460 461config SYS_SUPPORTS_SH_MTU2 462 bool 463 464config SYS_SUPPORTS_SH_TMU 465 bool 466 467config SYS_SUPPORTS_EM_STI 468 bool 469 470config CLKSRC_JCORE_PIT 471 bool "J-Core PIT timer driver" if COMPILE_TEST 472 depends on OF 473 depends on HAS_IOMEM 474 select CLKSRC_MMIO 475 help 476 This enables build of clocksource and clockevent driver for 477 the integrated PIT in the J-Core synthesizable, open source SoC. 478 479config SH_TIMER_CMT 480 bool "Renesas CMT timer driver" if COMPILE_TEST 481 depends on HAS_IOMEM 482 default SYS_SUPPORTS_SH_CMT 483 help 484 This enables build of a clocksource and clockevent driver for 485 the Compare Match Timer (CMT) hardware available in 16/32/48-bit 486 variants on a wide range of Mobile and Automotive SoCs from Renesas. 487 488config SH_TIMER_MTU2 489 bool "Renesas MTU2 timer driver" if COMPILE_TEST 490 depends on HAS_IOMEM 491 default SYS_SUPPORTS_SH_MTU2 492 help 493 This enables build of a clockevent driver for the Multi-Function 494 Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas. 495 This hardware comes with 16 bit-timer registers. 496 497config RENESAS_OSTM 498 bool "Renesas OSTM timer driver" if COMPILE_TEST 499 select CLKSRC_MMIO 500 help 501 Enables the support for the Renesas OSTM. 502 503config SH_TIMER_TMU 504 bool "Renesas TMU timer driver" if COMPILE_TEST 505 depends on HAS_IOMEM 506 default SYS_SUPPORTS_SH_TMU 507 help 508 This enables build of a clocksource and clockevent driver for 509 the 32-bit Timer Unit (TMU) hardware available on a wide range 510 SoCs from Renesas. 511 512config EM_TIMER_STI 513 bool "Renesas STI timer driver" if COMPILE_TEST 514 depends on HAS_IOMEM 515 default SYS_SUPPORTS_EM_STI 516 help 517 This enables build of a clocksource and clockevent driver for 518 the 48-bit System Timer (STI) hardware available on a SoCs 519 such as EMEV2 from former NEC Electronics. 520 521config CLKSRC_QCOM 522 bool "Qualcomm MSM timer" if COMPILE_TEST 523 depends on ARM 524 select TIMER_OF 525 help 526 This enables the clocksource and the per CPU clockevent driver for the 527 Qualcomm SoCs. 528 529config CLKSRC_VERSATILE 530 bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST 531 depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET 532 select TIMER_OF 533 default y if MFD_VEXPRESS_SYSREG 534 help 535 This option enables clock source based on free running 536 counter available in the "System Registers" block of 537 ARM Versatile, RealView and Versatile Express reference 538 platforms. 539 540config CLKSRC_MIPS_GIC 541 bool 542 depends on MIPS_GIC 543 select TIMER_OF 544 545config CLKSRC_TANGO_XTAL 546 bool "Clocksource for Tango SoC" if COMPILE_TEST 547 depends on ARM 548 select TIMER_OF 549 select CLKSRC_MMIO 550 help 551 This enables the clocksource for Tango SoC 552 553config CLKSRC_PXA 554 bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST 555 depends on HAS_IOMEM 556 select CLKSRC_MMIO 557 help 558 This enables OST0 support available on PXA and SA-11x0 559 platforms. 560 561config H8300_TMR8 562 bool "Clockevent timer for the H8300 platform" if COMPILE_TEST 563 depends on HAS_IOMEM 564 help 565 This enables the 8 bits timer for the H8300 platform. 566 567config H8300_TMR16 568 bool "Clockevent timer for the H83069 platform" if COMPILE_TEST 569 depends on HAS_IOMEM 570 help 571 This enables the 16 bits timer for the H8300 platform with the 572 H83069 cpu. 573 574config H8300_TPU 575 bool "Clocksource for the H8300 platform" if COMPILE_TEST 576 depends on HAS_IOMEM 577 help 578 This enables the clocksource for the H8300 platform with the 579 H8S2678 cpu. 580 581config CLKSRC_IMX_GPT 582 bool "Clocksource using i.MX GPT" if COMPILE_TEST 583 depends on ARM && CLKDEV_LOOKUP 584 select CLKSRC_MMIO 585 586config CLKSRC_IMX_TPM 587 bool "Clocksource using i.MX TPM" if COMPILE_TEST 588 depends on ARM && CLKDEV_LOOKUP 589 select CLKSRC_MMIO 590 help 591 Enable this option to use IMX Timer/PWM Module (TPM) timer as 592 clocksource. 593 594config CLKSRC_ST_LPC 595 bool "Low power clocksource found in the LPC" if COMPILE_TEST 596 select TIMER_OF if OF 597 depends on HAS_IOMEM 598 select CLKSRC_MMIO 599 help 600 Enable this option to use the Low Power controller timer 601 as clocksource. 602 603config ATCPIT100_TIMER 604 bool "ATCPIT100 timer driver" 605 depends on NDS32 || COMPILE_TEST 606 depends on HAS_IOMEM 607 select TIMER_OF 608 default NDS32 609 help 610 This option enables support for the Andestech ATCPIT100 timers. 611 612endmenu 613