summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorryan.zhang <ryan.zhang@quanta.corp-partner.google.com>2018-11-15 11:14:12 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-11-27 19:14:03 -0800
commitc92a973c55a3030b9a781994b6bf0c2d2a1630c7 (patch)
treee049b683f48eb431d57a9ef2b659ad2930482dc9
parentda44489b829098c579541081fc282dec47b6cab0 (diff)
downloadchrome-ec-c92a973c55a3030b9a781994b6bf0c2d2a1630c7.tar.gz
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 <ryan.zhang@quanta.corp-partner.google.com> Change-Id: Ib782397082f2efc799422db8bf0e2d637db1b32f Reviewed-on: https://chromium-review.googlesource.com/1345550 Commit-Ready: Edward Hill <ecgh@chromium.org> Tested-by: Edward Hill <ecgh@chromium.org> Reviewed-by: Edward Hill <ecgh@chromium.org>
-rw-r--r--board/aleena/gpio.inc4
-rw-r--r--board/aleena/led.c42
2 files changed, 38 insertions, 8 deletions
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;
}
}