diff options
Diffstat (limited to 'include/linux/platform_data/exynos_thermal.h')
-rw-r--r-- | include/linux/platform_data/exynos_thermal.h | 22 |
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 | ||
25 | enum calibration_type { | 26 | enum 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 | */ | ||
46 | struct 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 */ |