| .. | .. |
|---|
| 70 | 70 | /* |
|---|
| 71 | 71 | * Given the decoded CSD structure, decode the raw CID to our CID structure. |
|---|
| 72 | 72 | */ |
|---|
| 73 | | -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 73 | +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 74 | 74 | static int mmc_decode_cid(struct mmc_card *card) |
|---|
| 75 | 75 | { |
|---|
| 76 | 76 | u32 *resp = card->raw_cid; |
|---|
| .. | .. |
|---|
| 666 | 666 | return err; |
|---|
| 667 | 667 | } |
|---|
| 668 | 668 | |
|---|
| 669 | | -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 669 | +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 670 | 670 | static void *mmc_tb_map_ecsd(phys_addr_t start, size_t len) |
|---|
| 671 | 671 | { |
|---|
| 672 | 672 | int i; |
|---|
| .. | .. |
|---|
| 696 | 696 | { |
|---|
| 697 | 697 | u8 *ext_csd; |
|---|
| 698 | 698 | int err; |
|---|
| 699 | | -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 699 | +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 700 | 700 | void *ecsd = NULL; |
|---|
| 701 | 701 | bool valid_ecsd = false; |
|---|
| 702 | 702 | bool valid_reserved = false; |
|---|
| .. | .. |
|---|
| 707 | 707 | if (!mmc_can_ext_csd(card)) |
|---|
| 708 | 708 | return 0; |
|---|
| 709 | 709 | |
|---|
| 710 | | -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 710 | +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 711 | 711 | mem = of_parse_phandle(dev->of_node, "memory-region-ecsd", 0); |
|---|
| 712 | 712 | if (mem) { |
|---|
| 713 | 713 | err = of_address_to_resource(mem, 0, ®); |
|---|
| .. | .. |
|---|
| 758 | 758 | |
|---|
| 759 | 759 | return err; |
|---|
| 760 | 760 | } |
|---|
| 761 | | -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 761 | +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 762 | 762 | decode: |
|---|
| 763 | 763 | #endif |
|---|
| 764 | 764 | err = mmc_decode_ext_csd(card, ext_csd); |
|---|
| 765 | | -#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 765 | +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 766 | 766 | if (!valid_ecsd) |
|---|
| 767 | 767 | kfree(ext_csd); |
|---|
| 768 | 768 | else |
|---|
| .. | .. |
|---|
| 777 | 777 | return err; |
|---|
| 778 | 778 | } |
|---|
| 779 | 779 | |
|---|
| 780 | | -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 780 | +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 781 | 781 | static int mmc_compare_ext_csds(struct mmc_card *card, unsigned bus_width) |
|---|
| 782 | 782 | { |
|---|
| 783 | 783 | u8 *bw_ext_csd; |
|---|
| .. | .. |
|---|
| 1117 | 1117 | * compare ext_csd previously read in 1 bit mode |
|---|
| 1118 | 1118 | * against ext_csd at new bus width |
|---|
| 1119 | 1119 | */ |
|---|
| 1120 | | -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 1120 | +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 1121 | 1121 | if (!(host->caps & MMC_CAP_BUS_WIDTH_TEST)) |
|---|
| 1122 | 1122 | err = mmc_compare_ext_csds(card, bus_width); |
|---|
| 1123 | 1123 | else |
|---|
| .. | .. |
|---|
| 1495 | 1495 | if (host->ops->hs400_enhanced_strobe) |
|---|
| 1496 | 1496 | host->ops->hs400_enhanced_strobe(host, &host->ios); |
|---|
| 1497 | 1497 | |
|---|
| 1498 | + /* some emmc device need a delay before read status */ |
|---|
| 1499 | + usleep_range(100, 200); |
|---|
| 1500 | + |
|---|
| 1498 | 1501 | err = mmc_switch_status(card); |
|---|
| 1499 | 1502 | if (err) |
|---|
| 1500 | 1503 | goto out_err; |
|---|
| .. | .. |
|---|
| 1653 | 1656 | * respond. |
|---|
| 1654 | 1657 | * mmc_go_idle is needed for eMMC that are asleep |
|---|
| 1655 | 1658 | */ |
|---|
| 1656 | | -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 1659 | +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 1657 | 1660 | mmc_go_idle(host); |
|---|
| 1658 | 1661 | #endif |
|---|
| 1659 | 1662 | |
|---|
| .. | .. |
|---|
| 1698 | 1701 | card->ocr = ocr; |
|---|
| 1699 | 1702 | card->type = MMC_TYPE_MMC; |
|---|
| 1700 | 1703 | card->rca = 1; |
|---|
| 1701 | | -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 1704 | +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 1702 | 1705 | memcpy(card->raw_cid, cid, sizeof(card->raw_cid)); |
|---|
| 1703 | 1706 | #endif |
|---|
| 1704 | 1707 | } |
|---|
| .. | .. |
|---|
| 1731 | 1734 | err = mmc_decode_csd(card); |
|---|
| 1732 | 1735 | if (err) |
|---|
| 1733 | 1736 | goto free_card; |
|---|
| 1734 | | -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 1737 | +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 1735 | 1738 | err = mmc_decode_cid(card); |
|---|
| 1736 | 1739 | if (err) |
|---|
| 1737 | 1740 | goto free_card; |
|---|
| .. | .. |
|---|
| 1866 | 1869 | /* |
|---|
| 1867 | 1870 | * Enable HPI feature (if supported) |
|---|
| 1868 | 1871 | */ |
|---|
| 1869 | | -#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT |
|---|
| 1872 | +#ifndef CONFIG_ROCKCHIP_THUNDER_BOOT_MMC |
|---|
| 1870 | 1873 | if (card->ext_csd.hpi) { |
|---|
| 1871 | 1874 | err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, |
|---|
| 1872 | 1875 | EXT_CSD_HPI_MGMT, 1, |
|---|