Commit | Line | Data |
---|---|---|
873e65bc | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
02361418 ADK |
2 | /* |
3 | * linux/include/linux/cpu_cooling.h | |
4 | * | |
5 | * Copyright (C) 2012 Samsung Electronics Co., Ltd(http://www.samsung.com) | |
6 | * Copyright (C) 2012 Amit Daniel <amit.kachhap@linaro.org> | |
7 | * | |
8 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
02361418 ADK |
9 | * |
10 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
11 | */ | |
12 | ||
13 | #ifndef __CPU_COOLING_H__ | |
14 | #define __CPU_COOLING_H__ | |
15 | ||
39d99cff | 16 | #include <linux/of.h> |
02361418 ADK |
17 | #include <linux/thermal.h> |
18 | ||
4d753aa7 VK |
19 | struct cpufreq_policy; |
20 | ||
2b586fea | 21 | #ifdef CONFIG_CPU_FREQ_THERMAL |
02361418 ADK |
22 | /** |
23 | * cpufreq_cooling_register - function to create cpufreq cooling device. | |
4d753aa7 | 24 | * @policy: cpufreq policy. |
02361418 | 25 | */ |
d44ada51 | 26 | struct thermal_cooling_device * |
4d753aa7 | 27 | cpufreq_cooling_register(struct cpufreq_policy *policy); |
02361418 ADK |
28 | |
29 | /** | |
30 | * cpufreq_cooling_unregister - function to remove cpufreq cooling device. | |
31 | * @cdev: thermal cooling device pointer. | |
32 | */ | |
33 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev); | |
57df8106 | 34 | |
0cac7559 DL |
35 | /** |
36 | * of_cpufreq_cooling_register - create cpufreq cooling device based on DT. | |
37 | * @policy: cpufreq policy. | |
38 | */ | |
39 | struct thermal_cooling_device * | |
40 | of_cpufreq_cooling_register(struct cpufreq_policy *policy); | |
41 | ||
2b586fea | 42 | #else /* !CONFIG_CPU_FREQ_THERMAL */ |
d44ada51 | 43 | static inline struct thermal_cooling_device * |
4d753aa7 | 44 | cpufreq_cooling_register(struct cpufreq_policy *policy) |
02361418 | 45 | { |
503ccc3f | 46 | return ERR_PTR(-ENOSYS); |
02361418 | 47 | } |
c36cf071 | 48 | |
3ebb62ff VK |
49 | static inline |
50 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) | |
39d99cff | 51 | { |
3ebb62ff | 52 | return; |
39d99cff | 53 | } |
c36cf071 JM |
54 | |
55 | static inline struct thermal_cooling_device * | |
3ebb62ff | 56 | of_cpufreq_cooling_register(struct cpufreq_policy *policy) |
c36cf071 JM |
57 | { |
58 | return NULL; | |
59 | } | |
2b586fea | 60 | #endif /* CONFIG_CPU_FREQ_THERMAL */ |
02361418 | 61 | |
a4c428e5 DL |
62 | struct cpuidle_driver; |
63 | ||
64 | #ifdef CONFIG_CPU_IDLE_THERMAL | |
dfd0bda3 | 65 | void cpuidle_cooling_register(struct cpuidle_driver *drv); |
a4c428e5 | 66 | #else /* CONFIG_CPU_IDLE_THERMAL */ |
dfd0bda3 | 67 | static inline void cpuidle_cooling_register(struct cpuidle_driver *drv) |
a4c428e5 | 68 | { |
a4c428e5 DL |
69 | } |
70 | #endif /* CONFIG_CPU_IDLE_THERMAL */ | |
71 | ||
02361418 | 72 | #endif /* __CPU_COOLING_H__ */ |