diff options
Diffstat (limited to 'drivers/mmc')
| -rw-r--r-- | drivers/mmc/arm_pl180_mmci.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/bfin_sdh.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/davinci_mmc.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/fsl_esdhc.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/ftsdc010_esdhc.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/gen_atmel_mci.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/mmc.c | 17 | ||||
| -rw-r--r-- | drivers/mmc/mmc_spi.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/mxcmmc.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/mxsmmc.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/omap_hsmmc.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/sdhci.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/sh_mmcif.c | 1 | ||||
| -rw-r--r-- | drivers/mmc/tegra_mmc.c | 1 | 
14 files changed, 30 insertions, 0 deletions
| diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c index af1380a45..ab2e81e5d 100644 --- a/drivers/mmc/arm_pl180_mmci.c +++ b/drivers/mmc/arm_pl180_mmci.c @@ -377,6 +377,7 @@ int arm_pl180_mmci_init(struct pl180_mmc_host *host)  	dev->set_ios = host_set_ios;  	dev->init = mmc_host_reset;  	dev->getcd = NULL; +	dev->getwp = NULL;  	dev->host_caps = host->caps;  	dev->voltages = host->voltages;  	dev->f_min = host->clock_min; diff --git a/drivers/mmc/bfin_sdh.c b/drivers/mmc/bfin_sdh.c index 8d59d46c6..81d8e5432 100644 --- a/drivers/mmc/bfin_sdh.c +++ b/drivers/mmc/bfin_sdh.c @@ -251,6 +251,7 @@ int bfin_mmc_init(bd_t *bis)  	mmc->set_ios = bfin_sdh_set_ios;  	mmc->init = bfin_sdh_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	mmc->host_caps = MMC_MODE_4BIT;  	mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; diff --git a/drivers/mmc/davinci_mmc.c b/drivers/mmc/davinci_mmc.c index ee8f2614d..e2379e326 100644 --- a/drivers/mmc/davinci_mmc.c +++ b/drivers/mmc/davinci_mmc.c @@ -388,6 +388,7 @@ int davinci_mmc_init(bd_t *bis, struct davinci_mmc *host)  	mmc->set_ios = dmmc_set_ios;  	mmc->init = dmmc_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	mmc->f_min = 200000;  	mmc->f_max = 25000000; diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index b90f3e776..54b536316 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -552,6 +552,7 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg)  	mmc->set_ios = esdhc_set_ios;  	mmc->init = esdhc_init;  	mmc->getcd = esdhc_getcd; +	mmc->getwp = NULL;  	voltage_caps = 0;  	caps = regs->hostcapblt; diff --git a/drivers/mmc/ftsdc010_esdhc.c b/drivers/mmc/ftsdc010_esdhc.c index f1702fe33..42f0e0ce5 100644 --- a/drivers/mmc/ftsdc010_esdhc.c +++ b/drivers/mmc/ftsdc010_esdhc.c @@ -666,6 +666,7 @@ int ftsdc010_mmc_init(int dev_index)  	mmc->set_ios = ftsdc010_set_ios;  	mmc->init = ftsdc010_core_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; diff --git a/drivers/mmc/gen_atmel_mci.c b/drivers/mmc/gen_atmel_mci.c index 67b2dbe8d..70a9f91c8 100644 --- a/drivers/mmc/gen_atmel_mci.c +++ b/drivers/mmc/gen_atmel_mci.c @@ -349,6 +349,7 @@ int atmel_mci_init(void *regs)  	mmc->set_ios = mci_set_ios;  	mmc->init = mci_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	/* need to be able to pass these in on a board by board basis */  	mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 72e8ce6da..7b5fdd9f6 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -40,6 +40,23 @@  static struct list_head mmc_devices;  static int cur_dev_num = -1; +int __weak board_mmc_getwp(struct mmc *mmc) +{ +	return -1; +} + +int mmc_getwp(struct mmc *mmc) +{ +	int wp; + +	wp = board_mmc_getwp(mmc); + +	if ((wp < 0) && mmc->getwp) +		wp = mmc->getwp(mmc); + +	return wp; +} +  int __board_mmc_getcd(struct mmc *mmc) {  	return -1;  } diff --git a/drivers/mmc/mmc_spi.c b/drivers/mmc/mmc_spi.c index 11ba532b0..fe6a5a166 100644 --- a/drivers/mmc/mmc_spi.c +++ b/drivers/mmc/mmc_spi.c @@ -273,6 +273,7 @@ struct mmc *mmc_spi_init(uint bus, uint cs, uint speed, uint mode)  	mmc->set_ios = mmc_spi_set_ios;  	mmc->init = mmc_spi_init_p;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	mmc->host_caps = MMC_MODE_SPI;  	mmc->voltages = MMC_SPI_VOLTAGE; diff --git a/drivers/mmc/mxcmmc.c b/drivers/mmc/mxcmmc.c index d58c18bc2..4f99617b9 100644 --- a/drivers/mmc/mxcmmc.c +++ b/drivers/mmc/mxcmmc.c @@ -499,6 +499,7 @@ static int mxcmci_initialize(bd_t *bis)  	mmc->set_ios = mxcmci_set_ios;  	mmc->init = mxcmci_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	mmc->host_caps = MMC_MODE_4BIT;  	host->base = (struct mxcmci_regs *)CONFIG_MXC_MCI_REGS_BASE; diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c index a72f66cc7..a87529dfc 100644 --- a/drivers/mmc/mxsmmc.c +++ b/drivers/mmc/mxsmmc.c @@ -432,6 +432,7 @@ int mxsmmc_initialize(bd_t *bis, int id, int (*wp)(int), int (*cd)(int))  	mmc->set_ios = mxsmmc_set_ios;  	mmc->init = mxsmmc_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	mmc->priv = priv;  	mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c index cb1a7bdd6..fcbd1330d 100644 --- a/drivers/mmc/omap_hsmmc.c +++ b/drivers/mmc/omap_hsmmc.c @@ -590,6 +590,7 @@ int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio)  	mmc->set_ios = mmc_set_ios;  	mmc->init = mmc_init_setup;  	mmc->getcd = omap_mmc_getcd; +	mmc->getwp = NULL;  	mmc->priv = priv_data;  	switch (dev_index) { diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index b9cbe34f1..daca0ea4f 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -438,6 +438,7 @@ int add_sdhci(struct sdhci_host *host, u32 max_clk, u32 min_clk)  	mmc->set_ios = sdhci_set_ios;  	mmc->init = sdhci_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	caps = sdhci_readl(host, SDHCI_CAPABILITIES);  #ifdef CONFIG_MMC_SDMA diff --git a/drivers/mmc/sh_mmcif.c b/drivers/mmc/sh_mmcif.c index 4588568a6..011d4f3e6 100644 --- a/drivers/mmc/sh_mmcif.c +++ b/drivers/mmc/sh_mmcif.c @@ -599,6 +599,7 @@ int mmcif_mmc_init(void)  	mmc->set_ios = sh_mmcif_set_ios;  	mmc->init = sh_mmcif_init;  	mmc->getcd = NULL; +	mmc->getwp = NULL;  	host->regs = (struct sh_mmcif_regs *)CONFIG_SH_MMCIF_ADDR;  	host->clk = CONFIG_SH_MMCIF_CLK;  	mmc->priv = host; diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c index d749ab095..72586193c 100644 --- a/drivers/mmc/tegra_mmc.c +++ b/drivers/mmc/tegra_mmc.c @@ -563,6 +563,7 @@ int tegra_mmc_init(int dev_index, int bus_width, int pwr_gpio, int cd_gpio)  	mmc->set_ios = mmc_set_ios;  	mmc->init = mmc_core_init;  	mmc->getcd = tegra_mmc_getcd; +	mmc->getwp = NULL;  	mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;  	mmc->host_caps = 0; |