summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Thorpe <jeremyt@chromium.org>2013-09-18 14:17:50 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-09-19 02:42:00 +0000
commita7f5224a83ac58b569a0a3c3c95549d38f448171 (patch)
tree4f8004ed60cdcff36235533e410c634ad7641624
parenta95e80dd47474a25a77f0a3507053848c3fa0f36 (diff)
downloadchrome-ec-a7f5224a83ac58b569a0a3c3c95549d38f448171.tar.gz
Turn off backlight power when lid is closed.
Ensure that the backlight is off whenever the lid is closed, independently of whether the AP asserts SUSPEND_L. BUG=None TEST=On Kirby, toggle lid switch closed and see that backlight turns off immediately. BRANCH=None Change-Id: I1516be3b139a8cbb07a8a81229c8143c88118e91 Signed-off-by: Jeremy Thorpe <jeremyt@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/169875 Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--board/kirby/board.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/board/kirby/board.c b/board/kirby/board.c
index 579d371c40..3ee9acfd7a 100644
--- a/board/kirby/board.c
+++ b/board/kirby/board.c
@@ -6,6 +6,7 @@
#include "adc.h"
#include "common.h"
+#include "chipset.h"
#include "extpower.h"
#include "gaia_power.h"
#include "gpio.h"
@@ -140,16 +141,13 @@ const struct i2c_port_t i2c_ports[] = {
};
BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_PORTS_USED);
-static void board_enable_backlight(void)
+static void board_update_backlight(void)
{
- gpio_set_level(GPIO_BST_LED_EN, 1);
+ gpio_set_level(GPIO_BST_LED_EN, chipset_in_state(CHIPSET_STATE_ON) ||
+ gpio_get_level(GPIO_LID_OPEN));
}
-DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_enable_backlight, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_enable_backlight, HOOK_PRIO_DEFAULT);
-
-static void board_disable_backlight(void)
-{
- gpio_set_level(GPIO_BST_LED_EN, 0);
-}
-DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_disable_backlight, HOOK_PRIO_DEFAULT);
-DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_disable_backlight, HOOK_PRIO_DEFAULT);
+DECLARE_HOOK(HOOK_CHIPSET_STARTUP, board_update_backlight, HOOK_PRIO_DEFAULT);
+DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_update_backlight, HOOK_PRIO_DEFAULT);
+DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_update_backlight, HOOK_PRIO_DEFAULT);
+DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_update_backlight, HOOK_PRIO_DEFAULT);
+DECLARE_HOOK(HOOK_LID_CHANGE, board_update_backlight, HOOK_PRIO_DEFAULT);