Commit ba6f837d authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman

[PATCH] USB: clarify CONFIG_USB_GADGET

Marc-Christian Petersen wrote:
>
> I think the attached patch is needed to stop showing us USB Gadget support if
> Support for USB is disabled.

No it isn't.  But maybe the attached patch would clarify what's
really going on:  CONFIG_USB is the host side, and CONFIG_USB_GADGET
is the peripheral side.
parent 1a89696e
...@@ -6,32 +6,36 @@ menu "USB support" ...@@ -6,32 +6,36 @@ menu "USB support"
# ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface. # ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
config USB config USB
tristate "Support for USB" tristate "Support for Host-side USB"
depends on PCI || SA1111 || ARCH_OMAP1510 || ARCH_OMAP1610 depends on PCI || SA1111 || ARCH_OMAP1510 || ARCH_OMAP1610
---help--- ---help---
Universal Serial Bus (USB) is a specification for a serial bus Universal Serial Bus (USB) is a specification for a serial bus
subsystem which offers higher speeds and more features than the subsystem which offers higher speeds and more features than the
traditional PC serial port. The bus supplies power to peripherals traditional PC serial port. The bus supplies power to peripherals
and allows for hot swapping. Up to 127 USB peripherals can be and allows for hot swapping. Up to 127 USB peripherals can be
connected to a single USB port in a tree structure. The USB port is connected to a single USB host in a tree structure.
the root of the tree, the peripherals are the leaves and the inner
nodes are special USB devices called hubs. Many newer PC's have USB The USB host is the root of the tree, the peripherals are the
ports and newer peripherals such as scanners, keyboards, mice, leaves and the inner nodes are special USB devices called hubs.
modems, and printers support the USB protocol and can be connected Most PCs now have USB host ports, used to connect peripherals
to the PC via those ports. such as scanners, keyboards, mice, modems, cameras, disks,
flash memory, network links, and printers to the PC.
Say Y here if your computer has a USB port and you want to use USB
devices. You then need to say Y to at least one of "UHCI HCD support" Say Y here if your computer has a host-side USB port and you want
or "OHCI HCD support" below (the type of interface that the USB hardware to use USB devices. You then need to say Y to at least one of the
in your computer provides to the operating system) and then choose Host Controller Driver (HCD) options below. Choose a USB 1.1
from amongst the drivers for USB peripherals. You may want to check controller, such as "UHCI HCD support" or "OHCI HCD support",
out the information provided in <file:Documentation/usb/> and and "EHCI HCD (USB 2.0) support" except for older systems that
especially the links given in <file:Documentation/usb/usb-help.txt>. do not have USB 2.0 support. It doesn't normally hurt to select
them all if you are not certain.
If you have a new USB 2.0 High Speed system, you should also choose
"EHCI HCD (USB 2.0) support" as well as at least one of UHCI or OHCI. If your system has a device-side USB port, used in the peripheral
side of the USB protocol, see the "USB Gadget" framework instead.
It doesn't normally hurt to select them all if you are not certain.
After choosing your HCD, then select drivers for the USB peripherals
you'll be using. You may want to check out the information provided
in <file:Documentation/usb/> and especially the links given in
<file:Documentation/usb/usb-help.txt>.
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called usbcore. module will be called usbcore.
......
...@@ -3,6 +3,15 @@ ...@@ -3,6 +3,15 @@
# (a) a peripheral controller, and # (a) a peripheral controller, and
# (b) the gadget driver using it. # (b) the gadget driver using it.
# #
# NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
#
# - Host systems (like PCs) need CONFIG_USB (with "A" jacks).
# - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks).
# - Some systems have both kinds of of controller.
#
# With help from a special transceiver and a "Mini-AB" jack, systems with
# both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG).
#
menu "USB Gadget Support" menu "USB Gadget Support"
config USB_GADGET config USB_GADGET
...@@ -11,7 +20,7 @@ config USB_GADGET ...@@ -11,7 +20,7 @@ config USB_GADGET
USB is a master/slave protocol, organized with one master USB is a master/slave protocol, organized with one master
host (such as a PC) controlling up to 127 peripheral devices. host (such as a PC) controlling up to 127 peripheral devices.
The USB hardware is asymmetric, which makes it easier to set up: The USB hardware is asymmetric, which makes it easier to set up:
you can't connect two "to-the-host" connectors to each other. you can't connect a "to-the-host" connector to a peripheral.
Linux can run in the host, or in the peripheral. In both cases Linux can run in the host, or in the peripheral. In both cases
you need a low level bus controller driver, and some software you need a low level bus controller driver, and some software
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment