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