static void board_mmc_register(unsigned port) { AML_CARD_SD_INFO_t *aml_priv=cpu_sdio_get(port); if(aml_priv==NULL) return; struct mmc *mmc = (struct mmc *)malloc(sizeof(struct mmc)); strncpy(mmc->name,aml_priv->name,31); mmc->priv = aml_priv; aml_priv->removed_flag = 1; aml_priv->inited_flag = 0; aml_priv->sdio_init=sdio_init; aml_priv->sdio_detect=sdio_detect; aml_priv->sdio_pwr_off=sdio_pwr_off; aml_priv->sdio_pwr_on=sdio_pwr_on; aml_priv->sdio_pwr_prepare=sdio_pwr_prepare; mmc->send_cmd = aml_sd_send_cmd; mmc->set_ios = aml_sd_cfg_swth; mmc->init = aml_sd_init; mmc->rca = 1; mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34; mmc->host_caps = MMC_MODE_4BIT | MMC_MODE_HS; //mmc->host_caps = MMC_MODE_4BIT; mmc->bus_width = 1; mmc->clock = 200000; mmc->f_min = 200000; mmc->f_max = 24000000; mmc_register(mmc); }
// #define CONFIG_TSD 1 static void board_mmc_register(unsigned port) { struct aml_card_sd_info *aml_priv=cpu_sdio_get(port); struct mmc *mmc = (struct mmc *)malloc(sizeof(struct mmc)); if(aml_priv==NULL||mmc==NULL) return; memset(mmc,0,sizeof(*mmc)); aml_priv->sdio_init=sdio_init; aml_priv->sdio_detect=sdio_detect; aml_priv->sdio_pwr_off=sdio_pwr_off; aml_priv->sdio_pwr_on=sdio_pwr_on; aml_priv->sdio_pwr_prepare=sdio_pwr_prepare; // #ifdef CONFIG_TSD // // if(mmc->block_dev.dev > 0)//tsd // mmc->block_dev.if_type = IF_TYPE_SD; // #else // // if(mmc->block_dev.dev > 0)//emmc // mmc->block_dev.if_type = IF_TYPE_MMC; // #endif sdio_register(mmc, aml_priv); #if 0 strncpy(mmc->name,aml_priv->name,31); mmc->priv = aml_priv; aml_priv->removed_flag = 1; aml_priv->inited_flag = 0; aml_priv->sdio_init=sdio_init; aml_priv->sdio_detect=sdio_detect; aml_priv->sdio_pwr_off=sdio_pwr_off; aml_priv->sdio_pwr_on=sdio_pwr_on; aml_priv->sdio_pwr_prepare=sdio_pwr_prepare; mmc->send_cmd = aml_sd_send_cmd; mmc->set_ios = aml_sd_cfg_swth; mmc->init = aml_sd_init; mmc->rca = 1; mmc->voltages = MMC_VDD_33_34; mmc->host_caps = MMC_MODE_4BIT | MMC_MODE_HS; //mmc->host_caps = MMC_MODE_4BIT; mmc->bus_width = 1; mmc->clock = 300000; mmc->f_min = 200000; mmc->f_max = 50000000; mmc_register(mmc); #endif }
static void board_mmc_register(unsigned port) { struct aml_card_sd_info *aml_priv=cpu_sdio_get(port); struct mmc *mmc = (struct mmc *)malloc(sizeof(struct mmc)); if(aml_priv==NULL||mmc==NULL) return; memset(mmc,0,sizeof(*mmc)); aml_priv->sdio_init=sdio_init; aml_priv->sdio_detect=sdio_detect; aml_priv->sdio_pwr_off=sdio_pwr_off; aml_priv->sdio_pwr_on=sdio_pwr_on; aml_priv->sdio_pwr_prepare=sdio_pwr_prepare; sdio_register(mmc,aml_priv); /* * Normal procedure here, if you want init quickly for emmc, * do not set mmc->block_dev.if_type */ mmc->block_dev.if_type = IF_TYPE_SD; }