Files
OpenCellular/include/temp_sensor.h
Vic Yang 3367d02f1f Add option to adjust delay for indiviual temperature sensor
Perviously we have a 10-second delay for all temperature sensor. This is
not suitable for CPU temperature. Let's change that to have an option to
set the delay length for each temperature sensor. And also shorten the
delay of TMP006 sensor to 7 seconds, that of EC internal temperature to
4 seconds, and that of PECI CPU temperature to 0 second.

Signed-off-by: Vic Yang <victoryang@chromium.org>

BUG=chrome-os-partner:10233
TEST=Check EC issued warning as soon as CPU temperature reached the
threshold.

(cherry picked from commit cf24df7f3ee24eaa5dbeae3b304d11ddada9a914)

Change-Id: Id2cc4a437bde15697afe4020b6153e5d13466759
Reviewed-on: https://gerrit.chromium.org/gerrit/24694
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Tested-by: Vic Yang <victoryang@chromium.org>
Commit-Ready: Vic Yang <victoryang@chromium.org>
2012-06-08 08:57:35 -07:00

56 lines
1.5 KiB
C

/* Copyright (c) 2012 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.
*/
/* Temperature sensor module for Chrome EC */
#ifndef __CROS_EC_TEMP_SENSOR_H
#define __CROS_EC_TEMP_SENSOR_H
#include "common.h"
#include "board.h"
#define TEMP_SENSOR_POWER_NONE 0x0
#define TEMP_SENSOR_POWER_VS 0x1
#define TEMP_SENSOR_POWER_CPU 0x2
/* "enum temp_sensor_id" must be defined for each board in board.h. */
enum temp_sensor_id;
/* Type of temperature sensors. */
enum temp_sensor_type {
/* CPU temperature sensors. */
TEMP_SENSOR_TYPE_CPU = 0,
/* Other on-board temperature sensors. */
TEMP_SENSOR_TYPE_BOARD,
/* Case temperature sensors. */
TEMP_SENSOR_TYPE_CASE,
TEMP_SENSOR_TYPE_COUNT
};
struct temp_sensor_t {
const char* name;
/* Flags indicating power needed by temp sensor. */
int8_t power_flags;
/* Temperature sensor type. */
enum temp_sensor_type type;
/* Read sensor value and return temperature in K. */
int (*read)(int idx);
/* Index among the same kind of sensors. */
int idx;
/* Delay between reading temperature and taking action about it,
* in seconds. */
int action_delay_sec;
};
/* Return the most recently measured temperature for the sensor in K,
* or -1 if error. */
int temp_sensor_read(enum temp_sensor_id id);
/* Return non-zero if sensor is powered. */
int temp_sensor_powered(enum temp_sensor_id id);
#endif /* __CROS_EC_TEMP_SENSOR_H */