Commit e1d6f4729e9fd46efa1029b6e806bb8b6c24e776
1 parent
7328ff4d72
Exists in
master
and in
4 other branches
OMAP: voltage: move plat/voltage.h to mach-omap2/voltage.h
At this point in time, there's no reason for this header file to be in plat-omap/include/plat/voltage.h. It should not be included by device drivers, and the code that uses it is currently all under mach-omap2/. Signed-off-by: Paul Walmsley <paul@pwsan.com>
Showing 8 changed files with 162 additions and 161 deletions Side-by-side Diff
arch/arm/mach-omap2/omap_twl.c
arch/arm/mach-omap2/pm.c
arch/arm/mach-omap2/smartreflex.h
arch/arm/mach-omap2/sr_device.c
arch/arm/mach-omap2/voltage.c
... | ... | @@ -26,7 +26,6 @@ |
26 | 26 | #include <linux/slab.h> |
27 | 27 | |
28 | 28 | #include <plat/common.h> |
29 | -#include <plat/voltage.h> | |
30 | 29 | |
31 | 30 | #include "prm-regbits-34xx.h" |
32 | 31 | #include "prm-regbits-44xx.h" |
... | ... | @@ -34,6 +33,8 @@ |
34 | 33 | #include "prcm44xx.h" |
35 | 34 | #include "prminst44xx.h" |
36 | 35 | #include "control.h" |
36 | + | |
37 | +#include "voltage.h" | |
37 | 38 | |
38 | 39 | #define VP_IDLE_TIMEOUT 200 |
39 | 40 | #define VP_TRANXDONE_TIMEOUT 300 |
arch/arm/mach-omap2/voltage.h
1 | +/* | |
2 | + * OMAP Voltage Management Routines | |
3 | + * | |
4 | + * Author: Thara Gopinath <thara@ti.com> | |
5 | + * | |
6 | + * Copyright (C) 2009 Texas Instruments, Inc. | |
7 | + * Thara Gopinath <thara@ti.com> | |
8 | + * | |
9 | + * This program is free software; you can redistribute it and/or modify | |
10 | + * it under the terms of the GNU General Public License version 2 as | |
11 | + * published by the Free Software Foundation. | |
12 | + */ | |
13 | + | |
14 | +#ifndef __ARCH_ARM_MACH_OMAP2_VOLTAGE_H | |
15 | +#define __ARCH_ARM_MACH_OMAP2_VOLTAGE_H | |
16 | + | |
17 | +#include <linux/err.h> | |
18 | + | |
19 | +#define VOLTSCALE_VPFORCEUPDATE 1 | |
20 | +#define VOLTSCALE_VCBYPASS 2 | |
21 | + | |
22 | +/* | |
23 | + * OMAP3 GENERIC setup times. Revisit to see if these needs to be | |
24 | + * passed from board or PMIC file | |
25 | + */ | |
26 | +#define OMAP3_CLKSETUP 0xff | |
27 | +#define OMAP3_VOLTOFFSET 0xff | |
28 | +#define OMAP3_VOLTSETUP2 0xff | |
29 | + | |
30 | +/* Voltage value defines */ | |
31 | +#define OMAP3430_VDD_MPU_OPP1_UV 975000 | |
32 | +#define OMAP3430_VDD_MPU_OPP2_UV 1075000 | |
33 | +#define OMAP3430_VDD_MPU_OPP3_UV 1200000 | |
34 | +#define OMAP3430_VDD_MPU_OPP4_UV 1270000 | |
35 | +#define OMAP3430_VDD_MPU_OPP5_UV 1350000 | |
36 | + | |
37 | +#define OMAP3430_VDD_CORE_OPP1_UV 975000 | |
38 | +#define OMAP3430_VDD_CORE_OPP2_UV 1050000 | |
39 | +#define OMAP3430_VDD_CORE_OPP3_UV 1150000 | |
40 | + | |
41 | +#define OMAP3630_VDD_MPU_OPP50_UV 1012500 | |
42 | +#define OMAP3630_VDD_MPU_OPP100_UV 1200000 | |
43 | +#define OMAP3630_VDD_MPU_OPP120_UV 1325000 | |
44 | +#define OMAP3630_VDD_MPU_OPP1G_UV 1375000 | |
45 | + | |
46 | +#define OMAP3630_VDD_CORE_OPP50_UV 1000000 | |
47 | +#define OMAP3630_VDD_CORE_OPP100_UV 1200000 | |
48 | + | |
49 | +#define OMAP4430_VDD_MPU_OPP50_UV 930000 | |
50 | +#define OMAP4430_VDD_MPU_OPP100_UV 1100000 | |
51 | +#define OMAP4430_VDD_MPU_OPPTURBO_UV 1260000 | |
52 | +#define OMAP4430_VDD_MPU_OPPNITRO_UV 1350000 | |
53 | + | |
54 | +#define OMAP4430_VDD_IVA_OPP50_UV 930000 | |
55 | +#define OMAP4430_VDD_IVA_OPP100_UV 1100000 | |
56 | +#define OMAP4430_VDD_IVA_OPPTURBO_UV 1260000 | |
57 | + | |
58 | +#define OMAP4430_VDD_CORE_OPP50_UV 930000 | |
59 | +#define OMAP4430_VDD_CORE_OPP100_UV 1100000 | |
60 | + | |
61 | +/** | |
62 | + * struct voltagedomain - omap voltage domain global structure. | |
63 | + * @name: Name of the voltage domain which can be used as a unique | |
64 | + * identifier. | |
65 | + */ | |
66 | +struct voltagedomain { | |
67 | + char *name; | |
68 | +}; | |
69 | + | |
70 | +/** | |
71 | + * struct omap_volt_data - Omap voltage specific data. | |
72 | + * @voltage_nominal: The possible voltage value in uV | |
73 | + * @sr_efuse_offs: The offset of the efuse register(from system | |
74 | + * control module base address) from where to read | |
75 | + * the n-target value for the smartreflex module. | |
76 | + * @sr_errminlimit: Error min limit value for smartreflex. This value | |
77 | + * differs at differnet opp and thus is linked | |
78 | + * with voltage. | |
79 | + * @vp_errorgain: Error gain value for the voltage processor. This | |
80 | + * field also differs according to the voltage/opp. | |
81 | + */ | |
82 | +struct omap_volt_data { | |
83 | + u32 volt_nominal; | |
84 | + u32 sr_efuse_offs; | |
85 | + u8 sr_errminlimit; | |
86 | + u8 vp_errgain; | |
87 | +}; | |
88 | + | |
89 | +/** | |
90 | + * struct omap_volt_pmic_info - PMIC specific data required by voltage driver. | |
91 | + * @slew_rate: PMIC slew rate (in uv/us) | |
92 | + * @step_size: PMIC voltage step size (in uv) | |
93 | + * @vsel_to_uv: PMIC API to convert vsel value to actual voltage in uV. | |
94 | + * @uv_to_vsel: PMIC API to convert voltage in uV to vsel value. | |
95 | + */ | |
96 | +struct omap_volt_pmic_info { | |
97 | + int slew_rate; | |
98 | + int step_size; | |
99 | + u32 on_volt; | |
100 | + u32 onlp_volt; | |
101 | + u32 ret_volt; | |
102 | + u32 off_volt; | |
103 | + u16 volt_setup_time; | |
104 | + u8 vp_erroroffset; | |
105 | + u8 vp_vstepmin; | |
106 | + u8 vp_vstepmax; | |
107 | + u8 vp_vddmin; | |
108 | + u8 vp_vddmax; | |
109 | + u8 vp_timeout_us; | |
110 | + u8 i2c_slave_addr; | |
111 | + u8 pmic_reg; | |
112 | + unsigned long (*vsel_to_uv) (const u8 vsel); | |
113 | + u8 (*uv_to_vsel) (unsigned long uV); | |
114 | +}; | |
115 | + | |
116 | +unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm); | |
117 | +void omap_vp_enable(struct voltagedomain *voltdm); | |
118 | +void omap_vp_disable(struct voltagedomain *voltdm); | |
119 | +int omap_voltage_scale_vdd(struct voltagedomain *voltdm, | |
120 | + unsigned long target_volt); | |
121 | +void omap_voltage_reset(struct voltagedomain *voltdm); | |
122 | +void omap_voltage_get_volttable(struct voltagedomain *voltdm, | |
123 | + struct omap_volt_data **volt_data); | |
124 | +struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain *voltdm, | |
125 | + unsigned long volt); | |
126 | +unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm); | |
127 | +struct dentry *omap_voltage_get_dbgdir(struct voltagedomain *voltdm); | |
128 | +#ifdef CONFIG_PM | |
129 | +int omap_voltage_register_pmic(struct voltagedomain *voltdm, | |
130 | + struct omap_volt_pmic_info *pmic_info); | |
131 | +void omap_change_voltscale_method(struct voltagedomain *voltdm, | |
132 | + int voltscale_method); | |
133 | +/* API to get the voltagedomain pointer */ | |
134 | +struct voltagedomain *omap_voltage_domain_lookup(char *name); | |
135 | + | |
136 | +int omap_voltage_late_init(void); | |
137 | +#else | |
138 | +static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm, | |
139 | + struct omap_volt_pmic_info *pmic_info) | |
140 | +{ | |
141 | + return -EINVAL; | |
142 | +} | |
143 | +static inline void omap_change_voltscale_method(struct voltagedomain *voltdm, | |
144 | + int voltscale_method) {} | |
145 | +static inline int omap_voltage_late_init(void) | |
146 | +{ | |
147 | + return -EINVAL; | |
148 | +} | |
149 | +static inline struct voltagedomain *omap_voltage_domain_lookup(char *name) | |
150 | +{ | |
151 | + return ERR_PTR(-EINVAL); | |
152 | +} | |
153 | +#endif | |
154 | + | |
155 | +#endif |
arch/arm/plat-omap/include/plat/omap_hwmod.h
arch/arm/plat-omap/include/plat/voltage.h
1 | -/* | |
2 | - * OMAP Voltage Management Routines | |
3 | - * | |
4 | - * Author: Thara Gopinath <thara@ti.com> | |
5 | - * | |
6 | - * Copyright (C) 2009 Texas Instruments, Inc. | |
7 | - * Thara Gopinath <thara@ti.com> | |
8 | - * | |
9 | - * This program is free software; you can redistribute it and/or modify | |
10 | - * it under the terms of the GNU General Public License version 2 as | |
11 | - * published by the Free Software Foundation. | |
12 | - */ | |
13 | - | |
14 | -#ifndef __ARCH_ARM_MACH_OMAP2_VOLTAGE_H | |
15 | -#define __ARCH_ARM_MACH_OMAP2_VOLTAGE_H | |
16 | - | |
17 | -#include <linux/err.h> | |
18 | - | |
19 | -#define VOLTSCALE_VPFORCEUPDATE 1 | |
20 | -#define VOLTSCALE_VCBYPASS 2 | |
21 | - | |
22 | -/* | |
23 | - * OMAP3 GENERIC setup times. Revisit to see if these needs to be | |
24 | - * passed from board or PMIC file | |
25 | - */ | |
26 | -#define OMAP3_CLKSETUP 0xff | |
27 | -#define OMAP3_VOLTOFFSET 0xff | |
28 | -#define OMAP3_VOLTSETUP2 0xff | |
29 | - | |
30 | -/* Voltage value defines */ | |
31 | -#define OMAP3430_VDD_MPU_OPP1_UV 975000 | |
32 | -#define OMAP3430_VDD_MPU_OPP2_UV 1075000 | |
33 | -#define OMAP3430_VDD_MPU_OPP3_UV 1200000 | |
34 | -#define OMAP3430_VDD_MPU_OPP4_UV 1270000 | |
35 | -#define OMAP3430_VDD_MPU_OPP5_UV 1350000 | |
36 | - | |
37 | -#define OMAP3430_VDD_CORE_OPP1_UV 975000 | |
38 | -#define OMAP3430_VDD_CORE_OPP2_UV 1050000 | |
39 | -#define OMAP3430_VDD_CORE_OPP3_UV 1150000 | |
40 | - | |
41 | -#define OMAP3630_VDD_MPU_OPP50_UV 1012500 | |
42 | -#define OMAP3630_VDD_MPU_OPP100_UV 1200000 | |
43 | -#define OMAP3630_VDD_MPU_OPP120_UV 1325000 | |
44 | -#define OMAP3630_VDD_MPU_OPP1G_UV 1375000 | |
45 | - | |
46 | -#define OMAP3630_VDD_CORE_OPP50_UV 1000000 | |
47 | -#define OMAP3630_VDD_CORE_OPP100_UV 1200000 | |
48 | - | |
49 | -#define OMAP4430_VDD_MPU_OPP50_UV 930000 | |
50 | -#define OMAP4430_VDD_MPU_OPP100_UV 1100000 | |
51 | -#define OMAP4430_VDD_MPU_OPPTURBO_UV 1260000 | |
52 | -#define OMAP4430_VDD_MPU_OPPNITRO_UV 1350000 | |
53 | - | |
54 | -#define OMAP4430_VDD_IVA_OPP50_UV 930000 | |
55 | -#define OMAP4430_VDD_IVA_OPP100_UV 1100000 | |
56 | -#define OMAP4430_VDD_IVA_OPPTURBO_UV 1260000 | |
57 | - | |
58 | -#define OMAP4430_VDD_CORE_OPP50_UV 930000 | |
59 | -#define OMAP4430_VDD_CORE_OPP100_UV 1100000 | |
60 | - | |
61 | -/** | |
62 | - * struct voltagedomain - omap voltage domain global structure. | |
63 | - * @name: Name of the voltage domain which can be used as a unique | |
64 | - * identifier. | |
65 | - */ | |
66 | -struct voltagedomain { | |
67 | - char *name; | |
68 | -}; | |
69 | - | |
70 | -/** | |
71 | - * struct omap_volt_data - Omap voltage specific data. | |
72 | - * @voltage_nominal: The possible voltage value in uV | |
73 | - * @sr_efuse_offs: The offset of the efuse register(from system | |
74 | - * control module base address) from where to read | |
75 | - * the n-target value for the smartreflex module. | |
76 | - * @sr_errminlimit: Error min limit value for smartreflex. This value | |
77 | - * differs at differnet opp and thus is linked | |
78 | - * with voltage. | |
79 | - * @vp_errorgain: Error gain value for the voltage processor. This | |
80 | - * field also differs according to the voltage/opp. | |
81 | - */ | |
82 | -struct omap_volt_data { | |
83 | - u32 volt_nominal; | |
84 | - u32 sr_efuse_offs; | |
85 | - u8 sr_errminlimit; | |
86 | - u8 vp_errgain; | |
87 | -}; | |
88 | - | |
89 | -/** | |
90 | - * struct omap_volt_pmic_info - PMIC specific data required by voltage driver. | |
91 | - * @slew_rate: PMIC slew rate (in uv/us) | |
92 | - * @step_size: PMIC voltage step size (in uv) | |
93 | - * @vsel_to_uv: PMIC API to convert vsel value to actual voltage in uV. | |
94 | - * @uv_to_vsel: PMIC API to convert voltage in uV to vsel value. | |
95 | - */ | |
96 | -struct omap_volt_pmic_info { | |
97 | - int slew_rate; | |
98 | - int step_size; | |
99 | - u32 on_volt; | |
100 | - u32 onlp_volt; | |
101 | - u32 ret_volt; | |
102 | - u32 off_volt; | |
103 | - u16 volt_setup_time; | |
104 | - u8 vp_erroroffset; | |
105 | - u8 vp_vstepmin; | |
106 | - u8 vp_vstepmax; | |
107 | - u8 vp_vddmin; | |
108 | - u8 vp_vddmax; | |
109 | - u8 vp_timeout_us; | |
110 | - u8 i2c_slave_addr; | |
111 | - u8 pmic_reg; | |
112 | - unsigned long (*vsel_to_uv) (const u8 vsel); | |
113 | - u8 (*uv_to_vsel) (unsigned long uV); | |
114 | -}; | |
115 | - | |
116 | -unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm); | |
117 | -void omap_vp_enable(struct voltagedomain *voltdm); | |
118 | -void omap_vp_disable(struct voltagedomain *voltdm); | |
119 | -int omap_voltage_scale_vdd(struct voltagedomain *voltdm, | |
120 | - unsigned long target_volt); | |
121 | -void omap_voltage_reset(struct voltagedomain *voltdm); | |
122 | -void omap_voltage_get_volttable(struct voltagedomain *voltdm, | |
123 | - struct omap_volt_data **volt_data); | |
124 | -struct omap_volt_data *omap_voltage_get_voltdata(struct voltagedomain *voltdm, | |
125 | - unsigned long volt); | |
126 | -unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm); | |
127 | -struct dentry *omap_voltage_get_dbgdir(struct voltagedomain *voltdm); | |
128 | -#ifdef CONFIG_PM | |
129 | -int omap_voltage_register_pmic(struct voltagedomain *voltdm, | |
130 | - struct omap_volt_pmic_info *pmic_info); | |
131 | -void omap_change_voltscale_method(struct voltagedomain *voltdm, | |
132 | - int voltscale_method); | |
133 | -/* API to get the voltagedomain pointer */ | |
134 | -struct voltagedomain *omap_voltage_domain_lookup(char *name); | |
135 | - | |
136 | -int omap_voltage_late_init(void); | |
137 | -#else | |
138 | -static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm, | |
139 | - struct omap_volt_pmic_info *pmic_info) | |
140 | -{ | |
141 | - return -EINVAL; | |
142 | -} | |
143 | -static inline void omap_change_voltscale_method(struct voltagedomain *voltdm, | |
144 | - int voltscale_method) {} | |
145 | -static inline int omap_voltage_late_init(void) | |
146 | -{ | |
147 | - return -EINVAL; | |
148 | -} | |
149 | -static inline struct voltagedomain *omap_voltage_domain_lookup(char *name) | |
150 | -{ | |
151 | - return ERR_PTR(-EINVAL); | |
152 | -} | |
153 | -#endif | |
154 | - | |
155 | -#endif |