Files
OpenCellular/include/thermal.h
Vic Yang 94ef5f3ab3 Increase fan speed control to 5 steps.
Factor out fan speed control for easier adjusting fan speed stepping.
Also increase number of fan speed steps from 2 to 5.

Signed-off-by: Vic Yang <victoryang@google.com>

BUG=chrome-os-partner:8466
TEST=Manual test.

Change-Id: I0ff601c0a4f2ed2a4867bdc6e550eb2827404754
2012-04-05 11:30:16 +08:00

59 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 "temp_sensor.h"
#include "util.h"
#define THERMAL_CONFIG_NO_FLAG 0x0
#define THERMAL_CONFIG_WARNING_ON_FAIL 0x1
/* Number of steps for fan speed control. Speed of each step defined
* in thermal.c */
#define THERMAL_FAN_STEPS 5
/* 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 {
/* Issue overheating warning */
THRESHOLD_WARNING = 0,
/* 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 + THERMAL_FAN_STEPS];
};
/* Set the threshold temperature value. Return -1 on error. */
int thermal_set_threshold(enum temp_sensor_type type, int threshold_id, int value);
/* Get the threshold temperature value. Return -1 on error. */
int thermal_get_threshold(enum temp_sensor_type type, 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 */