summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nuttx/configs/avr32dev1/Kconfig7
-rw-r--r--nuttx/configs/hymini-stm32v/Kconfig7
-rw-r--r--nuttx/configs/olimex-lpc1766stk/Kconfig7
-rw-r--r--nuttx/configs/sam3u-ek/Kconfig7
-rw-r--r--nuttx/configs/stm3210e-eval/Kconfig82
-rw-r--r--nuttx/configs/stm3210e-eval/src/up_pmbuttons.c99
-rw-r--r--nuttx/configs/stm3220g-eval/Kconfig7
-rw-r--r--nuttx/configs/stm3220g-eval/README.txt6
-rw-r--r--nuttx/configs/stm3220g-eval/dhcpd/defconfig5
-rw-r--r--nuttx/configs/stm3220g-eval/nettest/defconfig5
-rw-r--r--nuttx/configs/stm3220g-eval/nsh/defconfig5
-rw-r--r--nuttx/configs/stm3220g-eval/nsh2/defconfig5
-rw-r--r--nuttx/configs/stm3220g-eval/nxwm/defconfig5
-rw-r--r--nuttx/configs/stm3220g-eval/ostest/defconfig5
-rw-r--r--nuttx/configs/stm3220g-eval/telnetd/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/Kconfig7
-rwxr-xr-xnuttx/configs/stm3240g-eval/README.txt6
-rw-r--r--nuttx/configs/stm3240g-eval/dhcpd/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/nettest/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/nsh/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/nsh2/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/nxconsole/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/nxwm/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/ostest/defconfig5
-rw-r--r--nuttx/configs/stm3240g-eval/telnetd/defconfig5
-rw-r--r--nuttx/configs/stm32f4discovery/Kconfig56
-rwxr-xr-xnuttx/configs/stm32f4discovery/README.txt6
-rw-r--r--nuttx/configs/stm32f4discovery/nsh/defconfig5
-rw-r--r--nuttx/configs/stm32f4discovery/nxlines/defconfig5
-rw-r--r--nuttx/configs/stm32f4discovery/ostest/defconfig5
-rw-r--r--nuttx/configs/stm32f4discovery/pm/defconfig5
-rwxr-xr-xnuttx/configs/stm32f4discovery/src/up_pmbuttons.c63
-rw-r--r--nuttx/configs/sure-pic32mx/Kconfig7
-rw-r--r--nuttx/configs/twr-k60n512/Kconfig7
-rw-r--r--nuttx/configs/ubw32/Kconfig22
-rw-r--r--nuttx/drivers/Kconfig22
-rw-r--r--nuttx/drivers/power/Kconfig1
-rw-r--r--nuttx/include/cxx/cstring12
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