Kconfig 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. #
  2. # For a description of the syntax of this configuration file,
  3. # see the file kconfig-language.txt in the NuttX tools repository.
  4. #
  5. menu "Timer Driver Support"
  6. config ARCH_HAVE_PWM_PULSECOUNT
  7. bool
  8. default n
  9. config ARCH_HAVE_PWM_MULTICHAN
  10. bool
  11. default n
  12. config PWM
  13. bool "PWM Driver Support"
  14. default n
  15. ---help---
  16. This selection enables building of the "upper-half" PWM driver.
  17. See include/nuttx/timers/pwm.h for further PWM driver information.
  18. if PWM
  19. config PWM_PULSECOUNT
  20. bool "PWM Pulse Count Support"
  21. default n
  22. depends on ARCH_HAVE_PWM_PULSECOUNT
  23. ---help---
  24. Some hardware will support generation of a fixed number of pulses.
  25. This might be used, for example to support a stepper motor. If the
  26. hardware will support a fixed pulse count, then this configuration
  27. should be set to enable the capability.
  28. config PWM_MULTICHAN
  29. bool "PWM Multiple Output Channel Support"
  30. default n
  31. depends on ARCH_HAVE_PWM_MULTICHAN
  32. depends on !PWM_PULSECOUNT
  33. ---help---
  34. Enables support for multiple output channels per timer.
  35. if PWM_MULTICHAN
  36. config PWM_NCHANNELS
  37. int "Number of Output Channels Per Timer"
  38. default 1
  39. range 1 6
  40. ---help---
  41. Specifies the number of output channels per timer. Each timer
  42. may support fewer output channels than this value.
  43. endif # PWM_MULTICHAN
  44. endif # PWM
  45. config TIMER
  46. bool "Timer Support"
  47. default n
  48. ---help---
  49. This selection enables building of the "upper-half" timer
  50. driver. See include/nuttx/timers/timer.h for further timer driver
  51. information.
  52. if TIMER
  53. config TIMER_ARCH
  54. bool "Timer Arch Implementation"
  55. select ARCH_HAVE_TICKLESS
  56. select ARCH_HAVE_TIMEKEEPING
  57. select SCHED_TICKLESS_LIMIT_MAX_SLEEP if SCHED_TICKLESS
  58. ---help---
  59. Implement timer arch API on top of timer driver interface.
  60. endif # TIMER
  61. config ONESHOT
  62. bool "Oneshot timer driver"
  63. default n
  64. ---help---
  65. This selection enables building of the "upper-half" oneshot timer
  66. driver. See include/nuttx/timers/oneshot.h for further oneshot timer
  67. driver information.
  68. if ONESHOT
  69. config ALARM_ARCH
  70. bool "Alarm Arch Implementation"
  71. select ARCH_HAVE_TICKLESS
  72. select ARCH_HAVE_TIMEKEEPING
  73. select SCHED_TICKLESS_ALARM if SCHED_TICKLESS
  74. select SCHED_TICKLESS_LIMIT_MAX_SLEEP if SCHED_TICKLESS
  75. ---help---
  76. Implement alarm arch API on top of oneshot driver interface.
  77. endif # ONESHOT
  78. menuconfig RTC
  79. bool "RTC Driver Support"
  80. default n
  81. ---help---
  82. This selection enables configuration of a real time clock (RTCdriver.
  83. See include/nuttx/timers/rtc.h for further RTC driver information.
  84. Most RTC drivers are MCU specific and may require other specific
  85. settings.
  86. if RTC
  87. config RTC_DATETIME
  88. bool "Date/Time RTC Support"
  89. default n
  90. ---help---
  91. There are two general types of RTC: (1) A simple battery backed
  92. counter that keeps the time when power is down, and (2) a full
  93. date / time RTC the provides the date and time information, often in
  94. BCD format. If RTC_DATETIME is selected, it specifies this second kind
  95. of RTC. In this case, the RTC is used to "seed" the normal NuttX timer
  96. and the NuttX system timer provides for higher resolution time.
  97. if !RTC_DATETIME
  98. config RTC_HIRES
  99. bool "Hi-Res RTC Support"
  100. default n
  101. ---help---
  102. If RTC_DATETIME not selected, then the simple, battery backed counter
  103. is used. There are two different implementations of such simple
  104. counters based on the time resolution of the counter: The typical RTC
  105. keeps time to resolution of 1 second, usually supporting a 32-bit
  106. time_t value. In this case, the RTC is used to "seed" the normal NuttX
  107. timer and the NuttX timer provides for higherresoution time.
  108. If RTC_HIRES is enabled in the NuttX configuration, then the RTC
  109. provides higher resolution time and completely replaces the system
  110. timer for purpose of date and time.
  111. config RTC_FREQUENCY
  112. int "Hi-Res RTC frequency"
  113. default 1
  114. depends on RTC_HIRES
  115. ---help---
  116. If RTC_HIRES is defined, then the frequency of the high resolution RTC
  117. must be provided. If RTC_HIRES is not defined, RTC_FREQUENCY is
  118. assumed to be one Hz.
  119. endif # !RTC_DATETIME
  120. config RTC_ALARM
  121. bool "RTC Alarm Support"
  122. default n
  123. ---help---
  124. Enable if the RTC hardware supports setting of an alarm. A callback
  125. function will be executed when the alarm goes off.
  126. config RTC_NALARMS
  127. int "Number of alarms"
  128. default 1
  129. depends on RTC_ALARM
  130. ---help---
  131. Number of alarms supported by the hardware.
  132. config RTC_DRIVER
  133. bool "RTC Driver Support"
  134. default n
  135. ---help---
  136. This selection enables building of the "upper-half" RTC
  137. driver. See include/nuttx/timers/rtc.h for further RTC driver
  138. information.
  139. if RTC_DRIVER
  140. config RTC_ARCH
  141. bool "RTC Arch Implementation"
  142. default n
  143. ---help---
  144. Implement RTC arch API on top of RTC driver interface.
  145. config RTC_PERIODIC
  146. bool "RTC Periodic Interrupts"
  147. default n
  148. ---help---
  149. Add interrupt controls for RTCs that support periodic interrupts.
  150. config RTC_IOCTL
  151. bool "RTC IOCTLs"
  152. default n
  153. ---help---
  154. Support the RTC interface ioctl() method. This allows you to add
  155. architecture-specific RTC operations to the RTC interface
  156. endif # RTC_DRIVER
  157. config RTC_EXTERNAL
  158. bool "External RTC Support"
  159. default n
  160. ---help---
  161. In modern MCUs, the RTC is usually implement as an internal
  162. peripheral to the MCU. An option is to use an external RTC
  163. connected to the MCU typically via SPI or I2C.
  164. If an external RTC is connect to the MCU through some bus, then the
  165. RTC will not be available to the system until after the system
  166. fully boots up and is able to access the bus. In that case, this
  167. setting must be included to suppress attempts to initialize the RTC
  168. early in the boot sequence.
  169. config RTC_DSXXXX
  170. bool "DS130x/DS323x RTC Driver"
  171. default n
  172. select I2C
  173. select RTC_DATETIME
  174. depends on RTC_EXTERNAL
  175. ---help---
  176. Enables support for the Maxim Integrated DS3231 I2C RTC timer.
  177. if RTC_DSXXXX
  178. choice
  179. prompt "Maxim Integrated RTC"
  180. default RTC_DS3231
  181. config RTC_DS1302
  182. bool "DS1302"
  183. ---help---
  184. Enables support for the Maxim Integrated DS1302 serial RTC timer.
  185. config RTC_DS1307
  186. bool "DS1307"
  187. ---help---
  188. Enables support for the Maxim Integrated DS1307 I2C RTC timer.
  189. config RTC_DS3231
  190. bool "DS3231"
  191. ---help---
  192. Enables support for the Maxim Integrated DS3231 I2C RTC timer.
  193. config RTC_DS3232
  194. bool "DS3232"
  195. ---help---
  196. Enables support for the Maxim Integrated DS3232 I2C RTC timer.
  197. config RTC_DS3234
  198. bool "DS3234"
  199. depends on EXPERIMENTAL
  200. ---help---
  201. Enables support for the Maxim Integrated DS3234 SPI RTC timer.
  202. Not yet implemented.
  203. endchoice # Maxim Integrated RTC
  204. config DS3231_I2C_FREQUENCY
  205. int "DS1307/DS323x I2C frequency"
  206. default 400000
  207. range 1 400000
  208. endif # RTC_DSXXXX
  209. config RTC_PCF85263
  210. bool "PCF85263 RTC Driver"
  211. default n
  212. select I2C
  213. select RTC_DATETIME
  214. depends on RTC_EXTERNAL
  215. ---help---
  216. Enables support for the NXP PCF85263 I2C RTC timer.
  217. if RTC_PCF85263
  218. config PCF85263_I2C_FREQUENCY
  219. int "PCF85263 I2C frequency"
  220. default 400000
  221. range 1 400000
  222. endif # RTC_PCF85263
  223. config RTC_MCP794XX
  224. bool "MCP794XX RTC Driver"
  225. default n
  226. select I2C
  227. select RTC_DATETIME
  228. depends on RTC_EXTERNAL
  229. ---help---
  230. Enables support for the Microchip MCP794XX I2C RTC timer.
  231. if RTC_MCP794XX
  232. config MCP794XX_I2C_FREQUENCY
  233. int "MCP794XX I2C frequency"
  234. default 400000
  235. range 1 400000
  236. endif # RTC_MCP794XX
  237. config RTC_RPMSG
  238. bool "Rpmsg RTC Driver"
  239. default n
  240. depends on OPENAMP
  241. select ARCH_HAVE_RTC_SUBSECONDS
  242. config RTC_RPMSG_SERVER
  243. bool "The RTC Rpmsg Role"
  244. depends on OPENAMP
  245. config RTC_RPMSG_SERVER_NAME
  246. string "The name of RTC Rpmsg Server"
  247. depends on RTC_RPMSG
  248. ---help---
  249. The proc name of rtc server. Client requests time from
  250. specified name of remote proc.
  251. endif # RTC
  252. menuconfig WATCHDOG
  253. bool "Watchdog Timer Support"
  254. default n
  255. ---help---
  256. This selection enables building of the "upper-half" watchdog timer
  257. driver. See include/nuttx/timers/watchdog.h for further watchdog timer driver
  258. information.
  259. if WATCHDOG
  260. config WATCHDOG_DEVPATH
  261. string "Watchdog Device Path"
  262. default "/dev/watchdog0"
  263. ---help---
  264. Please, check how your specific chip or board uses this symbol.
  265. FYI: It's NOT used by the Auto-monitor feature.
  266. menuconfig WATCHDOG_AUTOMONITOR
  267. bool "Auto-monitor"
  268. ---help---
  269. The auto-monitor provides an OS-internal mechanism for automatically
  270. start and repeatedly reset the WDTs that were previous selected.
  271. Once the Auto-monitor is enabled, it will reset all
  272. registered watchdog timers. If you start a specific WDT, the auto-monitor
  273. will stop for that WDT and the application should take care of this from
  274. now on.
  275. if WATCHDOG_AUTOMONITOR
  276. choice
  277. prompt "Auto-monitor keepalive by"
  278. default WATCHDOG_AUTOMONITOR_BY_TIMER
  279. config WATCHDOG_AUTOMONITOR_BY_CAPTURE
  280. bool "Capture callback"
  281. config WATCHDOG_AUTOMONITOR_BY_TIMER
  282. bool "Timer callback"
  283. config WATCHDOG_AUTOMONITOR_BY_WORKER
  284. bool "Worker callback"
  285. depends on SCHED_WORKQUEUE
  286. config WATCHDOG_AUTOMONITOR_BY_IDLE
  287. bool "Idle callback"
  288. depends on PM
  289. endchoice
  290. config WATCHDOG_AUTOMONITOR_TIMEOUT
  291. int "Auto-monitor reset timeout(second)"
  292. default 60
  293. if WATCHDOG_AUTOMONITOR_BY_TIMER || WATCHDOG_AUTOMONITOR_BY_WORKER
  294. config WATCHDOG_AUTOMONITOR_PING_INTERVAL
  295. int "Auto-monitor keep a live interval"
  296. default WATCHDOG_AUTOMONITOR_TIMEOUT
  297. range 1 WATCHDOG_AUTOMONITOR_TIMEOUT
  298. ---help---
  299. If the interval is same as WATCHDOG_AUTOMONITOR_TIMEOUT
  300. the default value will change to (WATCHDOG_AUTOMONITOR_TIMEOUT / 2).
  301. This interval will only be used by auto-monitor by Worker callback
  302. or by Timer callback.
  303. endif # WATCHDOG_AUTOMONITOR_BY_TIMER || WATCHDOG_AUTOMONITOR_BY_WORKER
  304. endif # WATCHDOG_AUTOMONITOR
  305. endif # WATCHDOG
  306. config TIMERS_CS2100CP
  307. bool "CS2100-CP Fraction-N Clock Multiplier"
  308. depends on I2C
  309. if TIMERS_CS2100CP
  310. config CS2100CP_DEBUG
  311. bool "Enable CS2100-CP Debug Features"
  312. depends on DEBUG_FEATURES
  313. config CS2100CP_REGDEBUG
  314. bool "Enable CS2100-CP Register Debug"
  315. depends on DEBUG_FEATURES
  316. endif # TIMERS_CS2100CP
  317. endmenu # Timer Driver Support