linux/drivers/mmc/host
Jon Hunter efba142bcd mmc: sdhci: Request regulators before reading capabilities
The capabilities of the SDHCI host controller are read early during the
SDHCI host initialisation in sdhci_setup_host() and before any
regulators for the host have been requested. This means that if the host
supports some high-speed modes (according to its capabilities register),
but the board cannot because the appropriate voltage regulator is not
available, then the host cannot easily override the capabilities that
are supported.

To allow a SDHCI host controller to determine if it can support UHS high
speed modes via the presence of the MMC regulators, request the
regulators before reading the capabilities of the host controller. This
will allow the SDHCI host to use the 'reset' callback to take the
appropriate action (set flags, configure registers, etc) before the
capabilities register(s) are read.

Please note that some SDHCI hosts, such as the Tegra SDHCI host, has
the ability to mask bits in the capabilities register to prevent
certain capabilities from being advertised.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2016-07-25 10:35:00 +02:00
..
android-goldfish.c mmc: android-goldfish: remove incorrect __iomem annotation 2015-09-01 14:19:11 +02:00
atmel-mci.c mmc: atmel-mci: Remove redundant runtime PM calls 2016-05-02 10:33:20 +02:00
au1xmmc.c
bfin_sdh.c mmc: bfin_sdh: remove the MMC_DATA_STREAM flag 2016-02-29 11:02:59 +01:00
cb710-mmc.c
cb710-mmc.h mmc: cb710: use to_platform_device() 2016-01-05 18:04:57 +01:00
davinci_mmc.c mmc: davinci: prepare clock 2016-05-02 10:33:19 +02:00
dw_mmc-exynos.c mmc: dw_mmc: exynos: fix the NULL pointer dereference error 2016-07-25 10:34:29 +02:00
dw_mmc-exynos.h
dw_mmc-k3.c mmc: dw_mmc: k3: add MMC_CAP_CMD23 2016-07-25 10:34:26 +02:00
dw_mmc-pci.c
dw_mmc-pltfm.c mmc: dw_mmc: remove the prepare_command hook 2016-02-29 11:03:09 +01:00
dw_mmc-pltfm.h
dw_mmc-rockchip.c mmc: dw_mmc: rockchip: unset the MMC_CAP_ERASE flag 2016-07-25 10:34:50 +02:00
dw_mmc.c mmc: dw_mmc: set to MMC_CAP_ERASE by default 2016-07-25 10:34:50 +02:00
dw_mmc.h mmc: dw_mmc: add the card write threshold for HS400 mode 2016-07-25 10:34:30 +02:00
jz4740_mmc.c mmc: jz4740_mmc: remove the MMC_DATA_STREAM flag 2016-02-29 11:03:00 +01:00
Kconfig mmc: sdhci-of-arasan: Add ability to export card clock 2016-07-25 10:34:19 +02:00
Makefile mmc: sdhci-brcmstb: Add driver for Broadcom BRCMSTB SoCs 2016-07-25 10:34:14 +02:00
mmc_spi.c mmc: mmc_spi: Add Card Detect comments and fix CD GPIO case 2016-03-16 12:36:09 +01:00
mmci_qcom_dml.c
mmci_qcom_dml.h
mmci.c mmc: mmci: Remove redundant runtime PM calls 2016-05-02 10:33:21 +02:00
mmci.h
moxart-mmc.c mmc: moxart: Fix module autoload for OF platform driver 2015-10-26 15:59:57 +01:00
mtk-sd.c mmc: mediatek: perfer to use rise edge latching 2016-07-25 10:34:32 +02:00
mvsdio.c mmc: mvsdio: delete platform data code path 2015-12-22 11:32:12 +01:00
mvsdio.h
mxcmmc.c mmc: host: use the defined function to check whether card is removable 2016-07-25 10:34:21 +02:00
mxs-mmc.c mmc: mxs: Constify platform_device_id 2015-06-01 09:06:50 +02:00
of_mmc_spi.c mmc: of_mmc_spi: fix unused warning 2016-03-17 14:54:40 +01:00
omap_hsmmc.c mmc: omap_hsmmc: Use dma_request_chan() for requesting DMA channel 2016-05-04 09:28:03 +02:00
omap.c mmc: omap: Use dma_request_chan() for requesting DMA channel 2016-05-04 13:12:00 +02:00
pxamci.c mmc: pxamci: fix potential oops 2016-07-18 11:50:40 +02:00
pxamci.h
rtsx_pci_sdmmc.c mmc: rtsx: Constify platform_device_id 2015-06-01 09:06:50 +02:00
rtsx_usb_sdmmc.c mmc: rtsx: Constify platform_device_id 2015-06-01 09:06:50 +02:00
s3cmci.c mmc: s3cmci: Register cpufreq notifier only on S3C24xx 2016-07-25 10:34:46 +02:00
s3cmci.h mmc: s3cmci: Register cpufreq notifier only on S3C24xx 2016-07-25 10:34:46 +02:00
sdhci_f_sdh30.c mmc: sdhci_f_sdh30: Fix the size passed to sdhci_alloc_host 2015-06-01 09:06:46 +02:00
sdhci-acpi.c mmc: sdhci-acpi: Remove MMC_CAP_BUS_WIDTH_TEST for Intel controllers 2016-05-23 11:52:41 +02:00
sdhci-bcm-kona.c mmc: host: use the defined function to check whether card is removable 2016-07-25 10:34:21 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Add driver for Broadcom BRCMSTB SoCs 2016-07-25 10:34:14 +02:00
sdhci-cns3xxx.c
sdhci-dove.c
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: clear tuning bits during driver probe 2016-07-25 10:34:59 +02:00
sdhci-esdhc.h mmc: sdhci-of-esdhc: support both BE and LE host controller 2015-10-26 16:00:08 +01:00
sdhci-iproc.c mmc: sdhci-iproc: Use defines instead of magic numbers 2016-07-25 10:34:48 +02:00
sdhci-msm.c mmc: sdhci-msm: fix spelling mistake: "Perpheral" -> "Peripheral" 2016-07-25 10:34:22 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Add ability to export card clock 2016-07-25 10:34:19 +02:00
sdhci-of-at91.c mmc: host: use the defined function to check whether card is removable 2016-07-25 10:34:21 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: use sdhci_pltfm_init for private allocation 2016-02-29 11:03:28 +01:00
sdhci-of-hlwd.c
sdhci-pci-core.c sdhci-pci: Use MRFLD as abbreviation of Merrifield 2016-07-25 10:34:59 +02:00
sdhci-pci-data.c mmc: sdhci-pci: Add support for drive strength selection for SPT 2015-06-01 09:07:14 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci: Make sdhci_pci_o2_fujin2_pci_init() static 2015-10-26 16:00:05 +01:00
sdhci-pci-o2micro.h mmc: sdhci-pci: Make sdhci_pci_o2_fujin2_pci_init() static 2015-10-26 16:00:05 +01:00
sdhci-pci.h sdhci-pci: Use MRFLD as abbreviation of Merrifield 2016-07-25 10:34:59 +02:00
sdhci-pic32.c mmc: sdhci-pic32: remove owner assignment 2016-05-02 10:33:25 +02:00
sdhci-pltfm.c mmc: sdhci-pltfm: call platform_get_irq() before sdhci_alloc_host() 2016-05-02 10:33:34 +02:00
sdhci-pltfm.h mmc: sdhci-pltfm: remove priv variable from sdhci_pltfm_host 2016-02-29 11:03:30 +01:00
sdhci-pxav2.c mmc: sdhci-pxav2: remove unnecessary assignment of pltfm_host->priv 2016-02-29 11:03:30 +01:00
sdhci-pxav3.c mmc: sdhci: Fix regression setting power on Trats2 board 2016-03-29 12:46:13 +02:00
sdhci-s3c-regs.h
sdhci-s3c.c mmc: sdhci-s3c: Constify platform_device_id 2015-06-01 09:06:52 +02:00
sdhci-sirf.c mmc: mmc: extend the mmc_send_tuning() 2015-10-27 10:38:41 +01:00
sdhci-spear.c Update Viresh Kumar's email address 2015-07-17 16:39:53 -07:00
sdhci-st.c mmc: host: use the defined function to check whether card is removable 2016-07-25 10:34:21 +02:00
sdhci-tegra.c mmc: tegra: Disable UHS-I modes for Tegra124 2016-04-14 11:40:01 +02:00
sdhci.c mmc: sdhci: Request regulators before reading capabilities 2016-07-25 10:35:00 +02:00
sdhci.h mmc: sdhci: add standard hw auto retuning support 2016-07-25 10:34:55 +02:00
sdricoh_cs.c mmc: sdricoh_cs: Less checks in sdricoh_init_mmc() after, error detection 2016-02-29 11:02:45 +01:00
sh_mmcif.c mmc: sh_mmcif: Use a 10s timeout in the error recovery path 2016-07-25 10:34:25 +02:00
sh_mobile_sdhi.c mmc: sh_mobile_sdhi: properly document R-Car versions 2016-07-25 10:34:02 +02:00
sunxi-mmc.c mmc: sunxi: Re-enable eMMC HS-DDR modes on Allwinner A80 2016-06-02 10:40:20 +02:00
tifm_sd.c
tmio_mmc_dma.c mmc: tmio: merge distributed include files 2016-05-02 10:33:40 +02:00
tmio_mmc_pio.c mmc: host: use the defined function to check whether card is removable 2016-07-25 10:34:21 +02:00
tmio_mmc.c mmc: TMIO: Use devm_request_irq() 2015-06-01 09:06:48 +02:00
tmio_mmc.h mmc: tmio: make a cast explicit 2016-07-25 10:34:07 +02:00
toshsd.c PM / Runtime: Move ignore_children flag under CONFIG_PM 2016-04-22 01:32:37 +02:00
toshsd.h
usdhi6rol0.c mmc: usdhi6rol0: add pinctrl to set pin drive strength 2016-05-02 10:36:06 +02:00
ushc.c
via-sdmmc.c
vub300.c mmc: vub300: Remove unneded semicolons 2015-10-26 15:59:54 +01:00
wbsd.c mmc: wbsd: Remove unneded semicolon 2015-10-26 15:59:53 +01:00
wbsd.h
wmt-sdmmc.c mmc: constify of_device_id array 2015-03-23 14:13:49 +01:00