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