Fizz: add CONFIG_LED_COMMON

This is used for factory test with following command

1. ectool command
	ectool led power query
	ectool led power green=100
	ectool led power red=100
	ectool led power amber=100
	ectool led power off
	ectool led power auto

2. console command
	led debug	>> enter debug mode
	led green
	led red
	led amber
	led off
	led debug	>> exit debug mode

BUG=b:65651340
BRANCH=master
TEST=`ectool ...` works good

Change-Id: Icb87e479075d90f509d60121a3e1df0afe66d41f
Signed-off-by: Ryan Zhang <ryan.zhang@quanta.corp-partner.google.com>
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/666418
This commit is contained in:
Ryan Zhang
2017-09-14 11:10:32 +08:00
committed by chrome-bot
parent d8612351ea
commit 207b3b4e5f
2 changed files with 27 additions and 5 deletions

View File

@@ -21,6 +21,7 @@
#define CONFIG_BUTTON_RECOVERY
#define CONFIG_DEDICATED_RECOVERY_BUTTON
#define CONFIG_EMULATED_SYSRQ
#define CONFIG_LED_COMMON
#define CONFIG_KEYBOARD_PROTOCOL_MKBP
#define CONFIG_MKBP_USE_HOST_EVENT
#define CONFIG_CASE_CLOSED_DEBUG_EXTERNAL

View File

@@ -15,7 +15,8 @@
#include "timer.h"
#include "util.h"
static int led_debug;
const enum ec_led_id supported_led_ids[] = {EC_LED_ID_POWER_LED};
const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids);
enum led_color {
LED_OFF = 0,
@@ -114,7 +115,7 @@ void led_task(void *u)
while (1) {
start = get_time().le.lo;
if (!led_debug)
if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
led_set_power();
interval = get_time().le.lo - start;
if (task_frequency_us > interval)
@@ -135,7 +136,8 @@ static void led_init(void)
set_task_frequency(40 * MSEC);
/* From users' perspective, system-on means AP-on */
set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED))
set_color(EC_LED_ID_POWER_LED, LED_OFF, 0);
}
/* After pwm_pin_init() */
DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_DEFAULT);
@@ -148,8 +150,8 @@ static int command_led(int argc, char **argv)
return EC_ERROR_PARAM_COUNT;
if (!strcasecmp(argv[1], "debug")) {
led_debug ^= 1;
ccprintf("led_debug %s\n", led_debug ? "on" : "off");
led_auto_control(id, !led_auto_control_is_enabled(id));
ccprintf("o%s\n", led_auto_control_is_enabled(id) ? "ff" : "n");
} else if (!strcasecmp(argv[1], "off")) {
set_color(id, LED_OFF, 0);
} else if (!strcasecmp(argv[1], "red")) {
@@ -171,3 +173,22 @@ DECLARE_CONSOLE_COMMAND(led, command_led,
"[debug|red|green|amber|off|num]",
"Turn on/off LED. If a number is given, it changes led"
"task frequency (msec).");
void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range)
{
brightness_range[EC_LED_COLOR_RED] = 100;
brightness_range[EC_LED_COLOR_GREEN] = 100;
brightness_range[EC_LED_COLOR_AMBER] = 100;
}
int led_set_brightness(enum ec_led_id id, const uint8_t *brightness)
{
if (brightness[EC_LED_COLOR_RED])
return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]);
else if (brightness[EC_LED_COLOR_GREEN])
return set_color(id, LED_GREEN, brightness[EC_LED_COLOR_GREEN]);
else if (brightness[EC_LED_COLOR_AMBER])
return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]);
else
return set_color(id, LED_OFF, 0);
}