1 /* 2 * (C) Copyright 2013 Inc. 3 * 4 * Xilinx Zynq SD Host Controller Interface 5 * 6 * SPDX-License-Identifier: GPL-2.0+ 7 */ 8 9 #include <common.h> 10 #include <fdtdec.h> 11 #include <libfdt.h> 12 #include <malloc.h> 13 #include <sdhci.h> 14 #include <asm/arch/sys_proto.h> 15 16 int zynq_sdhci_init(phys_addr_t regbase) 17 { 18 struct sdhci_host *host = NULL; 19 20 host = (struct sdhci_host *)malloc(sizeof(struct sdhci_host)); 21 if (!host) { 22 printf("zynq_sdhci_init: sdhci_host malloc fail\n"); 23 return 1; 24 } 25 26 host->name = "zynq_sdhci"; 27 host->ioaddr = (void *)regbase; 28 host->quirks = SDHCI_QUIRK_WAIT_SEND_CMD | 29 SDHCI_QUIRK_BROKEN_R1B; 30 host->version = sdhci_readw(host, SDHCI_HOST_VERSION); 31 32 add_sdhci(host, CONFIG_ZYNQ_SDHCI_MAX_FREQ, 0); 33 return 0; 34 } 35