diff options
author | Ben Chen <ben.chen2@quanta.corp-partner.google.com> | 2021-11-01 11:18:47 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-11-03 15:26:29 +0000 |
commit | fd1ac67b8cbaf12b245c4eb0e9544705cb5d3a65 (patch) | |
tree | aa1ee3e9fea9d53d7ec828fc3dcac20dd30474ef | |
parent | 8378d1178ea4384554974aec37eb54547e70e358 (diff) | |
download | chrome-ec-fd1ac67b8cbaf12b245c4eb0e9544705cb5d3a65.tar.gz |
moonbuggy: modify LED pwm output type
Modify moonbuggy LED colors to red and blue.
Also set the PWM configuration to active low.
BUG=b:204504054
BRANCH=cros/main
TEST=factory software PE test is PASS
Change-Id: I9e79b007a8ab376b290ec441ffd3bb33338145e8
Signed-off-by: Ben Chen <ben.chen2@quanta.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3255121
Reviewed-by: Joe Tessler <jrt@chromium.org>
Reviewed-by: Matthew Ziegelbaum <ziegs@chromium.org>
Reviewed-by: Keith Short <keithshort@chromium.org>
Commit-Queue: Joe Tessler <jrt@chromium.org>
-rw-r--r-- | board/moonbuggy/board.c | 8 | ||||
-rw-r--r-- | board/moonbuggy/board.h | 2 | ||||
-rw-r--r-- | board/moonbuggy/led.c | 34 |
3 files changed, 23 insertions, 21 deletions
diff --git a/board/moonbuggy/board.c b/board/moonbuggy/board.c index c69acde7e1..f7a972c329 100644 --- a/board/moonbuggy/board.c +++ b/board/moonbuggy/board.c @@ -123,10 +123,12 @@ const struct pwm_t pwm_channels[] = { .flags = PWM_CONFIG_OPEN_DRAIN, .freq = 25000}, [PWM_CH_LED_RED] = { .channel = 0, - .flags = PWM_CONFIG_DSLEEP, + .flags = PWM_CONFIG_ACTIVE_LOW | + PWM_CONFIG_DSLEEP, .freq = 2000 }, - [PWM_CH_LED_WHITE] = { .channel = 2, - .flags = PWM_CONFIG_DSLEEP, + [PWM_CH_LED_BLUE] = { .channel = 2, + .flags = PWM_CONFIG_ACTIVE_LOW | + PWM_CONFIG_DSLEEP, .freq = 2000 }, }; diff --git a/board/moonbuggy/board.h b/board/moonbuggy/board.h index a42aab0cbf..4ec5233f6f 100644 --- a/board/moonbuggy/board.h +++ b/board/moonbuggy/board.h @@ -147,7 +147,7 @@ enum adc_channel { enum pwm_channel { PWM_CH_FAN, PWM_CH_LED_RED, - PWM_CH_LED_WHITE, + PWM_CH_LED_BLUE, /* Number of PWM channels */ PWM_CH_COUNT }; diff --git a/board/moonbuggy/led.c b/board/moonbuggy/led.c index a9f70d2d40..fc485887f0 100644 --- a/board/moonbuggy/led.c +++ b/board/moonbuggy/led.c @@ -34,7 +34,7 @@ const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); enum led_color { LED_OFF = 0, LED_RED, - LED_WHITE, + LED_BLUE, LED_AMBER, /* Number of colors, not a color itself */ @@ -43,7 +43,7 @@ enum led_color { static int set_color_power(enum led_color color, int duty) { - int white = 0; + int blue = 0; int red = 0; if (duty < 0 || 100 < duty) @@ -52,15 +52,15 @@ static int set_color_power(enum led_color color, int duty) switch (color) { case LED_OFF: break; - case LED_WHITE: - white = 1; + case LED_BLUE: + blue = 1; break; case LED_RED: red = 1; break; case LED_AMBER: red = 1; - white = 1; + blue = 1; break; default: return EC_ERROR_UNKNOWN; @@ -71,10 +71,10 @@ static int set_color_power(enum led_color color, int duty) else pwm_set_duty(PWM_CH_LED_RED, 0); - if (white) - pwm_set_duty(PWM_CH_LED_WHITE, duty); + if (blue) + pwm_set_duty(PWM_CH_LED_BLUE, duty); else - pwm_set_duty(PWM_CH_LED_WHITE, 0); + pwm_set_duty(PWM_CH_LED_BLUE, 0); return EC_SUCCESS; } @@ -142,7 +142,7 @@ static void led_tick(void) static void led_suspend(void) { - CONFIG_TICK(LED_PULSE_TICK_US, LED_WHITE); + CONFIG_TICK(LED_PULSE_TICK_US, LED_BLUE); led_tick(); } DECLARE_DEFERRED(led_suspend); @@ -181,14 +181,14 @@ static void led_resume(void) hook_call_deferred(&led_suspend_data, -1); hook_call_deferred(&led_shutdown_data, -1); if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED)) - set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100); + set_color(EC_LED_ID_POWER_LED, LED_BLUE, 100); } DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT); static void led_init(void) { pwm_enable(PWM_CH_LED_RED, 1); - pwm_enable(PWM_CH_LED_WHITE, 1); + pwm_enable(PWM_CH_LED_BLUE, 1); if (chipset_in_state(CHIPSET_STATE_ON)) led_resume(); @@ -237,8 +237,8 @@ static int command_led(int argc, char **argv) set_color(id, LED_OFF, 0); } else if (!strcasecmp(argv[1], "red")) { set_color(id, LED_RED, 100); - } else if (!strcasecmp(argv[1], "white")) { - set_color(id, LED_WHITE, 100); + } else if (!strcasecmp(argv[1], "blue")) { + set_color(id, LED_BLUE, 100); } else if (!strcasecmp(argv[1], "amber")) { set_color(id, LED_AMBER, 100); } else if (!strcasecmp(argv[1], "alert")) { @@ -251,13 +251,13 @@ static int command_led(int argc, char **argv) return EC_SUCCESS; } DECLARE_CONSOLE_COMMAND(led, command_led, - "[debug|red|white|amber|off|alert|crit]", + "[debug|red|blue|amber|off|alert|crit]", "Turn on/off LED."); 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_WHITE] = 100; + brightness_range[EC_LED_COLOR_BLUE] = 100; brightness_range[EC_LED_COLOR_AMBER] = 100; } @@ -265,8 +265,8 @@ 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_WHITE]) - return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]); + else if (brightness[EC_LED_COLOR_BLUE]) + return set_color(id, LED_BLUE, brightness[EC_LED_COLOR_BLUE]); else if (brightness[EC_LED_COLOR_AMBER]) return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]); else |