cmd: Add Support for UFS commands

Add Support for commands to initialize and configure UFS devices.

TODO: Add Support for commands to resize and reconfigure LUNs
Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 07060c6..82b5d30 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1205,6 +1205,13 @@
 	  This provides various sub-commands to initialise and configure the
 	  Turndra tsi148 device. See the command help for full details.
 
+config CMD_UFS
+	bool "Enable UFS - Universal Flash Subsystem commands"
+	depends on UFS
+	help
+	  "This provides commands to initialise and configure universal flash
+	   subsystem devices"
+
 config CMD_UNIVERSE
 	bool "universe - Command to set up the Turndra Universe controller"
 	help
diff --git a/cmd/Makefile b/cmd/Makefile
index ac843b4..2d723ea 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -144,7 +144,7 @@
 obj-$(CONFIG_CMD_VIRTIO) += virtio.o
 obj-$(CONFIG_CMD_WDT) += wdt.o
 obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o
-
+obj-$(CONFIG_CMD_UFS) += ufs.o
 obj-$(CONFIG_CMD_USB) += usb.o disk.o
 obj-$(CONFIG_CMD_FASTBOOT) += fastboot.o
 obj-$(CONFIG_CMD_FS_UUID) += fs_uuid.o
diff --git a/cmd/ufs.c b/cmd/ufs.c
new file mode 100644
index 0000000..5b25788
--- /dev/null
+++ b/cmd/ufs.c
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0+
+/**
+ * ufs.c - UFS specific U-boot commands
+ *
+ * Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com
+ *
+ */
+#include <common.h>
+#include <command.h>
+#include <ufs.h>
+
+static int do_ufs(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+	int dev, ret;
+
+	if (argc >= 2) {
+		if (!strcmp(argv[1], "init")) {
+			if (argc == 3) {
+				dev = simple_strtoul(argv[2], NULL, 10);
+				ret = ufs_probe_dev(dev);
+				if (ret)
+					return CMD_RET_FAILURE;
+			} else {
+				ufs_probe();
+			}
+
+			return CMD_RET_SUCCESS;
+		}
+	}
+
+	return CMD_RET_USAGE;
+}
+
+U_BOOT_CMD(ufs, 3, 1, do_ufs,
+	   "UFS  sub system",
+	   "init [dev] - init UFS subsystem\n"
+);