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