Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
vc.h
Go to the documentation of this file.
1 /*
2  * OMAP3/4 Voltage Controller (VC) structure and macro definitions
3  *
4  * Copyright (C) 2007, 2010 Texas Instruments, Inc.
5  * Rajendra Nayak <[email protected]>
6  * Lesly A M <[email protected]>
7  * Thara Gopinath <[email protected]>
8  *
9  * Copyright (C) 2008, 2011 Nokia Corporation
10  * Kalle Jokiniemi
11  * Paul Walmsley
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License version
15  * 2 as published by the Free Software Foundation.
16  */
17 #ifndef __ARCH_ARM_MACH_OMAP2_VC_H
18 #define __ARCH_ARM_MACH_OMAP2_VC_H
19 
20 #include <linux/kernel.h>
21 
22 struct voltagedomain;
23 
57 };
58 
59 /* omap_vc_channel.flags values */
60 #define OMAP_VC_CHANNEL_DEFAULT BIT(0)
61 #define OMAP_VC_CHANNEL_CFG_MUTANT BIT(1)
62 
85  /* channel state */
92 
93  /* register access data */
94  const struct omap_vc_common *common;
105 };
106 
107 extern struct omap_vc_channel omap3_vc_mpu;
108 extern struct omap_vc_channel omap3_vc_core;
109 
110 extern struct omap_vc_channel omap4_vc_mpu;
111 extern struct omap_vc_channel omap4_vc_iva;
112 extern struct omap_vc_channel omap4_vc_core;
113 
114 void omap_vc_init_channel(struct voltagedomain *voltdm);
115 int omap_vc_pre_scale(struct voltagedomain *voltdm,
116  unsigned long target_volt,
117  u8 *target_vsel, u8 *current_vsel);
118 void omap_vc_post_scale(struct voltagedomain *voltdm,
119  unsigned long target_volt,
120  u8 target_vsel, u8 current_vsel);
121 int omap_vc_bypass_scale(struct voltagedomain *voltdm,
122  unsigned long target_volt);
123 
124 #endif
125