clocks = <&clkc CLKID_SD_EMMC_C>,
<&clkc CLKID_SD_EMMC_C_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>,
- <&clkc CLKID_FCLK_DIV5>,
+ <&clkc CLKID_FCLK_DIV2P5>,
<&xtal>;
clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal";
function = "emmc";
input-enable;
bias-pull-up;
+ drive-strength = <3>;
};
};
function = "emmc";
input-enable;
bias-pull-up;
+ drive-strength = <3>;
};
};
function = "emmc";
input-enable;
bias-pull-down;
+ drive-strength = <3>;
};
};
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
- caps2 = "MMC_CAP2_HS200";
- /* "MMC_CAP2_HS400";*/
+ caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
f_min = <400000>;
f_max = <200000000>;
};
clocks = <&clkc CLKID_SD_EMMC_C>,
<&clkc CLKID_SD_EMMC_C_P0_COMP>,
<&clkc CLKID_FCLK_DIV2>,
- <&clkc CLKID_FCLK_DIV5>,
+ <&clkc CLKID_FCLK_DIV2P5>,
<&xtal>;
clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal";
function = "emmc";
input-enable;
bias-pull-up;
+ drive-strength = <3>;
};
};
function = "emmc";
input-enable;
bias-pull-up;
+ drive-strength = <3>;
};
};
function = "emmc";
input-enable;
bias-pull-down;
+ drive-strength = <3>;
};
};
"MMC_CAP_HW_RESET",
"MMC_CAP_ERASE",
"MMC_CAP_CMD23";
- caps2 = "MMC_CAP2_HS200";
- /* "MMC_CAP2_HS400";*/
+ caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
f_min = <400000>;
f_max = <200000000>;
};
.sdmmc.ddr.tx_phase = 0,
.sdmmc.hs2.core_phase = 2,
.sdmmc.hs2.tx_phase = 0,
- .sdmmc.hs4.tx_delay = 0,
+ .sdmmc.hs4.tx_delay = 16,
.sdmmc.sd_hs.core_phase = 3,
.sdmmc.sdr104.core_phase = 2,
.sdmmc.sdr104.tx_phase = 0,
if (pdata->tx_delay != 0)
clkc->tx_delay = pdata->tx_delay;
- if (((host->data->chip_type == MMC_CHIP_TL1)
+ if (((host->data->chip_type >= MMC_CHIP_TL1)
|| (host->data->chip_type == MMC_CHIP_G12B))
&& aml_card_type_mmc(pdata)) {
clkc->core_phase = para->hs4.core_phase;
intf3 |= (1<<22);
writel(intf3, (host->base + SD_EMMC_INTF3));
pdata->intf3 = intf3;
- if ((host->data->chip_type == MMC_CHIP_TL1)
+ if ((host->data->chip_type >= MMC_CHIP_TL1)
|| (host->data->chip_type == MMC_CHIP_G12B))
aml_emmc_hs200_tl1(mmc);
err = 0;
struct amlsd_platform *pdata = mmc_priv(mmc);
struct amlsd_host *host = pdata->host;
aml_sd_emmc_clktest(mmc);
- if (host->data->chip_type == MMC_CHIP_TL1)
+ if ((host->data->chip_type == MMC_CHIP_TL1)
+ || (host->data->chip_type == MMC_CHIP_SM1))
aml_emmc_hs400_tl1(mmc);
else if (host->data->chip_type == MMC_CHIP_G12B)
aml_emmc_hs400_Revb(mmc);