nuttx/drivers/timers/Kconfig

445 lines
11 KiB
Plaintext
Raw Normal View History

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menu "Timer Driver Support"
config ARCH_HAVE_PWM_PULSECOUNT
bool
default n
config ARCH_HAVE_PWM_MULTICHAN
bool
default n
config PWM
bool "PWM Driver Support"
default n
---help---
This selection enables building of the "upper-half" PWM driver.
See include/nuttx/timers/pwm.h for further PWM driver information.
if PWM
config PWM_PULSECOUNT
bool "PWM Pulse Count Support"
default n
depends on ARCH_HAVE_PWM_PULSECOUNT
---help---
Some hardware will support generation of a fixed number of pulses.
This might be used, for example to support a stepper motor. If the
hardware will support a fixed pulse count, then this configuration
should be set to enable the capability.
config PWM_MULTICHAN
bool "PWM Multiple Output Channel Support"
default n
depends on ARCH_HAVE_PWM_MULTICHAN
depends on !PWM_PULSECOUNT
---help---
Enables support for multiple output channels per timer.
if PWM_MULTICHAN
config PWM_NCHANNELS
int "Number of Output Channels Per Timer"
default 1
range 1 16
---help---
Specifies the number of output channels per timer. Each timer
may support fewer output channels than this value.
endif # PWM_MULTICHAN
endif # PWM
config CAPTURE
bool "Capture Driver Support"
default n
---help---
This selection enables building of the "upper-half" Capture driver.
See include/nuttx/timers/capture.h for further Capture driver information.
config TIMER
bool "Timer Support"
default n
---help---
This selection enables building of the "upper-half" timer
driver. See include/nuttx/timers/timer.h for further timer driver
information.
if TIMER
config TIMER_ARCH
bool "Timer Arch Implementation"
select ARCH_HAVE_TICKLESS
select ARCH_HAVE_TIMEKEEPING
select SCHED_TICKLESS_LIMIT_MAX_SLEEP if SCHED_TICKLESS
---help---
Implement timer arch API on top of timer driver interface.
endif # TIMER
config ONESHOT
bool "Oneshot timer driver"
default n
---help---
This selection enables building of the "upper-half" oneshot timer
driver. See include/nuttx/timers/oneshot.h for further oneshot timer
driver information.
if ONESHOT
config ALARM_ARCH
bool "Alarm Arch Implementation"
select ARCH_HAVE_TICKLESS
select ARCH_HAVE_TIMEKEEPING
select SCHED_TICKLESS_ALARM if SCHED_TICKLESS
select SCHED_TICKLESS_LIMIT_MAX_SLEEP if SCHED_TICKLESS
select SCHED_TICKLESS_TICK_ARGUMENT if SCHED_TICKLESS
---help---
Implement alarm arch API on top of oneshot driver interface.
endif # ONESHOT
menuconfig RTC
bool "RTC Driver Support"
default n
---help---
This selection enables configuration of a real time clock (RTCdriver.
See include/nuttx/timers/rtc.h for further RTC driver information.
Most RTC drivers are MCU specific and may require other specific
settings.
if RTC
config RTC_DATETIME
bool "Date/Time RTC Support"
default n
---help---
There are two general types of RTC: (1) A simple battery backed
counter that keeps the time when power is down, and (2) a full
date / time RTC the provides the date and time information, often in
BCD format. If RTC_DATETIME is selected, it specifies this second kind
of RTC. In this case, the RTC is used to "seed" the normal NuttX timer
and the NuttX system timer provides for higher resolution time.
if !RTC_DATETIME
config RTC_HIRES
bool "Hi-Res RTC Support"
default n
---help---
If RTC_DATETIME not selected, then the simple, battery backed counter
is used. There are two different implementations of such simple
counters based on the time resolution of the counter: The typical RTC
keeps time to resolution of 1 second, usually supporting a 32-bit
time_t value. In this case, the RTC is used to "seed" the normal NuttX
timer and the NuttX timer provides for higherresoution time.
If RTC_HIRES is enabled in the NuttX configuration, then the RTC
provides higher resolution time and completely replaces the system
timer for purpose of date and time.
config RTC_FREQUENCY
int "Hi-Res RTC frequency"
default 1
depends on RTC_HIRES
---help---
If RTC_HIRES is defined, then the frequency of the high resolution RTC
must be provided. If RTC_HIRES is not defined, RTC_FREQUENCY is
assumed to be one Hz.
endif # !RTC_DATETIME
2015-02-25 14:22:58 +01:00
config RTC_ALARM
bool "RTC Alarm Support"
default n
---help---
Enable if the RTC hardware supports setting of an alarm. A callback
function will be executed when the alarm goes off.
config RTC_NALARMS
int "Number of alarms"
default 1
depends on RTC_ALARM
---help---
Number of alarms supported by the hardware.
config RTC_DRIVER
bool "RTC Driver Support"
default n
---help---
This selection enables building of the "upper-half" RTC
driver. See include/nuttx/timers/rtc.h for further RTC driver
information.
if RTC_DRIVER
config RTC_ARCH
bool "RTC Arch Implementation"
default n
---help---
Implement RTC arch API on top of RTC driver interface.
config RTC_PERIODIC
bool "RTC Periodic Interrupts"
default n
---help---
Add interrupt controls for RTCs that support periodic interrupts.
config RTC_IOCTL
bool "RTC IOCTLs"
default n
---help---
Support the RTC interface ioctl() method. This allows you to add
architecture-specific RTC operations to the RTC interface
endif # RTC_DRIVER
config RTC_EXTERNAL
bool "External RTC Support"
default n
---help---
In modern MCUs, the RTC is usually implement as an internal
peripheral to the MCU. An option is to use an external RTC
connected to the MCU typically via SPI or I2C.
If an external RTC is connect to the MCU through some bus, then the
RTC will not be available to the system until after the system
fully boots up and is able to access the bus. In that case, this
setting must be included to suppress attempts to initialize the RTC
early in the boot sequence.
config RTC_DSXXXX
bool "DS130x/DS323x RTC Driver"
default n
select I2C
select RTC_DATETIME
2015-11-29 19:13:24 +01:00
depends on RTC_EXTERNAL
---help---
Enables support for the Maxim Integrated DS3231 I2C RTC timer.
if RTC_DSXXXX
choice
prompt "Maxim Integrated RTC"
default RTC_DS3231
config RTC_DS1302
bool "DS1302"
---help---
2018-07-22 13:56:11 +02:00
Enables support for the Maxim Integrated DS1302 serial RTC timer.
config RTC_DS1307
bool "DS1307"
---help---
Enables support for the Maxim Integrated DS1307 I2C RTC timer.
config RTC_DS3231
bool "DS3231"
---help---
Enables support for the Maxim Integrated DS3231 I2C RTC timer.
config RTC_DS3232
bool "DS3232"
---help---
Enables support for the Maxim Integrated DS3232 I2C RTC timer.
config RTC_DS3234
bool "DS3234"
depends on EXPERIMENTAL
---help---
Enables support for the Maxim Integrated DS3234 SPI RTC timer.
Not yet implemented.
endchoice # Maxim Integrated RTC
config DS3231_I2C_FREQUENCY
int "DS1307/DS323x I2C frequency"
default 400000
range 1 400000
endif # RTC_DSXXXX
config RTC_PCF85263
bool "PCF85263 RTC Driver"
default n
select I2C
select RTC_DATETIME
2015-11-29 19:13:24 +01:00
depends on RTC_EXTERNAL
---help---
Enables support for the NXP PCF85263 I2C RTC timer.
if RTC_PCF85263
config PCF85263_I2C_FREQUENCY
int "PCF85263 I2C frequency"
default 400000
range 1 400000
endif # RTC_PCF85263
config RTC_MCP794XX
bool "MCP794XX RTC Driver"
default n
select I2C
select RTC_DATETIME
depends on RTC_EXTERNAL
---help---
Enables support for the Microchip MCP794XX I2C RTC timer.
if RTC_MCP794XX
config MCP794XX_I2C_FREQUENCY
int "MCP794XX I2C frequency"
default 400000
range 1 400000
endif # RTC_MCP794XX
This commit brings in the drivers needed to support OpenAMP. These changes were ported from https://github.com/FishsemiCode/nuttx. The current state: Most drivers do now compile but are not yet verfied. This port was effort of a number of people, I rather arbitrarily gave authorship to Guiding Li because he has the largest number of fundamental quashed commits from the Xiamoi repository. Squashed commit of the following: Author: Xiang Xiao <xiaoxiang@pinecone.net> include/nuttx/b2c.h and libx/libc/string: Add non-standard string functions to deal with cases where there are more than 8-bits in a type char. Author: Gregory Nutt <gnutt@nuttx.org> Fix several build issues/missing definitiona needed for OpenAMP build in drivers/. Add OpenAMP code has been reviewed and ran through tools/nxstyle (with all reports accounted for). Author: Xiang Xiao <xiaoxiang@xiaomi.com> tools/: Fix the minor issue in Makefile Author: Gregory Nutt <gnutt@nuttx.org> drivers/rptun/rptun.c: Review for coding standard. Run against tools/nxstyle. tools/LibTargets.mk: Fix some TABs that were turned into spaces by a copy-paste. fs/hostfs: Add configure and build support for hostfs RPC. drivers/timer: Add configure and build support for syslog RTC. drivers/syslog: Add configure and build support for syslog RPC. drivers/serial: Add configure and build support for serial RPC. Kconfig, tools/*.mk. openamp/: Add basic OpenAMP build support. drivers/rptun: Add configure and build support for OpenAMP tunnel drivers. drivers/net: Update Make.defs and Kconfig for OpenSDA support. Remove drivers/clk/clk-rpmsg.c drivers/power/rpmsg_regulator.c. These depend on upstreaming support for a new subsystem based on the clk/regulator is model from Linux. Removed because we want to separate the activities. We will just try to get the basic OpenAMP support in place for now. Remove drivers/misc/misc_rpmsg.c and include/nuttx/misc/misc_rpmsg.h. These are specific to the Xiaomi application. Author: zhuyanlin <zhuyanlin@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed. Author: Jianli Dong <dongjianli@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed. Author: Guiding Li <liguiding@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed.
2019-11-02 18:30:33 +01:00
config RTC_RX8010SJ
bool "RX8010SJ RTC Driver"
default n
select I2C
select RTC_DATETIME
depends on RTC_EXTERNAL
---help---
Enables support for the EPSON RX-8010SJ I2C RTC timer.
if RTC_RX8010SJ
config RX8010SJ_I2C_FREQUENCY
int "RX8010SJ I2C frequency"
default 400000
range 1 400000
endif # RTC_RX8010SJ
This commit brings in the drivers needed to support OpenAMP. These changes were ported from https://github.com/FishsemiCode/nuttx. The current state: Most drivers do now compile but are not yet verfied. This port was effort of a number of people, I rather arbitrarily gave authorship to Guiding Li because he has the largest number of fundamental quashed commits from the Xiamoi repository. Squashed commit of the following: Author: Xiang Xiao <xiaoxiang@pinecone.net> include/nuttx/b2c.h and libx/libc/string: Add non-standard string functions to deal with cases where there are more than 8-bits in a type char. Author: Gregory Nutt <gnutt@nuttx.org> Fix several build issues/missing definitiona needed for OpenAMP build in drivers/. Add OpenAMP code has been reviewed and ran through tools/nxstyle (with all reports accounted for). Author: Xiang Xiao <xiaoxiang@xiaomi.com> tools/: Fix the minor issue in Makefile Author: Gregory Nutt <gnutt@nuttx.org> drivers/rptun/rptun.c: Review for coding standard. Run against tools/nxstyle. tools/LibTargets.mk: Fix some TABs that were turned into spaces by a copy-paste. fs/hostfs: Add configure and build support for hostfs RPC. drivers/timer: Add configure and build support for syslog RTC. drivers/syslog: Add configure and build support for syslog RPC. drivers/serial: Add configure and build support for serial RPC. Kconfig, tools/*.mk. openamp/: Add basic OpenAMP build support. drivers/rptun: Add configure and build support for OpenAMP tunnel drivers. drivers/net: Update Make.defs and Kconfig for OpenSDA support. Remove drivers/clk/clk-rpmsg.c drivers/power/rpmsg_regulator.c. These depend on upstreaming support for a new subsystem based on the clk/regulator is model from Linux. Removed because we want to separate the activities. We will just try to get the basic OpenAMP support in place for now. Remove drivers/misc/misc_rpmsg.c and include/nuttx/misc/misc_rpmsg.h. These are specific to the Xiaomi application. Author: zhuyanlin <zhuyanlin@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed. Author: Jianli Dong <dongjianli@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed. Author: Guiding Li <liguiding@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed.
2019-11-02 18:30:33 +01:00
config RTC_RPMSG
bool "Rpmsg RTC Driver"
default n
depends on RPTUN
This commit brings in the drivers needed to support OpenAMP. These changes were ported from https://github.com/FishsemiCode/nuttx. The current state: Most drivers do now compile but are not yet verfied. This port was effort of a number of people, I rather arbitrarily gave authorship to Guiding Li because he has the largest number of fundamental quashed commits from the Xiamoi repository. Squashed commit of the following: Author: Xiang Xiao <xiaoxiang@pinecone.net> include/nuttx/b2c.h and libx/libc/string: Add non-standard string functions to deal with cases where there are more than 8-bits in a type char. Author: Gregory Nutt <gnutt@nuttx.org> Fix several build issues/missing definitiona needed for OpenAMP build in drivers/. Add OpenAMP code has been reviewed and ran through tools/nxstyle (with all reports accounted for). Author: Xiang Xiao <xiaoxiang@xiaomi.com> tools/: Fix the minor issue in Makefile Author: Gregory Nutt <gnutt@nuttx.org> drivers/rptun/rptun.c: Review for coding standard. Run against tools/nxstyle. tools/LibTargets.mk: Fix some TABs that were turned into spaces by a copy-paste. fs/hostfs: Add configure and build support for hostfs RPC. drivers/timer: Add configure and build support for syslog RTC. drivers/syslog: Add configure and build support for syslog RPC. drivers/serial: Add configure and build support for serial RPC. Kconfig, tools/*.mk. openamp/: Add basic OpenAMP build support. drivers/rptun: Add configure and build support for OpenAMP tunnel drivers. drivers/net: Update Make.defs and Kconfig for OpenSDA support. Remove drivers/clk/clk-rpmsg.c drivers/power/rpmsg_regulator.c. These depend on upstreaming support for a new subsystem based on the clk/regulator is model from Linux. Removed because we want to separate the activities. We will just try to get the basic OpenAMP support in place for now. Remove drivers/misc/misc_rpmsg.c and include/nuttx/misc/misc_rpmsg.h. These are specific to the Xiaomi application. Author: zhuyanlin <zhuyanlin@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed. Author: Jianli Dong <dongjianli@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed. Author: Guiding Li <liguiding@pinecone.net> This commit brings in the OpenAMP OS driver/RPC components from https://github.com/FishsemiCode/nuttx. Initial commit is source files only. Additional changes to Kconfig and Make.defs files still needed.
2019-11-02 18:30:33 +01:00
select ARCH_HAVE_RTC_SUBSECONDS
config RTC_RPMSG_SERVER
bool "The RTC Rpmsg Role"
depends on RPTUN
config RTC_RPMSG_SERVER_NAME
string "The name of RTC Rpmsg Server"
depends on RTC_RPMSG
---help---
The proc name of rtc server. Client requests time from
specified name of remote proc.
endif # RTC
menuconfig WATCHDOG
bool "Watchdog Timer Support"
default n
---help---
This selection enables building of the "upper-half" watchdog timer
driver. See include/nuttx/timers/watchdog.h for further watchdog timer driver
information.
if WATCHDOG
config WATCHDOG_DEVPATH
string "Watchdog Device Path"
default "/dev/watchdog0"
---help---
Please, check how your specific chip or board uses this symbol.
FYI: It's NOT used by the Auto-monitor feature.
menuconfig WATCHDOG_AUTOMONITOR
bool "Auto-monitor"
---help---
The auto-monitor provides an OS-internal mechanism for automatically
start and repeatedly reset the WDTs that were previous selected.
Once the Auto-monitor is enabled, it will reset all
registered watchdog timers. If you start a specific WDT, the auto-monitor
will stop for that WDT and the application should take care of this from
now on.
if WATCHDOG_AUTOMONITOR
choice
prompt "Auto-monitor keepalive by"
default WATCHDOG_AUTOMONITOR_BY_WDOG
config WATCHDOG_AUTOMONITOR_BY_CAPTURE
bool "Capture callback"
---help---
Feed watchdog through watchdog_ops_s::capture callback periodically
config WATCHDOG_AUTOMONITOR_BY_ONESHOT
bool "Oneshot callback"
depends on ONESHOT
---help---
Feed watchdog through oneshot_lowerhalf_s functions periodically
config WATCHDOG_AUTOMONITOR_BY_TIMER
bool "Timer callback"
depends on TIMER
---help---
Feed watchdog through timer_lowerhalf_s functions periodically
config WATCHDOG_AUTOMONITOR_BY_WDOG
bool "Wdog callback"
---help---
Feed watchdog through wdog functions periodically
config WATCHDOG_AUTOMONITOR_BY_WORKER
bool "Worker callback"
depends on SCHED_WORKQUEUE
---help---
Feed watchdog through wqueue functions periodically
config WATCHDOG_AUTOMONITOR_BY_IDLE
bool "Idle callback"
depends on PM
---help---
Feed watchdog before idle through pm_callback_s::notify callback
endchoice
config WATCHDOG_AUTOMONITOR_TIMEOUT
int "Auto-monitor reset timeout(second)"
default 60
if !WATCHDOG_AUTOMONITOR_BY_CAPTURE && !WATCHDOG_AUTOMONITOR_BY_IDLE
config WATCHDOG_AUTOMONITOR_PING_INTERVAL
int "Auto-monitor keep a live interval"
range 0 WATCHDOG_AUTOMONITOR_TIMEOUT
default 0
---help---
If the interval is 0, it will change to (WATCHDOG_AUTOMONITOR_TIMEOUT / 2).
This interval will only be used by auto-monitor in oneshot, timer, wdog or
worker case.
endif # !WATCHDOG_AUTOMONITOR_BY_CAPTURE && !WATCHDOG_AUTOMONITOR_BY_IDLE
endif # WATCHDOG_AUTOMONITOR
endif # WATCHDOG
config TIMERS_CS2100CP
bool "CS2100-CP Fraction-N Clock Multiplier"
depends on I2C
if TIMERS_CS2100CP
config CS2100CP_DEBUG
bool "Enable CS2100-CP Debug Features"
depends on DEBUG_FEATURES
config CS2100CP_REGDEBUG
bool "Enable CS2100-CP Register Debug"
depends on DEBUG_FEATURES
endif # TIMERS_CS2100CP
endmenu # Timer Driver Support