cpu_cooling.h (1901B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 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 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9 * 10 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11 */ 12 13#ifndef __CPU_COOLING_H__ 14#define __CPU_COOLING_H__ 15 16#include <linux/of.h> 17#include <linux/thermal.h> 18#include <linux/cpumask.h> 19 20struct cpufreq_policy; 21 22#ifdef CONFIG_CPU_FREQ_THERMAL 23/** 24 * cpufreq_cooling_register - function to create cpufreq cooling device. 25 * @policy: cpufreq policy. 26 */ 27struct thermal_cooling_device * 28cpufreq_cooling_register(struct cpufreq_policy *policy); 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); 35 36/** 37 * of_cpufreq_cooling_register - create cpufreq cooling device based on DT. 38 * @policy: cpufreq policy. 39 */ 40struct thermal_cooling_device * 41of_cpufreq_cooling_register(struct cpufreq_policy *policy); 42 43#else /* !CONFIG_CPU_FREQ_THERMAL */ 44static inline struct thermal_cooling_device * 45cpufreq_cooling_register(struct cpufreq_policy *policy) 46{ 47 return ERR_PTR(-ENOSYS); 48} 49 50static inline 51void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) 52{ 53 return; 54} 55 56static inline struct thermal_cooling_device * 57of_cpufreq_cooling_register(struct cpufreq_policy *policy) 58{ 59 return NULL; 60} 61#endif /* CONFIG_CPU_FREQ_THERMAL */ 62 63struct cpuidle_driver; 64 65#ifdef CONFIG_CPU_IDLE_THERMAL 66void cpuidle_cooling_register(struct cpuidle_driver *drv); 67#else /* CONFIG_CPU_IDLE_THERMAL */ 68static inline void cpuidle_cooling_register(struct cpuidle_driver *drv) 69{ 70} 71#endif /* CONFIG_CPU_IDLE_THERMAL */ 72 73#endif /* __CPU_COOLING_H__ */