diff options
Diffstat (limited to 'nuttx')
38 files changed, 266 insertions, 260 deletions
diff --git a/nuttx/configs/avr32dev1/Kconfig b/nuttx/configs/avr32dev1/Kconfig index 9fe07d799..017aaf512 100644 --- a/nuttx/configs/avr32dev1/Kconfig +++ b/nuttx/configs/avr32dev1/Kconfig @@ -16,5 +16,12 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support interrupts on button presses and releases." + endif diff --git a/nuttx/configs/hymini-stm32v/Kconfig b/nuttx/configs/hymini-stm32v/Kconfig index 2d6b612eb..f6bc7f233 100644 --- a/nuttx/configs/hymini-stm32v/Kconfig +++ b/nuttx/configs/hymini-stm32v/Kconfig @@ -16,4 +16,11 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support EXTI interrupts on button presses and releases." + endif diff --git a/nuttx/configs/olimex-lpc1766stk/Kconfig b/nuttx/configs/olimex-lpc1766stk/Kconfig index b51ab0d9e..659e49e41 100644 --- a/nuttx/configs/olimex-lpc1766stk/Kconfig +++ b/nuttx/configs/olimex-lpc1766stk/Kconfig @@ -16,4 +16,11 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support interrupts on button presses and releases." + endif diff --git a/nuttx/configs/sam3u-ek/Kconfig b/nuttx/configs/sam3u-ek/Kconfig index d39ff246e..79559a3d1 100644 --- a/nuttx/configs/sam3u-ek/Kconfig +++ b/nuttx/configs/sam3u-ek/Kconfig @@ -16,4 +16,11 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support interrupts on button presses and releases." + endif diff --git a/nuttx/configs/stm3210e-eval/Kconfig b/nuttx/configs/stm3210e-eval/Kconfig index 98a45f97a..a40a7548b 100644 --- a/nuttx/configs/stm3210e-eval/Kconfig +++ b/nuttx/configs/stm3210e-eval/Kconfig @@ -18,6 +18,13 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support EXTI interrupts on button presses and releases." + config STM3210E_LCD bool "Select support for the STM3210E-EVAL LCD" default y @@ -105,4 +112,79 @@ config STM32_R61580_DISABLE endif +config PM_BUTTONS + bool "PM Button support" + default n + depends on PM && ARCH_IRQBUTTONS + ---help--- + Enable PM button EXTI interrupts to support PM testing + +config PM_BUTTONS_MIN + int "Minimum button number" + default 0 + depends on PM_BUTTONS + ---help--- + The lowest button code to use for PM testing (see board.h) +config PM_BUTTONS_MAX + int "Maximum button number" + default 7 + depends on PM_BUTTONS + ---help--- + The highest button code to use for PM testing (see board.h) + +config PM_IRQBUTTONS_MIN + int "Minimum interrupting button number" + default 0 + depends on PM_BUTTONS + ---help--- + The lowest interrupting button code to use for PM testing (see board.h) + +config PM_IRQBUTTONS_MAX + int "Maximum interrupting button number" + default 7 + depends on PM_BUTTONS + ---help--- + The highest interrupting button code to use for PM testing (see board.h) + +config PM_BUTTON_ACTIVITY + int "Button PM activity weight" + default 10 + depends on PM_BUTTONS + ---help--- + The activity weight to report to the power management subsystem when a button is pressed. + +config PM_ALARM_SEC + int "PM_STANDBY delay (seconds)" + default 15 + depends on PM && RTC_ALARM + --help--- + Number of seconds to wait in PM_STANDBY before going to PM_STANDBY mode. + +config PM_ALARM_NSEC + int "PM_STANDBY delay (nanoseconds)" + default 0 + depends on PM && RTC_ALARM + --help--- + Number of additional nanoseconds to wait in PM_STANDBY before going to PM_STANDBY mode. + +config PM_SLEEP_WAKEUP + bool "PM_SLEEP wake-up alarm" + default n + depends on PM && RTC_ALARM + --help--- + Wake-up of PM_SLEEP mode after a delay and resume normal operation. + +config PM_SLEEP_WAKEUP_SEC + int "PM_SLEEP delay (seconds)" + default 10 + depends on PM && RTC_ALARM + --help--- + Number of seconds to wait in PM_SLEEP before going to PM_STANDBY mode. + +config PM_SLEEP_WAKEUP_NSEC + int "PM_SLEEP delay (nanoseconds)" + default 0 + depends on PM && RTC_ALARM + --help--- + Number of additional nanoseconds to wait in PM_SLEEP before going to PM_STANDBY mode. diff --git a/nuttx/configs/stm3210e-eval/src/up_pmbuttons.c b/nuttx/configs/stm3210e-eval/src/up_pmbuttons.c index 5892ce626..35a98a00a 100644 --- a/nuttx/configs/stm3210e-eval/src/up_pmbuttons.c +++ b/nuttx/configs/stm3210e-eval/src/up_pmbuttons.c @@ -64,31 +64,6 @@ # error "CONFIG_ARCH_BUTTONS is not defined in the configuration" #endif -#ifndef CONFIG_PM_BUTTONS_NAME0 -# define CONFIG_PM_BUTTONS_NAME0 "BUTTON0" -#endif -#ifndef CONFIG_PM_BUTTONS_NAME1 -# define CONFIG_PM_BUTTONS_NAME1 "BUTTON1" -#endif -#ifndef CONFIG_PM_BUTTONS_NAME2 -# define CONFIG_PM_BUTTONS_NAME2 "BUTTON2" -#endif -#ifndef CONFIG_PM_BUTTONS_NAME3 -# define CONFIG_PM_BUTTONS_NAME3 "BUTTON3" -#endif -#ifndef CONFIG_PM_BUTTONS_NAME4 -# define CONFIG_PM_BUTTONS_NAME4 "BUTTON4" -#endif -#ifndef CONFIG_PM_BUTTONS_NAME5 -# define CONFIG_PM_BUTTONS_NAME5 "BUTTON5" -#endif -#ifndef CONFIG_PM_BUTTONS_NAME6 -# define CONFIG_PM_BUTTONS_NAME6 "BUTTON6" -#endif -#ifndef CONFIG_PM_BUTTONS_NAME7 -# define CONFIG_PM_BUTTONS_NAME7 "BUTTON7" -#endif - #define BUTTON_MIN 0 #define BUTTON_MAX 7 @@ -106,6 +81,10 @@ # error "CONFIG_PM_BUTTONS_MAX > 7" #endif +#ifndef CONFIG_ARCH_IRQBUTTONS +# warning "CONFIG_ARCH_IRQBUTTONS is not defined in the configuration" +#endif + #ifndef CONFIG_PM_IRQBUTTONS_MIN # define CONFIG_PM_IRQBUTTONS_MIN CONFIG_PM_BUTTONS_MIN #endif @@ -143,14 +122,6 @@ * Private Types ****************************************************************************/ -struct button_info_s -{ - FAR const char *name; /* Name for the button */ -#ifdef CONFIG_ARCH_IRQBUTTONS - xcpt_t handler; /* Button interrupt handler */ -#endif -}; - /**************************************************************************** * Private Function Prototypes ****************************************************************************/ @@ -188,72 +159,34 @@ static int button7_handler(int irq, FAR void *context); * Private Data ****************************************************************************/ -/* Button Names */ +/* Button interrupt handlers */ -static const struct button_info_s g_buttoninfo[NUM_PMBUTTONS] = +#ifdef CONFIG_ARCH_IRQBUTTONS +static const xcpt_t g_buttonhandlers[NUM_PMBUTTONS] = { #if MIN_BUTTON < 1 - { - CONFIG_PM_BUTTONS_NAME0, -#ifdef CONFIG_ARCH_IRQBUTTONS - button0_handler -#endif - }, + button0_handler, #endif #if MIN_BUTTON < 2 && MAX_BUTTON > 0 - { - CONFIG_PM_BUTTONS_NAME1, -#ifdef CONFIG_ARCH_IRQBUTTONS - button1_handler -#endif - }, + button1_handler, #endif #if MIN_BUTTON < 3 && MAX_BUTTON > 1 - { - CONFIG_PM_BUTTONS_NAME2, -#ifdef CONFIG_ARCH_IRQBUTTONS - button2_handler -#endif - }, + button2_handler, #endif #if MIN_BUTTON < 4 && MAX_BUTTON > 2 - { - CONFIG_PM_BUTTONS_NAME3, -#ifdef CONFIG_ARCH_IRQBUTTONS - button3_handler -#endif - }, + button3_handler, #endif #if MIN_BUTTON < 5 && MAX_BUTTON > 3 - { - CONFIG_PM_BUTTONS_NAME4, -#ifdef CONFIG_ARCH_IRQBUTTONS - button4_handler -#endif - }, + button4_handler, #endif #if MIN_BUTTON < 6 && MAX_BUTTON > 4 - { - CONFIG_PM_BUTTONS_NAME5, -#ifdef CONFIG_ARCH_IRQBUTTONS - button5_handler -#endif - }, + button5_handler, #endif #if MIN_BUTTON < 7 && MAX_BUTTON > 5 - { - CONFIG_PM_BUTTONS_NAME6, -#ifdef CONFIG_ARCH_IRQBUTTONS - button6_handler -#endif - }, + button6_handler, #endif #if MAX_BUTTON > 6 - { - CONFIG_PM_BUTTONS_NAME7, -#ifdef CONFIG_ARCH_IRQBUTTONS - button7_handler -#endif + button7_handler, } #endif }; @@ -371,7 +304,7 @@ void up_pmbuttons(void) int i; for (i = CONFIG_PM_IRQBUTTONS_MIN; i <= CONFIG_PM_IRQBUTTONS_MAX; i++) { - xcpt_t oldhandler = up_irqbutton(i, g_buttoninfo[BUTTON_INDEX(i)].handler); + xcpt_t oldhandler = up_irqbutton(i, g_buttonhandlers[BUTTON_INDEX(i)]); if (oldhandler != NULL) { diff --git a/nuttx/configs/stm3220g-eval/Kconfig b/nuttx/configs/stm3220g-eval/Kconfig index 05f0cc5ea..e248d2e68 100644 --- a/nuttx/configs/stm3220g-eval/Kconfig +++ b/nuttx/configs/stm3220g-eval/Kconfig @@ -16,6 +16,13 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support EXTI interrupts on button presses and releases." + config STM3220G_LCD bool "Select support for the STM3210E-EVAL LCD" default y diff --git a/nuttx/configs/stm3220g-eval/README.txt b/nuttx/configs/stm3220g-eval/README.txt index 665034254..a064503f1 100644 --- a/nuttx/configs/stm3220g-eval/README.txt +++ b/nuttx/configs/stm3220g-eval/README.txt @@ -573,12 +573,6 @@ STM3220G-EVAL-specific Configuration Options CONFIG_STM32_TIM10 CONFIG_STM32_TIM11 - Timer and I2C devices may need to the following to force power to be applied - unconditionally at power up. (Otherwise, the device is powered when it is - initialized). - - CONFIG_STM32_FORCEPOWER - Timer devices may be used for different purposes. One special purpose is to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn is defined (as above) then the following may also be defined to indicate that diff --git a/nuttx/configs/stm3220g-eval/dhcpd/defconfig b/nuttx/configs/stm3220g-eval/dhcpd/defconfig index 192628a5d..e01d3cf91 100644 --- a/nuttx/configs/stm3220g-eval/dhcpd/defconfig +++ b/nuttx/configs/stm3220g-eval/dhcpd/defconfig @@ -192,11 +192,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F20xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3220g-eval/nettest/defconfig b/nuttx/configs/stm3220g-eval/nettest/defconfig index deee0e789..3be35afa4 100644 --- a/nuttx/configs/stm3220g-eval/nettest/defconfig +++ b/nuttx/configs/stm3220g-eval/nettest/defconfig @@ -192,11 +192,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F20xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3220g-eval/nsh/defconfig b/nuttx/configs/stm3220g-eval/nsh/defconfig index 6513d2ca1..09462fc56 100644 --- a/nuttx/configs/stm3220g-eval/nsh/defconfig +++ b/nuttx/configs/stm3220g-eval/nsh/defconfig @@ -192,11 +192,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F20xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3220g-eval/nsh2/defconfig b/nuttx/configs/stm3220g-eval/nsh2/defconfig index 11233ffb4..8a9dbf07f 100644 --- a/nuttx/configs/stm3220g-eval/nsh2/defconfig +++ b/nuttx/configs/stm3220g-eval/nsh2/defconfig @@ -193,11 +193,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F20xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3220g-eval/nxwm/defconfig b/nuttx/configs/stm3220g-eval/nxwm/defconfig index ba55a2b95..bf5569a9c 100644 --- a/nuttx/configs/stm3220g-eval/nxwm/defconfig +++ b/nuttx/configs/stm3220g-eval/nxwm/defconfig @@ -192,11 +192,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F20xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3220g-eval/ostest/defconfig b/nuttx/configs/stm3220g-eval/ostest/defconfig index 184ca9e52..663efded4 100644 --- a/nuttx/configs/stm3220g-eval/ostest/defconfig +++ b/nuttx/configs/stm3220g-eval/ostest/defconfig @@ -192,11 +192,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F20xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3220g-eval/telnetd/defconfig b/nuttx/configs/stm3220g-eval/telnetd/defconfig index 0a526bd92..f9d588ad1 100644 --- a/nuttx/configs/stm3220g-eval/telnetd/defconfig +++ b/nuttx/configs/stm3220g-eval/telnetd/defconfig @@ -192,11 +192,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F20xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/Kconfig b/nuttx/configs/stm3240g-eval/Kconfig index fbd4f8cbb..af84f9192 100644 --- a/nuttx/configs/stm3240g-eval/Kconfig +++ b/nuttx/configs/stm3240g-eval/Kconfig @@ -16,6 +16,13 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support EXTI interrupts on button presses and releases." + config STM3240G_LCD bool "Select support for the STM3210E-EVAL LCD" default y diff --git a/nuttx/configs/stm3240g-eval/README.txt b/nuttx/configs/stm3240g-eval/README.txt index 6c1617f55..59d12a884 100755 --- a/nuttx/configs/stm3240g-eval/README.txt +++ b/nuttx/configs/stm3240g-eval/README.txt @@ -694,12 +694,6 @@ STM3240G-EVAL-specific Configuration Options CONFIG_STM32_TIM10 CONFIG_STM32_TIM11 - Timer and I2C devices may need to the following to force power to be applied - unconditionally at power up. (Otherwise, the device is powered when it is - initialized). - - CONFIG_STM32_FORCEPOWER - Timer devices may be used for different purposes. One special purpose is to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn is defined (as above) then the following may also be defined to indicate that diff --git a/nuttx/configs/stm3240g-eval/dhcpd/defconfig b/nuttx/configs/stm3240g-eval/dhcpd/defconfig index 90d910c4e..81d132143 100644 --- a/nuttx/configs/stm3240g-eval/dhcpd/defconfig +++ b/nuttx/configs/stm3240g-eval/dhcpd/defconfig @@ -204,11 +204,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/nettest/defconfig b/nuttx/configs/stm3240g-eval/nettest/defconfig index af31d9102..76f39275f 100644 --- a/nuttx/configs/stm3240g-eval/nettest/defconfig +++ b/nuttx/configs/stm3240g-eval/nettest/defconfig @@ -204,11 +204,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/nsh/defconfig b/nuttx/configs/stm3240g-eval/nsh/defconfig index a3e31622b..16c6258f3 100644 --- a/nuttx/configs/stm3240g-eval/nsh/defconfig +++ b/nuttx/configs/stm3240g-eval/nsh/defconfig @@ -204,11 +204,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/nsh2/defconfig b/nuttx/configs/stm3240g-eval/nsh2/defconfig index 5c3d7b540..9a35fd75f 100644 --- a/nuttx/configs/stm3240g-eval/nsh2/defconfig +++ b/nuttx/configs/stm3240g-eval/nsh2/defconfig @@ -205,11 +205,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/nxconsole/defconfig b/nuttx/configs/stm3240g-eval/nxconsole/defconfig index 68bc045fb..57e6a19e5 100644 --- a/nuttx/configs/stm3240g-eval/nxconsole/defconfig +++ b/nuttx/configs/stm3240g-eval/nxconsole/defconfig @@ -204,11 +204,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/nxwm/defconfig b/nuttx/configs/stm3240g-eval/nxwm/defconfig index 04022367b..ff44fa285 100644 --- a/nuttx/configs/stm3240g-eval/nxwm/defconfig +++ b/nuttx/configs/stm3240g-eval/nxwm/defconfig @@ -204,11 +204,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/ostest/defconfig b/nuttx/configs/stm3240g-eval/ostest/defconfig index a10d2369a..98e3aa318 100644 --- a/nuttx/configs/stm3240g-eval/ostest/defconfig +++ b/nuttx/configs/stm3240g-eval/ostest/defconfig @@ -204,11 +204,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM3240xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm3240g-eval/telnetd/defconfig b/nuttx/configs/stm3240g-eval/telnetd/defconfig index befd64264..f75fb4639 100644 --- a/nuttx/configs/stm3240g-eval/telnetd/defconfig +++ b/nuttx/configs/stm3240g-eval/telnetd/defconfig @@ -204,11 +204,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm32f4discovery/Kconfig b/nuttx/configs/stm32f4discovery/Kconfig index 808103f2e..2843352b4 100644 --- a/nuttx/configs/stm32f4discovery/Kconfig +++ b/nuttx/configs/stm32f4discovery/Kconfig @@ -16,4 +16,60 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support EXTI interrupts on button presses and releases." + +config PM_BUTTONS + bool "PM Button support" + default n + depends on PM && ARCH_IRQBUTTONS + ---help--- + Enable PM button EXTI interrupts to support PM testing + +config PM_BUTTON_ACTIVITY + int "Button PM activity weight" + default 10 + depends on PM_BUTTONS + ---help--- + The activity weight to report to the power management subsystem when a button is pressed. + +config PM_ALARM_SEC + int "PM_STANDBY delay (seconds)" + default 15 + depends on PM && RTC_ALARM + --help--- + Number of seconds to wait in PM_STANDBY before going to PM_STANDBY mode. + +config PM_ALARM_NSEC + int "PM_STANDBY delay (nanoseconds)" + default 0 + depends on PM && RTC_ALARM + --help--- + Number of additional nanoseconds to wait in PM_STANDBY before going to PM_STANDBY mode. + +config PM_SLEEP_WAKEUP + bool "PM_SLEEP wake-up alarm" + default n + depends on PM && RTC_ALARM + --help--- + Wake-up of PM_SLEEP mode after a delay and resume normal operation. + +config PM_SLEEP_WAKEUP_SEC + int "PM_SLEEP delay (seconds)" + default 10 + depends on PM && RTC_ALARM + --help--- + Number of seconds to wait in PM_SLEEP before going to PM_STANDBY mode. + +config PM_SLEEP_WAKEUP_NSEC + int "PM_SLEEP delay (nanoseconds)" + default 0 + depends on PM && RTC_ALARM + --help--- + Number of additional nanoseconds to wait in PM_SLEEP before going to PM_STANDBY mode. + endif diff --git a/nuttx/configs/stm32f4discovery/README.txt b/nuttx/configs/stm32f4discovery/README.txt index dddee0817..387a76431 100755 --- a/nuttx/configs/stm32f4discovery/README.txt +++ b/nuttx/configs/stm32f4discovery/README.txt @@ -807,12 +807,6 @@ STM32F4Discovery-specific Configuration Options CONFIG_STM32_TIM10 CONFIG_STM32_TIM11 - Timer and I2C devices may need to the following to force power to be applied - unconditionally at power up. (Otherwise, the device is powered when it is - initialized). - - CONFIG_STM32_FORCEPOWER - Timer devices may be used for different purposes. One special purpose is to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn is defined (as above) then the following may also be defined to indicate that diff --git a/nuttx/configs/stm32f4discovery/nsh/defconfig b/nuttx/configs/stm32f4discovery/nsh/defconfig index 7ef051e0f..2280bbf9a 100644 --- a/nuttx/configs/stm32f4discovery/nsh/defconfig +++ b/nuttx/configs/stm32f4discovery/nsh/defconfig @@ -181,11 +181,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm32f4discovery/nxlines/defconfig b/nuttx/configs/stm32f4discovery/nxlines/defconfig index 12b2919bd..c5515c426 100644 --- a/nuttx/configs/stm32f4discovery/nxlines/defconfig +++ b/nuttx/configs/stm32f4discovery/nxlines/defconfig @@ -181,11 +181,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm32f4discovery/ostest/defconfig b/nuttx/configs/stm32f4discovery/ostest/defconfig index c26bcb52c..a984d26a1 100644 --- a/nuttx/configs/stm32f4discovery/ostest/defconfig +++ b/nuttx/configs/stm32f4discovery/ostest/defconfig @@ -181,11 +181,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F4Discovery specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm32f4discovery/pm/defconfig b/nuttx/configs/stm32f4discovery/pm/defconfig index 94136efb7..dce39ecec 100644 --- a/nuttx/configs/stm32f4discovery/pm/defconfig +++ b/nuttx/configs/stm32f4discovery/pm/defconfig @@ -182,11 +182,6 @@ CONFIG_STM32_TIM10=n CONFIG_STM32_TIM11=n # -# Timer and I2C devices may need to the following to force power to be applied: -# -#CONFIG_STM32_FORCEPOWER=y - -# # STM32F40xxx specific serial device driver settings # # CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the diff --git a/nuttx/configs/stm32f4discovery/src/up_pmbuttons.c b/nuttx/configs/stm32f4discovery/src/up_pmbuttons.c index 619eaa91c..aa72e3da1 100755 --- a/nuttx/configs/stm32f4discovery/src/up_pmbuttons.c +++ b/nuttx/configs/stm32f4discovery/src/up_pmbuttons.c @@ -64,12 +64,8 @@ # error "CONFIG_ARCH_BUTTONS is not defined in the configuration" #endif -#ifndef CONFIG_PM_BUTTONS_NAME0 -# define CONFIG_PM_BUTTONS_NAME0 "BUTTON0" -#endif - -#ifndef CONFIG_PM_IRQBUTTON -# define CONFIG_PM_IRQBUTTON 0 +#ifndef CONFIG_ARCH_IRQBUTTONS +# warning "CONFIG_ARCH_IRQBUTTONS is not defined in the configuration" #endif #ifndef CONFIG_PM_BUTTON_ACTIVITY @@ -80,61 +76,18 @@ * Private Types ****************************************************************************/ -struct button_info_s -{ - FAR const char *name; /* Name for the button */ -#ifdef CONFIG_ARCH_IRQBUTTONS - xcpt_t handler; /* Button interrupt handler */ -#endif -}; - /**************************************************************************** * Private Function Prototypes ****************************************************************************/ #ifdef CONFIG_ARCH_IRQBUTTONS -static void button_handler(int id, int irq); - -#if MIN_BUTTON < 1 -static int button0_handler(int irq, FAR void *context); -#endif -#if MIN_BUTTON < 2 && MAX_BUTTON > 0 -static int button1_handler(int irq, FAR void *context); -#endif -#if MIN_BUTTON < 3 && MAX_BUTTON > 1 -static int button2_handler(int irq, FAR void *context); -#endif -#if MIN_BUTTON < 4 && MAX_BUTTON > 2 -static int button3_handler(int irq, FAR void *context); -#endif -#if MIN_BUTTON < 5 && MAX_BUTTON > 3 -static int button4_handler(int irq, FAR void *context); -#endif -#if MIN_BUTTON < 6 && MAX_BUTTON > 4 -static int button5_handler(int irq, FAR void *context); -#endif -#if MIN_BUTTON < 7 && MAX_BUTTON > 5 -static int button6_handler(int irq, FAR void *context); -#endif -#if MAX_BUTTON > 6 -static int button7_handler(int irq, FAR void *context); -#endif +static int button_handler(int irq, FAR void *context); #endif /* CONFIG_ARCH_IRQBUTTONS */ /**************************************************************************** * Private Data ****************************************************************************/ -/* Button Names */ - -static const struct button_info_s g_buttoninfo = -{ - CONFIG_PM_BUTTONS_NAME0, -#ifdef CONFIG_ARCH_IRQBUTTONS - button0_handler, -#endif -}; - /**************************************************************************** * Private Functions ****************************************************************************/ @@ -148,7 +101,7 @@ static const struct button_info_s g_buttoninfo = ****************************************************************************/ #ifdef CONFIG_ARCH_IRQBUTTONS -static void button_handler(int id, int irq) +static int button_handler(int irq, FAR void *context) { /* At this point the MCU should have already awakened. The state * change will be handled in the IDLE loop when the system is re-awakened @@ -158,14 +111,8 @@ static void button_handler(int id, int irq) */ pm_activity(CONFIG_PM_BUTTON_ACTIVITY); -} - -static int button0_handler(int irq, FAR void *context) -{ - button_handler(0, irq); return OK; } - #endif /* CONFIG_ARCH_IRQBUTTONS */ /**************************************************************************** @@ -188,7 +135,7 @@ void up_pmbuttons(void) up_buttoninit(); #ifdef CONFIG_ARCH_IRQBUTTONS - xcpt_t oldhandler = up_irqbutton(0, g_buttoninfo.handler); + xcpt_t oldhandler = up_irqbutton(0, button_handler); if (oldhandler != NULL) { diff --git a/nuttx/configs/sure-pic32mx/Kconfig b/nuttx/configs/sure-pic32mx/Kconfig index 1154ca34c..fd2a5e259 100644 --- a/nuttx/configs/sure-pic32mx/Kconfig +++ b/nuttx/configs/sure-pic32mx/Kconfig @@ -16,4 +16,11 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support interrupts on button presses and releases." + endif diff --git a/nuttx/configs/twr-k60n512/Kconfig b/nuttx/configs/twr-k60n512/Kconfig index 549e250bd..e0a0ce575 100644 --- a/nuttx/configs/twr-k60n512/Kconfig +++ b/nuttx/configs/twr-k60n512/Kconfig @@ -16,4 +16,11 @@ config ARCH_BUTTONS ---help--- "Support interfaces to use buttons provided by the board." +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support interrupts on button presses and releases." + endif diff --git a/nuttx/configs/ubw32/Kconfig b/nuttx/configs/ubw32/Kconfig index ae2bf3130..c0213392c 100644 --- a/nuttx/configs/ubw32/Kconfig +++ b/nuttx/configs/ubw32/Kconfig @@ -2,3 +2,25 @@ # For a description of the syntax of this configuration file, # see misc/tools/kconfig-language.txt. # + +if ARCH_BOARD_UBW32 +config ARCH_LEDS + bool "NuttX LED support" + default n + ---help--- + "Support control of board LEDs by NuttX to indicate system state" + +config ARCH_BUTTONS + bool "Button support" + default n + ---help--- + "Support interfaces to use buttons provided by the board." + +config ARCH_IRQBUTTONS + bool "Button interrupt support" + default n + depends on ARCH_BUTTONS + ---help--- + "Support interrupts on button presses and releases." + +endif diff --git a/nuttx/drivers/Kconfig b/nuttx/drivers/Kconfig index abbe2d213..17f471bee 100644 --- a/nuttx/drivers/Kconfig +++ b/nuttx/drivers/Kconfig @@ -208,6 +208,7 @@ menuconfig ANALOG This includes drivers for Analog to Digital Conversion (ADC) as well as drivers for Digital to Analog Conversion (DAC). See include/nuttx/analog/*.h for registration information. + if ANALOG source drivers/analog/Kconfig endif @@ -220,6 +221,7 @@ config BCH a character driver. This is the complementary conversion as that performed by loop.c. See include/nuttx/fs/fs.h for registration information. + if BCH source drivers/bch/Kconfig endif @@ -231,6 +233,7 @@ menuconfig INPUT This directory holds implementations of input device drivers. This includes such things as touchscreen and keypad drivers. See include/nuttx/input/*.h for registration information. + if INPUT source drivers/input/Kconfig endif @@ -242,6 +245,7 @@ menuconfig LCD ---help--- Drivers for parallel and serial LCD and OLED type devices. These drivers support interfaces as defined in include/nuttx/lcd/lcd.h + if LCD source drivers/lcd/Kconfig endif @@ -270,6 +274,7 @@ menuconfig MTD confused with the "real" MTD developed at infradead.org. This logic is unrelated; I just used the name MTD because I am not aware of any other common way to refer to this class of devices). + if MTD source drivers/mtd/Kconfig endif @@ -279,6 +284,7 @@ menuconfig NETDEVICES default n ---help--- Network interface drivers. See also include/nuttx/net/net.h + if NETDEVICES source drivers/net/Kconfig endif @@ -289,11 +295,12 @@ menuconfig PIPES ---help--- FIFO and named pipe drivers. Standard interfaces are declared in include/unistd.h + if PIPES source drivers/pipes/Kconfig endif -menuconfig POWER +config PM bool "Power management (PM) driver interfaces" default n ---help--- @@ -301,6 +308,13 @@ menuconfig POWER to manage power usage of a platform by monitoring driver activity and by placing drivers into reduce power usage modes when the drivers are not active. + +menuconfig POWER + bool "Power management device support" + default n + ---help--- + Enable building of power-related devices (battery monitors, chargers, etc). + if POWER source drivers/power/Kconfig endif @@ -310,6 +324,7 @@ menuconfig SENSORS default n ---help--- Drivers for various sensors + if SENSORS source drivers/sensors/Kconfig endif @@ -326,6 +341,7 @@ menuconfig SERCOMM_CONSOLE configuration file. If you attempt to build this driver without osmocom-bb, you will get compilation errors because of header files that are needed from the osmocom-bb. + if SERCOMM source drivers/sercomm/Kconfig endif @@ -337,6 +353,7 @@ menuconfig SERIAL Front-end character drivers for chip-specific UARTs. This provide some TTY-like functionality and are commonly used (but not required for) the NuttX system console. See also include/nuttx/serial/serial.h + if SERIAL source drivers/serial/Kconfig endif @@ -346,6 +363,7 @@ menuconfig USBDEV default n ---help--- USB device drivers. See also include/nuttx/usb/usbdev.h + if USBDEV source drivers/usbdev/Kconfig endif @@ -355,6 +373,7 @@ menuconfig USBHOST default n ---help--- USB host drivers. See also include/nuttx/usb/usbhost.h + if USBHOST source drivers/usbhost/Kconfig endif @@ -364,6 +383,7 @@ menuconfig WIRELESS default n ---help--- Drivers for various wireless devices. + if WIRELESS source drivers/wireless/Kconfig endif diff --git a/nuttx/drivers/power/Kconfig b/nuttx/drivers/power/Kconfig index b0774fdf6..ac76331b6 100644 --- a/nuttx/drivers/power/Kconfig +++ b/nuttx/drivers/power/Kconfig @@ -21,4 +21,3 @@ config MAX1704X config I2C_MAX1704X bool default y if MAX1704X - diff --git a/nuttx/include/cxx/cstring b/nuttx/include/cxx/cstring index 156e01856..84d98277d 100644 --- a/nuttx/include/cxx/cstring +++ b/nuttx/include/cxx/cstring @@ -1,7 +1,7 @@ //*************************************************************************** // include/cxx/cstring // -// Copyright (C) 2009 Gregory Nutt. All rights reserved. +// Copyright (C) 2009-2012 Gregory Nutt. All rights reserved. // Author: Gregory Nutt <gnutt@nuttx.org> // // Redistribution and use in source and binary forms, with or without @@ -50,7 +50,7 @@ namespace std { using ::size_t; - using ::strchr; + using ::strdup; using ::strndup; using ::strerror; @@ -70,12 +70,16 @@ namespace std using ::strspn; using ::strcspn; using ::strstr; + using ::strcasestr; using ::strtok; using ::strtok_r; - using ::memset; - using ::memcpy; + + using ::memchr; + using ::memccpy; using ::memcmp; + using ::memcpy; using ::memmove; + using ::memset; } #endif // __INCLUDE_CXX_CSTRING |