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