msm_shared: mmc_wrapper: Implement mmc erase wrapper function.

Implement the mmc erase wrapper function to erase the mmc card.

CRs-Fixed: 492353
Change-Id: I9b8ad4b9b0a083c59c2ea436488b1f8e6097ddf2
diff --git a/platform/msm_shared/mmc_wrapper.c b/platform/msm_shared/mmc_wrapper.c
index c56a61e..dce416a 100644
--- a/platform/msm_shared/mmc_wrapper.c
+++ b/platform/msm_shared/mmc_wrapper.c
@@ -128,14 +128,22 @@
  * Function: mmc erase card
  * Arg     : Block address & length
  * Return  : Returns 0
- * Flow    : This is dummy API for backward compatibility
- *           erase is not supported for sdhci
+ * Flow    : Erase the card from specified addr
  */
 uint32_t mmc_erase_card(uint64_t addr, uint64_t len)
 {
-	/* TODO: Right now with sdhci erase function
-	 * is not implemented, need to be added
-	 */
+	struct mmc_device *dev;
+
+	dev = target_mmc_device();
+
+	ASSERT(!(addr % MMC_BLK_SZ));
+	ASSERT(!(len % MMC_BLK_SZ));
+
+	if (mmc_sdhci_erase(dev, (addr / MMC_BLK_SZ), len))
+	{
+		dprintf(CRITICAL, "MMC erase failed\n");
+		return 1;
+	}
 	return 0;
 }