|  | /* SPDX-License-Identifier: GPL-2.0-only */ | 
|  | /* | 
|  | *  linux/include/linux/clock_cooling.h | 
|  | * | 
|  | *  Copyright (C) 2014 Eduardo Valentin <edubezval@gmail.com> | 
|  | * | 
|  | *  Copyright (C) 2013	Texas Instruments Inc. | 
|  | *  Contact:  Eduardo Valentin <eduardo.valentin@ti.com> | 
|  | * | 
|  | *  Highly based on cpu_cooling.c. | 
|  | *  Copyright (C) 2012	Samsung Electronics Co., Ltd(http://www.samsung.com) | 
|  | *  Copyright (C) 2012  Amit Daniel <amit.kachhap@linaro.org> | 
|  | */ | 
|  |  | 
|  | #ifndef __CPU_COOLING_H__ | 
|  | #define __CPU_COOLING_H__ | 
|  |  | 
|  | #include <linux/of.h> | 
|  | #include <linux/thermal.h> | 
|  | #include <linux/cpumask.h> | 
|  |  | 
|  | #ifdef CONFIG_CLOCK_THERMAL | 
|  | /** | 
|  | * clock_cooling_register - function to create clock cooling device. | 
|  | * @dev: struct device pointer to the device used as clock cooling device. | 
|  | * @clock_name: string containing the clock used as cooling mechanism. | 
|  | */ | 
|  | struct thermal_cooling_device * | 
|  | clock_cooling_register(struct device *dev, const char *clock_name); | 
|  |  | 
|  | /** | 
|  | * clock_cooling_unregister - function to remove clock cooling device. | 
|  | * @cdev: thermal cooling device pointer. | 
|  | */ | 
|  | void clock_cooling_unregister(struct thermal_cooling_device *cdev); | 
|  |  | 
|  | unsigned long clock_cooling_get_level(struct thermal_cooling_device *cdev, | 
|  | unsigned long freq); | 
|  | #else /* !CONFIG_CLOCK_THERMAL */ | 
|  | static inline struct thermal_cooling_device * | 
|  | clock_cooling_register(struct device *dev, const char *clock_name) | 
|  | { | 
|  | return NULL; | 
|  | } | 
|  | static inline | 
|  | void clock_cooling_unregister(struct thermal_cooling_device *cdev) | 
|  | { | 
|  | } | 
|  | static inline | 
|  | unsigned long clock_cooling_get_level(struct thermal_cooling_device *cdev, | 
|  | unsigned long freq) | 
|  | { | 
|  | return THERMAL_CSTATE_INVALID; | 
|  | } | 
|  | #endif	/* CONFIG_CLOCK_THERMAL */ | 
|  |  | 
|  | #endif /* __CPU_COOLING_H__ */ |