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