summaryrefslogtreecommitdiff
path: root/include/lb_common.h
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2014-04-16 16:04:47 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-05-15 05:20:11 +0000
commit53eb009d52fe82409784dfa6f079d45e7a2339b5 (patch)
treee8cb157fdbc7a7c389afb203ad536d8ed2f40aba /include/lb_common.h
parent9d3286301df08d73600d8c36149824755b35980a (diff)
downloadchrome-ec-53eb009d52fe82409784dfa6f079d45e7a2339b5.tar.gz
Put the lightbar IC controls and pattern logic into separate files
This puts the code that talks to the lightbar hardware in one file, and the code that implements the pretty patterns and behavior into another. This will let us make improvements or changes to the patterns without requiring detailed knowledge of the controller chips. BUG=chrome-os-partner:28596 BRANCH=ToT TEST=make buildall -j Refactoring only. There is no new functionality. Change-Id: I4e5fe8943385ddeab26bbd7e66c20e2dccd3dc43 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/199882 Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'include/lb_common.h')
-rw-r--r--include/lb_common.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/lb_common.h b/include/lb_common.h
new file mode 100644
index 0000000000..f2f53aae35
--- /dev/null
+++ b/include/lb_common.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2014 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.
+ */
+
+/* Lightbar IC interface */
+
+#ifndef __CROS_EC_LB_COMMON_H
+#define __CROS_EC_LB_COMMON_H
+
+#include "ec_commands.h"
+
+/* How many (logical) LEDs do we have? */
+#define NUM_LEDS 4
+
+/* Set the color of one LED (or all if the LED number is too large) */
+void lb_set_rgb(unsigned int led, int red, int green, int blue);
+/* Get the current color of one LED. Fails if the LED number is too large. */
+int lb_get_rgb(unsigned int led, uint8_t *red, uint8_t *green, uint8_t *blue);
+/* Set the overall brightness level. */
+void lb_set_brightness(unsigned int newval);
+/* Get the overall brighness level. */
+uint8_t lb_get_brightness(void);
+/* Initialize the IC controller registers to sane values. */
+void lb_init(void);
+/* Disable the LED current off (the IC stays on). */
+void lb_off(void);
+/* Enable the LED current. */
+void lb_on(void);
+/* Instruct the IC to run a built-in sequence of color changes. */
+void lb_start_builtin_cycle(void);
+/* Fill in the response fields for the LIGHTBAR_CMD_DUMP command. */
+void lb_hc_cmd_dump(struct ec_response_lightbar *out);
+/* Write the IC controller register given by the LIGHTBAR_CMD_REG command. */
+void lb_hc_cmd_reg(const struct ec_params_lightbar *in);
+
+#endif /* __CROS_EC_LB_COMMON_H */