From: chenxing <chenxing@rock-chips.com>
Date: Wed, 17 Oct 2012 03:39:50 +0000 (+0800)
Subject: rk3066b: update rk3066b dvfs table, add rk3066b voltage differential limit
X-Git-Tag: firefly_0821_release~8396
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=90e4ae25c9b77a400be4feefe8c7e37eca7f1a5e;p=firefly-linux-kernel-4.4.55.git

rk3066b: update rk3066b dvfs table, add rk3066b voltage differential limit
---

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)