]> git.sur5r.net Git - u-boot/blobdiff - drivers/mmc/bcm2835_sdhci.c
menu: Return an error code if Ctrl-C is pressed
[u-boot] / drivers / mmc / bcm2835_sdhci.c
index b0afc3c9ce5dd843c4cdca145fd3d489c8f41fa1..078ef0523a91b2f5b6762b8ecd0ac67ae64aeb5d 100644 (file)
@@ -39,6 +39,8 @@
 #include <common.h>
 #include <malloc.h>
 #include <sdhci.h>
+#include <mach/timer.h>
+#include <mach/sdhci.h>
 
 /* 400KHz is max freq for card ID etc. Use that as min */
 #define MIN_FREQ 400000
@@ -152,9 +154,9 @@ int bcm2835_sdhci_init(u32 regbase, u32 emmc_freq)
        struct bcm2835_sdhci_host *bcm_host;
        struct sdhci_host *host;
 
-       bcm_host = malloc(sizeof(*bcm_host));
+       bcm_host = calloc(1, sizeof(*bcm_host));
        if (!bcm_host) {
-               printf("sdhci_host malloc fail!\n");
+               printf("sdhci_host calloc fail!\n");
                return 1;
        }
 
@@ -178,7 +180,7 @@ int bcm2835_sdhci_init(u32 regbase, u32 emmc_freq)
        host->name = "bcm2835_sdhci";
        host->ioaddr = (void *)regbase;
        host->quirks = SDHCI_QUIRK_BROKEN_VOLTAGE | SDHCI_QUIRK_BROKEN_R1B |
-               SDHCI_QUIRK_WAIT_SEND_CMD;
+               SDHCI_QUIRK_WAIT_SEND_CMD | SDHCI_QUIRK_NO_HISPD_BIT;
        host->voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195;
        host->ops = &bcm2835_ops;