commands: seperate usb command from usb core
This patch makes the USB command optional and makes usb_rescan a global function. This way we can use USB in noninteractive environments. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
a03277592f
commit
7c15f466df
|
@ -393,4 +393,12 @@ config CMD_LED_TRIGGER
|
|||
The trigger command allows to control LED triggers from the command
|
||||
line.
|
||||
|
||||
config CMD_USB
|
||||
bool
|
||||
depends on USB
|
||||
prompt "usb command"
|
||||
default y
|
||||
help
|
||||
The usb command allows to rescan for USB devices.
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -55,3 +55,4 @@ obj-$(CONFIG_CMD_PASSWD) += passwd.o
|
|||
obj-$(CONFIG_CMD_LOGIN) += login.o
|
||||
obj-$(CONFIG_CMD_LED) += led.o
|
||||
obj-$(CONFIG_CMD_LED_TRIGGER) += trigger.o
|
||||
obj-$(CONFIG_CMD_USB) += usb.o
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* usb.c - rescan for USB devices
|
||||
*
|
||||
* Copyright (c) 2011 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <usb/usb.h>
|
||||
|
||||
static int do_usb(struct command *cmdtp, int argc, char *argv[])
|
||||
{
|
||||
usb_rescan();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const __maybe_unused char cmd_usb_help[] =
|
||||
"Usage: usb\n"
|
||||
"(re-)detect USB devices\n";
|
||||
|
||||
BAREBOX_CMD_START(usb)
|
||||
.cmd = do_usb,
|
||||
.usage = "(re-)detect USB devices",
|
||||
BAREBOX_CMD_HELP(cmd_usb_help)
|
||||
BAREBOX_CMD_END
|
|
@ -449,7 +449,7 @@ static struct usb_device *usb_alloc_new_device(void)
|
|||
return usbdev;
|
||||
}
|
||||
|
||||
static int __usb_init(void)
|
||||
void usb_rescan(void)
|
||||
{
|
||||
struct usb_device *dev, *tmp;
|
||||
struct usb_host *host;
|
||||
|
@ -477,27 +477,8 @@ static int __usb_init(void)
|
|||
}
|
||||
|
||||
printf("%d USB Device(s) found\n", dev_index);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int do_usb(struct command *cmdtp, int argc, char *argv[])
|
||||
{
|
||||
__usb_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const __maybe_unused char cmd_usb_help[] =
|
||||
"Usage: usb\n"
|
||||
"(re-)detect USB devices\n";
|
||||
|
||||
BAREBOX_CMD_START(usb)
|
||||
.cmd = do_usb,
|
||||
.usage = "(re-)detect USB devices",
|
||||
BAREBOX_CMD_HELP(cmd_usb_help)
|
||||
BAREBOX_CMD_END
|
||||
|
||||
/*
|
||||
* disables the asynch behaviour of the control message. This is used for data
|
||||
* transfers that uses the exclusiv access to the control and bulk messages.
|
||||
|
|
|
@ -252,6 +252,8 @@ int usb_clear_halt(struct usb_device *dev, int pipe);
|
|||
int usb_string(struct usb_device *dev, int index, char *buf, size_t size);
|
||||
int usb_set_interface(struct usb_device *dev, int interface, int alternate);
|
||||
|
||||
void usb_rescan(void);
|
||||
|
||||
/* big endian -> little endian conversion */
|
||||
/* some CPUs are already little endian e.g. the ARM920T */
|
||||
#define __swap_16(x) \
|
||||
|
|
Loading…
Reference in New Issue