diff options
author | Vic Yang <victoryang@chromium.org> | 2012-02-24 10:35:36 -0800 |
---|---|---|
committer | Vic Yang <victoryang@chromium.org> | 2012-02-24 13:09:44 -0800 |
commit | 675cddb258a282a41533d6976c799f42485ddcd2 (patch) | |
tree | 5f67d22fcdebcbeef9f4cb5f333a793107a98fc1 /common/temp_sensor.c | |
parent | c977d241b3aec49fed7ed7344f2ebf6e59885d63 (diff) | |
download | chrome-ec-675cddb258a282a41533d6976c799f42485ddcd2.tar.gz |
Write temperature values to LPC mapped value space.
Add a task to update temperature values in LPC mapped value space every
second. Also modify ectool to read directly from LPC mapped space.
Signed-off-by: Vic Yang <victoryang@chromium.org>
BUG=chrome-os-partner:8065
TEST="ectool temps" gives same result as "temps" from ec console.
Change-Id: Idcdef8d822724f9bd22d7e819c717cba5af5eb77
Diffstat (limited to 'common/temp_sensor.c')
-rw-r--r-- | common/temp_sensor.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/common/temp_sensor.c b/common/temp_sensor.c index cc7dc25599..4d4c54de18 100644 --- a/common/temp_sensor.c +++ b/common/temp_sensor.c @@ -15,6 +15,8 @@ #include "tmp006.h" #include "task.h" #include "chip_temp_sensor.h" +#include "lpc.h" +#include "lpc_commands.h" /* Defined in board_temp_sensor.c. Must be in the same order as * in enum temp_sensor_id. @@ -44,10 +46,27 @@ void poll_all_sensors(void) #endif } + +static void update_lpc_mapped_memory(void) +{ + int i, t; + uint8_t *mapped = lpc_get_memmap_range() + EC_LPC_MEMMAP_TEMP_SENSOR; + + memset(mapped, 0xff, 16); + + for (i = 0; i < TEMP_SENSOR_COUNT && i < 16; ++i) { + t = temp_sensor_read(i); + if (t != -1) + mapped[i] = t - EC_LPC_TEMP_SENSOR_OFFSET; + } +} + + void temp_sensor_task(void) { while (1) { poll_all_sensors(); + update_lpc_mapped_memory(); /* Wait 1s */ task_wait_msg(1000000); } |