Commit | Line | Data |
---|---|---|
a2ff95e0 MP |
1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* | |
3 | * Platform profile sysfs interface | |
4 | * | |
5 | * See Documentation/ABI/testing/sysfs-platform_profile.rst for more | |
6 | * information. | |
7 | */ | |
8 | ||
9 | #ifndef _PLATFORM_PROFILE_H_ | |
10 | #define _PLATFORM_PROFILE_H_ | |
11 | ||
12 | #include <linux/bitops.h> | |
13 | ||
14 | /* | |
15 | * If more options are added please update profile_names | |
16 | * array in platform-profile.c and sysfs-platform-profile.rst | |
17 | * documentation. | |
18 | */ | |
19 | ||
20 | enum platform_profile_option { | |
21 | PLATFORM_PROFILE_LOW_POWER, | |
22 | PLATFORM_PROFILE_COOL, | |
23 | PLATFORM_PROFILE_QUIET, | |
24 | PLATFORM_PROFILE_BALANCED, | |
25 | PLATFORM_PROFILE_PERFORMANCE, | |
26 | PLATFORM_PROFILE_LAST, /*must always be last */ | |
27 | }; | |
28 | ||
29 | struct platform_profile_handler { | |
30 | unsigned long choices[BITS_TO_LONGS(PLATFORM_PROFILE_LAST)]; | |
31 | int (*profile_get)(enum platform_profile_option *profile); | |
32 | int (*profile_set)(enum platform_profile_option profile); | |
33 | }; | |
34 | ||
9d56653d | 35 | int platform_profile_register(struct platform_profile_handler *pprof); |
a2ff95e0 MP |
36 | int platform_profile_remove(void); |
37 | void platform_profile_notify(void); | |
38 | ||
39 | #endif /*_PLATFORM_PROFILE_H_*/ |