1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunmenu "Clock Source drivers" 3*4882a593Smuzhiyun depends on GENERIC_CLOCKEVENTS 4*4882a593Smuzhiyun 5*4882a593Smuzhiyunconfig TIMER_OF 6*4882a593Smuzhiyun bool 7*4882a593Smuzhiyun select TIMER_PROBE 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunconfig TIMER_ACPI 10*4882a593Smuzhiyun bool 11*4882a593Smuzhiyun select TIMER_PROBE 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunconfig TIMER_PROBE 14*4882a593Smuzhiyun bool 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunconfig CLKSRC_I8253 17*4882a593Smuzhiyun bool 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunconfig CLKEVT_I8253 20*4882a593Smuzhiyun bool 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunconfig I8253_LOCK 23*4882a593Smuzhiyun bool 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunconfig OMAP_DM_TIMER 26*4882a593Smuzhiyun bool 27*4882a593Smuzhiyun select TIMER_OF 28*4882a593Smuzhiyun 29*4882a593Smuzhiyunconfig CLKBLD_I8253 30*4882a593Smuzhiyun def_bool y if CLKSRC_I8253 || CLKEVT_I8253 || I8253_LOCK 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunconfig CLKSRC_MMIO 33*4882a593Smuzhiyun bool 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunconfig BCM2835_TIMER 36*4882a593Smuzhiyun bool "BCM2835 timer driver" if COMPILE_TEST 37*4882a593Smuzhiyun select CLKSRC_MMIO 38*4882a593Smuzhiyun help 39*4882a593Smuzhiyun Enables the support for the BCM2835 timer driver. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig BCM_KONA_TIMER 42*4882a593Smuzhiyun bool "BCM mobile timer driver" if COMPILE_TEST 43*4882a593Smuzhiyun select CLKSRC_MMIO 44*4882a593Smuzhiyun help 45*4882a593Smuzhiyun Enables the support for the BCM Kona mobile timer driver. 46*4882a593Smuzhiyun 47*4882a593Smuzhiyunconfig DAVINCI_TIMER 48*4882a593Smuzhiyun bool "Texas Instruments DaVinci timer driver" if COMPILE_TEST 49*4882a593Smuzhiyun help 50*4882a593Smuzhiyun Enables the support for the TI DaVinci timer driver. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunconfig DIGICOLOR_TIMER 53*4882a593Smuzhiyun bool "Digicolor timer driver" if COMPILE_TEST 54*4882a593Smuzhiyun select CLKSRC_MMIO 55*4882a593Smuzhiyun depends on HAS_IOMEM 56*4882a593Smuzhiyun help 57*4882a593Smuzhiyun Enables the support for the digicolor timer driver. 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunconfig DW_APB_TIMER 60*4882a593Smuzhiyun bool "DW APB timer driver" if COMPILE_TEST 61*4882a593Smuzhiyun help 62*4882a593Smuzhiyun Enables the support for the dw_apb timer. 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunconfig DW_APB_TIMER_OF 65*4882a593Smuzhiyun bool 66*4882a593Smuzhiyun select DW_APB_TIMER 67*4882a593Smuzhiyun select TIMER_OF 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunconfig FTTMR010_TIMER 70*4882a593Smuzhiyun bool "Faraday Technology timer driver" if COMPILE_TEST 71*4882a593Smuzhiyun depends on HAS_IOMEM 72*4882a593Smuzhiyun select CLKSRC_MMIO 73*4882a593Smuzhiyun select TIMER_OF 74*4882a593Smuzhiyun select MFD_SYSCON 75*4882a593Smuzhiyun help 76*4882a593Smuzhiyun Enables support for the Faraday Technology timer block 77*4882a593Smuzhiyun FTTMR010. 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunconfig IXP4XX_TIMER 80*4882a593Smuzhiyun bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST 81*4882a593Smuzhiyun depends on HAS_IOMEM 82*4882a593Smuzhiyun select CLKSRC_MMIO 83*4882a593Smuzhiyun select TIMER_OF if OF 84*4882a593Smuzhiyun help 85*4882a593Smuzhiyun Enables support for the Intel XScale IXP4xx SoC timer. 86*4882a593Smuzhiyun 87*4882a593Smuzhiyunconfig ROCKCHIP_TIMER 88*4882a593Smuzhiyun tristate "Rockchip timer driver" 89*4882a593Smuzhiyun default ARCH_ROCKCHIP 90*4882a593Smuzhiyun depends on ARCH_ROCKCHIP || COMPILE_TEST 91*4882a593Smuzhiyun depends on ARM || ARM64 92*4882a593Smuzhiyun select TIMER_OF 93*4882a593Smuzhiyun select CLKSRC_MMIO 94*4882a593Smuzhiyun help 95*4882a593Smuzhiyun Enables the support for the Rockchip timer driver. 96*4882a593Smuzhiyun 97*4882a593Smuzhiyunconfig ARMADA_370_XP_TIMER 98*4882a593Smuzhiyun bool "Armada 370 and XP timer driver" if COMPILE_TEST 99*4882a593Smuzhiyun depends on ARM 100*4882a593Smuzhiyun select TIMER_OF 101*4882a593Smuzhiyun select CLKSRC_MMIO 102*4882a593Smuzhiyun help 103*4882a593Smuzhiyun Enables the support for the Armada 370 and XP timer driver. 104*4882a593Smuzhiyun 105*4882a593Smuzhiyunconfig MESON6_TIMER 106*4882a593Smuzhiyun bool "Meson6 timer driver" if COMPILE_TEST 107*4882a593Smuzhiyun select CLKSRC_MMIO 108*4882a593Smuzhiyun help 109*4882a593Smuzhiyun Enables the support for the Meson6 timer driver. 110*4882a593Smuzhiyun 111*4882a593Smuzhiyunconfig ORION_TIMER 112*4882a593Smuzhiyun bool "Orion timer driver" if COMPILE_TEST 113*4882a593Smuzhiyun depends on ARM 114*4882a593Smuzhiyun select TIMER_OF 115*4882a593Smuzhiyun select CLKSRC_MMIO 116*4882a593Smuzhiyun help 117*4882a593Smuzhiyun Enables the support for the Orion timer driver 118*4882a593Smuzhiyun 119*4882a593Smuzhiyunconfig OWL_TIMER 120*4882a593Smuzhiyun bool "Owl timer driver" if COMPILE_TEST 121*4882a593Smuzhiyun select CLKSRC_MMIO 122*4882a593Smuzhiyun help 123*4882a593Smuzhiyun Enables the support for the Actions Semi Owl timer driver. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyunconfig RDA_TIMER 126*4882a593Smuzhiyun bool "RDA timer driver" if COMPILE_TEST 127*4882a593Smuzhiyun select CLKSRC_MMIO 128*4882a593Smuzhiyun select TIMER_OF 129*4882a593Smuzhiyun help 130*4882a593Smuzhiyun Enables the support for the RDA Micro timer driver. 131*4882a593Smuzhiyun 132*4882a593Smuzhiyunconfig SUN4I_TIMER 133*4882a593Smuzhiyun bool "Sun4i timer driver" 134*4882a593Smuzhiyun depends on HAS_IOMEM 135*4882a593Smuzhiyun select CLKSRC_MMIO 136*4882a593Smuzhiyun select TIMER_OF 137*4882a593Smuzhiyun help 138*4882a593Smuzhiyun Enables support for the Sun4i timer. 139*4882a593Smuzhiyun 140*4882a593Smuzhiyunconfig SUN5I_HSTIMER 141*4882a593Smuzhiyun bool "Sun5i timer driver" if COMPILE_TEST 142*4882a593Smuzhiyun select CLKSRC_MMIO 143*4882a593Smuzhiyun depends on COMMON_CLK 144*4882a593Smuzhiyun help 145*4882a593Smuzhiyun Enables support the Sun5i timer. 146*4882a593Smuzhiyun 147*4882a593Smuzhiyunconfig TEGRA_TIMER 148*4882a593Smuzhiyun bool "Tegra timer driver" if COMPILE_TEST 149*4882a593Smuzhiyun select CLKSRC_MMIO 150*4882a593Smuzhiyun select TIMER_OF 151*4882a593Smuzhiyun depends on ARCH_TEGRA || COMPILE_TEST 152*4882a593Smuzhiyun help 153*4882a593Smuzhiyun Enables support for the Tegra driver. 154*4882a593Smuzhiyun 155*4882a593Smuzhiyunconfig VT8500_TIMER 156*4882a593Smuzhiyun bool "VT8500 timer driver" if COMPILE_TEST 157*4882a593Smuzhiyun depends on HAS_IOMEM 158*4882a593Smuzhiyun help 159*4882a593Smuzhiyun Enables support for the VT8500 driver. 160*4882a593Smuzhiyun 161*4882a593Smuzhiyunconfig NPCM7XX_TIMER 162*4882a593Smuzhiyun bool "NPCM7xx timer driver" if COMPILE_TEST 163*4882a593Smuzhiyun depends on HAS_IOMEM 164*4882a593Smuzhiyun select TIMER_OF 165*4882a593Smuzhiyun select CLKSRC_MMIO 166*4882a593Smuzhiyun help 167*4882a593Smuzhiyun Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture, 168*4882a593Smuzhiyun where TIMER0 serves as clockevent and TIMER1 serves as clocksource. 169*4882a593Smuzhiyun 170*4882a593Smuzhiyunconfig CADENCE_TTC_TIMER 171*4882a593Smuzhiyun bool "Cadence TTC timer driver" if COMPILE_TEST 172*4882a593Smuzhiyun depends on COMMON_CLK 173*4882a593Smuzhiyun help 174*4882a593Smuzhiyun Enables support for the Cadence TTC driver. 175*4882a593Smuzhiyun 176*4882a593Smuzhiyunconfig ASM9260_TIMER 177*4882a593Smuzhiyun bool "ASM9260 timer driver" if COMPILE_TEST 178*4882a593Smuzhiyun select CLKSRC_MMIO 179*4882a593Smuzhiyun select TIMER_OF 180*4882a593Smuzhiyun help 181*4882a593Smuzhiyun Enables support for the ASM9260 timer. 182*4882a593Smuzhiyun 183*4882a593Smuzhiyunconfig CLKSRC_NOMADIK_MTU 184*4882a593Smuzhiyun bool "Nomakdik clocksource driver" if COMPILE_TEST 185*4882a593Smuzhiyun depends on ARM 186*4882a593Smuzhiyun select CLKSRC_MMIO 187*4882a593Smuzhiyun help 188*4882a593Smuzhiyun Support for Multi Timer Unit. MTU provides access 189*4882a593Smuzhiyun to multiple interrupt generating programmable 190*4882a593Smuzhiyun 32-bit free running decrementing counters. 191*4882a593Smuzhiyun 192*4882a593Smuzhiyunconfig CLKSRC_DBX500_PRCMU 193*4882a593Smuzhiyun bool "Clocksource PRCMU Timer" if COMPILE_TEST 194*4882a593Smuzhiyun depends on HAS_IOMEM 195*4882a593Smuzhiyun help 196*4882a593Smuzhiyun Use the always on PRCMU Timer as clocksource. 197*4882a593Smuzhiyun 198*4882a593Smuzhiyunconfig CLPS711X_TIMER 199*4882a593Smuzhiyun bool "Cirrus Logic timer driver" if COMPILE_TEST 200*4882a593Smuzhiyun select CLKSRC_MMIO 201*4882a593Smuzhiyun help 202*4882a593Smuzhiyun Enables support for the Cirrus Logic PS711 timer. 203*4882a593Smuzhiyun 204*4882a593Smuzhiyunconfig ATLAS7_TIMER 205*4882a593Smuzhiyun bool "Atlas7 timer driver" if COMPILE_TEST 206*4882a593Smuzhiyun select CLKSRC_MMIO 207*4882a593Smuzhiyun help 208*4882a593Smuzhiyun Enables support for the Atlas7 timer. 209*4882a593Smuzhiyun 210*4882a593Smuzhiyunconfig MXS_TIMER 211*4882a593Smuzhiyun bool "MXS timer driver" if COMPILE_TEST 212*4882a593Smuzhiyun select CLKSRC_MMIO 213*4882a593Smuzhiyun select STMP_DEVICE 214*4882a593Smuzhiyun help 215*4882a593Smuzhiyun Enables support for the MXS timer. 216*4882a593Smuzhiyun 217*4882a593Smuzhiyunconfig PRIMA2_TIMER 218*4882a593Smuzhiyun bool "Prima2 timer driver" if COMPILE_TEST 219*4882a593Smuzhiyun select CLKSRC_MMIO 220*4882a593Smuzhiyun help 221*4882a593Smuzhiyun Enables support for the Prima2 timer. 222*4882a593Smuzhiyun 223*4882a593Smuzhiyunconfig U300_TIMER 224*4882a593Smuzhiyun bool "U300 timer driver" if COMPILE_TEST 225*4882a593Smuzhiyun depends on ARM 226*4882a593Smuzhiyun select CLKSRC_MMIO 227*4882a593Smuzhiyun help 228*4882a593Smuzhiyun Enables support for the U300 timer. 229*4882a593Smuzhiyun 230*4882a593Smuzhiyunconfig NSPIRE_TIMER 231*4882a593Smuzhiyun bool "NSpire timer driver" if COMPILE_TEST 232*4882a593Smuzhiyun select CLKSRC_MMIO 233*4882a593Smuzhiyun help 234*4882a593Smuzhiyun Enables support for the Nspire timer. 235*4882a593Smuzhiyun 236*4882a593Smuzhiyunconfig KEYSTONE_TIMER 237*4882a593Smuzhiyun bool "Keystone timer driver" if COMPILE_TEST 238*4882a593Smuzhiyun depends on ARM || ARM64 239*4882a593Smuzhiyun select CLKSRC_MMIO 240*4882a593Smuzhiyun help 241*4882a593Smuzhiyun Enables support for the Keystone timer. 242*4882a593Smuzhiyun 243*4882a593Smuzhiyunconfig INTEGRATOR_AP_TIMER 244*4882a593Smuzhiyun bool "Integrator-AP timer driver" if COMPILE_TEST 245*4882a593Smuzhiyun select CLKSRC_MMIO 246*4882a593Smuzhiyun help 247*4882a593Smuzhiyun Enables support for the Integrator-AP timer. 248*4882a593Smuzhiyun 249*4882a593Smuzhiyunconfig CLKSRC_EFM32 250*4882a593Smuzhiyun bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32 251*4882a593Smuzhiyun depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST) 252*4882a593Smuzhiyun select CLKSRC_MMIO 253*4882a593Smuzhiyun default ARCH_EFM32 254*4882a593Smuzhiyun help 255*4882a593Smuzhiyun Support to use the timers of EFM32 SoCs as clock source and clock 256*4882a593Smuzhiyun event device. 257*4882a593Smuzhiyun 258*4882a593Smuzhiyunconfig CLKSRC_LPC32XX 259*4882a593Smuzhiyun bool "Clocksource for LPC32XX" if COMPILE_TEST 260*4882a593Smuzhiyun depends on HAS_IOMEM 261*4882a593Smuzhiyun depends on ARM 262*4882a593Smuzhiyun select CLKSRC_MMIO 263*4882a593Smuzhiyun select TIMER_OF 264*4882a593Smuzhiyun help 265*4882a593Smuzhiyun Support for the LPC32XX clocksource. 266*4882a593Smuzhiyun 267*4882a593Smuzhiyunconfig CLKSRC_PISTACHIO 268*4882a593Smuzhiyun bool "Clocksource for Pistachio SoC" if COMPILE_TEST 269*4882a593Smuzhiyun depends on HAS_IOMEM 270*4882a593Smuzhiyun select TIMER_OF 271*4882a593Smuzhiyun help 272*4882a593Smuzhiyun Enables the clocksource for the Pistachio SoC. 273*4882a593Smuzhiyun 274*4882a593Smuzhiyunconfig CLKSRC_TI_32K 275*4882a593Smuzhiyun bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST 276*4882a593Smuzhiyun depends on GENERIC_SCHED_CLOCK 277*4882a593Smuzhiyun select TIMER_OF if OF 278*4882a593Smuzhiyun help 279*4882a593Smuzhiyun This option enables support for Texas Instruments 32.768 Hz clocksource 280*4882a593Smuzhiyun available on many OMAP-like platforms. 281*4882a593Smuzhiyun 282*4882a593Smuzhiyunconfig CLKSRC_NPS 283*4882a593Smuzhiyun bool "NPS400 clocksource driver" if COMPILE_TEST 284*4882a593Smuzhiyun depends on !PHYS_ADDR_T_64BIT 285*4882a593Smuzhiyun select CLKSRC_MMIO 286*4882a593Smuzhiyun select TIMER_OF if OF 287*4882a593Smuzhiyun help 288*4882a593Smuzhiyun NPS400 clocksource support. 289*4882a593Smuzhiyun It has a 64-bit counter with update rate up to 1000MHz. 290*4882a593Smuzhiyun This counter is accessed via couple of 32-bit memory-mapped registers. 291*4882a593Smuzhiyun 292*4882a593Smuzhiyunconfig CLKSRC_STM32 293*4882a593Smuzhiyun bool "Clocksource for STM32 SoCs" if !ARCH_STM32 294*4882a593Smuzhiyun depends on OF && ARM && (ARCH_STM32 || COMPILE_TEST) 295*4882a593Smuzhiyun select CLKSRC_MMIO 296*4882a593Smuzhiyun select TIMER_OF 297*4882a593Smuzhiyun 298*4882a593Smuzhiyunconfig CLKSRC_STM32_LP 299*4882a593Smuzhiyun bool "Low power clocksource for STM32 SoCs" 300*4882a593Smuzhiyun depends on MFD_STM32_LPTIMER || COMPILE_TEST 301*4882a593Smuzhiyun 302*4882a593Smuzhiyunconfig CLKSRC_MPS2 303*4882a593Smuzhiyun bool "Clocksource for MPS2 SoCs" if COMPILE_TEST 304*4882a593Smuzhiyun depends on GENERIC_SCHED_CLOCK 305*4882a593Smuzhiyun select CLKSRC_MMIO 306*4882a593Smuzhiyun select TIMER_OF 307*4882a593Smuzhiyun 308*4882a593Smuzhiyunconfig ARC_TIMERS 309*4882a593Smuzhiyun bool "Support for 32-bit TIMERn counters in ARC Cores" if COMPILE_TEST 310*4882a593Smuzhiyun depends on GENERIC_SCHED_CLOCK 311*4882a593Smuzhiyun select TIMER_OF 312*4882a593Smuzhiyun help 313*4882a593Smuzhiyun These are legacy 32-bit TIMER0 and TIMER1 counters found on all ARC cores 314*4882a593Smuzhiyun (ARC700 as well as ARC HS38). 315*4882a593Smuzhiyun TIMER0 serves as clockevent while TIMER1 provides clocksource. 316*4882a593Smuzhiyun 317*4882a593Smuzhiyunconfig ARC_TIMERS_64BIT 318*4882a593Smuzhiyun bool "Support for 64-bit counters in ARC HS38 cores" if COMPILE_TEST 319*4882a593Smuzhiyun depends on ARC_TIMERS 320*4882a593Smuzhiyun select TIMER_OF 321*4882a593Smuzhiyun help 322*4882a593Smuzhiyun This enables 2 different 64-bit timers: RTC (for UP) and GFRC (for SMP). 323*4882a593Smuzhiyun RTC is implemented inside the core, while GFRC sits outside the core in 324*4882a593Smuzhiyun ARConnect IP block. Driver automatically picks one of them for clocksource 325*4882a593Smuzhiyun as appropriate. 326*4882a593Smuzhiyun 327*4882a593Smuzhiyunconfig ARM_ARCH_TIMER 328*4882a593Smuzhiyun bool 329*4882a593Smuzhiyun select TIMER_OF if OF 330*4882a593Smuzhiyun select TIMER_ACPI if ACPI 331*4882a593Smuzhiyun 332*4882a593Smuzhiyunconfig ARM_ARCH_TIMER_EVTSTREAM 333*4882a593Smuzhiyun bool "Enable ARM architected timer event stream generation by default" 334*4882a593Smuzhiyun default y if ARM_ARCH_TIMER 335*4882a593Smuzhiyun depends on ARM_ARCH_TIMER 336*4882a593Smuzhiyun help 337*4882a593Smuzhiyun This option enables support by default for event stream generation 338*4882a593Smuzhiyun based on the ARM architected timer. It is used for waking up CPUs 339*4882a593Smuzhiyun executing the wfe instruction at a frequency represented as a 340*4882a593Smuzhiyun power-of-2 divisor of the clock rate. The behaviour can also be 341*4882a593Smuzhiyun overridden on the command line using the 342*4882a593Smuzhiyun clocksource.arm_arch_timer.evtstream parameter. 343*4882a593Smuzhiyun The main use of the event stream is wfe-based timeouts of userspace 344*4882a593Smuzhiyun locking implementations. It might also be useful for imposing timeout 345*4882a593Smuzhiyun on wfe to safeguard against any programming errors in case an expected 346*4882a593Smuzhiyun event is not generated. 347*4882a593Smuzhiyun This must be disabled for hardware validation purposes to detect any 348*4882a593Smuzhiyun hardware anomalies of missing events. 349*4882a593Smuzhiyun 350*4882a593Smuzhiyunconfig ARM_ARCH_TIMER_OOL_WORKAROUND 351*4882a593Smuzhiyun bool 352*4882a593Smuzhiyun 353*4882a593Smuzhiyunconfig FSL_ERRATUM_A008585 354*4882a593Smuzhiyun bool "Workaround for Freescale/NXP Erratum A-008585" 355*4882a593Smuzhiyun default y 356*4882a593Smuzhiyun depends on ARM_ARCH_TIMER && ARM64 357*4882a593Smuzhiyun select ARM_ARCH_TIMER_OOL_WORKAROUND 358*4882a593Smuzhiyun help 359*4882a593Smuzhiyun This option enables a workaround for Freescale/NXP Erratum 360*4882a593Smuzhiyun A-008585 ("ARM generic timer may contain an erroneous 361*4882a593Smuzhiyun value"). The workaround will only be active if the 362*4882a593Smuzhiyun fsl,erratum-a008585 property is found in the timer node. 363*4882a593Smuzhiyun 364*4882a593Smuzhiyunconfig HISILICON_ERRATUM_161010101 365*4882a593Smuzhiyun bool "Workaround for Hisilicon Erratum 161010101" 366*4882a593Smuzhiyun default y 367*4882a593Smuzhiyun select ARM_ARCH_TIMER_OOL_WORKAROUND 368*4882a593Smuzhiyun depends on ARM_ARCH_TIMER && ARM64 369*4882a593Smuzhiyun help 370*4882a593Smuzhiyun This option enables a workaround for Hisilicon Erratum 371*4882a593Smuzhiyun 161010101. The workaround will be active if the hisilicon,erratum-161010101 372*4882a593Smuzhiyun property is found in the timer node. 373*4882a593Smuzhiyun 374*4882a593Smuzhiyunconfig ARM64_ERRATUM_858921 375*4882a593Smuzhiyun bool "Workaround for Cortex-A73 erratum 858921" 376*4882a593Smuzhiyun default y 377*4882a593Smuzhiyun select ARM_ARCH_TIMER_OOL_WORKAROUND 378*4882a593Smuzhiyun depends on ARM_ARCH_TIMER && ARM64 379*4882a593Smuzhiyun help 380*4882a593Smuzhiyun This option enables a workaround applicable to Cortex-A73 381*4882a593Smuzhiyun (all versions), whose counter may return incorrect values. 382*4882a593Smuzhiyun The workaround will be dynamically enabled when an affected 383*4882a593Smuzhiyun core is detected. 384*4882a593Smuzhiyun 385*4882a593Smuzhiyunconfig SUN50I_ERRATUM_UNKNOWN1 386*4882a593Smuzhiyun bool "Workaround for Allwinner A64 erratum UNKNOWN1" 387*4882a593Smuzhiyun default y 388*4882a593Smuzhiyun depends on ARM_ARCH_TIMER && ARM64 && ARCH_SUNXI 389*4882a593Smuzhiyun select ARM_ARCH_TIMER_OOL_WORKAROUND 390*4882a593Smuzhiyun help 391*4882a593Smuzhiyun This option enables a workaround for instability in the timer on 392*4882a593Smuzhiyun the Allwinner A64 SoC. The workaround will only be active if the 393*4882a593Smuzhiyun allwinner,erratum-unknown1 property is found in the timer node. 394*4882a593Smuzhiyun 395*4882a593Smuzhiyunconfig ARM_GLOBAL_TIMER 396*4882a593Smuzhiyun bool "Support for the ARM global timer" if COMPILE_TEST 397*4882a593Smuzhiyun select TIMER_OF if OF 398*4882a593Smuzhiyun depends on ARM 399*4882a593Smuzhiyun help 400*4882a593Smuzhiyun This option enables support for the ARM global timer unit. 401*4882a593Smuzhiyun 402*4882a593Smuzhiyunconfig ARM_TIMER_SP804 403*4882a593Smuzhiyun bool "Support for Dual Timer SP804 module" if COMPILE_TEST 404*4882a593Smuzhiyun depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP 405*4882a593Smuzhiyun select CLKSRC_MMIO 406*4882a593Smuzhiyun select TIMER_OF if OF 407*4882a593Smuzhiyun 408*4882a593Smuzhiyunconfig CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK 409*4882a593Smuzhiyun bool 410*4882a593Smuzhiyun depends on ARM_GLOBAL_TIMER 411*4882a593Smuzhiyun default y 412*4882a593Smuzhiyun help 413*4882a593Smuzhiyun Use ARM global timer clock source as sched_clock. 414*4882a593Smuzhiyun 415*4882a593Smuzhiyunconfig ARMV7M_SYSTICK 416*4882a593Smuzhiyun bool "Support for the ARMv7M system time" if COMPILE_TEST 417*4882a593Smuzhiyun select TIMER_OF if OF 418*4882a593Smuzhiyun select CLKSRC_MMIO 419*4882a593Smuzhiyun help 420*4882a593Smuzhiyun This option enables support for the ARMv7M system timer unit. 421*4882a593Smuzhiyun 422*4882a593Smuzhiyunconfig ATMEL_PIT 423*4882a593Smuzhiyun bool "Atmel PIT support" if COMPILE_TEST 424*4882a593Smuzhiyun depends on HAS_IOMEM 425*4882a593Smuzhiyun select TIMER_OF if OF 426*4882a593Smuzhiyun help 427*4882a593Smuzhiyun Support for the Periodic Interval Timer found on Atmel SoCs. 428*4882a593Smuzhiyun 429*4882a593Smuzhiyunconfig ATMEL_ST 430*4882a593Smuzhiyun bool "Atmel ST timer support" if COMPILE_TEST 431*4882a593Smuzhiyun depends on HAS_IOMEM 432*4882a593Smuzhiyun select TIMER_OF 433*4882a593Smuzhiyun select MFD_SYSCON 434*4882a593Smuzhiyun help 435*4882a593Smuzhiyun Support for the Atmel ST timer. 436*4882a593Smuzhiyun 437*4882a593Smuzhiyunconfig ATMEL_TCB_CLKSRC 438*4882a593Smuzhiyun bool "Atmel TC Block timer driver" if COMPILE_TEST 439*4882a593Smuzhiyun depends on ARM && HAS_IOMEM 440*4882a593Smuzhiyun select TIMER_OF if OF 441*4882a593Smuzhiyun help 442*4882a593Smuzhiyun Support for Timer Counter Blocks on Atmel SoCs. 443*4882a593Smuzhiyun 444*4882a593Smuzhiyunconfig CLKSRC_EXYNOS_MCT 445*4882a593Smuzhiyun bool "Exynos multi core timer driver" if COMPILE_TEST 446*4882a593Smuzhiyun depends on ARM || ARM64 447*4882a593Smuzhiyun help 448*4882a593Smuzhiyun Support for Multi Core Timer controller on Exynos SoCs. 449*4882a593Smuzhiyun 450*4882a593Smuzhiyunconfig CLKSRC_SAMSUNG_PWM 451*4882a593Smuzhiyun bool "PWM timer driver for Samsung S3C, S5P" if COMPILE_TEST 452*4882a593Smuzhiyun depends on HAS_IOMEM 453*4882a593Smuzhiyun help 454*4882a593Smuzhiyun This is a new clocksource driver for the PWM timer found in 455*4882a593Smuzhiyun Samsung S3C, S5P and Exynos SoCs, replacing an earlier driver 456*4882a593Smuzhiyun for all devicetree enabled platforms. This driver will be 457*4882a593Smuzhiyun needed only on systems that do not have the Exynos MCT available. 458*4882a593Smuzhiyun 459*4882a593Smuzhiyunconfig FSL_FTM_TIMER 460*4882a593Smuzhiyun bool "Freescale FlexTimer Module driver" if COMPILE_TEST 461*4882a593Smuzhiyun depends on HAS_IOMEM 462*4882a593Smuzhiyun select CLKSRC_MMIO 463*4882a593Smuzhiyun help 464*4882a593Smuzhiyun Support for Freescale FlexTimer Module (FTM) timer. 465*4882a593Smuzhiyun 466*4882a593Smuzhiyunconfig VF_PIT_TIMER 467*4882a593Smuzhiyun bool 468*4882a593Smuzhiyun select CLKSRC_MMIO 469*4882a593Smuzhiyun help 470*4882a593Smuzhiyun Support for Periodic Interrupt Timer on Freescale Vybrid Family SoCs. 471*4882a593Smuzhiyun 472*4882a593Smuzhiyunconfig OXNAS_RPS_TIMER 473*4882a593Smuzhiyun bool "Oxford Semiconductor OXNAS RPS Timers driver" if COMPILE_TEST 474*4882a593Smuzhiyun select TIMER_OF 475*4882a593Smuzhiyun select CLKSRC_MMIO 476*4882a593Smuzhiyun help 477*4882a593Smuzhiyun This enables support for the Oxford Semiconductor OXNAS RPS timers. 478*4882a593Smuzhiyun 479*4882a593Smuzhiyunconfig SYS_SUPPORTS_SH_CMT 480*4882a593Smuzhiyun bool 481*4882a593Smuzhiyun 482*4882a593Smuzhiyunconfig MTK_TIMER 483*4882a593Smuzhiyun bool "Mediatek timer driver" 484*4882a593Smuzhiyun depends on HAS_IOMEM 485*4882a593Smuzhiyun select TIMER_OF 486*4882a593Smuzhiyun select CLKSRC_MMIO 487*4882a593Smuzhiyun help 488*4882a593Smuzhiyun Support for Mediatek timer driver. 489*4882a593Smuzhiyun 490*4882a593Smuzhiyunconfig SPRD_TIMER 491*4882a593Smuzhiyun bool "Spreadtrum timer driver" if EXPERT 492*4882a593Smuzhiyun depends on HAS_IOMEM 493*4882a593Smuzhiyun depends on (ARCH_SPRD || COMPILE_TEST) 494*4882a593Smuzhiyun default ARCH_SPRD 495*4882a593Smuzhiyun select TIMER_OF 496*4882a593Smuzhiyun help 497*4882a593Smuzhiyun Enables support for the Spreadtrum timer driver. 498*4882a593Smuzhiyun 499*4882a593Smuzhiyunconfig SYS_SUPPORTS_SH_MTU2 500*4882a593Smuzhiyun bool 501*4882a593Smuzhiyun 502*4882a593Smuzhiyunconfig SYS_SUPPORTS_SH_TMU 503*4882a593Smuzhiyun bool 504*4882a593Smuzhiyun 505*4882a593Smuzhiyunconfig SYS_SUPPORTS_EM_STI 506*4882a593Smuzhiyun bool 507*4882a593Smuzhiyun 508*4882a593Smuzhiyunconfig CLKSRC_JCORE_PIT 509*4882a593Smuzhiyun bool "J-Core PIT timer driver" if COMPILE_TEST 510*4882a593Smuzhiyun depends on OF 511*4882a593Smuzhiyun depends on HAS_IOMEM 512*4882a593Smuzhiyun select CLKSRC_MMIO 513*4882a593Smuzhiyun help 514*4882a593Smuzhiyun This enables build of clocksource and clockevent driver for 515*4882a593Smuzhiyun the integrated PIT in the J-Core synthesizable, open source SoC. 516*4882a593Smuzhiyun 517*4882a593Smuzhiyunconfig SH_TIMER_CMT 518*4882a593Smuzhiyun bool "Renesas CMT timer driver" if COMPILE_TEST 519*4882a593Smuzhiyun depends on HAS_IOMEM 520*4882a593Smuzhiyun default SYS_SUPPORTS_SH_CMT 521*4882a593Smuzhiyun help 522*4882a593Smuzhiyun This enables build of a clocksource and clockevent driver for 523*4882a593Smuzhiyun the Compare Match Timer (CMT) hardware available in 16/32/48-bit 524*4882a593Smuzhiyun variants on a wide range of Mobile and Automotive SoCs from Renesas. 525*4882a593Smuzhiyun 526*4882a593Smuzhiyunconfig SH_TIMER_MTU2 527*4882a593Smuzhiyun bool "Renesas MTU2 timer driver" if COMPILE_TEST 528*4882a593Smuzhiyun depends on HAS_IOMEM 529*4882a593Smuzhiyun default SYS_SUPPORTS_SH_MTU2 530*4882a593Smuzhiyun help 531*4882a593Smuzhiyun This enables build of a clockevent driver for the Multi-Function 532*4882a593Smuzhiyun Timer Pulse Unit 2 (MTU2) hardware available on SoCs from Renesas. 533*4882a593Smuzhiyun This hardware comes with 16-bit timer registers. 534*4882a593Smuzhiyun 535*4882a593Smuzhiyunconfig RENESAS_OSTM 536*4882a593Smuzhiyun bool "Renesas OSTM timer driver" if COMPILE_TEST 537*4882a593Smuzhiyun select CLKSRC_MMIO 538*4882a593Smuzhiyun select TIMER_OF 539*4882a593Smuzhiyun help 540*4882a593Smuzhiyun Enables the support for the Renesas OSTM. 541*4882a593Smuzhiyun 542*4882a593Smuzhiyunconfig SH_TIMER_TMU 543*4882a593Smuzhiyun bool "Renesas TMU timer driver" if COMPILE_TEST 544*4882a593Smuzhiyun depends on HAS_IOMEM 545*4882a593Smuzhiyun default SYS_SUPPORTS_SH_TMU 546*4882a593Smuzhiyun help 547*4882a593Smuzhiyun This enables build of a clocksource and clockevent driver for 548*4882a593Smuzhiyun the 32-bit Timer Unit (TMU) hardware available on a wide range 549*4882a593Smuzhiyun SoCs from Renesas. 550*4882a593Smuzhiyun 551*4882a593Smuzhiyunconfig EM_TIMER_STI 552*4882a593Smuzhiyun bool "Renesas STI timer driver" if COMPILE_TEST 553*4882a593Smuzhiyun depends on HAS_IOMEM 554*4882a593Smuzhiyun default SYS_SUPPORTS_EM_STI 555*4882a593Smuzhiyun help 556*4882a593Smuzhiyun This enables build of a clocksource and clockevent driver for 557*4882a593Smuzhiyun the 48-bit System Timer (STI) hardware available on a SoCs 558*4882a593Smuzhiyun such as EMEV2 from former NEC Electronics. 559*4882a593Smuzhiyun 560*4882a593Smuzhiyunconfig CLKSRC_QCOM 561*4882a593Smuzhiyun bool "Qualcomm MSM timer" if COMPILE_TEST 562*4882a593Smuzhiyun depends on ARM 563*4882a593Smuzhiyun select TIMER_OF 564*4882a593Smuzhiyun help 565*4882a593Smuzhiyun This enables the clocksource and the per CPU clockevent driver for the 566*4882a593Smuzhiyun Qualcomm SoCs. 567*4882a593Smuzhiyun 568*4882a593Smuzhiyunconfig CLKSRC_VERSATILE 569*4882a593Smuzhiyun bool "ARM Versatile (Express) reference platforms clock source" if COMPILE_TEST 570*4882a593Smuzhiyun depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET 571*4882a593Smuzhiyun select TIMER_OF 572*4882a593Smuzhiyun default y if (ARCH_VEXPRESS || ARCH_VERSATILE) && ARM 573*4882a593Smuzhiyun help 574*4882a593Smuzhiyun This option enables clock source based on free running 575*4882a593Smuzhiyun counter available in the "System Registers" block of 576*4882a593Smuzhiyun ARM Versatile and Versatile Express reference platforms. 577*4882a593Smuzhiyun 578*4882a593Smuzhiyunconfig CLKSRC_MIPS_GIC 579*4882a593Smuzhiyun bool 580*4882a593Smuzhiyun depends on MIPS_GIC 581*4882a593Smuzhiyun select CLOCKSOURCE_WATCHDOG 582*4882a593Smuzhiyun select TIMER_OF 583*4882a593Smuzhiyun 584*4882a593Smuzhiyunconfig CLKSRC_TANGO_XTAL 585*4882a593Smuzhiyun bool "Clocksource for Tango SoC" if COMPILE_TEST 586*4882a593Smuzhiyun depends on ARM 587*4882a593Smuzhiyun select TIMER_OF 588*4882a593Smuzhiyun select CLKSRC_MMIO 589*4882a593Smuzhiyun help 590*4882a593Smuzhiyun This enables the clocksource for Tango SoC. 591*4882a593Smuzhiyun 592*4882a593Smuzhiyunconfig CLKSRC_PXA 593*4882a593Smuzhiyun bool "Clocksource for PXA or SA-11x0 platform" if COMPILE_TEST 594*4882a593Smuzhiyun depends on HAS_IOMEM 595*4882a593Smuzhiyun select CLKSRC_MMIO 596*4882a593Smuzhiyun help 597*4882a593Smuzhiyun This enables OST0 support available on PXA and SA-11x0 598*4882a593Smuzhiyun platforms. 599*4882a593Smuzhiyun 600*4882a593Smuzhiyunconfig H8300_TMR8 601*4882a593Smuzhiyun bool "Clockevent timer for the H8300 platform" if COMPILE_TEST 602*4882a593Smuzhiyun depends on HAS_IOMEM 603*4882a593Smuzhiyun help 604*4882a593Smuzhiyun This enables the 8 bits timer for the H8300 platform. 605*4882a593Smuzhiyun 606*4882a593Smuzhiyunconfig H8300_TMR16 607*4882a593Smuzhiyun bool "Clockevent timer for the H83069 platform" if COMPILE_TEST 608*4882a593Smuzhiyun depends on HAS_IOMEM 609*4882a593Smuzhiyun help 610*4882a593Smuzhiyun This enables the 16 bits timer for the H8300 platform with the 611*4882a593Smuzhiyun H83069 CPU. 612*4882a593Smuzhiyun 613*4882a593Smuzhiyunconfig H8300_TPU 614*4882a593Smuzhiyun bool "Clocksource for the H8300 platform" if COMPILE_TEST 615*4882a593Smuzhiyun depends on HAS_IOMEM 616*4882a593Smuzhiyun help 617*4882a593Smuzhiyun This enables the clocksource for the H8300 platform with the 618*4882a593Smuzhiyun H8S2678 CPU. 619*4882a593Smuzhiyun 620*4882a593Smuzhiyunconfig CLKSRC_IMX_GPT 621*4882a593Smuzhiyun bool "Clocksource using i.MX GPT" if COMPILE_TEST 622*4882a593Smuzhiyun depends on (ARM || ARM64) && CLKDEV_LOOKUP 623*4882a593Smuzhiyun select CLKSRC_MMIO 624*4882a593Smuzhiyun 625*4882a593Smuzhiyunconfig CLKSRC_IMX_TPM 626*4882a593Smuzhiyun bool "Clocksource using i.MX TPM" if COMPILE_TEST 627*4882a593Smuzhiyun depends on (ARM || ARM64) && CLKDEV_LOOKUP 628*4882a593Smuzhiyun select CLKSRC_MMIO 629*4882a593Smuzhiyun select TIMER_OF 630*4882a593Smuzhiyun help 631*4882a593Smuzhiyun Enable this option to use IMX Timer/PWM Module (TPM) timer as 632*4882a593Smuzhiyun clocksource. 633*4882a593Smuzhiyun 634*4882a593Smuzhiyunconfig TIMER_IMX_SYS_CTR 635*4882a593Smuzhiyun bool "i.MX system counter timer" if COMPILE_TEST 636*4882a593Smuzhiyun select TIMER_OF 637*4882a593Smuzhiyun help 638*4882a593Smuzhiyun Enable this option to use i.MX system counter timer as a 639*4882a593Smuzhiyun clockevent. 640*4882a593Smuzhiyun 641*4882a593Smuzhiyunconfig CLKSRC_ST_LPC 642*4882a593Smuzhiyun bool "Low power clocksource found in the LPC" if COMPILE_TEST 643*4882a593Smuzhiyun select TIMER_OF if OF 644*4882a593Smuzhiyun depends on HAS_IOMEM 645*4882a593Smuzhiyun select CLKSRC_MMIO 646*4882a593Smuzhiyun help 647*4882a593Smuzhiyun Enable this option to use the Low Power controller timer 648*4882a593Smuzhiyun as clocksource. 649*4882a593Smuzhiyun 650*4882a593Smuzhiyunconfig ATCPIT100_TIMER 651*4882a593Smuzhiyun bool "ATCPIT100 timer driver" 652*4882a593Smuzhiyun depends on NDS32 || COMPILE_TEST 653*4882a593Smuzhiyun depends on HAS_IOMEM 654*4882a593Smuzhiyun select TIMER_OF 655*4882a593Smuzhiyun default NDS32 656*4882a593Smuzhiyun help 657*4882a593Smuzhiyun This option enables support for the Andestech ATCPIT100 timers. 658*4882a593Smuzhiyun 659*4882a593Smuzhiyunconfig RISCV_TIMER 660*4882a593Smuzhiyun bool "Timer for the RISC-V platform" if COMPILE_TEST 661*4882a593Smuzhiyun depends on GENERIC_SCHED_CLOCK && RISCV && RISCV_SBI 662*4882a593Smuzhiyun select TIMER_PROBE 663*4882a593Smuzhiyun select TIMER_OF 664*4882a593Smuzhiyun help 665*4882a593Smuzhiyun This enables the per-hart timer built into all RISC-V systems, which 666*4882a593Smuzhiyun is accessed via both the SBI and the rdcycle instruction. This is 667*4882a593Smuzhiyun required for all RISC-V systems. 668*4882a593Smuzhiyun 669*4882a593Smuzhiyunconfig CLINT_TIMER 670*4882a593Smuzhiyun bool "CLINT Timer for the RISC-V platform" if COMPILE_TEST 671*4882a593Smuzhiyun depends on GENERIC_SCHED_CLOCK && RISCV 672*4882a593Smuzhiyun select TIMER_PROBE 673*4882a593Smuzhiyun select TIMER_OF 674*4882a593Smuzhiyun help 675*4882a593Smuzhiyun This option enables the CLINT timer for RISC-V systems. The CLINT 676*4882a593Smuzhiyun driver is usually used for NoMMU RISC-V systems. 677*4882a593Smuzhiyun 678*4882a593Smuzhiyunconfig CSKY_MP_TIMER 679*4882a593Smuzhiyun bool "SMP Timer for the C-SKY platform" if COMPILE_TEST 680*4882a593Smuzhiyun depends on CSKY 681*4882a593Smuzhiyun select TIMER_OF 682*4882a593Smuzhiyun help 683*4882a593Smuzhiyun Say yes here to enable C-SKY SMP timer driver used for C-SKY SMP 684*4882a593Smuzhiyun system. 685*4882a593Smuzhiyun csky,mptimer is not only used in SMP system, it also could be used in 686*4882a593Smuzhiyun single core system. It's not a mmio reg and it uses mtcr/mfcr instruction. 687*4882a593Smuzhiyun 688*4882a593Smuzhiyunconfig GX6605S_TIMER 689*4882a593Smuzhiyun bool "Gx6605s SOC system timer driver" if COMPILE_TEST 690*4882a593Smuzhiyun depends on CSKY 691*4882a593Smuzhiyun select CLKSRC_MMIO 692*4882a593Smuzhiyun select TIMER_OF 693*4882a593Smuzhiyun help 694*4882a593Smuzhiyun This option enables support for gx6605s SOC's timer. 695*4882a593Smuzhiyun 696*4882a593Smuzhiyunconfig MILBEAUT_TIMER 697*4882a593Smuzhiyun bool "Milbeaut timer driver" if COMPILE_TEST 698*4882a593Smuzhiyun depends on OF 699*4882a593Smuzhiyun depends on ARM 700*4882a593Smuzhiyun select TIMER_OF 701*4882a593Smuzhiyun select CLKSRC_MMIO 702*4882a593Smuzhiyun help 703*4882a593Smuzhiyun Enables the support for Milbeaut timer driver. 704*4882a593Smuzhiyun 705*4882a593Smuzhiyunconfig INGENIC_TIMER 706*4882a593Smuzhiyun bool "Clocksource/timer using the TCU in Ingenic JZ SoCs" 707*4882a593Smuzhiyun default MACH_INGENIC 708*4882a593Smuzhiyun depends on MIPS || COMPILE_TEST 709*4882a593Smuzhiyun depends on COMMON_CLK 710*4882a593Smuzhiyun select MFD_SYSCON 711*4882a593Smuzhiyun select TIMER_OF 712*4882a593Smuzhiyun select IRQ_DOMAIN 713*4882a593Smuzhiyun help 714*4882a593Smuzhiyun Support for the timer/counter unit of the Ingenic JZ SoCs. 715*4882a593Smuzhiyun 716*4882a593Smuzhiyunconfig INGENIC_SYSOST 717*4882a593Smuzhiyun bool "Clocksource/timer using the SYSOST in Ingenic X SoCs" 718*4882a593Smuzhiyun depends on MIPS || COMPILE_TEST 719*4882a593Smuzhiyun depends on COMMON_CLK 720*4882a593Smuzhiyun select MFD_SYSCON 721*4882a593Smuzhiyun select TIMER_OF 722*4882a593Smuzhiyun select IRQ_DOMAIN 723*4882a593Smuzhiyun help 724*4882a593Smuzhiyun Support for the SYSOST of the Ingenic X Series SoCs. 725*4882a593Smuzhiyun 726*4882a593Smuzhiyunconfig INGENIC_OST 727*4882a593Smuzhiyun bool "Clocksource using the OST in Ingenic JZ SoCs" 728*4882a593Smuzhiyun depends on MIPS || COMPILE_TEST 729*4882a593Smuzhiyun depends on COMMON_CLK 730*4882a593Smuzhiyun select MFD_SYSCON 731*4882a593Smuzhiyun help 732*4882a593Smuzhiyun Support for the Operating System Timer of the Ingenic JZ SoCs. 733*4882a593Smuzhiyun 734*4882a593Smuzhiyunconfig MICROCHIP_PIT64B 735*4882a593Smuzhiyun bool "Microchip PIT64B support" 736*4882a593Smuzhiyun depends on OF || COMPILE_TEST 737*4882a593Smuzhiyun select CLKSRC_MMIO 738*4882a593Smuzhiyun select TIMER_OF 739*4882a593Smuzhiyun help 740*4882a593Smuzhiyun This option enables Microchip PIT64B timer for Atmel 741*4882a593Smuzhiyun based system. It supports the oneshot, the periodic 742*4882a593Smuzhiyun modes and high resolution. It is used as a clocksource 743*4882a593Smuzhiyun and a clockevent. 744*4882a593Smuzhiyun 745*4882a593Smuzhiyunendmenu 746