diff options
author | Daniel Gonzalez <daniel.d.gonzalez@intel.com> | 2019-02-25 11:16:33 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-05-21 14:20:33 -0700 |
commit | 626c64717ccac1351dd5cd614341238b3ec8ab1b (patch) | |
tree | e60e2609376a9ae5f493f9b5eb2000041abc6f8f /baseboard/intelrvp/led_states.h | |
parent | 35048bb784c24f8f4d88e6664cdd4453677f8cb9 (diff) | |
download | chrome-ec-626c64717ccac1351dd5cd614341238b3ec8ab1b.tar.gz |
Intelrvp: Add baseboard for Intel RVPs
Intel-RVP supports Chrome EC via an Add In Card called as MECC
(Modular Embedded Controller Card). MECC has a standard spec
which defines pin routing and purpose of these pins. These MECC
pins are same across all the platforms hence we can have a baseboard
for Intel-RVPs and reuse the code for RVP board specific codes.
Chrome MECC spec is standardized for Icelake and successor RVPs hence
this baseboard code is applicable to Icelake and its successors only.
BUG=b:132061907
TEST=Using this baseboard implemented board code for ICLRVP, and
it can boot all the way to Chrome OS.
BRANCH=none
Change-Id: I4de891d4720e8cad83888caf9635f61f2ca11b8b
Signed-off-by: Daniel Gonzalez <daniel.d.gonzalez@intel.com>
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/1594171
Commit-Ready: Jett Rink <jettrink@chromium.org>
Commit-Ready: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Tested-by: Vijay P Hiremath <vijay.p.hiremath@intel.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'baseboard/intelrvp/led_states.h')
-rw-r--r-- | baseboard/intelrvp/led_states.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/baseboard/intelrvp/led_states.h b/baseboard/intelrvp/led_states.h new file mode 100644 index 0000000000..907ff5c8b8 --- /dev/null +++ b/baseboard/intelrvp/led_states.h @@ -0,0 +1,90 @@ +/* Copyright 2019 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Common functions for stateful LEDs (charger and power) + */ + +#ifndef __CROS_EC_BASEBOARD_LED_H +#define __CROS_EC_BASEBOARD_LED_H + +#include "ec_commands.h" + +#define LED_INDEFINITE UINT8_MAX +#define LED_ONE_SEC (1000 / HOOK_TICK_INTERVAL_MS) +#define LED_OFF EC_LED_COLOR_COUNT + +/* + * All LED states should have one phase defined, + * and an additional phase can be defined for blinking + */ +enum led_phase { + LED_PHASE_0, + LED_PHASE_1, + LED_NUM_PHASES +}; + +/* + * STATE_CHARGING_LVL_1 is when 0 <= charge_percentage < led_charge_level_1 + * + * STATE_CHARGING_LVL_2 is when led_charge_level_1 <= + * charge_percentage < led_charge_level_2 + * + * STATE_CHARGING_FULL_CHARGE is when led_charge_level_2 <= + * charge_percentage < 100 + */ +enum led_states { + STATE_CHARGING_LVL_1, + STATE_CHARGING_LVL_2, + STATE_CHARGING_FULL_CHARGE, + STATE_DISCHARGE_S0, + STATE_DISCHARGE_S0_BAT_LOW, + STATE_DISCHARGE_S3, + STATE_DISCHARGE_S5, + STATE_BATTERY_ERROR, + STATE_FACTORY_TEST, + LED_NUM_STATES +}; + +struct led_descriptor { + enum ec_led_colors color; + uint8_t time; +}; + + +/* Charging LED state table - defined in board's led.c */ +extern struct led_descriptor + led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES]; + +/* Charging LED state level 1 - defined in board's led.c */ +extern const int led_charge_lvl_1; + +/* Charging LED state level 2 - defined in board's led.c */ +extern const int led_charge_lvl_2; + +enum pwr_led_states { + PWR_LED_STATE_ON, + PWR_LED_STATE_SUSPEND_AC, + PWR_LED_STATE_SUSPEND_NO_AC, + PWR_LED_STATE_OFF, + PWR_LED_NUM_STATES +}; + +/* Power LED state table - defined in board's led.c */ +extern const struct led_descriptor + led_pwr_state_table[PWR_LED_NUM_STATES][LED_NUM_PHASES]; + +/** + * Set battery LED color - defined in board's led.c + * + * @param color Color to set on battery LED + * + */ +void led_set_color_battery(enum ec_led_colors color); + +/** + * Set power LED color - defined in board's led.c + */ +void led_set_color_power(enum ec_led_colors color); + +#endif /* __CROS_EC_BASEBOARD_LED_H */ |