diff options
Diffstat (limited to 'common')
| -rw-r--r-- | common/cmd_usb_mass_storage.c | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/common/cmd_usb_mass_storage.c b/common/cmd_usb_mass_storage.c index 99487f4d0..5f557d5f8 100644 --- a/common/cmd_usb_mass_storage.c +++ b/common/cmd_usb_mass_storage.c @@ -42,6 +42,30 @@ int do_usb_mass_storage(cmd_tbl_t *cmdtp, int flag,  	g_dnl_register("ums"); +	/* Timeout unit: seconds */ +	int cable_ready_timeout = UMS_CABLE_READY_TIMEOUT; + +	if (!usb_cable_connected()) { +		puts("Please connect USB cable.\n"); + +		while (!usb_cable_connected()) { +			if (ctrlc()) { +				puts("\rCTRL+C - Operation aborted.\n"); +				goto exit; +			} +			if (!cable_ready_timeout) { +				puts("\rUSB cable not detected.\n" \ +				     "Command exit.\n"); +				goto exit; +			} + +			printf("\rAuto exit in: %.2d s.", cable_ready_timeout); +			mdelay(1000); +			cable_ready_timeout--; +		} +		puts("\r\n"); +	} +  	while (1) {  		usb_gadget_handle_interrupts(); |