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 | 17 | #include <linux/thermal.h> |
198f38f7 | 18 | #include <linux/cpumask.h> |
02361418 | 19 | |
4d753aa7 VK |
20 | struct cpufreq_policy; |
21 | ||
bbf7fc88 | 22 | #ifdef CONFIG_CPU_THERMAL |
02361418 ADK |
23 | /** |
24 | * cpufreq_cooling_register - function to create cpufreq cooling device. | |
4d753aa7 | 25 | * @policy: cpufreq policy. |
02361418 | 26 | */ |
d44ada51 | 27 | struct thermal_cooling_device * |
4d753aa7 | 28 | cpufreq_cooling_register(struct cpufreq_policy *policy); |
02361418 ADK |
29 | |
30 | /** | |
31 | * cpufreq_cooling_unregister - function to remove cpufreq cooling device. | |
32 | * @cdev: thermal cooling device pointer. | |
33 | */ | |
34 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev); | |
57df8106 | 35 | |
02361418 | 36 | #else /* !CONFIG_CPU_THERMAL */ |
d44ada51 | 37 | static inline struct thermal_cooling_device * |
4d753aa7 | 38 | cpufreq_cooling_register(struct cpufreq_policy *policy) |
02361418 | 39 | { |
503ccc3f | 40 | return ERR_PTR(-ENOSYS); |
02361418 | 41 | } |
c36cf071 | 42 | |
3ebb62ff VK |
43 | static inline |
44 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) | |
39d99cff | 45 | { |
3ebb62ff | 46 | return; |
39d99cff | 47 | } |
3ebb62ff | 48 | #endif /* CONFIG_CPU_THERMAL */ |
c36cf071 | 49 | |
3ebb62ff VK |
50 | #if defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL) |
51 | /** | |
52 | * of_cpufreq_cooling_register - create cpufreq cooling device based on DT. | |
53 | * @policy: cpufreq policy. | |
54 | */ | |
55 | struct thermal_cooling_device * | |
56 | of_cpufreq_cooling_register(struct cpufreq_policy *policy); | |
57 | #else | |
c36cf071 | 58 | static inline struct thermal_cooling_device * |
3ebb62ff | 59 | of_cpufreq_cooling_register(struct cpufreq_policy *policy) |
c36cf071 JM |
60 | { |
61 | return NULL; | |
62 | } | |
3ebb62ff | 63 | #endif /* defined(CONFIG_THERMAL_OF) && defined(CONFIG_CPU_THERMAL) */ |
02361418 ADK |
64 | |
65 | #endif /* __CPU_COOLING_H__ */ |