summaryrefslogtreecommitdiff
path: root/drivers/mtd/rknand
diff options
context:
space:
mode:
authorzhaoyifeng <zyf@rock-chips.com>2011-06-28 20:54:52 +0800
committerzhaoyifeng <zyf@rock-chips.com>2011-06-28 20:54:52 +0800
commitb8f4f1e8a1b1c43f430561ac5a93a2fb9cbbc8ca (patch)
treea85fbbd0a94c227f1e97e4456b1fc33f8cee9ba8 /drivers/mtd/rknand
parent1845e22435406abcb469fae7e3982148c96bb842 (diff)
add emmc clk power save config.
Diffstat (limited to 'drivers/mtd/rknand')
-rwxr-xr-xdrivers/mtd/rknand/Kconfig6
-rwxr-xr-xdrivers/mtd/rknand/nand_config.h3
-rwxr-xr-xdrivers/mtd/rknand/rknand_base.h2
-rwxr-xr-xdrivers/mtd/rknand/rknand_base_ko.c6
4 files changed, 16 insertions, 1 deletions
diff --git a/drivers/mtd/rknand/Kconfig b/drivers/mtd/rknand/Kconfig
index a3a99d9e956a..58e91664a6e6 100755
--- a/drivers/mtd/rknand/Kconfig
+++ b/drivers/mtd/rknand/Kconfig
@@ -22,6 +22,12 @@ config MTD_RKNAND_BUFFER
depends on MTD_RKNAND
default y
help
+
+config MTD_EMMC_CLK_POWER_SAVE
+ tristate "RK29 emmc clock power save"
+ depends on MTD_RKNAND
+ default n
+ help
config MTD_NAND_RK29XX_DEBUG
tristate "RK29 Nand driver debug enables"
diff --git a/drivers/mtd/rknand/nand_config.h b/drivers/mtd/rknand/nand_config.h
index ab19472d40e3..ecdb030d97b0 100755
--- a/drivers/mtd/rknand/nand_config.h
+++ b/drivers/mtd/rknand/nand_config.h
@@ -62,6 +62,9 @@ extern void rkNand_cond_resched(void);
#define COND_RESCHED() rkNand_cond_resched()//cond_resched()
+extern unsigned long rk_dma_mem_alloc(int size);
+extern unsigned long rk_dma_mem_free(unsigned long buf);
+
#define PRINTF RKNAND_DEBUG
#endif
diff --git a/drivers/mtd/rknand/rknand_base.h b/drivers/mtd/rknand/rknand_base.h
index 2bc4f7aa32b6..a22d22df3330 100755
--- a/drivers/mtd/rknand/rknand_base.h
+++ b/drivers/mtd/rknand/rknand_base.h
@@ -66,6 +66,8 @@ struct rknand_info {
int (*GetIdBlockSysData)(char * buf, int Sector);
char (*GetSNSectorInfo)(char * pbuf);
char (*GetChipSectorInfo)(char * pbuf);
+ int emmc_clk_power_save_en;
+ int reserved[20];
};
extern int rknand_queue_read(int Index, int nSec, void *buf);
diff --git a/drivers/mtd/rknand/rknand_base_ko.c b/drivers/mtd/rknand/rknand_base_ko.c
index 7ee13b22fa93..74d486e31e2c 100755
--- a/drivers/mtd/rknand/rknand_base_ko.c
+++ b/drivers/mtd/rknand/rknand_base_ko.c
@@ -334,7 +334,11 @@ static int rknand_probe(struct platform_device *pdev)
gpNandInfo->bufSize = MAX_BUFFER_SIZE * 512;
gpNandInfo->pbuf = grknand_buf;
-
+
+#ifdef CONFIG_MTD_EMMC_CLK_POWER_SAVE
+ gpNandInfo->emmc_clk_power_save_en = 1;
+#endif
+
rknand_mtd.name = dev_name(&pdev->dev);
rknand_mtd.priv = &nand_info->rknand;
rknand_mtd.owner = THIS_MODULE;