static int init_dwmmc(void) { int ret; #ifdef CONFIG_DWMMC /* mmc0 clocks are already configured by ATF */ ret = hi6220_pinmux_config(PERIPH_ID_SDMMC0); if (ret) printf("%s: Error configuring pinmux for eMMC (%d)\n" , __func__, ret); ret |= hi6220_dwmci_add_port(0, HI6220_MMC0_BASE, 8); if (ret) printf("%s: Error adding eMMC port (%d)\n", __func__, ret); /* take mmc1 (sd slot) out of reset, configure clocks and pinmuxing */ mmc1_init_pll(); mmc1_reset_clk(); ret |= hi6220_pinmux_config(PERIPH_ID_SDMMC1); if (ret) printf("%s: Error configuring pinmux for eMMC (%d)\n" , __func__, ret); config_sd_carddetect(); ret |= hi6220_dwmci_add_port(1, HI6220_MMC1_BASE, 4); if (ret) printf("%s: Error adding SD port (%d)\n", __func__, ret); #endif return ret; }
int board_mmc_init(bd_t *bis) { int ret; ret = hi6220_dwmci_add_port(0, REG_BASE_MCI, 8); if (ret) printf("mmc init error (%d)\n", ret); return ret; }