sdp: Use plain udevice for UDC controller interaction

Convert to plain udevice interaction with UDC controller
device, avoid the use of UDC uclass dev_array .

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
Marek Vasut
2023-09-01 11:49:58 +02:00
parent 99924db71f
commit 6b84acc978
4 changed files with 23 additions and 17 deletions

View File

@@ -15,13 +15,16 @@
static int do_sdp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
int controller_index;
struct udevice *udc;
int ret;
if (argc < 2)
return CMD_RET_USAGE;
controller_index = simple_strtoul(argv[1], NULL, 0);
usb_gadget_initialize(controller_index);
ret = udc_device_get_by_index(controller_index, &udc);
if (ret)
return ret;
g_dnl_clear_detach();
ret = g_dnl_register("usb_dnl_sdp");
@@ -30,20 +33,20 @@ static int do_sdp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
goto exit_register;
}
ret = sdp_init(controller_index);
ret = sdp_init(udc);
if (ret) {
pr_err("SDP init failed: %d\n", ret);
goto exit;
}
/* This command typically does not return but jumps to an image */
sdp_handle(controller_index);
sdp_handle(udc);
pr_err("SDP ended\n");
exit:
g_dnl_unregister();
exit_register:
usb_gadget_release(controller_index);
udc_device_put(udc);
return CMD_RET_FAILURE;
}