/* SPDX-License-Identifier: GPL-2.0-only */ #include <commonlib/sdhci.h> #include <commonlib/storage.h> #include <commonlib/storage/sd_mmc.h> #include <commonlib/storage/sdhci.h> #include <commonlib/sd_mmc_ctrlr.h> #include <soc/addressmap.h> #include <soc/sdhci.h> #include <soc/sdhci_msm.h> int qc_emmc_early_init(void) { struct sd_mmc_ctrlr *ctrlr; struct storage_media media = {0}; ctrlr = new_sdhci_msm_host((void *)(uintptr_t)SDC1_HC_BASE); if (ctrlr == NULL) return -1; media.ctrlr = ctrlr; SET_BUS_WIDTH(ctrlr, 1); SET_CLOCK(ctrlr, 384 * 1000); /* Send CMD1 */ return mmc_send_cmd1(&media); }