Files
OpenCellular/include/lb_common.h
Bill Richardson e307172bd5 lightbar: Enable tap-for-battery even in G3
This adds an optional lb_power() function that the lightbar TAP sequence can
use to briefly power up the lightbar rails while the AP is shut down.

BUG=chrome-os-partner:29041
BRANCH=ToT
TEST=manual

Shut the AP down, then from the EC console run "lightbar seq tap". The
lightbar should light up and briefly indicate the current power levels. You
can manully force the battery status with "lightbar demo on", then use the
arrow keys to change the state.

Note that the Samus that I tested on had trouble recognizing when it was
charging or not. That's a separate bug.

Change-Id: Iad3f08506d9e049e89d0711af00da2f1aa2337e0
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/213664
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2014-08-22 05:47:54 +00:00

44 lines
1.6 KiB
C

/*
* 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);
/*
* Optional (see config.h). Request that the lightbar power rails be on or off.
* Returns true if a change to the rails was made, false if it wasn't.
*/
int lb_power(int enabled);
#endif /* __CROS_EC_LB_COMMON_H */