diff options
author | vanillan wang <bolan.wang@bitland.com.cn> | 2016-11-02 09:12:13 -0400 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2016-11-02 17:09:54 +0000 |
commit | 13c246df6cd8ed7187ca1ec29e6472311726c6af (patch) | |
tree | c2bb03cbf6cdba69282affef3b2545520223c657 | |
parent | 6001b1942e0b90b2115d728d9da1e38ac77833b8 (diff) | |
download | chrome-ec-13c246df6cd8ed7187ca1ec29e6472311726c6af.tar.gz |
pbody: add power led support for host command control
BUG=chrome-os-partner:59264
BRANCH=firmware-glados-7820.B
TEST=build and burn on pbody
ectool led power off
ectool led power white
ectool led power auto
Signed-off-by: bolan.wang@bitland.com.cn
Change-Id: Ib8a6f247427d98a9ee13b5a5037421716d00a7f4
Reviewed-on: https://chromium-review.googlesource.com/406817
Reviewed-by: Shawn N <shawnn@chromium.org>
Commit-Queue: wang vanillan <bolan.wang@bitland.com.cn>
Tested-by: wang vanillan <bolan.wang@bitland.com.cn>
-rw-r--r-- | board/pbody/led.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/board/pbody/led.c b/board/pbody/led.c index 00aea03af6..ac7c45de24 100644 --- a/board/pbody/led.c +++ b/board/pbody/led.c @@ -37,6 +37,7 @@ enum led_color { LED_RED, LED_AMBER, LED_GREEN, + LED_WHITE, LED_COLOR_COUNT /* Number of colors, not a color itself */ }; @@ -67,8 +68,17 @@ static int bat_led_set_color(enum led_color color) void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) { - brightness_range[EC_LED_COLOR_RED] = 1; - brightness_range[EC_LED_COLOR_GREEN] = 1; + switch (led_id) { + case EC_LED_ID_BATTERY_LED: + brightness_range[EC_LED_COLOR_RED] = 1; + brightness_range[EC_LED_COLOR_GREEN] = 1; + break; + case EC_LED_ID_POWER_LED: + brightness_range[EC_LED_COLOR_WHITE] = 1; + break; + default: + break; + } } static int pbody_led_set_color_battery(enum led_color color) @@ -76,6 +86,20 @@ static int pbody_led_set_color_battery(enum led_color color) return bat_led_set_color(color); } +static int pbody_led_set_color_power(enum led_color color) +{ + switch(color) { + case LED_OFF: + gpio_set_level(GPIO_PWR_LED, 1); + break; + case LED_WHITE: + gpio_set_level(GPIO_PWR_LED, 0); + break; + default: + return EC_ERROR_UNKNOWN; + } + return EC_SUCCESS; +} static int pbody_led_set_color(enum ec_led_id led_id, enum led_color color) { int rv; @@ -85,6 +109,8 @@ static int pbody_led_set_color(enum ec_led_id led_id, enum led_color color) case EC_LED_ID_BATTERY_LED: rv = pbody_led_set_color_battery(color); break; + case EC_LED_ID_POWER_LED: + rv = pbody_led_set_color_power(color); default: return EC_ERROR_UNKNOWN; } @@ -100,6 +126,8 @@ int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness) pbody_led_set_color(led_id, LED_RED); else if (brightness[EC_LED_COLOR_GREEN] != 0) pbody_led_set_color(led_id, LED_GREEN); + else if (brightness[EC_LED_COLOR_WHITE] != 0) + pbody_led_set_color(led_id, LED_WHITE); else pbody_led_set_color(led_id, LED_OFF); |