summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvanillan wang <bolan.wang@bitland.com.cn>2016-11-02 09:12:13 -0400
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2016-11-02 17:09:54 +0000
commit13c246df6cd8ed7187ca1ec29e6472311726c6af (patch)
treec2bb03cbf6cdba69282affef3b2545520223c657
parent6001b1942e0b90b2115d728d9da1e38ac77833b8 (diff)
downloadchrome-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.c32
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);