nyan: Set up the SD and EMMC controllers for nyan.

BUG=None
TEST=Built and booted on nyan. Saw some (failed) communication with the EMMC
on the serial console.
BRANCH=None

Change-Id: Ife46301ac546eece1fcde10bed352d519e1376cf
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://chromium-review.googlesource.com/173786
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
diff --git a/src/board/nyan/board.c b/src/board/nyan/board.c
index a32db20..00667c5 100644
--- a/src/board/nyan/board.c
+++ b/src/board/nyan/board.c
@@ -29,6 +29,7 @@
 #include "drivers/dma/tegra_apb.h"
 #include "drivers/flash/spi.h"
 #include "drivers/gpio/sysinfo.h"
+#include "drivers/storage/tegra_mmc.h"
 #include "drivers/tpm/slb9635_i2c.h"
 #include "drivers/tpm/tpm.h"
 
@@ -71,6 +72,17 @@
 	if (!cros_ec_spi_bus || cros_ec_set_bus(&cros_ec_spi_bus->ops))
 		return 1;
 
+	// sdmmc4
+	TegraMmcHost *emmc = new_tegra_mmc_host(0x700b0600, 8, 0, NULL);
+	// sdmmc3
+	//FIXME The card detect GPIO is V2.
+	TegraMmcHost *sd_card = new_tegra_mmc_host(0x700b0400, 4, 1, NULL);
+	if (!emmc || !sd_card)
+		return 1;
+	list_insert_after(&emmc->mmc.ctrlr.list_node,
+			  &fixed_block_dev_controllers);
+	list_insert_after(&sd_card->mmc.ctrlr.list_node,
+			  &removable_block_dev_controllers);
 	return 0;
 }