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