2012-08-16 19:41:40 +08:00
|
|
|
CPU cooling APIs How To
|
|
|
|
===================================
|
|
|
|
|
|
|
|
Written by Amit Daniel Kachhap <amit.kachhap@linaro.org>
|
|
|
|
|
2015-01-07 02:14:25 +08:00
|
|
|
Updated: 6 Jan 2015
|
2012-08-16 19:41:40 +08:00
|
|
|
|
|
|
|
Copyright (c) 2012 Samsung Electronics Co., Ltd(http://www.samsung.com)
|
|
|
|
|
|
|
|
0. Introduction
|
|
|
|
|
|
|
|
The generic cpu cooling(freq clipping) provides registration/unregistration APIs
|
|
|
|
to the caller. The binding of the cooling devices to the trip point is left for
|
|
|
|
the user. The registration APIs returns the cooling device pointer.
|
|
|
|
|
|
|
|
1. cpu cooling APIs
|
|
|
|
|
|
|
|
1.1 cpufreq registration/unregistration APIs
|
|
|
|
1.1.1 struct thermal_cooling_device *cpufreq_cooling_register(
|
|
|
|
struct cpumask *clip_cpus)
|
|
|
|
|
|
|
|
This interface function registers the cpufreq cooling device with the name
|
|
|
|
"thermal-cpufreq-%x". This api can support multiple instances of cpufreq
|
|
|
|
cooling devices.
|
|
|
|
|
|
|
|
clip_cpus: cpumask of cpus where the frequency constraints will happen.
|
|
|
|
|
2015-01-07 02:14:25 +08:00
|
|
|
1.1.2 struct thermal_cooling_device *of_cpufreq_cooling_register(
|
|
|
|
struct device_node *np, const struct cpumask *clip_cpus)
|
|
|
|
|
|
|
|
This interface function registers the cpufreq cooling device with
|
|
|
|
the name "thermal-cpufreq-%x" linking it with a device tree node, in
|
|
|
|
order to bind it via the thermal DT code. This api can support multiple
|
|
|
|
instances of cpufreq cooling devices.
|
|
|
|
|
|
|
|
np: pointer to the cooling device device tree node
|
|
|
|
clip_cpus: cpumask of cpus where the frequency constraints will happen.
|
|
|
|
|
|
|
|
1.1.3 void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev)
|
2012-08-16 19:41:40 +08:00
|
|
|
|
|
|
|
This interface function unregisters the "thermal-cpufreq-%x" cooling device.
|
|
|
|
|
|
|
|
cdev: Cooling device pointer which has to be unregistered.
|