diff options
Diffstat (limited to 'common/als.c')
-rw-r--r-- | common/als.c | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/common/als.c b/common/als.c deleted file mode 100644 index 2e9c7ba96c..0000000000 --- a/common/als.c +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright 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 "chipset.h" -#include "common.h" -#include "console.h" -#include "hooks.h" -#include "host_command.h" -#include "system.h" -#include "task.h" -#include "timer.h" -#include "util.h" - -#define CPUTS(outstr) cputs(CC_ALS, outstr) -#define CPRINTS(format, args...) cprints(CC_ALS, format, ## args) -#define CPRINTF(format, args...) cprintf(CC_ALS, format, ## args) - - -#define ALS_POLL_PERIOD SECOND - -static int task_timeout = -1; - -int als_read(enum als_id id, int *lux) -{ - int af = als[id].attenuation_factor; - return als[id].read(lux, af); -} - -void als_task(void *u) -{ - int i, val; - uint16_t *mapped = (uint16_t *)host_get_memmap(EC_MEMMAP_ALS); - uint16_t als_data; - - while (1) { - task_wait_event(task_timeout); - - /* If task was disabled while waiting do not read from ALS */ - if (task_timeout < 0) - continue; - - for (i = 0; i < EC_ALS_ENTRIES && i < ALS_COUNT; i++) { - als_data = als_read(i, &val) == EC_SUCCESS ? val : 0; - mapped[i] = als_data; - } - } -} - -static void als_task_enable(void) -{ - int fail_count = 0; - int err; - int i; - - for (i = 0; i < EC_ALS_ENTRIES && i < ALS_COUNT; i++) { - err = als[i].init(); - if (err) { - fail_count++; - CPRINTF("%s ALS sensor failed to initialize, err=%d\n", - als[i].name, err); - } - } - - /* - * If all the ALS filed to initialize, disable the ALS task. - */ - if (fail_count == ALS_COUNT) - task_timeout = -1; - else - task_timeout = ALS_POLL_PERIOD; - - task_wake(TASK_ID_ALS); -} - -static void als_task_disable(void) -{ - task_timeout = -1; -} - -static void als_task_init(void) -{ - /* - * Enable ALS task in S0 only and may need to re-enable - * when sysjumped. - */ - if (system_jumped_late() && - chipset_in_state(CHIPSET_STATE_ON)) - als_task_enable(); -} - -DECLARE_HOOK(HOOK_CHIPSET_RESUME, als_task_enable, HOOK_PRIO_ALS_INIT); -DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, als_task_disable, HOOK_PRIO_DEFAULT); -DECLARE_HOOK(HOOK_INIT, als_task_init, HOOK_PRIO_ALS_INIT); - -/*****************************************************************************/ -/* Console commands */ - -#ifdef CONFIG_CMD_ALS -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"); -#endif |