Lines Matching +full:sdhci +full:- +full:8
3 * git://github.com/gonzoua/u-boot-pi.git master
6 * Tweaks for U-Boot upstreaming
9 * Portions (e.g. read/write macros, concepts for back-to-back register write
11 * https://github.com/raspberrypi/linux.git rpi-3.6.y
16 * Support for SDHCI device on 2835
17 * Based on sdhci-bcm2708.c (c) 2010 Broadcom
34 * SDHCI platform device - Arasan SD controller in BCM2708
36 * Inspired by sdhci-pci.c, by Pierre Ossman
43 #include <sdhci.h>
46 #include <mach/sdhci.h>
71 * successive writes to registers that are within two SD-card clock in bcm2835_sdhci_raw_writel()
74 * (Which is just as well - otherwise we'd have to nobble the DMA engine in bcm2835_sdhci_raw_writel()
78 while (timer_get_us() - bcm_host->last_write < bcm_host->twoticks_delay) in bcm2835_sdhci_raw_writel()
82 writel(val, host->ioaddr + reg); in bcm2835_sdhci_raw_writel()
83 bcm_host->last_write = timer_get_us(); in bcm2835_sdhci_raw_writel()
88 return readl(host->ioaddr + reg); in bcm2835_sdhci_raw_readl()
116 u32 byte_shift = byte_num * 8; in bcm2835_sdhci_writeb()
144 u32 byte_shift = byte_num * 8; in bcm2835_sdhci_readb()
163 return sdhci_bind(dev, &plat->mmc, &plat->cfg); in bcm2835_sdhci_bind()
171 struct sdhci_host *host = &priv->host; in bcm2835_sdhci_probe()
178 return -EINVAL; in bcm2835_sdhci_probe()
200 priv->twoticks_delay = ((2 * 1000000) / MIN_FREQ) + 1; in bcm2835_sdhci_probe()
201 priv->last_write = 0; in bcm2835_sdhci_probe()
203 host->name = dev->name; in bcm2835_sdhci_probe()
204 host->ioaddr = (void *)base; in bcm2835_sdhci_probe()
205 host->quirks = SDHCI_QUIRK_BROKEN_VOLTAGE | SDHCI_QUIRK_BROKEN_R1B | in bcm2835_sdhci_probe()
207 host->max_clk = emmc_freq; in bcm2835_sdhci_probe()
208 host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195; in bcm2835_sdhci_probe()
209 host->ops = &bcm2835_ops; in bcm2835_sdhci_probe()
211 ret = sdhci_setup_cfg(&plat->cfg, host, emmc_freq, MIN_FREQ); in bcm2835_sdhci_probe()
213 debug("%s: Failed to setup SDHCI (err=%d)\n", __func__, ret); in bcm2835_sdhci_probe()
217 upriv->mmc = &plat->mmc; in bcm2835_sdhci_probe()
218 host->mmc = &plat->mmc; in bcm2835_sdhci_probe()
219 host->mmc->priv = host; in bcm2835_sdhci_probe()
225 { .compatible = "brcm,bcm2835-sdhci" },
230 .name = "sdhci-bcm2835",