From 17d4bfbf313b2ea163c2ff67dd89b8b56a56b861 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: svn://svn.code.sf.net/p/nuttx/code/trunk@4941 42af7a65-404d-4744-a932-0658087f49c3 --- configs/stm3210e-eval/pm/defconfig | 1 - configs/stm3210e-eval/src/up_lcd.c | 23 +++++++++++++++++++---- configs/stm3210e-eval/src/up_pm.c | 2 +- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index 5c1d57c842e..d4fb6e8b941 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/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/configs/stm3210e-eval/src/up_lcd.c b/configs/stm3210e-eval/src/up_lcd.c index 784adaa061e..42da4864a8e 100644 --- a/configs/stm3210e-eval/src/up_lcd.c +++ b/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/configs/stm3210e-eval/src/up_pm.c b/configs/stm3210e-eval/src/up_pm.c index dd8a79b1c9a..3aa60bf5a9f 100644 --- a/configs/stm3210e-eval/src/up_pm.c +++ b/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();