From 9c719b5a39e53162f42d6848a83a4706f5cca124 Mon Sep 17 00:00:00 2001 From: "lw@rock-chips.com" Date: Thu, 19 Apr 2012 19:46:15 +0800 Subject: [PATCH] rk30_phone:add cpu_dvfs_table control,need modify hardware --- arch/arm/configs/rk30_phone_defconfig | 7 +++++++ arch/arm/mach-rk30/board-rk30-phone.c | 18 ++++++++++++++++++ drivers/regulator/rk30-pwm-regulator.c | 3 +-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/arch/arm/configs/rk30_phone_defconfig b/arch/arm/configs/rk30_phone_defconfig index da3fb1778344..559cdca7a0b8 100755 --- a/arch/arm/configs/rk30_phone_defconfig +++ b/arch/arm/configs/rk30_phone_defconfig @@ -43,6 +43,12 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init" +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_IDLE=y CONFIG_VFP=y CONFIG_NEON=y @@ -264,6 +270,7 @@ CONFIG_MFD_WM8994=y CONFIG_REGULATOR=y CONFIG_REGULATOR_WM831X=y CONFIG_REGULATOR_WM8994=y +CONFIG_RK30_PWM_REGULATOR=y CONFIG_MEDIA_SUPPORT=y CONFIG_VIDEO_DEV=y CONFIG_SOC_CAMERA=y diff --git a/arch/arm/mach-rk30/board-rk30-phone.c b/arch/arm/mach-rk30/board-rk30-phone.c index c7cbe28ab445..3ee16e1ebff8 100755 --- a/arch/arm/mach-rk30/board-rk30-phone.c +++ b/arch/arm/mach-rk30/board-rk30-phone.c @@ -24,6 +24,9 @@ #include #include #include +#include +#include +#include #include #include @@ -1864,9 +1867,24 @@ static void __init rk30_reserve(void) board_mem_reserved(); } +static struct cpufreq_frequency_table cpu_dvfs_table[] = { + //{.frequency = 126*1000, .index = 980*1000}, + //{.frequency = 252*1000, .index = 980*1000}, + //{.frequency = 504*1000, .index = 980*1000}, + {.frequency = 816*1000, .index = 1050*1000}, + //{.frequency = 1008*1000,.index = 1150*1000}, + //{.frequency = 1200*1000,.index = 1250*1000}, + //{.frequency = 1416*1000,.index = 1280*1000}, + //{.frequency = 1512*1000,.index = 1320*1000}, + //{.frequency = 1560*1000,.index = 1350*1000}, + //{.frequency = 1608*1000,.index = 1350*1000}, + {.frequency = CPUFREQ_TABLE_END}, +}; + void __init board_clock_init(void) { rk30_clock_data_init(periph_pll_297mhz, codec_pll_360mhz, max_i2s_12288khz); + dvfs_set_freq_volt_table(clk_get(NULL, "cpu"), cpu_dvfs_table); } MACHINE_START(RK30, "RK30board") diff --git a/drivers/regulator/rk30-pwm-regulator.c b/drivers/regulator/rk30-pwm-regulator.c index 2a7439d10d76..07129971460e 100755 --- a/drivers/regulator/rk30-pwm-regulator.c +++ b/drivers/regulator/rk30-pwm-regulator.c @@ -38,7 +38,7 @@ REVISION 0.01 #include -#if 1 +#if 0 #define DBG(x...) printk(KERN_INFO x) #else #define DBG(x...) @@ -132,7 +132,6 @@ static int pwm_set_rate(struct pwm_platform_data *pdata,int nHz,u32 rate) static int pwm_regulator_list_voltage(struct regulator_dev *dev,unsigned int index) { - DBG("Enter %s, index =%d\n",__FUNCTION__,index); if (index < sizeof(pwm_voltage_map)/sizeof(int)) return pwm_voltage_map[index]; else -- 2.34.1