diff options
author | Tom Rix <Tom.Rix@windriver.com> | 2009-06-28 12:52:31 -0500 |
---|---|---|
committer | Heiko Schocher <hs@denx.de> | 2009-07-29 09:57:43 +0200 |
commit | fccc0fcaaae5154612f8259365d26d04f204859f (patch) | |
tree | 0f051f39d20bd514f989d51061f34ffe1cc5e5ff | |
parent | 2c15513010493435c78f83202940ac3be11de2c3 (diff) | |
download | u-boot-imx-fccc0fcaaae5154612f8259365d26d04f204859f.zip u-boot-imx-fccc0fcaaae5154612f8259365d26d04f204859f.tar.gz u-boot-imx-fccc0fcaaae5154612f8259365d26d04f204859f.tar.bz2 |
OMAP3 Move twl4030 mmc function
Because twl4030 now has its own device files, move and rename
twl4030_mmc_config.
twl4030_mmc_config initializes the twl4030 power setting to
the mmc device. Because it is in the twl4030 power domain, move
it out of drivers/mmc/omap3_mmc.c and into drivers/power/twl4030.c.
The function was renamed to twl4030_power_mmc_init because all
the functions in this file are to have the format
twl4030_power_<device>_<action>
In this case the suffix is mmc_init so
device : mmc
action : init
Signed-off-by: Tom Rix <Tom.Rix@windriver.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Heiko Schocher <hs@denx.de>
-rw-r--r-- | drivers/mmc/omap3_mmc.c | 13 | ||||
-rw-r--r-- | drivers/power/twl4030.c | 15 | ||||
-rw-r--r-- | include/configs/omap3_evm.h | 5 | ||||
-rw-r--r-- | include/twl4030.h | 3 |
4 files changed, 25 insertions, 11 deletions
diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c index e90db7e..9e09434 100644 --- a/drivers/mmc/omap3_mmc.c +++ b/drivers/mmc/omap3_mmc.c @@ -28,6 +28,7 @@ #include <mmc.h> #include <part.h> #include <i2c.h> +#include <twl4030.h> #include <asm/io.h> #include <asm/arch/mmc.h> @@ -58,21 +59,11 @@ block_dev_desc_t *mmc_get_dev(int dev) return (block_dev_desc_t *) &mmc_blk_dev; } -void twl4030_mmc_config(void) -{ - unsigned char data; - - data = DEV_GRP_P1; - i2c_write(PWRMGT_ADDR_ID4, VMMC1_DEV_GRP, 1, &data, 1); - data = VMMC1_VSEL_30; - i2c_write(PWRMGT_ADDR_ID4, VMMC1_DEDICATED, 1, &data, 1); -} - unsigned char mmc_board_init(void) { t2_t *t2_base = (t2_t *)T2_BASE; - twl4030_mmc_config(); + twl4030_power_mmc_init(); writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 | PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0, diff --git a/drivers/power/twl4030.c b/drivers/power/twl4030.c index c93b51f..eb066cb 100644 --- a/drivers/power/twl4030.c +++ b/drivers/power/twl4030.c @@ -98,3 +98,18 @@ void twl4030_power_init(void) TWL4030_PM_RECEIVER_VDAC_DEDICATED); } +#define VMMC1_VSEL_30 0x02 + +void twl4030_power_mmc_init(void) +{ + unsigned char byte; + + byte = DEV_GRP_P1; + twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, + TWL4030_PM_RECEIVER_VMMC1_DEV_GRP); + + /* 3 Volts */ + byte = VMMC1_VSEL_30; + twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, + TWL4030_PM_RECEIVER_VMMC1_DEDICATED); +} diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index 3d9d72c..809198b 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -128,6 +128,11 @@ #define CONFIG_DRIVER_OMAP34XX_I2C 1 /* + * TWL4030 + */ +#define CONFIG_TWL4030_POWER 1 + +/* * Board NAND Info. */ #define CONFIG_SYS_NAND_ADDR NAND_BASE /* physical address */ diff --git a/include/twl4030.h b/include/twl4030.h index eb27ec5..f260ecb 100644 --- a/include/twl4030.h +++ b/include/twl4030.h @@ -390,6 +390,9 @@ static inline int twl4030_i2c_read_u8(u8 chip_no, u8 *val, u8 reg) void twl4030_power_reset_init(void); /* For initializing power device */ void twl4030_power_init(void); +/* For initializing mmc power */ +void twl4030_power_mmc_init(void); + /* * LED */ |