]> Git Repo - J-u-boot.git/blobdiff - cmd/ide.c
Merge patch series "'eeprom' command improvements"
[J-u-boot.git] / cmd / ide.c
index 2f93ba7904648837dd7e2b4596e3b5e73a7f1717..036489fda979b8656cc9cd9f2a21867513c21e3c 100644 (file)
--- a/cmd/ide.c
+++ b/cmd/ide.c
@@ -8,14 +8,16 @@
  * IDE support
  */
 
-#include <common.h>
 #include <blk.h>
+#include <dm.h>
 #include <config.h>
 #include <watchdog.h>
 #include <command.h>
 #include <image.h>
 #include <asm/byteorder.h>
 #include <asm/io.h>
+#include <dm/device-internal.h>
+#include <dm/uclass-internal.h>
 
 #include <ide.h>
 #include <ata.h>
 /* Current I/O Device  */
 static int curr_device;
 
-int do_ide(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+int do_ide(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        if (argc == 2) {
                if (strncmp(argv[1], "res", 3) == 0) {
+                       struct udevice *dev;
+                       int ret;
+
                        puts("\nReset IDE: ");
-                       ide_init();
+                       ret = uclass_find_first_device(UCLASS_IDE, &dev);
+                       ret = device_remove(dev, DM_REMOVE_NORMAL);
+                       if (!ret)
+                               ret = device_chld_unbind(dev, NULL);
+                       if (ret) {
+                               printf("Cannot remove IDE (err=%dE)\n", ret);
+                               return CMD_RET_FAILURE;
+                       }
+
+                       ret = uclass_first_device_err(UCLASS_IDE, &dev);
+                       if (ret) {
+                               printf("Init failed (err=%dE)\n", ret);
+                               return CMD_RET_FAILURE;
+                       }
+
                        return 0;
                }
        }
 
-       return blk_common_cmd(argc, argv, IF_TYPE_IDE, &curr_device);
+       return blk_common_cmd(argc, argv, UCLASS_IDE, &curr_device);
 }
 
-int do_diskboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
+int do_diskboot(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        return common_diskboot(cmdtp, "ide", argc, argv);
 }
This page took 0.02424 seconds and 4 git commands to generate.