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