From 70f3a45210fd9489903d9f03a31c7c2a46a5a63d Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=AE=8B=E7=A7=80=E6=9D=B0?= Date: Tue, 5 Jul 2011 00:07:38 -0700 Subject: [PATCH] A22: add working power management function --- arch/arm/configs/rk29_a22_defconfig | 1 + arch/arm/mach-rk29/Kconfig | 6 ++++++ arch/arm/mach-rk29/board-rk29-a22.c | 6 ++++++ arch/arm/mach-rk29/spi_sram.c | 8 ++++++-- 4 files changed, 19 insertions(+), 2 deletions(-) mode change 100644 => 100755 arch/arm/configs/rk29_a22_defconfig diff --git a/arch/arm/configs/rk29_a22_defconfig b/arch/arm/configs/rk29_a22_defconfig old mode 100644 new mode 100755 index 46579c76b262..e50c6addfce5 --- a/arch/arm/configs/rk29_a22_defconfig +++ b/arch/arm/configs/rk29_a22_defconfig @@ -244,6 +244,7 @@ CONFIG_RK29_LAST_LOG=y # # support for RK29 power manage # +CONFIG_RK29_WORKING_POWER_MANAGEMENT=y CONFIG_RK29_CLK_SWITCH_TO_32K=y CONFIG_RK29_GPIO_SUSPEND=y CONFIG_RK29_SPI_INSRAM=y diff --git a/arch/arm/mach-rk29/Kconfig b/arch/arm/mach-rk29/Kconfig index 37efd90fb2c1..43551408017b 100755 --- a/arch/arm/mach-rk29/Kconfig +++ b/arch/arm/mach-rk29/Kconfig @@ -205,6 +205,12 @@ config RK29_LAST_LOG It is only intended for debugging. menu "support for RK29 power manage " +config RK29_WORKING_POWER_MANAGEMENT + bool "Support power saving in working" + default n + help + a series of measures to reduce working power + config RK29_CLK_SWITCH_TO_32K bool "Support clock switch to 32.768k" default n diff --git a/arch/arm/mach-rk29/board-rk29-a22.c b/arch/arm/mach-rk29/board-rk29-a22.c index 4951b1c68cfe..455836f61f87 100755 --- a/arch/arm/mach-rk29/board-rk29-a22.c +++ b/arch/arm/mach-rk29/board-rk29-a22.c @@ -2592,8 +2592,14 @@ static void __init rk29_board_iomux_init(void) return -1; } //phy power down + + #if defined (CONFIG_RK29_WORKING_POWER_MANAGEMENT) gpio_direction_output(RK29_PIN4_PC0, GPIO_HIGH); gpio_set_value(RK29_PIN4_PC0, GPIO_HIGH); + #else + gpio_direction_output(RK29_PIN4_PC0, GPIO_LOW); + gpio_set_value(RK29_PIN4_PC0, GPIO_LOW); + #endif rk29_mux_api_set(GPIO4C5_RMIICSRDVALID_MIIRXDVALID_NAME,GPIO4H_GPIO4C5); diff --git a/arch/arm/mach-rk29/spi_sram.c b/arch/arm/mach-rk29/spi_sram.c index c9a55429d084..55df65f26d1e 100755 --- a/arch/arm/mach-rk29/spi_sram.c +++ b/arch/arm/mach-rk29/spi_sram.c @@ -549,7 +549,9 @@ void __sramfunc pm_clk_switch_32k(void) int vol; sram_printch('7'); - #ifndef CONFIG_MACH_RK29_A22 + #if defined (CONFIG_RK29_WORKING_POWER_MANAGEMENT) + //not code in here + #else pm_gpio_out_high(RK29_PIN4_PC0); #endif sram_delay_loop(30); @@ -569,7 +571,9 @@ void __sramfunc pm_clk_switch_32k(void) sram_udelay(1000,24); cru_writel(crumode, CRU_MODE_CON); //externel clk 24M - #ifndef CONFIG_MACH_RK29_A22 + #if defined (CONFIG_RK29_WORKING_POWER_MANAGEMENT) + //not code in here + #else pm_gpio_out_low(RK29_PIN4_PC0); //enable 27M #endif sram_udelay(1000,27); -- 2.34.1