aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/platform_data
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-12 22:27:59 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-12 22:27:59 -0400
commita3920a6efa158b445b8a39080b463b9b29337425 (patch)
tree1726a21d317bea8039c1f0f041b7443af76f6ca1 /include/linux/platform_data
parent18a022de47bc11ee20d7d0f4dd72d42d2cfdc51c (diff)
parentd1d4a81b842db21b144ffd2334ca5eee3eb740f3 (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
Pull ACPI & Thermal updates from Len Brown: "The generic Linux thermal layer is gaining some new capabilities (generic cooling via cpufreq) and some new customers (ARM). Also, an ACPI EC bug fix plus a regression fix." * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (30 commits) tools/power/acpi/acpidump: remove duplicated include from acpidump.c ACPI idle, CPU hotplug: Fix NULL pointer dereference during hotplug cpuidle / ACPI: fix potential NULL pointer dereference ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop ACPI: EC: Make the GPE storm threshold a module parameter thermal: Exynos: Fix NULL pointer dereference in exynos_unregister_thermal() Thermal: Fix bug on cpu_cooling, cooling device's id conflict problem. thermal: exynos: Use devm_* functions ARM: exynos: add thermal sensor driver platform data support thermal: exynos: register the tmu sensor with the kernel thermal layer thermal: exynos5: add exynos5250 thermal sensor driver support hwmon: exynos4: move thermal sensor driver to driver/thermal directory thermal: add generic cpufreq cooling implementation Fix a build error. thermal: Fix potential NULL pointer accesses thermal: add Renesas R-Car thermal sensor support thermal: fix potential out-of-bounds memory access Thermal: Introduce locking for cdev.thermal_instances list. Thermal: Unify the code for both active and passive cooling Thermal: Introduce simple arbitrator for setting device cooling state ...
Diffstat (limited to 'include/linux/platform_data')
-rw-r--r--include/linux/platform_data/exynos_thermal.h (renamed from include/linux/platform_data/exynos4_tmu.h)47
1 files changed, 40 insertions, 7 deletions
diff --git a/include/linux/platform_data/exynos4_tmu.h b/include/linux/platform_data/exynos_thermal.h
index 39e038cca590..a7bdb2f63b73 100644
--- a/include/linux/platform_data/exynos4_tmu.h
+++ b/include/linux/platform_data/exynos_thermal.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * exynos4_tmu.h - Samsung EXYNOS4 TMU (Thermal Management Unit) 2 * exynos_thermal.h - Samsung EXYNOS TMU (Thermal Management Unit)
3 * 3 *
4 * Copyright (C) 2011 Samsung Electronics 4 * Copyright (C) 2011 Samsung Electronics
5 * Donggeun Kim <dg77.kim@samsung.com> 5 * Donggeun Kim <dg77.kim@samsung.com>
@@ -19,8 +19,9 @@
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 20 */
21 21
22#ifndef _LINUX_EXYNOS4_TMU_H 22#ifndef _LINUX_EXYNOS_THERMAL_H
23#define _LINUX_EXYNOS4_TMU_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,
@@ -28,8 +29,28 @@ enum calibration_type {
28 TYPE_NONE, 29 TYPE_NONE,
29}; 30};
30 31
32enum soc_type {
33 SOC_ARCH_EXYNOS4210 = 1,
34 SOC_ARCH_EXYNOS,
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
31/** 52/**
32 * struct exynos4_tmu_platform_data 53 * struct exynos_tmu_platform_data
33 * @threshold: basic temperature for generating interrupt 54 * @threshold: basic temperature for generating interrupt
34 * 25 <= threshold <= 125 [unit: degree Celsius] 55 * 25 <= threshold <= 125 [unit: degree Celsius]
35 * @trigger_levels: array for each interrupt levels 56 * @trigger_levels: array for each interrupt levels
@@ -63,11 +84,18 @@ enum calibration_type {
63 * @reference_voltage: reference voltage of amplifier 84 * @reference_voltage: reference voltage of amplifier
64 * in the positive-TC generator block 85 * in the positive-TC generator block
65 * 0 <= reference_voltage <= 31 86 * 0 <= reference_voltage <= 31
87 * @noise_cancel_mode: noise cancellation mode
88 * 000, 100, 101, 110 and 111 can be different modes
89 * @type: determines the type of SOC
90 * @efuse_value: platform defined fuse value
66 * @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.
67 * 95 *
68 * This structure is required for configuration of exynos4_tmu driver. 96 * This structure is required for configuration of exynos_tmu driver.
69 */ 97 */
70struct exynos4_tmu_platform_data { 98struct exynos_tmu_platform_data {
71 u8 threshold; 99 u8 threshold;
72 u8 trigger_levels[4]; 100 u8 trigger_levels[4];
73 bool trigger_level0_en; 101 bool trigger_level0_en;
@@ -77,7 +105,12 @@ struct exynos4_tmu_platform_data {
77 105
78 u8 gain; 106 u8 gain;
79 u8 reference_voltage; 107 u8 reference_voltage;
108 u8 noise_cancel_mode;
109 u32 efuse_value;
80 110
81 enum calibration_type cal_type; 111 enum calibration_type cal_type;
112 enum soc_type type;
113 struct freq_clip_table freq_tab[4];
114 unsigned int freq_tab_count;
82}; 115};
83#endif /* _LINUX_EXYNOS4_TMU_H */ 116#endif /* _LINUX_EXYNOS_THERMAL_H */