summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/cpu_op-mx6.c
diff options
context:
space:
mode:
authorRanjani Vaidyanathan <ra5478@freescale.com>2011-10-07 12:35:29 -0500
committerJason Liu <r64343@freescale.com>2012-07-20 13:16:25 +0800
commit6507aecfc987acae2c9edc70ffa1d599280ee63f (patch)
tree0c5380ddd9586263b4eabc1b2e26f1c1aa71b0b9 /arch/arm/mach-mx6/cpu_op-mx6.c
parent85b2268bac6ddccce76ca9e6cab07e814dcb6bea (diff)
ENGR00159641: MX6-Add DVFS-CORE support
Add DVFS-CORE support for MX6 quad/dual SOC. Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx6/cpu_op-mx6.c')
-rw-r--r--arch/arm/mach-mx6/cpu_op-mx6.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/arch/arm/mach-mx6/cpu_op-mx6.c b/arch/arm/mach-mx6/cpu_op-mx6.c
index ae3bff98bdde..51bc917f86cc 100644
--- a/arch/arm/mach-mx6/cpu_op-mx6.c
+++ b/arch/arm/mach-mx6/cpu_op-mx6.c
@@ -12,10 +12,12 @@
*/
#include <linux/types.h>
-#include <mach/hardware.h>
#include <linux/kernel.h>
+#include <mach/hardware.h>
+#include <mach/mxc_dvfs.h>
extern struct cpu_op *(*get_cpu_op)(int *op);
+extern struct dvfs_op *(*get_dvfs_core_op)(int *wp);
extern void (*set_num_cpu_op)(int num);
static int num_cpu_op;
@@ -51,6 +53,18 @@ static struct cpu_op mx6_cpu_op[] = {
.cpu_voltage = 900000,},
};
+static struct dvfs_op dvfs_core_setpoint[] = {
+ {33, 14, 33, 10, 10, 0x08}, /* 1GHz*/
+ {30, 12, 33, 10, 10, 0x08}, /* 800MHz */
+ {28, 8, 33, 10, 10, 0x08}, /* 400MHz */
+ {20, 0, 33, 20, 10, 0x08} }; /* 167MHz*/
+
+static struct dvfs_op *mx6_get_dvfs_core_table(int *wp)
+{
+ *wp = ARRAY_SIZE(dvfs_core_setpoint);
+ return dvfs_core_setpoint;
+}
+
struct cpu_op *mx6_get_cpu_op(int *op)
{
*op = num_cpu_op;
@@ -69,5 +83,6 @@ void mx6_cpu_op_init(void)
set_num_cpu_op = mx6_set_num_cpu_op;
num_cpu_op = ARRAY_SIZE(mx6_cpu_op);
+ get_dvfs_core_op = mx6_get_dvfs_core_table;
}