Commit 7715db5a authored by Kishore Kadiyala's avatar Kishore Kadiyala Committed by Tony Lindgren

OMAP: hsmmc: Enable MMC4 and MMC5 on OMAP4 platforms

OMAP4 supports up to 5 MMC controllers, but only 3 of these were
initialized. MMC5 is used by wl12xx chip. So initialize MMC4 and MMC5.
Signed-off-by: default avatarKishore Kadiyala <kishore.kadiyala@ti.com>
Signed-off-by: default avatarPanduranga Mallireddy <panduranga_mallireddy@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent b17e0979
...@@ -350,6 +350,11 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers) ...@@ -350,6 +350,11 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
mmc->slots[0].after_set_reg = NULL; mmc->slots[0].after_set_reg = NULL;
} }
break; break;
case 4:
case 5:
mmc->slots[0].before_set_reg = NULL;
mmc->slots[0].after_set_reg = NULL;
break;
default: default:
pr_err("MMC%d configuration not supported!\n", c->mmc); pr_err("MMC%d configuration not supported!\n", c->mmc);
kfree(mmc); kfree(mmc);
......
...@@ -260,7 +260,7 @@ static int omap_hsmmc_1_set_power(struct device *dev, int slot, int power_on, ...@@ -260,7 +260,7 @@ static int omap_hsmmc_1_set_power(struct device *dev, int slot, int power_on,
return ret; return ret;
} }
static int omap_hsmmc_23_set_power(struct device *dev, int slot, int power_on, static int omap_hsmmc_235_set_power(struct device *dev, int slot, int power_on,
int vdd) int vdd)
{ {
struct omap_hsmmc_host *host = struct omap_hsmmc_host *host =
...@@ -316,6 +316,12 @@ static int omap_hsmmc_23_set_power(struct device *dev, int slot, int power_on, ...@@ -316,6 +316,12 @@ static int omap_hsmmc_23_set_power(struct device *dev, int slot, int power_on,
return ret; return ret;
} }
static int omap_hsmmc_4_set_power(struct device *dev, int slot, int power_on,
int vdd)
{
return 0;
}
static int omap_hsmmc_1_set_sleep(struct device *dev, int slot, int sleep, static int omap_hsmmc_1_set_sleep(struct device *dev, int slot, int sleep,
int vdd, int cardsleep) int vdd, int cardsleep)
{ {
...@@ -326,7 +332,7 @@ static int omap_hsmmc_1_set_sleep(struct device *dev, int slot, int sleep, ...@@ -326,7 +332,7 @@ static int omap_hsmmc_1_set_sleep(struct device *dev, int slot, int sleep,
return regulator_set_mode(host->vcc, mode); return regulator_set_mode(host->vcc, mode);
} }
static int omap_hsmmc_23_set_sleep(struct device *dev, int slot, int sleep, static int omap_hsmmc_235_set_sleep(struct device *dev, int slot, int sleep,
int vdd, int cardsleep) int vdd, int cardsleep)
{ {
struct omap_hsmmc_host *host = struct omap_hsmmc_host *host =
...@@ -365,6 +371,12 @@ static int omap_hsmmc_23_set_sleep(struct device *dev, int slot, int sleep, ...@@ -365,6 +371,12 @@ static int omap_hsmmc_23_set_sleep(struct device *dev, int slot, int sleep,
return regulator_enable(host->vcc_aux); return regulator_enable(host->vcc_aux);
} }
static int omap_hsmmc_4_set_sleep(struct device *dev, int slot, int sleep,
int vdd, int cardsleep)
{
return 0;
}
static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host) static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
{ {
struct regulator *reg; struct regulator *reg;
...@@ -379,10 +391,14 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host) ...@@ -379,10 +391,14 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
break; break;
case OMAP_MMC2_DEVID: case OMAP_MMC2_DEVID:
case OMAP_MMC3_DEVID: case OMAP_MMC3_DEVID:
case OMAP_MMC5_DEVID:
/* Off-chip level shifting, or none */ /* Off-chip level shifting, or none */
mmc_slot(host).set_power = omap_hsmmc_23_set_power; mmc_slot(host).set_power = omap_hsmmc_235_set_power;
mmc_slot(host).set_sleep = omap_hsmmc_23_set_sleep; mmc_slot(host).set_sleep = omap_hsmmc_235_set_sleep;
break; break;
case OMAP_MMC4_DEVID:
mmc_slot(host).set_power = omap_hsmmc_4_set_power;
mmc_slot(host).set_sleep = omap_hsmmc_4_set_sleep;
default: default:
pr_err("MMC%d configuration not supported!\n", host->id); pr_err("MMC%d configuration not supported!\n", host->id);
return -EINVAL; return -EINVAL;
......
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