From 90e4ae25c9b77a400be4feefe8c7e37eca7f1a5e Mon Sep 17 00:00:00 2001 From: chenxing Date: Wed, 17 Oct 2012 11:39:50 +0800 Subject: [PATCH] rk3066b: update rk3066b dvfs table, add rk3066b voltage differential limit --- arch/arm/mach-rk30/board-rk3066b-sdk.c | 32 ++++++++++++-------------- arch/arm/mach-rk30/dvfs.c | 5 ++++ 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/arch/arm/mach-rk30/board-rk3066b-sdk.c b/arch/arm/mach-rk30/board-rk3066b-sdk.c index 42abb708690c..4cf5f01308a9 100755 --- a/arch/arm/mach-rk30/board-rk3066b-sdk.c +++ b/arch/arm/mach-rk30/board-rk3066b-sdk.c @@ -1577,33 +1577,31 @@ static void __init rk30_reserve(void) * comments : min arm/logic voltage */ static struct dvfs_arm_table dvfs_cpu_logic_table[] = { - {.frequency = 252 * 1000, .cpu_volt = 1000 * 1000, .logic_volt = 1000 * 1000}, - {.frequency = 504 * 1000, .cpu_volt = 1000 * 1000, .logic_volt = 1000 * 1000}, - {.frequency = 816 * 1000, .cpu_volt = 1000 * 1000, .logic_volt = 1000 * 1000}, - {.frequency = 1008 * 1000, .cpu_volt = 1000 * 1000, .logic_volt = 1000 * 1000}, - {.frequency = 1200 * 1000, .cpu_volt = 1000 * 1000, .logic_volt = 1000 * 1000}, -#if 0 - {.frequency = 1272 * 1000, .cpu_volt = 1225 * 1000, .logic_volt = 1200 * 1000}, - {.frequency = 1416 * 1000, .cpu_volt = 1300 * 1000, .logic_volt = 1200 * 1000}, - {.frequency = 1512 * 1000, .cpu_volt = 1350 * 1000, .logic_volt = 1250 * 1000}, - {.frequency = 1608 * 1000, .cpu_volt = 1425 * 1000, .logic_volt = 1300 * 1000}, -#endif + {.frequency = 312 * 1000, .cpu_volt = 750 * 1000, .logic_volt = 900 * 1000}, + {.frequency = 504 * 1000, .cpu_volt = 800 * 1000, .logic_volt = 900 * 1000}, + {.frequency = 816 * 1000, .cpu_volt = 850 * 1000, .logic_volt = 900 * 1000}, + {.frequency = 1008 * 1000, .cpu_volt = 925 * 1000, .logic_volt = 900 * 1000}, + {.frequency = 1200 * 1000, .cpu_volt = 1000 * 1000, .logic_volt = 950 * 1000}, + {.frequency = 1416 * 1000, .cpu_volt = 1100 * 1000, .logic_volt = 1050 * 1000}, + {.frequency = 1608 * 1000, .cpu_volt = 1200 * 1000, .logic_volt = 1150 * 1000}, {.frequency = CPUFREQ_TABLE_END}, }; static struct cpufreq_frequency_table dvfs_gpu_table[] = { - {.frequency = 266 * 1000, .index = 1000 * 1000}, - {.frequency = 400 * 1000, .index = 1000 * 1000}, - {.frequency = 600 * 1000, .index = 1200 * 1000}, + {.frequency = 100 * 1000, .index = 900 * 1000}, + {.frequency = 200 * 1000, .index = 900 * 1000}, + {.frequency = 266 * 1000, .index = 900 * 1000}, + {.frequency = 300 * 1000, .index = 900 * 1000}, + {.frequency = 400 * 1000, .index = 950 * 1000}, + {.frequency = 600 * 1000, .index = 1100 * 1000}, {.frequency = CPUFREQ_TABLE_END}, }; static struct cpufreq_frequency_table dvfs_ddr_table[] = { - {.frequency = 300 * 1000, .index = 1000 * 1000}, - {.frequency = 400 * 1000, .index = 1000 * 1000}, + {.frequency = 300 * 1000, .index = 900 * 1000}, + {.frequency = 400 * 1000, .index = 950 * 1000}, {.frequency = CPUFREQ_TABLE_END}, }; - #define DVFS_CPU_TABLE_SIZE (ARRAY_SIZE(dvfs_cpu_logic_table)) static struct cpufreq_frequency_table cpu_dvfs_table[DVFS_CPU_TABLE_SIZE]; static struct cpufreq_frequency_table dep_cpu2core_table[DVFS_CPU_TABLE_SIZE]; diff --git a/arch/arm/mach-rk30/dvfs.c b/arch/arm/mach-rk30/dvfs.c index ebe038dd92cf..b47ca9df06d3 100755 --- a/arch/arm/mach-rk30/dvfs.c +++ b/arch/arm/mach-rk30/dvfs.c @@ -723,8 +723,13 @@ static int dvfs_set_depend_post(struct clk_node *dvfs_clk, unsigned long rate_ol } #endif +#ifdef CONFIG_ARCH_RK3066B +#define ARM_HIGHER_LOGIC (50 * 1000) +#define LOGIC_HIGHER_ARM (150 * 1000) +#else #define ARM_HIGHER_LOGIC (150 * 1000) #define LOGIC_HIGHER_ARM (100 * 1000) +#endif int check_volt_correct(int volt_old, int *volt_new, int volt_dep_old, int *volt_dep_new, int clk_biger_than_dep, int dep_biger_than_clk) -- 2.34.1