|
@@ -26,19 +26,70 @@
|
|
#include <mmc.h>
|
|
#include <mmc.h>
|
|
|
|
|
|
#ifndef CONFIG_GENERIC_MMC
|
|
#ifndef CONFIG_GENERIC_MMC
|
|
|
|
+int curr_device = -1;
|
|
|
|
+
|
|
int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|
int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|
{
|
|
{
|
|
- if (mmc_legacy_init (1) != 0) {
|
|
|
|
- printf ("No MMC card found\n");
|
|
|
|
|
|
+ int dev;
|
|
|
|
+
|
|
|
|
+ if (argc < 2) {
|
|
|
|
+ cmd_usage(cmdtp);
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (strcmp(argv[1], "init") == 0) {
|
|
|
|
+ if (argc == 2) {
|
|
|
|
+ if (curr_device < 0)
|
|
|
|
+ dev = 1;
|
|
|
|
+ else
|
|
|
|
+ dev = curr_device;
|
|
|
|
+ } else if (argc == 3) {
|
|
|
|
+ dev = (int)simple_strtoul(argv[2], NULL, 10);
|
|
|
|
+ } else {
|
|
|
|
+ cmd_usage(cmdtp);
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (mmc_legacy_init(dev) != 0) {
|
|
|
|
+ puts("No MMC card found\n");
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ curr_device = dev;
|
|
|
|
+ printf("mmc%d is available\n", curr_device);
|
|
|
|
+ } else if (strcmp(argv[1], "device") == 0) {
|
|
|
|
+ if (argc == 2) {
|
|
|
|
+ if (curr_device < 0) {
|
|
|
|
+ puts("No MMC device available\n");
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
|
|
+ } else if (argc == 3) {
|
|
|
|
+ dev = (int)simple_strtoul(argv[2], NULL, 10);
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_SYS_MMC_SET_DEV
|
|
|
|
+ if (mmc_set_dev(dev) != 0)
|
|
|
|
+ return 1;
|
|
|
|
+#endif
|
|
|
|
+ curr_device = dev;
|
|
|
|
+ } else {
|
|
|
|
+ cmd_usage(cmdtp);
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ printf("mmc%d is current device\n", curr_device);
|
|
|
|
+ } else {
|
|
|
|
+ cmd_usage(cmdtp);
|
|
|
|
+ return 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
U_BOOT_CMD(
|
|
U_BOOT_CMD(
|
|
- mmcinit, 1, 0, do_mmc,
|
|
|
|
- "init mmc card",
|
|
|
|
- NULL
|
|
|
|
|
|
+ mmc, 3, 1, do_mmc,
|
|
|
|
+ "MMC sub-system",
|
|
|
|
+ "init [dev] - init MMC sub system\n"
|
|
|
|
+ "mmc device [dev] - show or set current device\n"
|
|
);
|
|
);
|
|
#else /* !CONFIG_GENERIC_MMC */
|
|
#else /* !CONFIG_GENERIC_MMC */
|
|
|
|
|