Kconfig 22 KB

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