Hi, On Tue, May 29, 2012 at 02:52:34PM +0800, Ulf Hansson wrote: > Hi Tony, > > This patch changes the sequence of how the host drivers set_ios > function gets called during probe. > > Before: > 1. mmc_power_off > 2. mmc_power_up > > Now: > 1. mmc_power_up > > My guess is then; the omap driver set_ios function requires that > mmc_power_off is called before a mmc_power_up. > Hopefully this requirement can be removed and fixed in the host driver somehow. > > Please get back to me if you need some more assistance around this matter. > > Kind regards > Ulf Hansson > > > On 28 May 2012 21:21, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > > Hi Ulf & Chris, > > > > Looks like commit fa550189 (mmc: core: Prevent eMMC VCC supply to be > > cut from late init) causes MMC card to stop working at least with > > n8x0 using drivers/mmc/host/omap.c. The card(s) on it are not eMMC. > > > > Reverting fa550189 makes things work again. Any ideas what could > > be causing this? > > > > No debug output from MMC_DEBUG, looks like commands won't even > > get started? Can you enable debugging on menelaus so we see what the driver is doing ? I believe that to change the VMMC's supply voltage you need to turn off the regulator, meaning LDO_CTRL7[1:0] = 0b00. That could be one thing. It would be cool what menelaus is writing to the registers on working and failing case. Also what are the contents of LDO_CTRL1 and LDO_CTRL7 before any operation. Something like this will help: diff --git a/drivers/mfd/menelaus.c b/drivers/mfd/menelaus.c index cb4910a..8cab234 100644 --- a/drivers/mfd/menelaus.c +++ b/drivers/mfd/menelaus.c @@ -31,6 +31,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#define DEBUG + #include <linux/module.h> #include <linux/i2c.h> #include <linux/interrupt.h> @@ -469,6 +471,10 @@ static int menelaus_set_voltage(const struct menelaus_vtg *vtg, int mV, if (vtg == 0) goto set_voltage; + dev_dbg(&c->dev, "VTG_REG %02x MODE_REG %02x\n", + menelaus_read_reg(vtg->vtg_reg), + menelaus_read_reg(mode_reg)); + ret = menelaus_read_reg(vtg->vtg_reg); if (ret < 0) goto out; -- balbi
Attachment:
signature.asc
Description: Digital signature