thermal: cpu_cooling: Remove pointless dependency on CONFIG_OF
[linux-block.git] / include / linux / cpu_cooling.h
CommitLineData
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
20struct 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 27struct thermal_cooling_device *
4d753aa7 28cpufreq_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 */
34void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev);
57df8106 35
02361418 36#else /* !CONFIG_CPU_THERMAL */
d44ada51 37static inline struct thermal_cooling_device *
4d753aa7 38cpufreq_cooling_register(struct cpufreq_policy *policy)
02361418 39{
503ccc3f 40 return ERR_PTR(-ENOSYS);
02361418 41}
c36cf071 42
3ebb62ff
VK
43static inline
44void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)
39d99cff 45{
3ebb62ff 46 return;
39d99cff 47}
3ebb62ff 48#endif /* CONFIG_CPU_THERMAL */
c36cf071 49
f5bf3c06 50#ifdef CONFIG_CPU_THERMAL
3ebb62ff
VK
51/**
52 * of_cpufreq_cooling_register - create cpufreq cooling device based on DT.
53 * @policy: cpufreq policy.
54 */
55struct thermal_cooling_device *
56of_cpufreq_cooling_register(struct cpufreq_policy *policy);
57#else
c36cf071 58static inline struct thermal_cooling_device *
3ebb62ff 59of_cpufreq_cooling_register(struct cpufreq_policy *policy)
c36cf071
JM
60{
61 return NULL;
62}
f5bf3c06 63#endif /* CONFIG_CPU_THERMAL */
02361418
ADK
64
65#endif /* __CPU_COOLING_H__ */