dfu, fastbot and other usb gadget commands take the USB port index as a
parameter. Currently this index is assigned in the order of the driver
bindings.
Changing this behavior using the SEQ_ALIAS feature. This option assign to
the device a SEQ number based on its alias (if it exists)

To use it we must set the DM_UC_FLAG_SEQ_ALIAS flag and follow the existing
naming convention: use "usb" for the name of the gadget UCLASS_DRIVER
(same as for the UCLASS_USB).

If no alias is provided, then the index falls back to the order in which
the bindings took place.

Signed-off-by: Jean-Jacques Hiblot <jjhib...@ti.com>
Reported-by: Sam Protsenko <semen.protse...@linaro.org>
---

 drivers/usb/gadget/udc/udc-uclass.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/gadget/udc/udc-uclass.c 
b/drivers/usb/gadget/udc/udc-uclass.c
index 0620518..e9f8f5f 100644
--- a/drivers/usb/gadget/udc/udc-uclass.c
+++ b/drivers/usb/gadget/udc/udc-uclass.c
@@ -20,7 +20,7 @@ int usb_gadget_initialize(int index)
                return -EINVAL;
        if (dev_array[index])
                return 0;
-       ret = uclass_get_device(UCLASS_USB_GADGET_GENERIC, index, &dev);
+       ret = uclass_get_device_by_seq(UCLASS_USB_GADGET_GENERIC, index, &dev);
        if (!dev || ret) {
                pr_err("No USB device found\n");
                return -ENODEV;
@@ -54,5 +54,6 @@ int usb_gadget_handle_interrupts(int index)
 
 UCLASS_DRIVER(usb_gadget_generic) = {
        .id             = UCLASS_USB_GADGET_GENERIC,
-       .name           = "usb_gadget_generic",
+       .name           = "usb",
+       .flags          = DM_UC_FLAG_SEQ_ALIAS,
 };
-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to