linux/drivers/mmc/core
Jaehoon Chung 6e8201f57c mmc: core: add the capability for broken voltage
There is an understood mismatch between the voltage the host controller is
set to and the voltage supplied to the card by a fixed voltage regulator.
Teaching the driver to accept the mismatch is overly complicated.  Instead
just accept the regulator's voltage.

This patch adds MMC_CAP2_BROKEN_VOLTAGE.

If the voltage didn't satisfy between min_uV and max_uV, try to change
the voltage in core.c.  When changing the voltage, maybe use
regulator_set_voltage().

In regulator_set_voltage(), check the below condition.

	/* sanity check */
	if (!rdev->desc->ops->set_voltage &&
	    !rdev->desc->ops->set_voltage_sel) {
		ret = -EINVAL;
		goto out;
	}

If some board should use the fixed-regulator, always return -EINVAL.
Then, eMMC didn't initialize always.

So if use a fixed-regulator, we need to add the MMC_CAP2_BROKEN_VOLTAGE.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2012-02-13 20:39:01 -05:00
..
bus.c mmc: core: HS200 mode support for eMMC 4.5 2012-01-12 15:17:15 -05:00
bus.h mmc: rename dev_to_mmc_card() to mmc_dev_to_card() 2010-10-23 21:11:12 +08:00
cd-gpio.c mmc: add a generic GPIO card-detect helper 2012-01-11 23:58:45 -05:00
core.c mmc: core: add the capability for broken voltage 2012-02-13 20:39:01 -05:00
core.h Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
debugfs.c mmc: core: HS200 mode support for eMMC 4.5 2012-01-12 15:17:15 -05:00
host.c mmc: core: Fixup delayed work clock gating patch 2012-01-11 23:58:43 -05:00
host.h mmc: core: Ensure clocks are always enabled before host interaction 2012-02-13 20:38:58 -05:00
Kconfig mmc: Aggressive clock gating framework 2011-01-08 22:48:03 -05:00
Makefile mmc: add a generic GPIO card-detect helper 2012-01-11 23:58:45 -05:00
mmc_ops.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
mmc_ops.h mmc: core: support HPI send command 2011-10-26 16:32:29 -04:00
mmc.c mmc: core: Fix low speed mmc card detection failure 2012-02-13 20:39:00 -05:00
quirks.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd_ops.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sd_ops.h mmc: add erase, secure erase, trim and secure trim operations 2010-08-12 08:43:30 -07:00
sd.c mmc: core: Ensure clocks are always enabled before host interaction 2012-02-13 20:38:58 -05:00
sd.h mmc: sd: add support for driver type selection 2011-05-24 23:53:24 -04:00
sdio_bus.c mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:32:06 -04:00
sdio_bus.h mmc: basic SDIO device model 2007-09-23 19:45:31 +02:00
sdio_cis.c mmc: replace printk with appropriate display macro 2011-10-26 16:32:22 -04:00
sdio_cis.h sdio: split up common and function CIS parsing 2007-09-23 20:44:22 +02:00
sdio_io.c mmc: sdio: Fix to support any block size optimally 2012-01-11 23:58:40 -05:00
sdio_irq.c mmc: core: Ensure clocks are always enabled before host interaction 2012-02-13 20:38:58 -05:00
sdio_ops.c mmc: sdio: Fix to support any block size optimally 2012-01-11 23:58:40 -05:00
sdio_ops.h sdio: recognize io card without powercycle 2010-03-12 15:52:28 -08:00
sdio.c mmc: core: UHS sdio card that fails should not exceed 50MHz 2012-02-13 20:38:28 -05:00