1*83ededdbSLeonard Crestez.. SPDX-License-Identifier: GPL-2.0
2*83ededdbSLeonard Crestez
3*83ededdbSLeonard Crestez========================
4*83ededdbSLeonard CrestezDevice Frequency Scaling
5*83ededdbSLeonard Crestez========================
6*83ededdbSLeonard Crestez
7*83ededdbSLeonard CrestezIntroduction
8*83ededdbSLeonard Crestez------------
9*83ededdbSLeonard Crestez
10*83ededdbSLeonard CrestezThis framework provides a standard kernel interface for Dynamic Voltage and
11*83ededdbSLeonard CrestezFrequency Switching on arbitrary devices.
12*83ededdbSLeonard Crestez
13*83ededdbSLeonard CrestezIt exposes controls for adjusting frequency through sysfs files which are
14*83ededdbSLeonard Crestezsimilar to the cpufreq subsystem.
15*83ededdbSLeonard Crestez
16*83ededdbSLeonard CrestezDevices for which current usage can be measured can have their frequency
17*83ededdbSLeonard Crestezautomatically adjusted by governors.
18*83ededdbSLeonard Crestez
19*83ededdbSLeonard CrestezAPI
20*83ededdbSLeonard Crestez---
21*83ededdbSLeonard Crestez
22*83ededdbSLeonard CrestezDevice drivers need to initialize a :c:type:`devfreq_profile` and call the
23*83ededdbSLeonard Crestez:c:func:`devfreq_add_device` function to create a :c:type:`devfreq` instance.
24*83ededdbSLeonard Crestez
25*83ededdbSLeonard Crestez.. kernel-doc:: include/linux/devfreq.h
26*83ededdbSLeonard Crestez.. kernel-doc:: include/linux/devfreq-event.h
27*83ededdbSLeonard Crestez.. kernel-doc:: drivers/devfreq/devfreq.c
28*83ededdbSLeonard Crestez        :export:
29*83ededdbSLeonard Crestez.. kernel-doc:: drivers/devfreq/devfreq-event.c
30*83ededdbSLeonard Crestez        :export:
31