diff options
author | Bill Richardson <wfrichar@chromium.org> | 2013-11-07 08:03:46 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2013-11-07 23:42:56 +0000 |
commit | f23e68d721eb282619f1dd7b5b3ac4392234e6d4 (patch) | |
tree | 0aab4bd5d2134572087477d92aa52c24ca58c220 /common | |
parent | bb9b335e31cda78f4a0e7c3e546ffcc1499c989b (diff) | |
download | chrome-ec-f23e68d721eb282619f1dd7b5b3ac4392234e6d4.tar.gz |
Add ALS driver for light sensors connected to EC
This adds the driver and a console command to read an Intersil ISL29305
light sensor connected to the EC.
BUG=chrome-os-partner:23380
BRANCH=samus
TEST=manual
Run the "als" command from the EC console, while pointing the sensor in
various directions. It should give higher numbers when facing a light
source. If you get "Error 1", it means the ALS isn't powered.
Change-Id: I855ed64dab7fc60e29126ab3e97669be24dc6a64
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/176056
Diffstat (limited to 'common')
-rw-r--r-- | common/als.c | 45 | ||||
-rw-r--r-- | common/build.mk | 1 |
2 files changed, 46 insertions, 0 deletions
diff --git a/common/als.c b/common/als.c new file mode 100644 index 0000000000..bb2854132f --- /dev/null +++ b/common/als.c @@ -0,0 +1,45 @@ +/* Copyright (c) 2013 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. + */ + +/* This provides the interface for any Ambient Light Sensors that are connected + * to the EC instead of the AP. + */ + +#include "als.h" +#include "common.h" +#include "console.h" +#include "host_command.h" +#include "util.h" + +int als_read(enum als_id id, int *lux) +{ + return als[id].read(lux); +} + +/*****************************************************************************/ +/* Console commands */ + +static int command_als(int argc, char **argv) +{ + int i, rv, val; + + for (i = 0; i < ALS_COUNT; i++) { + ccprintf("%s: ", als[i].name); + rv = als_read(i, &val); + switch (rv) { + case EC_SUCCESS: + ccprintf("%d lux\n", val); + break; + default: + ccprintf("Error %d\n", rv); + } + } + + return EC_SUCCESS; +} +DECLARE_CONSOLE_COMMAND(als, command_als, + NULL, + "Print ALS values", + NULL); diff --git a/common/build.mk b/common/build.mk index 132fd62783..8cf26fab6e 100644 --- a/common/build.mk +++ b/common/build.mk @@ -10,6 +10,7 @@ common-y=main.o util.o console_output.o uart_buffering.o common-y+=memory_commands.o shared_mem.o system.o hooks.o common-y+=gpio.o version.o printf.o queue.o +common-$(CONFIG_ALS)+=als.o common-$(CONFIG_BACKLIGHT_LID)+=backlight_lid.o # TODO(crosbug.com/p/23821): Why do these include battery_common but # the other batteries don't? Perhaps should use CONFIG_CMD_BATTERY |