Merge branches 'x86/hyperv', 'x86/kdump' and 'x86/misc' into x86/urgent, to pick...
[platform/kernel/linux-starfive.git] / Documentation / driver-api / devfreq.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ========================
4 Device Frequency Scaling
5 ========================
6
7 Introduction
8 ------------
9
10 This framework provides a standard kernel interface for Dynamic Voltage and
11 Frequency Switching on arbitrary devices.
12
13 It exposes controls for adjusting frequency through sysfs files which are
14 similar to the cpufreq subsystem.
15
16 Devices for which current usage can be measured can have their frequency
17 automatically adjusted by governors.
18
19 API
20 ---
21
22 Device drivers need to initialize a :c:type:`devfreq_profile` and call the
23 :c:func:`devfreq_add_device` function to create a :c:type:`devfreq` instance.
24
25 .. kernel-doc:: include/linux/devfreq.h
26 .. kernel-doc:: include/linux/devfreq-event.h
27 .. kernel-doc:: drivers/devfreq/devfreq.c
28         :export:
29 .. kernel-doc:: drivers/devfreq/devfreq-event.c
30         :export: