aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/platform_data/exynos_thermal.h
diff options
context:
space:
mode:
authorAmit Daniel Kachhap <amit.kachhap@linaro.org>2012-08-16 07:41:43 -0400
committerZhang Rui <rui.zhang@intel.com>2012-09-24 02:44:38 -0400
commit7e0b55e60659972a563e68fbfdccabf78e25afc7 (patch)
tree220dc4d7ded42a2d3270b4268cbafc9e1177caaa /include/linux/platform_data/exynos_thermal.h
parentf22d9c03ccc9339d02579914d85b2db81a985a8e (diff)
thermal: exynos: register the tmu sensor with the kernel thermal layer
This code added creates a link between temperature sensors, linux thermal framework and cooling devices for samsung exynos platform. This layer monitors the temperature from the sensor and informs the generic thermal layer to take the necessary cooling action. [akpm@linux-foundation.org: fix comment layout] Signed-off-by: Amit Daniel Kachhap <amit.kachhap@linaro.org> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com> Cc: SangWook Ju <sw.ju@samsung.com> Cc: Durgadoss <durgadoss.r@intel.com> Cc: Len Brown <lenb@kernel.org> Cc: Jean Delvare <khali@linux-fr.org> Cc: Kyungmin Park <kmpark@infradead.org> Cc: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Diffstat (limited to 'include/linux/platform_data/exynos_thermal.h')
-rw-r--r--include/linux/platform_data/exynos_thermal.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/platform_data/exynos_thermal.h b/include/linux/platform_data/exynos_thermal.h
index a9e960aaf98..a7bdb2f63b7 100644
--- a/include/linux/platform_data/exynos_thermal.h
+++ b/include/linux/platform_data/exynos_thermal.h
@@ -21,6 +21,7 @@
21 21
22#ifndef _LINUX_EXYNOS_THERMAL_H 22#ifndef _LINUX_EXYNOS_THERMAL_H
23#define _LINUX_EXYNOS_THERMAL_H 23#define _LINUX_EXYNOS_THERMAL_H
24#include <linux/cpu_cooling.h>
24 25
25enum calibration_type { 26enum calibration_type {
26 TYPE_ONE_POINT_TRIMMING, 27 TYPE_ONE_POINT_TRIMMING,
@@ -33,6 +34,22 @@ enum soc_type {
33 SOC_ARCH_EXYNOS, 34 SOC_ARCH_EXYNOS,
34}; 35};
35/** 36/**
37 * struct freq_clip_table
38 * @freq_clip_max: maximum frequency allowed for this cooling state.
39 * @temp_level: Temperature level at which the temperature clipping will
40 * happen.
41 * @mask_val: cpumask of the allowed cpu's where the clipping will take place.
42 *
43 * This structure is required to be filled and passed to the
44 * cpufreq_cooling_unregister function.
45 */
46struct freq_clip_table {
47 unsigned int freq_clip_max;
48 unsigned int temp_level;
49 const struct cpumask *mask_val;
50};
51
52/**
36 * struct exynos_tmu_platform_data 53 * struct exynos_tmu_platform_data
37 * @threshold: basic temperature for generating interrupt 54 * @threshold: basic temperature for generating interrupt
38 * 25 <= threshold <= 125 [unit: degree Celsius] 55 * 25 <= threshold <= 125 [unit: degree Celsius]
@@ -72,6 +89,9 @@ enum soc_type {
72 * @type: determines the type of SOC 89 * @type: determines the type of SOC
73 * @efuse_value: platform defined fuse value 90 * @efuse_value: platform defined fuse value
74 * @cal_type: calibration type for temperature 91 * @cal_type: calibration type for temperature
92 * @freq_clip_table: Table representing frequency reduction percentage.
93 * @freq_tab_count: Count of the above table as frequency reduction may
94 * applicable to only some of the trigger levels.
75 * 95 *
76 * This structure is required for configuration of exynos_tmu driver. 96 * This structure is required for configuration of exynos_tmu driver.
77 */ 97 */
@@ -90,5 +110,7 @@ struct exynos_tmu_platform_data {
90 110
91 enum calibration_type cal_type; 111 enum calibration_type cal_type;
92 enum soc_type type; 112 enum soc_type type;
113 struct freq_clip_table freq_tab[4];
114 unsigned int freq_tab_count;
93}; 115};
94#endif /* _LINUX_EXYNOS_THERMAL_H */ 116#endif /* _LINUX_EXYNOS_THERMAL_H */