Files
OpenCellular/include/thermal.h
Vic Yang 747b1f7520 Thermal Engine: LPC commands.
Implement LPC commands and ectool commands to
  1. Set/get threshold temperature values.
  2. Toggle on/off automatic fan speed control.

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

BUG=chrome-os-partner:8251
TEST=Manual test

Change-Id: Ia4282a6fa47a838aed26540f33c1eb7acc92ef0e
2012-02-29 14:42:45 -08:00

60 lines
1.7 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.
*/
/* Thermal engine module for Chrome EC */
#ifndef __CROS_EC_THERMAL_H
#define __CROS_EC_THERMAL_H
#include "util.h"
#define THERMAL_CONFIG_NO_FLAG 0x0
#define THERMAL_CONFIG_WARNING_ON_FAIL 0x1
#define THERMAL_CONFIG_NEED_VS 0x2
#define THERMAL_CONFIG_NEED_CPU 0x4
/* Set a threshold temperature to this value to disable the threshold limit. */
#define THERMAL_THRESHOLD_DISABLE 0
/* This macro is used to disable all threshold for a sensor.
* The value 0 expands to all field in the array 'thresholds'. Change this
* if THERMAL_THRESHOLD_DISABLE is no longer 0.
*/
#define THERMAL_THRESHOLD_DISABLE_ALL 0
enum thermal_threshold {
/* Low fan speed */
THRESHOLD_FAN_LO = 0,
/* High fan speed */
THRESHOLD_FAN_HI,
/* Issue overheating warning */
THRESHOLD_WARNING,
/* Shut down CPU */
THRESHOLD_CPU_DOWN,
/* Shut down everything we can */
THRESHOLD_POWER_DOWN,
THRESHOLD_COUNT
};
/* Configuration for temperature sensor. Temperature value in degree K. */
struct thermal_config_t {
/* Configuration flags. */
int8_t config_flags;
/* Threshold temperatures. */
int16_t thresholds[THRESHOLD_COUNT];
};
/* Set the threshold temperature value. Return -1 on error. */
int thermal_set_threshold(int sensor_id, int threshold_id, int value);
/* Get the threshold temperature value. Return -1 on error. */
int thermal_get_threshold(int sensor_id, int threshold_id);
/* Toggle automatic fan speed control. Return -1 on error. */
int thermal_toggle_auto_fan_ctrl(int auto_fan_on);
#endif /* __CROS_EC_THERMAL_H */