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