summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2013-11-07 08:03:46 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-11-07 23:42:56 +0000
commitf23e68d721eb282619f1dd7b5b3ac4392234e6d4 (patch)
tree0aab4bd5d2134572087477d92aa52c24ca58c220 /common
parentbb9b335e31cda78f4a0e7c3e546ffcc1499c989b (diff)
downloadchrome-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.c45
-rw-r--r--common/build.mk1
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