aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/exynos_thermal.h
blob: de7195b3a18fd08ba14d51d27459712ea4991119 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* linux/include/linux/exynos_thermal.h
 *
 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
*/

#ifndef THERMAL_INTERFACE_H
#define THERMAL_INTERFACE_H
/* CPU Zone information */

#define SENSOR_NAME_LEN	16

#define PANIC_ZONE      4
#define WARN_ZONE       3
#define MONITOR_ZONE    2
#define SAFE_ZONE       1
#define NO_ACTION       0

/**
 * struct exynos4_tmu_platform_data
 * @name: name of the temperature sensor
 * @read_temperature: A function pointer to read temperature info
 * @private_data: Temperature sensor private data
 * @sensor_data: Sensor specific information like trigger temperature, level
 */
struct thermal_sensor_conf {
	char	name[SENSOR_NAME_LEN];
	int	(*read_temperature)(void *data);
	void	*private_data;
	void	*sensor_data;
};

/**
 * exynos4_register_thermal: Register to the exynos thermal interface.
 * @sensor_conf:   Structure containing temperature sensor information
 *
 * returns zero on success, else negative errno.
 */
int exynos4_register_thermal(struct thermal_sensor_conf *sensor_conf);

/**
 * exynos4_unregister_thermal: Un-register from the exynos thermal interface.
 *
 * return not applicable.
 */
void exynos4_unregister_thermal(void);

/**
 * exynos4_report_trigger: Report any trigger level crossed in the
 *	temperature sensor. This may be useful to take any cooling action.
 *
 * return not applicable.
 */
extern void exynos4_report_trigger(void);
#endif