| 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | menu "Clock Source drivers" |
| 3 | depends on GENERIC_CLOCKEVENTS |
| 4 | |
| 5 | config TIMER_OF |
| 6 | bool |
| 7 | select TIMER_PROBE |
| 8 | |
| 9 | config TIMER_ACPI |
| 10 | bool |
| 11 | select TIMER_PROBE |
| 12 | |
| 13 | config TIMER_PROBE |
| 14 | bool |
| 15 | |
| 16 | config CLKSRC_I8253 |
| 17 | bool |
| 18 | |
| 19 | config CLKEVT_I8253 |
| 20 | bool |
| 21 | |
| 22 | config I8253_LOCK |
| 23 | bool |
| 24 | |
| 25 | config OMAP_DM_SYSTIMER |
| 26 | bool |
| 27 | select TIMER_OF |
| 28 | |
| 29 | config CLKBLD_I8253 |
| 30 | def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK |
| 31 | |
| 32 | config CLKSRC_MMIO |
| 33 | bool |
| 34 | |
| 35 | config BCM2835_TIMER |
| 36 | bool "BCM2835 timer driver" if COMPILE_TEST |
| 37 | select CLKSRC_MMIO |
| 38 | help |
| 39 | Enables the support for the BCM2835 timer driver. |
| 40 | |
| 41 | config BCM_KONA_TIMER |
| 42 | bool "BCM mobile timer driver" if COMPILE_TEST |
| 43 | select CLKSRC_MMIO |
| 44 | help |
| 45 | Enables the support for the BCM Kona mobile timer driver. |
| 46 | |
| 47 | config DAVINCI_TIMER |
| 48 | bool "Texas Instruments DaVinci timer driver" if COMPILE_TEST |
| 49 | help |
| 50 | Enables the support for the TI DaVinci timer driver. |
| 51 | |
| 52 | config DIGICOLOR_TIMER |
| 53 | bool "Digicolor timer driver" if COMPILE_TEST |
| 54 | select CLKSRC_MMIO |
| 55 | depends on HAS_IOMEM |
| 56 | help |
| 57 | Enables the support for the digicolor timer driver. |
| 58 | |
| 59 | config OMAP_DM_TIMER |
| 60 | bool "OMAP dual-mode timer driver" if ARCH_K3 || COMPILE_TEST |
| 61 | default y if ARCH_K3 |
| 62 | select TIMER_OF |
| 63 | help |
| 64 | Enables the support for the TI dual-mode timer driver. |
| 65 | |
| 66 | config DW_APB_TIMER |
| 67 | bool "DW APB timer driver" if COMPILE_TEST |
| 68 | help |
| 69 | Enables the support for the dw_apb timer. |
| 70 | |
| 71 | config DW_APB_TIMER_OF |
| 72 | bool |
| 73 | select DW_APB_TIMER |
| 74 | select TIMER_OF |
| 75 | |
| 76 | config ECONET_EN751221_TIMER |
| 77 | bool "EcoNet EN751221 High Precision Timer" if COMPILE_TEST |
| 78 | depends on HAS_IOMEM |
| 79 | select CLKSRC_MMIO |
| 80 | select TIMER_OF |
| 81 | help |
| 82 | Support for CPU timer found on EcoNet MIPS based SoCs. |
| 83 | |
| 84 | config FTTMR010_TIMER |
| 85 | bool "Faraday Technology timer driver" if COMPILE_TEST |
| 86 | depends on HAS_IOMEM |
| 87 | select CLKSRC_MMIO |
| 88 | select TIMER_OF |
| 89 | select MFD_SYSCON |
| 90 | help |
| 91 | Enables support for the Faraday Technology timer block |
| 92 | FTTMR010. |
| 93 | |
| 94 | config IXP4XX_TIMER |
| 95 | bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST |
| 96 | depends on HAS_IOMEM |
| 97 | select CLKSRC_MMIO |
| 98 | select TIMER_OF |
| 99 | help |
| 100 | Enables support for the Intel XScale IXP4xx SoC timer. |
| 101 | |
| 102 | config ROCKCHIP_TIMER |
| 103 | bool "Rockchip timer driver" if COMPILE_TEST |
| 104 | depends on ARM || ARM64 |
| 105 | select TIMER_OF |
| 106 | select CLKSRC_MMIO |
| 107 | help |
| 108 | Enables the support for the Rockchip timer driver. |
| 109 | |
| 110 | config ARMADA_370_XP_TIMER |
| 111 | bool "Armada 370 and XP timer driver" if COMPILE_TEST |
| 112 | depends on ARM |
| 113 | select TIMER_OF |
| 114 | select CLKSRC_MMIO |
| 115 | help |
| 116 | Enables the support for the Armada 370 and XP timer driver. |
| 117 | |
| 118 | config MESON6_TIMER |
| 119 | bool "Meson6 timer driver" if COMPILE_TEST |
| 120 | select CLKSRC_MMIO |
| 121 | help |
| 122 | Enables the support for the Meson6 timer driver. |
| 123 | |
| 124 | config ORION_TIMER |
| 125 | bool "Orion timer driver" if COMPILE_TEST |
| 126 | depends on ARM |
| 127 | select TIMER_OF |
| 128 | select CLKSRC_MMIO |
| 129 | help |
| 130 | Enables the support for the Orion timer driver |
| 131 | |
| 132 | config OWL_TIMER |
| 133 | bool "Owl timer driver" if COMPILE_TEST |
| 134 | select CLKSRC_MMIO |
| 135 | help |
| 136 | Enables the support for the Actions Semi Owl timer driver. |
| 137 | |
| 138 | config RDA_TIMER |
| 139 | bool "RDA timer driver" if COMPILE_TEST |
| 140 | select CLKSRC_MMIO |
| 141 | select TIMER_OF |
| 142 | help |
| 143 | Enables the support for the RDA Micro timer driver. |
| 144 | |
| 145 | config REALTEK_OTTO_TIMER |
| 146 | bool "Clocksource/timer for the Realtek Otto platform" if COMPILE_TEST |
| 147 | select TIMER_OF |
| 148 | help |
| 149 | This driver adds support for the timers found in the Realtek RTL83xx |
| 150 | and RTL93xx SoCs series. This includes chips such as RTL8380, RTL8381 |
| 151 | and RTL832, as well as chips from the RTL839x series, such as RTL8390 |
| 152 | RT8391, RTL8392, RTL8393 and RTL8396 and chips of the RTL930x series |
| 153 | such as RTL9301, RTL9302 or RTL9303. |
| 154 | |
| 155 | config SUN4I_TIMER |
| 156 | bool "Sun4i timer driver" if COMPILE_TEST |
| 157 | depends on HAS_IOMEM |
| 158 | select CLKSRC_MMIO |
| 159 | select TIMER_OF |
| 160 | help |
| 161 | Enables support for the Sun4i timer. |
| 162 | |
| 163 | config SUN5I_HSTIMER |
| 164 | bool "Sun5i timer driver" if COMPILE_TEST |
| 165 | select CLKSRC_MMIO |
| 166 | depends on COMMON_CLK |
| 167 | help |
| 168 | Enables support the Sun5i timer. |
| 169 | |
| 170 | config TEGRA_TIMER |
| 171 | bool "Tegra timer driver" if COMPILE_TEST |
| 172 | select CLKSRC_MMIO |
| 173 | select TIMER_OF |
| 174 | depends on ARCH_TEGRA || COMPILE_TEST |
| 175 | help |
| 176 | Enables support for the Tegra driver. |
| 177 | |
| 178 | config TEGRA186_TIMER |
| 179 | bool "NVIDIA Tegra186 timer driver" |
| 180 | depends on ARCH_TEGRA || COMPILE_TEST |
| 181 | depends on WATCHDOG && WATCHDOG_CORE |
| 182 | help |
| 183 | Enables support for the timers and watchdogs found on NVIDIA |
| 184 | Tegra186 and later SoCs. |
| 185 | |
| 186 | config VT8500_TIMER |
| 187 | bool "VT8500 timer driver" if COMPILE_TEST |
| 188 | depends on HAS_IOMEM |
| 189 | help |
| 190 | Enables support for the VT8500 driver. |
| 191 | |
| 192 | config NPCM7XX_TIMER |
| 193 | bool "NPCM7xx timer driver" if COMPILE_TEST |
| 194 | depends on HAS_IOMEM |
| 195 | select TIMER_OF |
| 196 | select CLKSRC_MMIO |
| 197 | help |
| 198 | Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture, |
| 199 | where TIMER0 serves as clockevent and TIMER1 serves as clocksource. |
| 200 | |
| 201 | config CADENCE_TTC_TIMER |
| 202 | bool "Cadence TTC timer driver" if COMPILE_TEST |
| 203 | depends on COMMON_CLK |
| 204 | help |
| 205 | Enables support for the Cadence TTC driver. |
| 206 | |
| 207 | config ASM9260_TIMER |
| 208 | bool "ASM9260 timer driver" if COMPILE_TEST |
| 209 | select CLKSRC_MMIO |
| 210 | select TIMER_OF |
| 211 | help |
| 212 | Enables support for the ASM9260 timer. |
| 213 | |
| 214 | config CLKSRC_NOMADIK_MTU |
| 215 | bool "Nomakdik clocksource driver" if COMPILE_TEST |
| 216 | depends on ARM |
| 217 | select CLKSRC_MMIO |
| 218 | help |
| 219 | Support for Multi Timer Unit. MTU provides access |
| 220 | to multiple interrupt generating programmable |
| 221 | 32-bit free running decrementing counters. |
| 222 | |
| 223 | config CLKSRC_DBX500_PRCMU |
| 224 | bool "Clocksource PRCMU Timer" if COMPILE_TEST |
| 225 | depends on HAS_IOMEM |
| 226 | help |
| 227 | Use the always on PRCMU Timer as clocksource. |
| 228 | |
| 229 | config CLPS711X_TIMER |
| 230 | bool "Cirrus Logic timer driver" if COMPILE_TEST |
| 231 | select CLKSRC_MMIO |
| 232 | help |
| 233 | Enables support for the Cirrus Logic PS711 timer. |
| 234 | |
| 235 | config MXS_TIMER |
| 236 | bool "MXS timer driver" if COMPILE_TEST |
| 237 | select CLKSRC_MMIO |
| 238 | select STMP_DEVICE |
| 239 | help |
| 240 | Enables support for the MXS timer. |
| 241 | |
| 242 | config NSPIRE_TIMER |
| 243 | bool "NSpire timer driver" if COMPILE_TEST |
| 244 | select CLKSRC_MMIO |
| 245 | help |
| 246 | Enables support for the Nspire timer. |
| 247 | |
| 248 | config KEYSTONE_TIMER |
| 249 | bool "Keystone timer driver" if COMPILE_TEST |
| 250 | depends on ARM || ARM64 |
| 251 | select CLKSRC_MMIO |
| 252 | help |
| 253 | Enables support for the Keystone timer. |
| 254 | |
| 255 | config INTEGRATOR_AP_TIMER |
| 256 | bool "Integrator-AP timer driver" if COMPILE_TEST |
| 257 | depends on OF |
| 258 | select CLKSRC_MMIO |
| 259 | help |
| 260 | Enables support for the Integrator-AP timer. |
| 261 | |
| 262 | config CLKSRC_LPC32XX |
| 263 | bool "Clocksource for LPC32XX" if COMPILE_TEST |
| 264 | depends on HAS_IOMEM |
| 265 | depends on ARM |
| 266 | select CLKSRC_MMIO |
| 267 | select TIMER_OF |
| 268 | help |
| 269 | Support for the LPC32XX clocksource. |
| 270 | |
| 271 | config CLKSRC_PISTACHIO |
| 272 | bool "Clocksource for Pistachio SoC" |
| 273 | depends on HAS_IOMEM |
| 274 | depends on MIPS || COMPILE_TEST |
| 275 | select TIMER_OF |
| 276 | help |
| 277 | Enables the clocksource for the Pistachio SoC. |
| 278 | |
| 279 | config CLKSRC_TI_32K |
| 280 | bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST |
| 281 | depends on GENERIC_SCHED_CLOCK |
| 282 | select TIMER_OF if OF |
| 283 | help |
| 284 | This option enables support for Texas Instruments 32.768 Hz clocksource |
| 285 | available on many OMAP-like platforms. |
| 286 | |
| 287 | config CLKSRC_STM32 |
| 288 | bool "Clocksource for STM32 SoCs" if !ARCH_STM32 |
| 289 | depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST) |
| 290 | select CLKSRC_MMIO |
| 291 | select TIMER_OF |
| 292 | |
| 293 | config CLKSRC_STM32_LP |
| 294 | bool "Low power clocksource for STM32 SoCs" |
| 295 | depends on MFD_STM32_LPTIMER || COMPILE_TEST |
| 296 | |
| 297 | config CLKSRC_MPS2 |
| 298 | bool "Clocksource for MPS2 SoCs" if COMPILE_TEST |
| 299 | depends on GENERIC_SCHED_CLOCK |
| 300 | select CLKSRC_MMIO |
| 301 | select TIMER_OF |
| 302 | |
| 303 | config ARC_TIMERS |
| 304 | bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST |
| 305 | depends on GENERIC_SCHED_CLOCK |
| 306 | select TIMER_OF |
| 307 | help |
| 308 | These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores |
| 309 | (ARC700 as well as ARC HS38). |
| 310 | TIMER0 serves as clockevent while TIMER1 provides clocksource. |
| 311 | |
| 312 | config ARC_TIMERS_64BIT |
| 313 | bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST |
| 314 | depends on ARC_TIMERS |
| 315 | select TIMER_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 | |
| 322 | config ARM_ARCH_TIMER |
| 323 | bool |
| 324 | select TIMER_OF if OF |
| 325 | select TIMER_ACPI if ACPI |
| 326 | |
| 327 | config 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 | |
| 345 | config ARM_ARCH_TIMER_OOL_WORKAROUND |
| 346 | bool |
| 347 | |
| 348 | config 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 | |
| 359 | config 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 | |
| 369 | config ARM64_ERRATUM_858921 |
| 370 | bool "Workaround for Cortex-A73 erratum 858921" |
| 371 | default y |
| 372 | select ARM_ARCH_TIMER_OOL_WORKAROUND |
| 373 | depends on ARM_ARCH_TIMER && ARM64 |
| 374 | help |
| 375 | This option enables a workaround applicable to Cortex-A73 |
| 376 | (all versions), whose counter may return incorrect values. |
| 377 | The workaround will be dynamically enabled when an affected |
| 378 | core is detected. |
| 379 | |
| 380 | config SUN50I_ERRATUM_UNKNOWN1 |
| 381 | bool "Workaround for Allwinner A64 erratum UNKNOWN1" |
| 382 | default y |
| 383 | depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI |
| 384 | select ARM_ARCH_TIMER_OOL_WORKAROUND |
| 385 | help |
| 386 | This option enables a workaround for instability in the timer on |
| 387 | the Allwinner A64 SoC. The workaround will only be active if the |
| 388 | allwinner,erratum-unknown1 property is found in the timer node. |
| 389 | |
| 390 | config ARM_GLOBAL_TIMER |
| 391 | bool "Support for the ARM global timer" if COMPILE_TEST |
| 392 | select TIMER_OF if OF |
| 393 | depends on ARM |
| 394 | help |
| 395 | This option enables support for the ARM global timer unit. |
| 396 | |
| 397 | config ARM_GT_INITIAL_PRESCALER_VAL |
| 398 | int "ARM global timer initial prescaler value" |
| 399 | default 0 |
| 400 | depends on ARM_GLOBAL_TIMER |
| 401 | help |
| 402 | When the ARM global timer initializes, its current rate is declared |
| 403 | to the kernel and maintained forever. Should its parent clock |
| 404 | change, the driver tries to fix the timer's internal prescaler. |
| 405 | On some machs (i.e. Zynq) the initial prescaler value thus poses |
| 406 | bounds about how much the parent clock is allowed to decrease or |
| 407 | increase wrt the initial clock value. |
| 408 | This affects CPU_FREQ max delta from the initial frequency. |
| 409 | Use 0 to use auto-detection in the driver. |
| 410 | |
| 411 | config ARM_TIMER_SP804 |
| 412 | bool "Support for Dual Timer SP804 module" |
| 413 | depends on ARM || ARM64 || COMPILE_TEST |
| 414 | depends on GENERIC_SCHED_CLOCK && HAVE_CLK |
| 415 | select CLKSRC_MMIO |
| 416 | select TIMER_OF if OF |
| 417 | |
| 418 | config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK |
| 419 | bool |
| 420 | depends on ARM_GLOBAL_TIMER |
| 421 | default y |
| 422 | help |
| 423 | Use ARM global timer clock source as sched_clock. |
| 424 | |
| 425 | config ARMV7M_SYSTICK |
| 426 | bool "Support for the ARMv7M system time" if COMPILE_TEST |
| 427 | select TIMER_OF if OF |
| 428 | select CLKSRC_MMIO |
| 429 | help |
| 430 | This option enables support for the ARMv7M system timer unit. |
| 431 | |
| 432 | config ATMEL_PIT |
| 433 | bool "Atmel PIT support" if COMPILE_TEST |
| 434 | depends on HAS_IOMEM |
| 435 | select TIMER_OF if OF |
| 436 | help |
| 437 | Support for the Periodic Interval Timer found on Atmel SoCs. |
| 438 | |
| 439 | config ATMEL_ST |
| 440 | bool "Atmel ST timer support" if COMPILE_TEST |
| 441 | depends on HAS_IOMEM |
| 442 | select TIMER_OF |
| 443 | select MFD_SYSCON |
| 444 | help |
| 445 | Support for the Atmel ST timer. |
| 446 | |
| 447 | config ATMEL_TCB_CLKSRC |
| 448 | bool "Atmel TC Block timer driver" if COMPILE_TEST |
| 449 | depends on ARM && OF && HAS_IOMEM |
| 450 | select TIMER_OF |
| 451 | help |
| 452 | Support for Timer Counter Blocks on Atmel SoCs. |
| 453 | |
| 454 | config CLKSRC_EXYNOS_MCT |
| 455 | bool "Exynos multi core timer driver" if COMPILE_TEST |
| 456 | depends on ARM || ARM64 |
| 457 | depends on ARCH_ARTPEC || ARCH_EXYNOS || COMPILE_TEST |
| 458 | help |
| 459 | Support for Multi Core Timer controller on Exynos SoCs. |
| 460 | |
| 461 | config CLKSRC_SAMSUNG_PWM |
| 462 | bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST |
| 463 | depends on HAS_IOMEM |
| 464 | depends on ARCH_EXYNOS || ARCH_S3C64XX || ARCH_S5PV210 || COMPILE_TEST |
| 465 | help |
| 466 | This is a new clocksource driver for the PWM timer found in |
| 467 | Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver |
| 468 | for all devicetree enabled platforms. This driver will be |
| 469 | needed only on systems that do not have the Exynos MCT available. |
| 470 | |
| 471 | config FSL_FTM_TIMER |
| 472 | bool "Freescale FlexTimer Module driver" if COMPILE_TEST |
| 473 | depends on HAS_IOMEM |
| 474 | select CLKSRC_MMIO |
| 475 | help |
| 476 | Support for Freescale FlexTimer Module (FTM) timer. |
| 477 | |
| 478 | config NXP_PIT_TIMER |
| 479 | bool "NXP Periodic Interrupt Timer" if COMPILE_TEST |
| 480 | select CLKSRC_MMIO |
| 481 | help |
| 482 | Support for Periodic Interrupt Timer on Freescale / NXP |
| 483 | SoCs. This periodic timer is found on the Vybrid Family and |
| 484 | the Automotive S32G2/3 platforms. It contains 4 channels |
| 485 | where two can be coupled to form a 64 bits channel. |
| 486 | |
| 487 | config SYS_SUPPORTS_SH_CMT |
| 488 | bool |
| 489 | |
| 490 | config MTK_TIMER |
| 491 | bool "Mediatek timer driver" if COMPILE_TEST |
| 492 | depends on HAS_IOMEM |
| 493 | select TIMER_OF |
| 494 | select CLKSRC_MMIO |
| 495 | help |
| 496 | Support for Mediatek timer driver. |
| 497 | |
| 498 | config MTK_CPUX_TIMER |
| 499 | bool "MediaTek CPUX timer driver" if COMPILE_TEST |
| 500 | depends on HAS_IOMEM |
| 501 | default ARCH_MEDIATEK |
| 502 | select TIMER_OF |
| 503 | select CLKSRC_MMIO |
| 504 | help |
| 505 | Support for MediaTek CPUXGPT timer driver. |
| 506 | |
| 507 | config SPRD_TIMER |
| 508 | bool "Spreadtrum timer driver" if EXPERT |
| 509 | depends on HAS_IOMEM |
| 510 | depends on (ARCH_SPRD || COMPILE_TEST) |
| 511 | default ARCH_SPRD |
| 512 | select TIMER_OF |
| 513 | help |
| 514 | Enables support for the Spreadtrum timer driver. |
| 515 | |
| 516 | config SYS_SUPPORTS_SH_MTU2 |
| 517 | bool |
| 518 | |
| 519 | config SYS_SUPPORTS_SH_TMU |
| 520 | bool |
| 521 | |
| 522 | config SYS_SUPPORTS_EM_STI |
| 523 | bool |
| 524 | |
| 525 | config CLKSRC_JCORE_PIT |
| 526 | bool "J-Core PIT timer driver" if COMPILE_TEST |
| 527 | depends on OF |
| 528 | depends on HAS_IOMEM |
| 529 | select CLKSRC_MMIO |
| 530 | help |
| 531 | This enables build of clocksource and clockevent driver for |
| 532 | the integrated PIT in the J-Core synthesizable, open source SoC. |
| 533 | |
| 534 | config SH_TIMER_CMT |
| 535 | bool "Renesas CMT timer driver" if COMPILE_TEST |
| 536 | depends on HAS_IOMEM |
| 537 | default SYS_SUPPORTS_SH_CMT |
| 538 | help |
| 539 | This enables build of a clocksource and clockevent driver for |
| 540 | the Compare Match Timer (CMT) hardware available in 16/32/48-bit |
| 541 | variants on a wide range of Mobile and Automotive SoCs from Renesas. |
| 542 | |
| 543 | config SH_TIMER_MTU2 |
| 544 | bool "Renesas MTU2 timer driver" if COMPILE_TEST |
| 545 | depends on HAS_IOMEM |
| 546 | default SYS_SUPPORTS_SH_MTU2 |
| 547 | help |
| 548 | This enables build of a clockevent driver for the Multi-Function |
| 549 | Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas. |
| 550 | This hardware comes with 16-bit timer registers. |
| 551 | |
| 552 | config RENESAS_OSTM |
| 553 | bool "Renesas OSTM timer driver" |
| 554 | depends on ARCH_RENESAS || COMPILE_TEST |
| 555 | select CLKSRC_MMIO |
| 556 | select TIMER_OF |
| 557 | help |
| 558 | Enables the support for the Renesas OSTM. |
| 559 | |
| 560 | config SH_TIMER_TMU |
| 561 | bool "Renesas TMU timer driver" if COMPILE_TEST |
| 562 | depends on HAS_IOMEM |
| 563 | default SYS_SUPPORTS_SH_TMU |
| 564 | help |
| 565 | This enables build of a clocksource and clockevent driver for |
| 566 | the 32-bit Timer Unit (TMU) hardware available on a wide range |
| 567 | SoCs from Renesas. |
| 568 | |
| 569 | config EM_TIMER_STI |
| 570 | bool "Renesas STI timer driver" if COMPILE_TEST |
| 571 | depends on HAS_IOMEM |
| 572 | default SYS_SUPPORTS_EM_STI |
| 573 | help |
| 574 | This enables build of a clocksource and clockevent driver for |
| 575 | the 48-bit System Timer (STI) hardware available on a SoCs |
| 576 | such as EMEV2 from former NEC Electronics. |
| 577 | |
| 578 | config CLKSRC_QCOM |
| 579 | bool "Qualcomm MSM timer" if COMPILE_TEST |
| 580 | depends on ARM |
| 581 | select TIMER_OF |
| 582 | help |
| 583 | This enables the clocksource and the per CPU clockevent driver for the |
| 584 | Qualcomm SoCs. |
| 585 | |
| 586 | config CLKSRC_VERSATILE |
| 587 | bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST |
| 588 | depends on GENERIC_SCHED_CLOCK |
| 589 | select TIMER_OF |
| 590 | default y if (ARCH_VEXPRESS || ARCH_VERSATILE) && ARM |
| 591 | help |
| 592 | This option enables clock source based on free running |
| 593 | counter available in the "System Registers" block of |
| 594 | ARM Versatile and Versatile Express reference platforms. |
| 595 | |
| 596 | config CLKSRC_MIPS_GIC |
| 597 | bool |
| 598 | depends on MIPS_GIC |
| 599 | select TIMER_OF |
| 600 | |
| 601 | config CLKSRC_PXA |
| 602 | bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST |
| 603 | depends on HAS_IOMEM |
| 604 | select CLKSRC_MMIO |
| 605 | help |
| 606 | This enables OST0 support available on PXA and SA-11x0 |
| 607 | platforms. |
| 608 | |
| 609 | config CLKSRC_IMX_GPT |
| 610 | bool "Clocksource using i.MX GPT" if COMPILE_TEST |
| 611 | depends on (ARM || ARM64) && HAVE_CLK |
| 612 | select CLKSRC_MMIO |
| 613 | |
| 614 | config CLKSRC_IMX_TPM |
| 615 | bool "Clocksource using i.MX TPM" if COMPILE_TEST |
| 616 | depends on (ARM || ARM64) && HAVE_CLK |
| 617 | select CLKSRC_MMIO |
| 618 | select TIMER_OF |
| 619 | help |
| 620 | Enable this option to use IMX Timer/PWM Module (TPM) timer as |
| 621 | clocksource. |
| 622 | |
| 623 | config TIMER_IMX_SYS_CTR |
| 624 | bool "i.MX system counter timer" if COMPILE_TEST |
| 625 | select TIMER_OF |
| 626 | help |
| 627 | Enable this option to use i.MX system counter timer as a |
| 628 | clockevent. |
| 629 | |
| 630 | config CLKSRC_LOONGSON1_PWM |
| 631 | bool "Clocksource using Loongson1 PWM" |
| 632 | depends on MACH_LOONGSON32 || COMPILE_TEST |
| 633 | select MIPS_EXTERNAL_TIMER |
| 634 | select TIMER_OF |
| 635 | help |
| 636 | Enable this option to use Loongson1 PWM timer as clocksource |
| 637 | instead of the performance counter. |
| 638 | |
| 639 | config CLKSRC_ST_LPC |
| 640 | bool "Low power clocksource found in the LPC" if COMPILE_TEST |
| 641 | select TIMER_OF if OF |
| 642 | depends on HAS_IOMEM |
| 643 | select CLKSRC_MMIO |
| 644 | help |
| 645 | Enable this option to use the Low Power controller timer |
| 646 | as clocksource. |
| 647 | |
| 648 | config GXP_TIMER |
| 649 | bool "GXP timer driver" if COMPILE_TEST && !ARCH_HPE |
| 650 | default ARCH_HPE |
| 651 | select TIMER_OF if OF |
| 652 | help |
| 653 | Provides a driver for the timer control found on HPE |
| 654 | GXP SOCs. This is required for all GXP SOCs. |
| 655 | |
| 656 | config RISCV_TIMER |
| 657 | bool "Timer for the RISC-V platform" if COMPILE_TEST |
| 658 | depends on GENERIC_SCHED_CLOCK && RISCV && RISCV_SBI |
| 659 | select TIMER_PROBE |
| 660 | select TIMER_OF |
| 661 | help |
| 662 | This enables the per-hart timer built into all RISC-V systems, which |
| 663 | is accessed via both the SBI and the rdcycle instruction. This is |
| 664 | required for all RISC-V systems. |
| 665 | |
| 666 | config CLINT_TIMER |
| 667 | bool "CLINT Timer for the RISC-V platform" if COMPILE_TEST |
| 668 | depends on GENERIC_SCHED_CLOCK && RISCV |
| 669 | select TIMER_PROBE |
| 670 | select TIMER_OF |
| 671 | help |
| 672 | This option enables the CLINT timer for RISC-V systems. The CLINT |
| 673 | driver is usually used for NoMMU RISC-V systems. |
| 674 | |
| 675 | config CSKY_MP_TIMER |
| 676 | bool "SMP Timer for the C-SKY platform" if COMPILE_TEST |
| 677 | depends on CSKY |
| 678 | select TIMER_OF |
| 679 | help |
| 680 | Say yes here to enable C-SKY SMP timer driver used for C-SKY SMP |
| 681 | system. |
| 682 | csky,mptimer is not only used in SMP system, it also could be used in |
| 683 | single core system. It's not a mmio reg and it uses mtcr/mfcr instruction. |
| 684 | |
| 685 | config GX6605S_TIMER |
| 686 | bool "Gx6605s SOC system timer driver" if COMPILE_TEST |
| 687 | depends on CSKY |
| 688 | select CLKSRC_MMIO |
| 689 | select TIMER_OF |
| 690 | help |
| 691 | This option enables support for gx6605s SOC's timer. |
| 692 | |
| 693 | config MILBEAUT_TIMER |
| 694 | bool "Milbeaut timer driver" if COMPILE_TEST |
| 695 | depends on OF |
| 696 | depends on ARM |
| 697 | select TIMER_OF |
| 698 | select CLKSRC_MMIO |
| 699 | help |
| 700 | Enables the support for Milbeaut timer driver. |
| 701 | |
| 702 | config MSC313E_TIMER |
| 703 | bool "MSC313E timer driver" if COMPILE_TEST |
| 704 | select TIMER_OF |
| 705 | select CLKSRC_MMIO |
| 706 | help |
| 707 | Enables support for the MStar MSC313E timer driver. |
| 708 | This provides access to multiple interrupt generating |
| 709 | programmable 32-bit free running incrementing counters. |
| 710 | |
| 711 | config INGENIC_TIMER |
| 712 | bool "Clocksource/timer using the TCU in Ingenic JZ SoCs" |
| 713 | default MACH_INGENIC |
| 714 | depends on MIPS || COMPILE_TEST |
| 715 | depends on COMMON_CLK |
| 716 | select MFD_SYSCON |
| 717 | select TIMER_OF |
| 718 | select IRQ_DOMAIN |
| 719 | help |
| 720 | Support for the timer/counter unit of the Ingenic JZ SoCs. |
| 721 | |
| 722 | config INGENIC_SYSOST |
| 723 | bool "Clocksource/timer using the SYSOST in Ingenic X SoCs" |
| 724 | depends on MIPS || COMPILE_TEST |
| 725 | depends on COMMON_CLK |
| 726 | select MFD_SYSCON |
| 727 | select TIMER_OF |
| 728 | select IRQ_DOMAIN |
| 729 | help |
| 730 | Support for the SYSOST of the Ingenic X Series SoCs. |
| 731 | |
| 732 | config INGENIC_OST |
| 733 | bool "Clocksource using the OST in Ingenic JZ SoCs" |
| 734 | depends on MIPS || COMPILE_TEST |
| 735 | depends on COMMON_CLK |
| 736 | select MFD_SYSCON |
| 737 | help |
| 738 | Support for the Operating System Timer of the Ingenic JZ SoCs. |
| 739 | |
| 740 | config MICROCHIP_PIT64B |
| 741 | bool "Microchip PIT64B support" |
| 742 | depends on OF && ARM |
| 743 | select TIMER_OF |
| 744 | help |
| 745 | This option enables Microchip PIT64B timer for Atmel |
| 746 | based system. It supports the oneshot, the periodic |
| 747 | modes and high resolution. It is used as a clocksource |
| 748 | and a clockevent. |
| 749 | |
| 750 | config GOLDFISH_TIMER |
| 751 | bool "Clocksource using goldfish-rtc" |
| 752 | depends on M68K || COMPILE_TEST |
| 753 | depends on RTC_DRV_GOLDFISH |
| 754 | help |
| 755 | Support for the timer/counter of goldfish-rtc |
| 756 | |
| 757 | config EP93XX_TIMER |
| 758 | bool "Cirrus Logic ep93xx timer driver" if COMPILE_TEST |
| 759 | depends on ARCH_EP93XX |
| 760 | depends on GENERIC_CLOCKEVENTS |
| 761 | depends on HAS_IOMEM |
| 762 | select CLKSRC_MMIO |
| 763 | select TIMER_OF |
| 764 | help |
| 765 | Enables support for the Cirrus Logic timer block |
| 766 | EP93XX. |
| 767 | |
| 768 | config RALINK_TIMER |
| 769 | bool "Ralink System Tick Counter" |
| 770 | depends on SOC_RT305X || SOC_MT7620 || COMPILE_TEST |
| 771 | select CLKSRC_MMIO |
| 772 | select TIMER_OF |
| 773 | help |
| 774 | Enables support for system tick counter present on |
| 775 | Ralink SoCs RT3352 and MT7620. |
| 776 | |
| 777 | config NXP_STM_TIMER |
| 778 | bool "NXP System Timer Module driver" |
| 779 | depends on ARCH_S32 || COMPILE_TEST |
| 780 | select CLKSRC_MMIO |
| 781 | help |
| 782 | Enables the support for NXP System Timer Module found in the |
| 783 | s32g NXP platform series. |
| 784 | |
| 785 | config RTK_SYSTIMER |
| 786 | bool "Realtek SYSTIMER support" |
| 787 | depends on ARM || ARM64 |
| 788 | depends on ARCH_REALTEK || COMPILE_TEST |
| 789 | select TIMER_OF |
| 790 | help |
| 791 | This option enables the driver that registers the global 1 MHz hardware |
| 792 | counter as a clock event device on Realtek SoCs. Make sure to enable |
| 793 | this option only when building for a Realtek platform or for compilation |
| 794 | testing. |
| 795 | |
| 796 | choice |
| 797 | prompt "NXP clocksource for scheduler clock" |
| 798 | depends on SOC_VF610 || ARCH_S32 |
| 799 | # Default to Global Timer for Vybrid (32-bit) |
| 800 | default VF_USE_ARM_GLOBAL_TIMER if SOC_VF610 |
| 801 | # Default to None for S32 (64-bit) |
| 802 | default VF_TIMER_NONE if ARCH_S32 |
| 803 | |
| 804 | config VF_USE_ARM_GLOBAL_TIMER |
| 805 | bool "Use NXP Vybrid Global Timer" |
| 806 | depends on ARCH_MULTI_V7 && SOC_VF610 |
| 807 | select ARM_GLOBAL_TIMER |
| 808 | select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK |
| 809 | help |
| 810 | Use the NXP Vybrid Global Timer as clocksource. |
| 811 | |
| 812 | config VF_USE_PIT_TIMER |
| 813 | bool "Use NXP PIT timer" |
| 814 | select NXP_PIT_TIMER |
| 815 | help |
| 816 | Use NXP Periodic Interrupt Timer (PIT) as clocksource. |
| 817 | |
| 818 | config VF_TIMER_NONE |
| 819 | bool "None (Use standard Arch Timer)" |
| 820 | depends on ARCH_S32 |
| 821 | help |
| 822 | Do not use any specific NXP timer driver. Use the standard |
| 823 | ARM Architected Timer instead. |
| 824 | |
| 825 | endchoice |
| 826 | |
| 827 | endmenu |