From d63284ad16777b0cb943d9a34499ce92323396dc Mon Sep 17 00:00:00 2001 From: chenxing Date: Thu, 14 Jun 2012 15:02:46 +0800 Subject: [PATCH] rk30:sdk: dvfs add interface "struct regulator* dvfs_get_regulator(char *regulator_name)" to get dvfs regulator by regulator name --- arch/arm/mach-rk30/dvfs.c | 11 +++++++++++ arch/arm/mach-rk30/include/mach/dvfs.h | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-rk30/dvfs.c b/arch/arm/mach-rk30/dvfs.c index 40ef00fcd436..38932a63ca0f 100644 --- a/arch/arm/mach-rk30/dvfs.c +++ b/arch/arm/mach-rk30/dvfs.c @@ -64,6 +64,17 @@ static void dump_dbg_map(void); #define PD_ON 1 #define PD_OFF 0 +struct regulator* dvfs_get_regulator(char *regulator_name) +{ + struct vd_node *vd; + list_for_each_entry(vd, &rk_dvfs_tree, node) { + if (strcmp(regulator_name, vd->regulator_name) == 0) { + return vd->regulator; + } + } + return NULL; +} + int is_support_dvfs(struct clk_node *dvfs_info) { return (dvfs_info->vd && dvfs_info->vd->vd_dvfs_target && dvfs_info->enable_dvfs); diff --git a/arch/arm/mach-rk30/include/mach/dvfs.h b/arch/arm/mach-rk30/include/mach/dvfs.h index bfc646edac77..adfa7de4b362 100755 --- a/arch/arm/mach-rk30/include/mach/dvfs.h +++ b/arch/arm/mach-rk30/include/mach/dvfs.h @@ -15,6 +15,8 @@ #ifndef _RK30_DVFS_H_ #define _RK30_DVFS_H_ +#include + typedef int (*vd_dvfs_target_callback)(struct clk *clk, unsigned long rate); typedef int (*dvfs_set_rate_callback)(struct clk *clk, unsigned long rate); @@ -145,6 +147,8 @@ struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct clk *clk); int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table); int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table); int dvfs_set_arm_logic_volt(struct dvfs_arm_table *dvfs_cpu_logic_table, struct cpufreq_frequency_table *cpu_dvfs_table, struct cpufreq_frequency_table *dep_cpu2core_table); +struct regulator* dvfs_get_regulator(char *regulator_name); + #else static inline int rk30_dvfs_init(void) { return 0; } static inline int is_support_dvfs(struct clk_node *dvfs_info) { return 0; } @@ -156,7 +160,7 @@ static inline struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct cl static inline int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table) { return 0; } static inline int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table) {return 0;} static inline int dvfs_set_arm_logic_volt(struct dvfs_arm_table *dvfs_cpu_logic_table, struct cpufreq_frequency_table *cpu_dvfs_table, struct cpufreq_frequency_table *dep_cpu2core_table){ return 0; } - +static inline struct regulator* dvfs_get_regulator(char *regulator_name){ return NULL; } #endif #endif -- 2.34.1