1f4c12d3e61d77522d9b0f367516c8c0cb5da883
[linux-2.6.git] / include / linux / edp.h
1 /*
2  * Copyright (c) 2012 NVIDIA CORPORATION.  All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 2 of the License.
7  *
8  * This program is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program; if not, write to the Free Software Foundation, Inc.,
15  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
16  *
17  */
18
19 #ifndef _LINUX_EDP_H
20 #define _LINUX_EDP_H
21
22 #include <linux/kernel.h>
23 #include <linux/errno.h>
24
25 #define EDP_NAME_LEN    16
26
27 struct edp_manager {
28         const char name[EDP_NAME_LEN];
29         const unsigned int max_current;
30
31         /* internal */
32         struct list_head link;
33         bool registered;
34 };
35
36 #ifdef CONFIG_EDP_FRAMEWORK
37 extern int edp_register_manager(struct edp_manager *mgr);
38 extern int edp_unregister_manager(struct edp_manager *mgr);
39 extern struct edp_manager *edp_get_manager(const char *name);
40 #else
41 static inline int edp_register_manager(struct edp_manager *mgr)
42 { return -ENODEV; }
43 static inline int edp_unregister_manager(struct edp_manager *mgr)
44 { return -ENODEV; }
45 static inline struct edp_manager *edp_get_manager(const char *name)
46 { return NULL; }
47 #endif
48
49 #endif