From 1faee63c00cf63807dea0681a8ee48104e0765f5 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 14 Jul 2012 19:38:14 +0000 Subject: [PATCH] PM update git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4941 7fd9a85b-ad96-42d3-883c-3090e2eb8679 --- nuttx/ChangeLog | 3 +++ nuttx/configs/stm3210e-eval/pm/defconfig | 1 - nuttx/configs/stm3210e-eval/src/up_lcd.c | 23 +++++++++++++++++++---- nuttx/configs/stm3210e-eval/src/up_pm.c | 2 +- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 0eb1ede420..dc8c6bcc50 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -2981,6 +2981,9 @@ * configs/lpc4330-xplorer/up_nsh.c: Add support for a basic SPIFI block driver for use by NSH. Does not work! Crashes on first SPIFI write. + * configs/lpc4330-xplorer/*/defconfig: Calibrate delay loops (this is + based on the current "slow" 72MHz M4 clock and will need to be + re-calibrated when this is increased). * configs/stm3220g-eval/include/board.h and configs/stm3240g-eval/include/board.h: The SDIOCLK frequency in the F2 and F4 derives for PLL48CLK and not HCLK so that the SDIOCLK input frequency should always be 48MHz. diff --git a/nuttx/configs/stm3210e-eval/pm/defconfig b/nuttx/configs/stm3210e-eval/pm/defconfig index 5c1d57c842..d4fb6e8b94 100644 --- a/nuttx/configs/stm3210e-eval/pm/defconfig +++ b/nuttx/configs/stm3210e-eval/pm/defconfig @@ -488,7 +488,6 @@ CONFIG_PM_BUTTONS_NAME4="DOWN" CONFIG_PM_BUTTONS_NAME5="LEFT" CONFIG_PM_BUTTONS_NAME6="RIGHT" CONFIG_PM_BUTTONS_NAME7="UP" -CONFIG_PM_BUTTONS=1 # # Settings for NXFLAT diff --git a/nuttx/configs/stm3210e-eval/src/up_lcd.c b/nuttx/configs/stm3210e-eval/src/up_lcd.c index 784adaa061..42da4864a8 100644 --- a/nuttx/configs/stm3210e-eval/src/up_lcd.c +++ b/nuttx/configs/stm3210e-eval/src/up_lcd.c @@ -1169,24 +1169,39 @@ static void stm3210e_pm_notify(struct pm_callback_s *cb , enum pm_state_e pmstat { duty--; } - putreg16((uint16_t)duty, STM32_TIM1_CCR1); + + putreg16((uint16_t)duty, STM32_TIM1_CCR1); #endif } break; case(PM_IDLE): { - /* Entering IDLE mode - Turn display off */ + /* Entering IDLE mode - Reduce LCD light */ #ifdef CONFIG_LCD_PWM - putreg16(0, STM32_TIM1_CCR1); + frac = (g_lcddev.power << 16) / CONFIG_LCD_MAXPOWER; + duty = (g_lcddev.reload * frac) >> 16; + if (duty > 0) + { + duty--; + } + + /* Reduce the LCD light to 50% of the MAXPOWER */ + + duty >>= 1; + putreg16((uint16_t)duty, STM32_TIM1_CCR1); #endif } break; case(PM_STANDBY): { - /* Entering STANDBY mode - Logic for PM_STANDBY goes here */ + /* Entering STANDBY mode - Turn display off */ + +#ifdef CONFIG_LCD_PWM + putreg16(0, STM32_TIM1_CCR1); +#endif } break; diff --git a/nuttx/configs/stm3210e-eval/src/up_pm.c b/nuttx/configs/stm3210e-eval/src/up_pm.c index dd8a79b1c9..3aa60bf5a9 100644 --- a/nuttx/configs/stm3210e-eval/src/up_pm.c +++ b/nuttx/configs/stm3210e-eval/src/up_pm.c @@ -93,7 +93,7 @@ void up_pminitialize(void) pm_initialize(); -#ifdef CONFIG_PM_BUTTONS +#if defined(CONFIG_IDLE_CUSTOM) && defined(CONFIG_PM_BUTTONS) /* Initialize the buttons to wake up the system from low power modes */ up_pmbuttons();