Commit fccc0fca authored by Tom Rix's avatar Tom Rix Committed by Heiko Schocher
Browse files

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: default avatarTom Rix <Tom.Rix@windriver.com>
Acked-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: default avatarHeiko Schocher <hs@denx.de>
parent 2c155130
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <mmc.h> #include <mmc.h>
#include <part.h> #include <part.h>
#include <i2c.h> #include <i2c.h>
#include <twl4030.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/arch/mmc.h> #include <asm/arch/mmc.h>
...@@ -58,21 +59,11 @@ block_dev_desc_t *mmc_get_dev(int dev) ...@@ -58,21 +59,11 @@ block_dev_desc_t *mmc_get_dev(int dev)
return (block_dev_desc_t *) &mmc_blk_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) unsigned char mmc_board_init(void)
{ {
t2_t *t2_base = (t2_t *)T2_BASE; t2_t *t2_base = (t2_t *)T2_BASE;
twl4030_mmc_config(); twl4030_power_mmc_init();
writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 | writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 |
PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0, PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0,
......
...@@ -98,3 +98,18 @@ void twl4030_power_init(void) ...@@ -98,3 +98,18 @@ void twl4030_power_init(void)
TWL4030_PM_RECEIVER_VDAC_DEDICATED); 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);
}
...@@ -127,6 +127,11 @@ ...@@ -127,6 +127,11 @@
#define CONFIG_SYS_I2C_BUS_SELECT 1 #define CONFIG_SYS_I2C_BUS_SELECT 1
#define CONFIG_DRIVER_OMAP34XX_I2C 1 #define CONFIG_DRIVER_OMAP34XX_I2C 1
/*
* TWL4030
*/
#define CONFIG_TWL4030_POWER 1
/* /*
* Board NAND Info. * Board NAND Info.
*/ */
......
...@@ -390,6 +390,9 @@ static inline int twl4030_i2c_read_u8(u8 chip_no, u8 *val, u8 reg) ...@@ -390,6 +390,9 @@ static inline int twl4030_i2c_read_u8(u8 chip_no, u8 *val, u8 reg)
void twl4030_power_reset_init(void); void twl4030_power_reset_init(void);
/* For initializing power device */ /* For initializing power device */
void twl4030_power_init(void); void twl4030_power_init(void);
/* For initializing mmc power */
void twl4030_power_mmc_init(void);
/* /*
* LED * LED
*/ */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment