From 829fa65466207f0598128a6c956de99bd6ed10d9 Mon Sep 17 00:00:00 2001 From: "ryan.zhang" Date: Thu, 15 Nov 2018 11:14:12 +0800 Subject: Aleena: switch LED pin switch Blue and Amber GPIO by different board for power consumption. BUG=b:118657568 BRANCH=master TEST=`make board=aleena` Signed-off-by: Ryan Zhang Change-Id: Ib782397082f2efc799422db8bf0e2d637db1b32f Reviewed-on: https://chromium-review.googlesource.com/1345550 Commit-Ready: Edward Hill Tested-by: Edward Hill Reviewed-by: Edward Hill (cherry picked from commit c92a973c55a3030b9a781994b6bf0c2d2a1630c7) Reviewed-on: https://chromium-review.googlesource.com/c/1355642 Commit-Queue: Ryan Zhang Tested-by: Ryan Zhang --- board/aleena/gpio.inc | 4 ++-- board/aleena/led.c | 42 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 38 insertions(+), 8 deletions(-) (limited to 'board/aleena') diff --git a/board/aleena/gpio.inc b/board/aleena/gpio.inc index 90e874f69e..085aa9a1d6 100644 --- a/board/aleena/gpio.inc +++ b/board/aleena/gpio.inc @@ -85,8 +85,8 @@ GPIO(SKU_ID1, PIN(F, 0), GPIO_INPUT) GPIO(SKU_ID2, PIN(4, 1), GPIO_INPUT) /* LED */ -GPIO(BAT_LED_ORANGE_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */ -GPIO(BAT_LED_BLUE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */ +GPIO(BAT_LED_1_L, PIN(C, 3), GPIO_OUT_HIGH) +GPIO(BAT_LED_2_L, PIN(C, 4), GPIO_OUT_HIGH) /* Alternate functions GPIO definitions */ /* Cr50 requires no pull-ups on UART pins. */ diff --git a/board/aleena/led.c b/board/aleena/led.c index 41e0a1ec94..f68f8c7374 100644 --- a/board/aleena/led.c +++ b/board/aleena/led.c @@ -7,6 +7,10 @@ #include "led_onoff_states.h" #include "led_common.h" #include "gpio.h" +#include "hooks.h" +#include "console.h" + +#define CPRINTS(format, args...) cprints(CC_HOOK, format, ## args) #define LED_OFF_LVL 1 #define LED_ON_LVL 0 @@ -15,6 +19,14 @@ const int led_charge_lvl_1; const int led_charge_lvl_2 = 100; +/* + * board_id others 5, 6 + * led1 Amber Blue + * led2 Blue Amber + */ +static enum gpio_signal led_amber = GPIO_BAT_LED_1_L; +static enum gpio_signal led_blue = GPIO_BAT_LED_2_L; + /* Note there is only LED for charge / power */ const struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { @@ -34,20 +46,38 @@ const enum ec_led_id supported_led_ids[] = { EC_LED_ID_BATTERY_LED }; const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); +static void board_led_init(void) +{ + int board_id = + (gpio_get_level(GPIO_BOARD_VERSION3) << 2) | + (gpio_get_level(GPIO_BOARD_VERSION2) << 1) | + (gpio_get_level(GPIO_BOARD_VERSION1) << 0); + + CPRINTS("board_id=%d", board_id); + + if ((board_id == 5) || (board_id == 6)) { + led_amber = GPIO_BAT_LED_2_L; + led_blue = GPIO_BAT_LED_1_L; + CPRINTS("LED: switch LED"); + } + +} +DECLARE_HOOK(HOOK_INIT, board_led_init, HOOK_PRIO_DEFAULT); + void led_set_color_battery(enum ec_led_colors color) { switch (color) { case EC_LED_COLOR_BLUE: - gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_ON_LVL); - gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL); + gpio_set_level(led_blue, LED_ON_LVL); + gpio_set_level(led_amber, LED_OFF_LVL); break; case EC_LED_COLOR_AMBER: - gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL); - gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_ON_LVL); + gpio_set_level(led_blue, LED_OFF_LVL); + gpio_set_level(led_amber, LED_ON_LVL); break; default: /* LED_OFF and other unsupported colors */ - gpio_set_level(GPIO_BAT_LED_BLUE_L, LED_OFF_LVL); - gpio_set_level(GPIO_BAT_LED_ORANGE_L, LED_OFF_LVL); + gpio_set_level(led_blue, LED_OFF_LVL); + gpio_set_level(led_amber, LED_OFF_LVL); break; } } -- cgit v1.2.1