summaryrefslogtreecommitdiffstats
path: root/common/cmd_dfu.c
diff options
context:
space:
mode:
authorMateusz Zalega <m.zalega@samsung.com>2013-10-04 19:22:26 +0200
committerMarek Vasut <marex@denx.de>2013-10-20 23:42:40 +0200
commit16297cfb2a20c9d89834cd9e31edac5184a777a1 (patch)
treef75f4bccfd6ef79f4953c02f73c5245bc1bdb34d /common/cmd_dfu.c
parentf3d7cff55951e0b47bad150bf5c329bd577e2ce5 (diff)
downloadtalos-obmc-uboot-16297cfb2a20c9d89834cd9e31edac5184a777a1.tar.gz
talos-obmc-uboot-16297cfb2a20c9d89834cd9e31edac5184a777a1.zip
usb: new board-specific USB init interface
This commit unifies board-specific USB initialization implementations under one symbol (usb_board_init), declaration of which is available in usb.h. New API allows selective initialization of USB controllers whenever needed. Signed-off-by: Mateusz Zalega <m.zalega@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Marek Vasut <marex@denx.de> Cc: Lukasz Majewski <l.majewski@samsung.com>
Diffstat (limited to 'common/cmd_dfu.c')
-rw-r--r--common/cmd_dfu.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c
index 7ce92cec87..5547678208 100644
--- a/common/cmd_dfu.c
+++ b/common/cmd_dfu.c
@@ -11,27 +11,32 @@
#include <common.h>
#include <dfu.h>
#include <g_dnl.h>
+#include <usb.h>
static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
+ if (argc < 4)
+ return CMD_RET_USAGE;
+
+ char *usb_controller = argv[1];
+ char *interface = argv[2];
+ char *devstring = argv[3];
+
char *s = "dfu";
int ret, i = 0;
- if (argc < 3)
- return CMD_RET_USAGE;
-
- ret = dfu_init_env_entities(argv[1], simple_strtoul(argv[2], NULL, 10));
+ ret = dfu_init_env_entities(interface, simple_strtoul(devstring,
+ NULL, 10));
if (ret)
return ret;
- if (argc > 3 && strcmp(argv[3], "list") == 0) {
+ if (argc > 4 && strcmp(argv[4], "list") == 0) {
dfu_show_entities();
goto done;
}
-#ifdef CONFIG_TRATS
- board_usb_init();
-#endif
+ int controller_index = simple_strtoul(usb_controller, NULL, 0);
+ board_usb_init(controller_index, USB_INIT_DEVICE);
g_dnl_register(s);
while (1) {
@@ -62,8 +67,9 @@ done:
U_BOOT_CMD(dfu, CONFIG_SYS_MAXARGS, 1, do_dfu,
"Device Firmware Upgrade",
- "<interface> <dev> [list]\n"
- " - device firmware upgrade on a device <dev>\n"
- " attached to interface <interface>\n"
- " [list] - list available alt settings"
+ "<USB_controller> <interface> <dev> [list]\n"
+ " - device firmware upgrade via <USB_controller>\n"
+ " on device <dev>, attached to interface\n"
+ " <interface>\n"
+ " [list] - list available alt settings\n"
);
OpenPOWER on IntegriCloud