diff options
Diffstat (limited to 'include/lb_common.h')
-rw-r--r-- | include/lb_common.h | 38 |
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 */ |