1menu "Clock Source drivers" 2 depends on !ARCH_USES_GETTIMEOFFSET 3 4config TIMER_OF 5 bool 6 select TIMER_PROBE 7 8config CLKSRC_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 CLKBLD_I8253 25 def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK 26 27config CLKSRC_MMIO 28 bool 29 30config BCM2835_TIMER 31 bool "BCM2835 timer driver" if COMPILE_TEST 32 depends on GENERIC_CLOCKEVENTS 33 select CLKSRC_MMIO 34 help 35 Enables the support for the BCM2835 timer driver. 36 37config BCM_KONA_TIMER 38 bool "BCM mobile timer driver" if COMPILE_TEST 39 depends on GENERIC_CLOCKEVENTS 40 select CLKSRC_MMIO 41 help 42 Enables the support for the BCM Kona mobile timer driver. 43 44config DIGICOLOR_TIMER 45 bool "Digicolor timer driver" if COMPILE_TEST 46 depends on GENERIC_CLOCKEVENTS 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 depends on GENERIC_CLOCKEVENTS 55 help 56 Enables the support for the dw_apb timer. 57 58config DW_APB_TIMER_OF 59 bool 60 select DW_APB_TIMER 61 select TIMER_OF 62 63config FTTMR010_TIMER 64 bool "Faraday Technology timer driver" if COMPILE_TEST 65 depends on GENERIC_CLOCKEVENTS 66 depends on HAS_IOMEM 67 select CLKSRC_MMIO 68 select TIMER_OF 69 select MFD_SYSCON 70 help 71 Enables support for the Faraday Technology timer block 72 FTTMR010. 73 74config ROCKCHIP_TIMER 75 bool "Rockchip timer driver" if COMPILE_TEST 76 depends on ARM || ARM64 77 select TIMER_OF 78 select CLKSRC_MMIO 79 help 80 Enables the support for the rockchip timer driver. 81 82config ARMADA_370_XP_TIMER 83 bool "Armada 370 and XP timer driver" if COMPILE_TEST 84 depends on ARM 85 select TIMER_OF 86 select CLKSRC_MMIO 87 help 88 Enables the support for the Armada 370 and XP timer driver. 89 90config MESON6_TIMER 91 bool "Meson6 timer driver" if COMPILE_TEST 92 depends on GENERIC_CLOCKEVENTS 93 select CLKSRC_MMIO 94 help 95 Enables the support for the Meson6 timer driver. 96 97config ORION_TIMER 98 bool "Orion timer driver" if COMPILE_TEST 99 depends on ARM 100 select TIMER_OF 101 select CLKSRC_MMIO 102 help 103 Enables the support for the Orion timer driver 104 105config SUN4I_TIMER 106 bool "Sun4i timer driver" if COMPILE_TEST 107 depends on GENERIC_CLOCKEVENTS 108 depends on HAS_IOMEM 109 select CLKSRC_MMIO 110 help 111 Enables support for the Sun4i timer. 112 113config SUN5I_HSTIMER 114 bool "Sun5i timer driver" if COMPILE_TEST 115 select CLKSRC_MMIO 116 depends on COMMON_CLK 117 help 118 Enables support the Sun5i timer. 119 120config TEGRA_TIMER 121 bool "Tegra timer driver" if COMPILE_TEST 122 select CLKSRC_MMIO 123 depends on ARM 124 help 125 Enables support for the Tegra driver. 126 127config VT8500_TIMER 128 bool "VT8500 timer driver" if COMPILE_TEST 129 depends on GENERIC_CLOCKEVENTS 130 depends on HAS_IOMEM 131 help 132 Enables support for the VT8500 driver. 133 134config CADENCE_TTC_TIMER 135 bool "Cadence TTC timer driver" if COMPILE_TEST 136 depends on COMMON_CLK 137 help 138 Enables support for the cadence ttc driver. 139 140config ASM9260_TIMER 141 bool "ASM9260 timer driver" if COMPILE_TEST 142 depends on GENERIC_CLOCKEVENTS 143 select CLKSRC_MMIO 144 select TIMER_OF 145 help 146 Enables support for the ASM9260 timer. 147 148config CLKSRC_NOMADIK_MTU 149 bool "Nomakdik clocksource driver" if COMPILE_TEST 150 depends on ARM 151 select CLKSRC_MMIO 152 help 153 Support for Multi Timer Unit. MTU provides access 154 to multiple interrupt generating programmable 155 32-bit free running decrementing counters. 156 157config CLKSRC_NOMADIK_MTU_SCHED_CLOCK 158 bool 159 depends on CLKSRC_NOMADIK_MTU 160 help 161 Use the Multi Timer Unit as the sched_clock. 162 163config CLKSRC_DBX500_PRCMU 164 bool "Clocksource PRCMU Timer" if COMPILE_TEST 165 depends on GENERIC_CLOCKEVENTS 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 depends on GENERIC_CLOCKEVENTS 173 select CLKSRC_MMIO 174 help 175 Enables support for the Cirrus Logic PS711 timer. 176 177config ATLAS7_TIMER 178 bool "Atlas7 timer driver" if COMPILE_TEST 179 depends on GENERIC_CLOCKEVENTS 180 select CLKSRC_MMIO 181 help 182 Enables support for the Atlas7 timer. 183 184config MXS_TIMER 185 bool "Mxs timer driver" if COMPILE_TEST 186 depends on GENERIC_CLOCKEVENTS 187 select CLKSRC_MMIO 188 select STMP_DEVICE 189 help 190 Enables support for the Mxs timer. 191 192config PRIMA2_TIMER 193 bool "Prima2 timer driver" if COMPILE_TEST 194 depends on GENERIC_CLOCKEVENTS 195 select CLKSRC_MMIO 196 help 197 Enables support for the Prima2 timer. 198 199config U300_TIMER 200 bool "U300 timer driver" if COMPILE_TEST 201 depends on GENERIC_CLOCKEVENTS 202 depends on ARM 203 select CLKSRC_MMIO 204 help 205 Enables support for the U300 timer. 206 207config NSPIRE_TIMER 208 bool "NSpire timer driver" if COMPILE_TEST 209 depends on GENERIC_CLOCKEVENTS 210 select CLKSRC_MMIO 211 help 212 Enables support for the Nspire timer. 213 214config KEYSTONE_TIMER 215 bool "Keystone timer driver" if COMPILE_TEST 216 depends on GENERIC_CLOCKEVENTS 217 depends on ARM || ARM64 218 select CLKSRC_MMIO 219 help 220 Enables support for the Keystone timer. 221 222config INTEGRATOR_AP_TIMER 223 bool "Integrator-ap timer driver" if COMPILE_TEST 224 depends on GENERIC_CLOCKEVENTS 225 select CLKSRC_MMIO 226 help 227 Enables support for the Integrator-ap timer. 228 229config CLKSRC_DBX500_PRCMU_SCHED_CLOCK 230 bool "Clocksource PRCMU Timer sched_clock" 231 depends on (CLKSRC_DBX500_PRCMU && !CLKSRC_NOMADIK_MTU_SCHED_CLOCK) 232 default y 233 help 234 Use the always on PRCMU Timer as sched_clock 235 236config CLKSRC_EFM32 237 bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32 238 depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST) 239 select CLKSRC_MMIO 240 default ARCH_EFM32 241 help 242 Support to use the timers of EFM32 SoCs as clock source and clock 243 event device. 244 245config CLKSRC_LPC32XX 246 bool "Clocksource for LPC32XX" if COMPILE_TEST 247 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM 248 depends on ARM 249 select CLKSRC_MMIO 250 select TIMER_OF 251 help 252 Support for the LPC32XX clocksource. 253 254config CLKSRC_PISTACHIO 255 bool "Clocksource for Pistachio SoC" if COMPILE_TEST 256 depends on HAS_IOMEM 257 select TIMER_OF 258 help 259 Enables the clocksource for the Pistachio SoC. 260 261config CLKSRC_TI_32K 262 bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST 263 depends on GENERIC_SCHED_CLOCK 264 select TIMER_OF if OF 265 help 266 This option enables support for Texas Instruments 32.768 Hz clocksource 267 available on many OMAP-like platforms. 268 269config CLKSRC_NPS 270 bool "NPS400 clocksource driver" if COMPILE_TEST 271 depends on !PHYS_ADDR_T_64BIT 272 select CLKSRC_MMIO 273 select TIMER_OF if OF 274 help 275 NPS400 clocksource support. 276 Got 64 bit counter with update rate up to 1000MHz. 277 This counter is accessed via couple of 32 bit memory mapped registers. 278 279config CLKSRC_STM32 280 bool "Clocksource for STM32 SoCs" if !ARCH_STM32 281 depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST) 282 select CLKSRC_MMIO 283 284config CLKSRC_MPS2 285 bool "Clocksource for MPS2 SoCs" if COMPILE_TEST 286 depends on GENERIC_SCHED_CLOCK 287 select CLKSRC_MMIO 288 select TIMER_OF 289 290config ARC_TIMERS 291 bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST 292 depends on GENERIC_CLOCKEVENTS 293 select TIMER_OF 294 help 295 These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores 296 (ARC700 as well as ARC HS38). 297 TIMER0 serves as clockevent while TIMER1 provides clocksource 298 299config ARC_TIMERS_64BIT 300 bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST 301 depends on GENERIC_CLOCKEVENTS 302 depends on ARC_TIMERS 303 select TIMER_OF 304 help 305 This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP) 306 RTC is implemented inside the core, while GFRC sits outside the core in 307 ARConnect IP block. Driver automatically picks one of them for clocksource 308 as appropriate. 309 310config ARM_ARCH_TIMER 311 bool 312 select TIMER_OF if OF 313 select CLKSRC_ACPI if ACPI 314 315config ARM_ARCH_TIMER_EVTSTREAM 316 bool "Enable ARM architected timer event stream generation by default" 317 default y if ARM_ARCH_TIMER 318 depends on ARM_ARCH_TIMER 319 help 320 This option enables support by default for event stream generation 321 based on the ARM architected timer. It is used for waking up CPUs 322 executing the wfe instruction at a frequency represented as a 323 power-of-2 divisor of the clock rate. The behaviour can also be 324 overridden on the command line using the 325 clocksource.arm_arch_timer.evtstream parameter. 326 The main use of the event stream is wfe-based timeouts of userspace 327 locking implementations. It might also be useful for imposing timeout 328 on wfe to safeguard against any programming errors in case an expected 329 event is not generated. 330 This must be disabled for hardware validation purposes to detect any 331 hardware anomalies of missing events. 332 333config ARM_ARCH_TIMER_OOL_WORKAROUND 334 bool 335 336config FSL_ERRATUM_A008585 337 bool "Workaround for Freescale/NXP Erratum A-008585" 338 default y 339 depends on ARM_ARCH_TIMER && ARM64 340 select ARM_ARCH_TIMER_OOL_WORKAROUND 341 help 342 This option enables a workaround for Freescale/NXP Erratum 343 A-008585 ("ARM generic timer may contain an erroneous 344 value"). The workaround will only be active if the 345 fsl,erratum-a008585 property is found in the timer node. 346 347config HISILICON_ERRATUM_161010101 348 bool "Workaround for Hisilicon Erratum 161010101" 349 default y 350 select ARM_ARCH_TIMER_OOL_WORKAROUND 351 depends on ARM_ARCH_TIMER && ARM64 352 help 353 This option enables a workaround for Hisilicon Erratum 354 161010101. The workaround will be active if the hisilicon,erratum-161010101 355 property is found in the timer node. 356 357config ARM64_ERRATUM_858921 358 bool "Workaround for Cortex-A73 erratum 858921" 359 default y 360 select ARM_ARCH_TIMER_OOL_WORKAROUND 361 depends on ARM_ARCH_TIMER && ARM64 362 help 363 This option enables a workaround applicable to Cortex-A73 364 (all versions), whose counter may return incorrect values. 365 The workaround will be dynamically enabled when an affected 366 core is detected. 367 368config ARM_GLOBAL_TIMER 369 bool "Support for the ARM global timer" if COMPILE_TEST 370 select TIMER_OF if OF 371 depends on ARM 372 help 373 This options enables support for the ARM global timer unit 374 375config ARM_TIMER_SP804 376 bool "Support for Dual Timer SP804 module" 377 depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP 378 select CLKSRC_MMIO 379 select TIMER_OF if OF 380 381config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK 382 bool 383 depends on ARM_GLOBAL_TIMER 384 default y 385 help 386 Use ARM global timer clock source as sched_clock 387 388config ARMV7M_SYSTICK 389 bool "Support for the ARMv7M system time" if COMPILE_TEST 390 select TIMER_OF if OF 391 select CLKSRC_MMIO 392 help 393 This options enables support for the ARMv7M system timer unit 394 395config ATMEL_PIT 396 select TIMER_OF if OF 397 def_bool SOC_AT91SAM9 || SOC_SAMA5 398 399config ATMEL_ST 400 bool "Atmel ST timer support" if COMPILE_TEST 401 depends on GENERIC_CLOCKEVENTS 402 select TIMER_OF 403 select MFD_SYSCON 404 help 405 Support for the Atmel ST timer. 406 407config CLKSRC_METAG_GENERIC 408 def_bool y if METAG 409 help 410 This option enables support for the Meta per-thread timers. 411 412config CLKSRC_EXYNOS_MCT 413 bool "Exynos multi core timer driver" if COMPILE_TEST 414 depends on ARM || ARM64 415 help 416 Support for Multi Core Timer controller on Exynos SoCs. 417 418config CLKSRC_SAMSUNG_PWM 419 bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST 420 depends on GENERIC_CLOCKEVENTS 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 GENERIC_CLOCKEVENTS 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 depends on GENERIC_CLOCKEVENTS 445 select TIMER_OF 446 select CLKSRC_MMIO 447 help 448 This enables support for the Oxford Semiconductor OXNAS RPS timers. 449 450config SYS_SUPPORTS_SH_CMT 451 bool 452 453config MTK_TIMER 454 bool "Mediatek timer driver" if COMPILE_TEST 455 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM 456 select TIMER_OF 457 select CLKSRC_MMIO 458 help 459 Support for Mediatek timer driver. 460 461config SYS_SUPPORTS_SH_MTU2 462 bool 463 464config SYS_SUPPORTS_SH_TMU 465 bool 466 467config SYS_SUPPORTS_EM_STI 468 bool 469 470config CLKSRC_JCORE_PIT 471 bool "J-Core PIT timer driver" if COMPILE_TEST 472 depends on OF 473 depends on GENERIC_CLOCKEVENTS 474 depends on HAS_IOMEM 475 select CLKSRC_MMIO 476 help 477 This enables build of clocksource and clockevent driver for 478 the integrated PIT in the J-Core synthesizable, open source SoC. 479 480config SH_TIMER_CMT 481 bool "Renesas CMT timer driver" if COMPILE_TEST 482 depends on GENERIC_CLOCKEVENTS 483 depends on HAS_IOMEM 484 default SYS_SUPPORTS_SH_CMT 485 help 486 This enables build of a clocksource and clockevent driver for 487 the Compare Match Timer (CMT) hardware available in 16/32/48-bit 488 variants on a wide range of Mobile and Automotive SoCs from Renesas. 489 490config SH_TIMER_MTU2 491 bool "Renesas MTU2 timer driver" if COMPILE_TEST 492 depends on GENERIC_CLOCKEVENTS 493 depends on HAS_IOMEM 494 default SYS_SUPPORTS_SH_MTU2 495 help 496 This enables build of a clockevent driver for the Multi-Function 497 Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas. 498 This hardware comes with 16 bit-timer registers. 499 500config RENESAS_OSTM 501 bool "Renesas OSTM timer driver" if COMPILE_TEST 502 depends on GENERIC_CLOCKEVENTS 503 select CLKSRC_MMIO 504 help 505 Enables the support for the Renesas OSTM. 506 507config SH_TIMER_TMU 508 bool "Renesas TMU timer driver" if COMPILE_TEST 509 depends on GENERIC_CLOCKEVENTS 510 depends on HAS_IOMEM 511 default SYS_SUPPORTS_SH_TMU 512 help 513 This enables build of a clocksource and clockevent driver for 514 the 32-bit Timer Unit (TMU) hardware available on a wide range 515 SoCs from Renesas. 516 517config EM_TIMER_STI 518 bool "Renesas STI timer driver" if COMPILE_TEST 519 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM 520 default SYS_SUPPORTS_EM_STI 521 help 522 This enables build of a clocksource and clockevent driver for 523 the 48-bit System Timer (STI) hardware available on a SoCs 524 such as EMEV2 from former NEC Electronics. 525 526config CLKSRC_QCOM 527 bool "Qualcomm MSM timer" if COMPILE_TEST 528 depends on ARM 529 select TIMER_OF 530 help 531 This enables the clocksource and the per CPU clockevent driver for the 532 Qualcomm SoCs. 533 534config CLKSRC_VERSATILE 535 bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST 536 depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET 537 select TIMER_OF 538 default y if MFD_VEXPRESS_SYSREG 539 help 540 This option enables clock source based on free running 541 counter available in the "System Registers" block of 542 ARM Versatile, RealView and Versatile Express reference 543 platforms. 544 545config CLKSRC_MIPS_GIC 546 bool 547 depends on MIPS_GIC 548 select TIMER_OF 549 550config CLKSRC_TANGO_XTAL 551 bool "Clocksource for Tango SoC" if COMPILE_TEST 552 depends on ARM 553 select TIMER_OF 554 select CLKSRC_MMIO 555 help 556 This enables the clocksource for Tango SoC 557 558config CLKSRC_PXA 559 bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST 560 depends on GENERIC_CLOCKEVENTS 561 depends on HAS_IOMEM 562 select CLKSRC_MMIO 563 help 564 This enables OST0 support available on PXA and SA-11x0 565 platforms. 566 567config H8300_TMR8 568 bool "Clockevent timer for the H8300 platform" if COMPILE_TEST 569 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM 570 help 571 This enables the 8 bits timer for the H8300 platform. 572 573config H8300_TMR16 574 bool "Clockevent timer for the H83069 platform" if COMPILE_TEST 575 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM 576 help 577 This enables the 16 bits timer for the H8300 platform with the 578 H83069 cpu. 579 580config H8300_TPU 581 bool "Clocksource for the H8300 platform" if COMPILE_TEST 582 depends on GENERIC_CLOCKEVENTS && HAS_IOMEM 583 help 584 This enables the clocksource for the H8300 platform with the 585 H8S2678 cpu. 586 587config CLKSRC_IMX_GPT 588 bool "Clocksource using i.MX GPT" if COMPILE_TEST 589 depends on ARM && CLKDEV_LOOKUP 590 select CLKSRC_MMIO 591 592config CLKSRC_ST_LPC 593 bool "Low power clocksource found in the LPC" if COMPILE_TEST 594 select TIMER_OF if OF 595 depends on HAS_IOMEM 596 select CLKSRC_MMIO 597 help 598 Enable this option to use the Low Power controller timer 599 as clocksource. 600 601endmenu 602