Add LIGHTBAR_CMD_VERSION command to detect lightbar features.

Most systems don't have a lightbar. Those that do need a way to detect that
one exists. That's easily done by just sending a EC_CMD_LIGHTBAR_CMD command
to the EC and checking the result. If the response is
EC_RES_INVALID_COMMAND, there isn't a lightbar.

But what .cmd value should we use in struct ec_params_lightbar? Future
lightbar implementations (if any), could remove existing functions or add
new ones, so there isn't a safe choice.

This change adds a LIGHTBAR_CMD_VERSION operation to determine if any new
implementation exists. Future systems should return some useful information
in response to this command. Existing systems will return
EC_RES_INVALID_PARAM, which is enough to distinguish them.

BUG=chromium:239205
BRANCH=none
TEST=manual

make BOARD=link
make BOARD=link runtests

There are no user-visible changes in functionality to anything.

Change-Id: Ibe37f74a4dcbf68dd6bfd1963530aec907e67534
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/167549
Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
Bill Richardson
2013-08-29 12:46:37 -07:00
committed by chrome-internal-fetch
parent cfd007c833
commit 32045efb23
4 changed files with 32 additions and 2 deletions

View File

@@ -926,7 +926,7 @@ struct ec_params_lightbar {
union {
struct {
/* no args */
} dump, off, on, init, get_seq, get_params;
} dump, off, on, init, get_seq, get_params, version;
struct num {
uint8_t num;
@@ -960,6 +960,11 @@ struct ec_response_lightbar {
struct lightbar_params get_params;
struct version {
uint32_t num;
uint32_t flags;
} version;
struct {
/* no return params */
} off, on, init, brightness, seq, reg, rgb, demo, set_params;
@@ -980,6 +985,7 @@ enum lightbar_command {
LIGHTBAR_CMD_DEMO = 9,
LIGHTBAR_CMD_GET_PARAMS = 10,
LIGHTBAR_CMD_SET_PARAMS = 11,
LIGHTBAR_CMD_VERSION = 12,
LIGHTBAR_NUM_CMDS
};