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