Kconfig 15 KB

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