-/* arch/arm/mach-rk30/rk30_dvfs.h\r
- *\r
- * Copyright (C) 2012 ROCKCHIP, Inc.\r
- *\r
- * This software is licensed under the terms of the GNU General Public\r
- * License version 2, as published by the Free Software Foundation, and\r
- * may be copied, distributed, and modified under those terms.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
- *\r
- */\r
-#ifndef _RK30_DVFS_H_\r
-#define _RK30_DVFS_H_\r
-\r
-#include <mach/clock.h>\r
-\r
-typedef int (*vd_dvfs_target_callback)(struct clk *clk, unsigned long rate);\r
-\r
-typedef int (*dvfs_set_rate_callback)(struct clk *clk, unsigned long rate);\r
-\r
-typedef int (*clk_dvfs_target_callback)(struct clk *clk, unsigned long rate,\r
- dvfs_set_rate_callback set_rate);\r
-\r
-/**\r
- * struct vd_node: To Store All Voltage Domains' info\r
- * @name: Voltage Domain's Name\r
- * @regulator_name: Voltage domain's regulator name\r
- * @cur_volt: Voltage Domain's Current Voltage\r
- * @regulator: Voltage Domain's regulator point\r
- * @node: Point of he Voltage Domain List Node\r
- * @pd_list: Head of Power Domain List Belongs to This Voltage Domain\r
- * @req_volt_list: The list of clocks requests\r
- * @dvfs_mutex: Lock\r
- * @vd_dvfs_target: Callback function \r
- */\r
-\r
-struct vd_node {\r
- char *name;\r
- char *regulator_name;\r
- int cur_volt;\r
- int volt_set_flag;\r
- struct regulator *regulator;\r
- struct list_head node;\r
- struct list_head pd_list;\r
- struct list_head req_volt_list;\r
- //struct mutex dvfs_mutex;\r
- vd_dvfs_target_callback vd_dvfs_target;\r
-};\r
-\r
-/**\r
- * struct pd_node: To Store All Power Domains' info\r
- * @name: Power Domain's Name\r
- * @cur_volt: Power Domain's Current Voltage\r
- * @pd_status: Power Domain's status\r
- * @vd: Voltage Domain the power domain belongs to\r
- * @pd_clk: Look power domain as a clock\r
- * @node: List node to Voltage Domain\r
- * @clk_list: Head of Power Domain's Clocks List\r
- */\r
-struct pd_node {\r
- char *name;\r
- int cur_volt;\r
- unsigned char pd_status;\r
- struct vd_node *vd;\r
- //struct clk *pd_clk;\r
- struct list_head node;\r
- struct list_head clk_list;\r
-};\r
-\r
-struct pd_node_lookup {\r
- struct pd_node *pd;\r
-};\r
-\r
-struct clk_list{\r
- struct clk_node *dvfs_clk;\r
- struct list_head node;\r
-};\r
-\r
-struct pds_list {\r
- struct clk_list clk_list;\r
- struct pd_node *pd;\r
-};\r
-\r
-struct depend_list {\r
- int req_volt;\r
- struct clk_node *dvfs_clk;\r
- struct vd_node *dep_vd;\r
- struct list_head node2clk;\r
- struct list_head node2vd;\r
- struct cpufreq_frequency_table *dep_table;\r
-};\r
-\r
-struct depend_lookup {\r
- char *clk_name;\r
- struct clk_node *dvfs_clk;\r
- struct vd_node *dep_vd;\r
- struct depend_list dep_list;\r
- struct cpufreq_frequency_table *dep_table;\r
-};\r
-\r
-/**\r
- * struct clk_node: To Store All dvfs clocks' info\r
- * @name: Dvfs clock's Name\r
- * @set_freq: Dvfs clock's Current Frequency\r
- * @set_volt: Dvfs clock's Current Voltage\r
- * @enable_dvfs: Sign if DVFS clock enable\r
- * @clk: System clk's point\r
- * @pds: Power Domains dvfs clock belongs to\r
- * @vd: Voltage Domains dvfs clock belongs to\r
- * @depend_list: Dvfs Clock depend list\r
- * @dvfs_nb: Notify list\r
- * @dvfs_table: Frequency and voltage table for dvfs\r
- * @clk_dvfs_target: Callback function\r
- */\r
-struct clk_node {\r
- char *name;\r
- int set_freq; //KHZ\r
- int set_volt; //MV\r
- int enable_dvfs;\r
- int freq_limit_en; //sign if use limit frequency\r
- unsigned int min_rate; //limit min frequency\r
- unsigned int max_rate; //limit max frequency\r
- struct clk *clk;\r
- struct pds_list *pds;\r
- struct vd_node *vd;\r
- struct list_head depend_list;\r
- struct notifier_block *dvfs_nb;\r
- struct cpufreq_frequency_table *dvfs_table;\r
- clk_dvfs_target_callback clk_dvfs_target;\r
-};\r
-\r
-struct dvfs_arm_table {\r
- unsigned int frequency; /* kHz - doesn't need to be in ascending\r
- * order */\r
- unsigned int cpu_volt; /* any */\r
-\r
- unsigned int logic_volt;\r
-};\r
-\r
-#ifdef CONFIG_DVFS\r
-int rk30_dvfs_init(void);\r
-int is_support_dvfs(struct clk_node *dvfs_info);\r
-int dvfs_set_rate(struct clk *clk, unsigned long rate);\r
-int clk_enable_dvfs(struct clk *clk);\r
-int clk_disable_dvfs(struct clk *clk);\r
-void dvfs_clk_register_set_rate_callback(struct clk *clk, clk_dvfs_target_callback clk_dvfs_target);\r
-struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct clk *clk);\r
-int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table);\r
-int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table);\r
-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);\r
-struct regulator* dvfs_get_regulator(char *regulator_name);\r
-int dvfs_clk_enable_limit(struct clk *clk, unsigned int min_rate, unsigned max_rate);\r
-int dvfs_clk_disable_limit(struct clk *clk);\r
-\r
-void avs_init(void);\r
-void avs_init_val_get(int index,int vol,char *s);\r
-int avs_set_scal_val(u8 avs_base);\r
-int dvfs_avs_scale_table(struct clk* clk, char* depend_vd_name);\r
-#else\r
-static inline int rk30_dvfs_init(void) { return 0; }\r
-static inline int is_support_dvfs(struct clk_node *dvfs_info) { return 0; }\r
-static inline int dvfs_set_rate(struct clk *clk, unsigned long rate) { return 0; }\r
-static inline int clk_enable_dvfs(struct clk *clk) { return 0; }\r
-static inline int clk_disable_dvfs(struct clk *clk) { return 0; }\r
-static inline void dvfs_clk_register_set_rate_callback(struct clk *clk, clk_dvfs_target_callback clk_dvfs_target) {}\r
-static inline struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct clk *clk) { return NULL; }\r
-static inline int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table) { return 0; }\r
-static inline int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table) {return 0;}\r
-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; }\r
-static inline struct regulator* dvfs_get_regulator(char *regulator_name){ return NULL; }\r
-static inline int dvfs_clk_enable_limit(struct clk *clk, unsigned int min_rate, unsigned max_rate){ return 0; }\r
-static inline int dvfs_clk_disable_limit(struct clk *clk){ return 0; };\r
-\r
-static inline void avs_init(void){};\r
-static inline void avs_init_val_get(int index, int vol, char *s){};\r
-static inline int avs_set_scal_val(u8 avs_base){ return 0; };\r
-static inline int dvfs_avs_scale_table(struct clk* clk, char* depend_vd_name){ return 0; };\r
-#endif\r
-\r
-#endif\r
+#include <plat/dvfs.h>\r
-/* arch/arm/mach-rk30/rk30_dvfs.h\r
- *\r
- * Copyright (C) 2012 ROCKCHIP, Inc.\r
- *\r
- * This software is licensed under the terms of the GNU General Public\r
- * License version 2, as published by the Free Software Foundation, and\r
- * may be copied, distributed, and modified under those terms.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
- *\r
- */\r
-#ifndef _RK30_DVFS_H_\r
-#define _RK30_DVFS_H_\r
-\r
-#include <mach/clock.h>\r
-\r
-typedef int (*vd_dvfs_target_callback)(struct clk *clk, unsigned long rate);\r
-\r
-typedef int (*dvfs_set_rate_callback)(struct clk *clk, unsigned long rate);\r
-\r
-typedef int (*clk_dvfs_target_callback)(struct clk *clk, unsigned long rate,\r
- dvfs_set_rate_callback set_rate);\r
-\r
-/**\r
- * struct vd_node: To Store All Voltage Domains' info\r
- * @name: Voltage Domain's Name\r
- * @regulator_name: Voltage domain's regulator name\r
- * @cur_volt: Voltage Domain's Current Voltage\r
- * @regulator: Voltage Domain's regulator point\r
- * @node: Point of he Voltage Domain List Node\r
- * @pd_list: Head of Power Domain List Belongs to This Voltage Domain\r
- * @req_volt_list: The list of clocks requests\r
- * @dvfs_mutex: Lock\r
- * @vd_dvfs_target: Callback function \r
- */\r
-\r
-struct vd_node {\r
- char *name;\r
- char *regulator_name;\r
- int cur_volt;\r
- int volt_set_flag;\r
- struct regulator *regulator;\r
- struct list_head node;\r
- struct list_head pd_list;\r
- struct list_head req_volt_list;\r
- //struct mutex dvfs_mutex;\r
- vd_dvfs_target_callback vd_dvfs_target;\r
-};\r
-\r
-/**\r
- * struct pd_node: To Store All Power Domains' info\r
- * @name: Power Domain's Name\r
- * @cur_volt: Power Domain's Current Voltage\r
- * @pd_status: Power Domain's status\r
- * @vd: Voltage Domain the power domain belongs to\r
- * @pd_clk: Look power domain as a clock\r
- * @node: List node to Voltage Domain\r
- * @clk_list: Head of Power Domain's Clocks List\r
- */\r
-struct pd_node {\r
- char *name;\r
- int cur_volt;\r
- unsigned char pd_status;\r
- struct vd_node *vd;\r
- //struct clk *pd_clk;\r
- struct list_head node;\r
- struct list_head clk_list;\r
-};\r
-\r
-struct pd_node_lookup {\r
- struct pd_node *pd;\r
-};\r
-\r
-struct clk_list{\r
- struct clk_node *dvfs_clk;\r
- struct list_head node;\r
-};\r
-\r
-struct pds_list {\r
- struct clk_list clk_list;\r
- struct pd_node *pd;\r
-};\r
-\r
-struct depend_list {\r
- int req_volt;\r
- struct clk_node *dvfs_clk;\r
- struct vd_node *dep_vd;\r
- struct list_head node2clk;\r
- struct list_head node2vd;\r
- struct cpufreq_frequency_table *dep_table;\r
-};\r
-\r
-struct depend_lookup {\r
- char *clk_name;\r
- struct clk_node *dvfs_clk;\r
- struct vd_node *dep_vd;\r
- struct depend_list dep_list;\r
- struct cpufreq_frequency_table *dep_table;\r
-};\r
-\r
-/**\r
- * struct clk_node: To Store All dvfs clocks' info\r
- * @name: Dvfs clock's Name\r
- * @set_freq: Dvfs clock's Current Frequency\r
- * @set_volt: Dvfs clock's Current Voltage\r
- * @enable_dvfs: Sign if DVFS clock enable\r
- * @clk: System clk's point\r
- * @pds: Power Domains dvfs clock belongs to\r
- * @vd: Voltage Domains dvfs clock belongs to\r
- * @depend_list: Dvfs Clock depend list\r
- * @dvfs_nb: Notify list\r
- * @dvfs_table: Frequency and voltage table for dvfs\r
- * @clk_dvfs_target: Callback function\r
- */\r
-struct clk_node {\r
- char *name;\r
- int set_freq; //KHZ\r
- int set_volt; //MV\r
- int enable_dvfs;\r
- int freq_limit_en; //sign if use limit frequency\r
- unsigned int min_rate; //limit min frequency\r
- unsigned int max_rate; //limit max frequency\r
- struct clk *clk;\r
- struct pds_list *pds;\r
- struct vd_node *vd;\r
- struct list_head depend_list;\r
- struct notifier_block *dvfs_nb;\r
- struct cpufreq_frequency_table *dvfs_table;\r
- clk_dvfs_target_callback clk_dvfs_target;\r
-};\r
-\r
-struct dvfs_arm_table {\r
- unsigned int frequency; /* kHz - doesn't need to be in ascending\r
- * order */\r
- unsigned int cpu_volt; /* any */\r
-\r
- unsigned int logic_volt;\r
-};\r
-\r
-#ifdef CONFIG_DVFS\r
-int rk30_dvfs_init(void);\r
-int is_support_dvfs(struct clk_node *dvfs_info);\r
-int dvfs_set_rate(struct clk *clk, unsigned long rate);\r
-int clk_enable_dvfs(struct clk *clk);\r
-int clk_disable_dvfs(struct clk *clk);\r
-void dvfs_clk_register_set_rate_callback(struct clk *clk, clk_dvfs_target_callback clk_dvfs_target);\r
-struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct clk *clk);\r
-int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table);\r
-int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table);\r
-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);\r
-struct regulator* dvfs_get_regulator(char *regulator_name);\r
-int dvfs_clk_enable_limit(struct clk *clk, unsigned int min_rate, unsigned max_rate);\r
-int dvfs_clk_disable_limit(struct clk *clk);\r
-\r
-void avs_init(void);\r
-void avs_init_val_get(int index,int vol,char *s);\r
-int avs_set_scal_val(u8 avs_base);\r
-int dvfs_avs_scale_table(struct clk* clk, char* depend_vd_name);\r
-#else\r
-static inline int rk30_dvfs_init(void) { return 0; }\r
-static inline int is_support_dvfs(struct clk_node *dvfs_info) { return 0; }\r
-static inline int dvfs_set_rate(struct clk *clk, unsigned long rate) { return 0; }\r
-static inline int clk_enable_dvfs(struct clk *clk) { return 0; }\r
-static inline int clk_disable_dvfs(struct clk *clk) { return 0; }\r
-static inline void dvfs_clk_register_set_rate_callback(struct clk *clk, clk_dvfs_target_callback clk_dvfs_target) {}\r
-static inline struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct clk *clk) { return NULL; }\r
-static inline int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table) { return 0; }\r
-static inline int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table) {return 0;}\r
-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; }\r
-static inline struct regulator* dvfs_get_regulator(char *regulator_name){ return NULL; }\r
-static inline int dvfs_clk_enable_limit(struct clk *clk, unsigned int min_rate, unsigned max_rate){ return 0; }\r
-static inline int dvfs_clk_disable_limit(struct clk *clk){ return 0; };\r
-\r
-static inline void avs_init(void){};\r
-static inline void avs_init_val_get(int index, int vol, char *s){};\r
-static inline int avs_set_scal_val(u8 avs_base){ return 0; };\r
-static inline int dvfs_avs_scale_table(struct clk* clk, char* depend_vd_name){ return 0; };\r
-#endif\r
-\r
-#endif\r
+#include <plat/dvfs.h>
--- /dev/null
+/* arch/arm/mach-rk30/rk30_dvfs.h\r
+ *\r
+ * Copyright (C) 2012 ROCKCHIP, Inc.\r
+ *\r
+ * This software is licensed under the terms of the GNU General Public\r
+ * License version 2, as published by the Free Software Foundation, and\r
+ * may be copied, distributed, and modified under those terms.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ */\r
+#ifndef _RK30_DVFS_H_\r
+#define _RK30_DVFS_H_\r
+\r
+#include <mach/clock.h>\r
+\r
+typedef int (*vd_dvfs_target_callback)(struct clk *clk, unsigned long rate);\r
+\r
+typedef int (*dvfs_set_rate_callback)(struct clk *clk, unsigned long rate);\r
+\r
+typedef int (*clk_dvfs_target_callback)(struct clk *clk, unsigned long rate,\r
+ dvfs_set_rate_callback set_rate);\r
+\r
+/**\r
+ * struct vd_node: To Store All Voltage Domains' info\r
+ * @name: Voltage Domain's Name\r
+ * @regulator_name: Voltage domain's regulator name\r
+ * @cur_volt: Voltage Domain's Current Voltage\r
+ * @regulator: Voltage Domain's regulator point\r
+ * @node: Point of he Voltage Domain List Node\r
+ * @pd_list: Head of Power Domain List Belongs to This Voltage Domain\r
+ * @req_volt_list: The list of clocks requests\r
+ * @dvfs_mutex: Lock\r
+ * @vd_dvfs_target: Callback function \r
+ */\r
+\r
+struct vd_node {\r
+ char *name;\r
+ char *regulator_name;\r
+ int cur_volt;\r
+ int volt_set_flag;\r
+ struct regulator *regulator;\r
+ struct list_head node;\r
+ struct list_head pd_list;\r
+ struct list_head req_volt_list;\r
+ //struct mutex dvfs_mutex;\r
+ vd_dvfs_target_callback vd_dvfs_target;\r
+};\r
+\r
+/**\r
+ * struct pd_node: To Store All Power Domains' info\r
+ * @name: Power Domain's Name\r
+ * @cur_volt: Power Domain's Current Voltage\r
+ * @pd_status: Power Domain's status\r
+ * @vd: Voltage Domain the power domain belongs to\r
+ * @pd_clk: Look power domain as a clock\r
+ * @node: List node to Voltage Domain\r
+ * @clk_list: Head of Power Domain's Clocks List\r
+ */\r
+struct pd_node {\r
+ char *name;\r
+ int cur_volt;\r
+ unsigned char pd_status;\r
+ struct vd_node *vd;\r
+ //struct clk *pd_clk;\r
+ struct list_head node;\r
+ struct list_head clk_list;\r
+};\r
+\r
+struct pd_node_lookup {\r
+ struct pd_node *pd;\r
+};\r
+\r
+struct clk_list{\r
+ struct clk_node *dvfs_clk;\r
+ struct list_head node;\r
+};\r
+\r
+struct pds_list {\r
+ struct clk_list clk_list;\r
+ struct pd_node *pd;\r
+};\r
+\r
+struct depend_list {\r
+ int req_volt;\r
+ struct clk_node *dvfs_clk;\r
+ struct vd_node *dep_vd;\r
+ struct list_head node2clk;\r
+ struct list_head node2vd;\r
+ struct cpufreq_frequency_table *dep_table;\r
+};\r
+\r
+struct depend_lookup {\r
+ char *clk_name;\r
+ struct clk_node *dvfs_clk;\r
+ struct vd_node *dep_vd;\r
+ struct depend_list dep_list;\r
+ struct cpufreq_frequency_table *dep_table;\r
+};\r
+\r
+/**\r
+ * struct clk_node: To Store All dvfs clocks' info\r
+ * @name: Dvfs clock's Name\r
+ * @set_freq: Dvfs clock's Current Frequency\r
+ * @set_volt: Dvfs clock's Current Voltage\r
+ * @enable_dvfs: Sign if DVFS clock enable\r
+ * @clk: System clk's point\r
+ * @pds: Power Domains dvfs clock belongs to\r
+ * @vd: Voltage Domains dvfs clock belongs to\r
+ * @depend_list: Dvfs Clock depend list\r
+ * @dvfs_nb: Notify list\r
+ * @dvfs_table: Frequency and voltage table for dvfs\r
+ * @clk_dvfs_target: Callback function\r
+ */\r
+struct clk_node {\r
+ char *name;\r
+ int set_freq; //KHZ\r
+ int set_volt; //MV\r
+ int enable_dvfs;\r
+ int freq_limit_en; //sign if use limit frequency\r
+ unsigned int min_rate; //limit min frequency\r
+ unsigned int max_rate; //limit max frequency\r
+ struct clk *clk;\r
+ struct pds_list *pds;\r
+ struct vd_node *vd;\r
+ struct list_head depend_list;\r
+ struct notifier_block *dvfs_nb;\r
+ struct cpufreq_frequency_table *dvfs_table;\r
+ clk_dvfs_target_callback clk_dvfs_target;\r
+};\r
+\r
+struct dvfs_arm_table {\r
+ unsigned int frequency; /* kHz - doesn't need to be in ascending\r
+ * order */\r
+ unsigned int cpu_volt; /* any */\r
+\r
+ unsigned int logic_volt;\r
+};\r
+\r
+#ifdef CONFIG_DVFS\r
+int rk30_dvfs_init(void);\r
+int is_support_dvfs(struct clk_node *dvfs_info);\r
+int dvfs_set_rate(struct clk *clk, unsigned long rate);\r
+int clk_enable_dvfs(struct clk *clk);\r
+int clk_disable_dvfs(struct clk *clk);\r
+void dvfs_clk_register_set_rate_callback(struct clk *clk, clk_dvfs_target_callback clk_dvfs_target);\r
+struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct clk *clk);\r
+int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table);\r
+int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table);\r
+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);\r
+struct regulator* dvfs_get_regulator(char *regulator_name);\r
+int dvfs_clk_enable_limit(struct clk *clk, unsigned int min_rate, unsigned max_rate);\r
+int dvfs_clk_disable_limit(struct clk *clk);\r
+\r
+void avs_init(void);\r
+void avs_init_val_get(int index,int vol,char *s);\r
+int avs_set_scal_val(u8 avs_base);\r
+int dvfs_avs_scale_table(struct clk* clk, char* depend_vd_name);\r
+#else\r
+static inline int rk30_dvfs_init(void) { return 0; }\r
+static inline int is_support_dvfs(struct clk_node *dvfs_info) { return 0; }\r
+static inline int dvfs_set_rate(struct clk *clk, unsigned long rate) { return 0; }\r
+static inline int clk_enable_dvfs(struct clk *clk) { return 0; }\r
+static inline int clk_disable_dvfs(struct clk *clk) { return 0; }\r
+static inline void dvfs_clk_register_set_rate_callback(struct clk *clk, clk_dvfs_target_callback clk_dvfs_target) {}\r
+static inline struct cpufreq_frequency_table *dvfs_get_freq_volt_table(struct clk *clk) { return NULL; }\r
+static inline int dvfs_set_freq_volt_table(struct clk *clk, struct cpufreq_frequency_table *table) { return 0; }\r
+static inline int dvfs_set_depend_table(struct clk *clk, char *vd_name, struct cpufreq_frequency_table *table) {return 0;}\r
+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; }\r
+static inline struct regulator* dvfs_get_regulator(char *regulator_name){ return NULL; }\r
+static inline int dvfs_clk_enable_limit(struct clk *clk, unsigned int min_rate, unsigned max_rate){ return 0; }\r
+static inline int dvfs_clk_disable_limit(struct clk *clk){ return 0; };\r
+\r
+static inline void avs_init(void){};\r
+static inline void avs_init_val_get(int index, int vol, char *s){};\r
+static inline int avs_set_scal_val(u8 avs_base){ return 0; };\r
+static inline int dvfs_avs_scale_table(struct clk* clk, char* depend_vd_name){ return 0; };\r
+#endif\r
+\r
+#endif\r