Commit 193ab2a6 authored by Felipe Balbi's avatar Felipe Balbi Committed by Greg Kroah-Hartman

usb: gadget: allow multiple gadgets to be built

now that we have the udc class, we can allow
multiple gadget controller drivers to be
compiled as modules. This will allow for
distro-like kernels for embedded devices.

With this patch, I managed to build an x86
kernel with support for many of the controllers
enabled:

CONFIG_USB_FUSB300=m
CONFIG_USB_R8A66597=m
CONFIG_USB_M66592=m
CONFIG_USB_AMD5536UDC=m
CONFIG_USB_CI13XXX_PCI=m
CONFIG_USB_NET2272=m
CONFIG_USB_NET2280=m
CONFIG_USB_GOKU=m
CONFIG_USB_LANGWELL=m
CONFIG_USB_EG20T=m

Also an ARM kernel with support for many controllers:

CONFIG_USB_FUSB300=m
CONFIG_USB_OMAP=m
CONFIG_USB_R8A66597=m
CONFIG_USB_GADGET_MUSB_HDRC=m
CONFIG_USB_M66592=m
CONFIG_USB_NET2272=m
CONFIG_USB_DUMMY_HCD=m

The next step would be to get rid of the
direct access to arch/ and mach/ directories
on some gadget controllers so that we can
build all of them without depending on their
respective ARCH_* symbols.
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent ee34e51a
...@@ -118,8 +118,6 @@ source "drivers/usb/host/Kconfig" ...@@ -118,8 +118,6 @@ source "drivers/usb/host/Kconfig"
source "drivers/usb/musb/Kconfig" source "drivers/usb/musb/Kconfig"
source "drivers/usb/renesas_usbhs/Kconfig"
source "drivers/usb/class/Kconfig" source "drivers/usb/class/Kconfig"
source "drivers/usb/storage/Kconfig" source "drivers/usb/storage/Kconfig"
......
...@@ -96,9 +96,6 @@ config USB_GADGET_VBUS_DRAW ...@@ -96,9 +96,6 @@ config USB_GADGET_VBUS_DRAW
This value will be used except for system-specific gadget This value will be used except for system-specific gadget
drivers that have more specific information. drivers that have more specific information.
config USB_GADGET_SELECTED
boolean
# #
# USB Peripheral Controller Support # USB Peripheral Controller Support
# #
...@@ -122,10 +119,9 @@ choice ...@@ -122,10 +119,9 @@ choice
# Integrated controllers # Integrated controllers
# #
config USB_GADGET_AT91 config USB_AT91
boolean "Atmel AT91 USB Device Port" tristate "Atmel AT91 USB Device Port"
depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9 && !ARCH_AT91SAM9G45 depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9 && !ARCH_AT91SAM9G45
select USB_GADGET_SELECTED
help help
Many Atmel AT91 processors (such as the AT91RM2000) have a Many Atmel AT91 processors (such as the AT91RM2000) have a
full speed USB Device Port with support for five configurable full speed USB Device Port with support for five configurable
...@@ -135,27 +131,16 @@ config USB_GADGET_AT91 ...@@ -135,27 +131,16 @@ config USB_GADGET_AT91
dynamically linked module called "at91_udc" and force all dynamically linked module called "at91_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_AT91 config USB_ATMEL_USBA
tristate tristate "Atmel USBA"
depends on USB_GADGET_AT91
default USB_GADGET
config USB_GADGET_ATMEL_USBA
boolean "Atmel USBA"
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
depends on AVR32 || ARCH_AT91CAP9 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45 depends on AVR32 || ARCH_AT91CAP9 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
help help
USBA is the integrated high-speed USB Device controller on USBA is the integrated high-speed USB Device controller on
the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel. the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
config USB_ATMEL_USBA config USB_FSL_USB2
tristate tristate "Freescale Highspeed USB DR Peripheral Controller"
depends on USB_GADGET_ATMEL_USBA
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_FSL_USB2
boolean "Freescale Highspeed USB DR Peripheral Controller"
depends on FSL_SOC || ARCH_MXC depends on FSL_SOC || ARCH_MXC
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
select USB_FSL_MPH_DR_OF if OF select USB_FSL_MPH_DR_OF if OF
...@@ -170,26 +155,14 @@ config USB_GADGET_FSL_USB2 ...@@ -170,26 +155,14 @@ config USB_GADGET_FSL_USB2
dynamically linked module called "fsl_usb2_udc" and force dynamically linked module called "fsl_usb2_udc" and force
all gadget drivers to also be dynamically linked. all gadget drivers to also be dynamically linked.
config USB_FSL_USB2 config USB_FUSB300
tristate tristate "Faraday FUSB300 USB Peripheral Controller"
depends on USB_GADGET_FSL_USB2
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_FUSB300
boolean "Faraday FUSB300 USB Peripheral Controller"
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
Faraday usb device controller FUSB300 driver Faraday usb device controller FUSB300 driver
config USB_FUSB300 config USB_OMAP
tristate tristate "OMAP USB Device Controller"
depends on USB_GADGET_FUSB300
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_OMAP
boolean "OMAP USB Device Controller"
depends on ARCH_OMAP depends on ARCH_OMAP
select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG
select USB_OTG_UTILS if ARCH_OMAP select USB_OTG_UTILS if ARCH_OMAP
...@@ -204,14 +177,8 @@ config USB_GADGET_OMAP ...@@ -204,14 +177,8 @@ config USB_GADGET_OMAP
dynamically linked module called "omap_udc" and force all dynamically linked module called "omap_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_OMAP config USB_PXA25X
tristate tristate "PXA 25x or IXP 4xx"
depends on USB_GADGET_OMAP
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_PXA25X
boolean "PXA 25x or IXP 4xx"
depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX
select USB_OTG_UTILS select USB_OTG_UTILS
help help
...@@ -226,24 +193,18 @@ config USB_GADGET_PXA25X ...@@ -226,24 +193,18 @@ config USB_GADGET_PXA25X
dynamically linked module called "pxa25x_udc" and force all dynamically linked module called "pxa25x_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_PXA25X
tristate
depends on USB_GADGET_PXA25X
default USB_GADGET
select USB_GADGET_SELECTED
# if there's only one gadget driver, using only two bulk endpoints, # if there's only one gadget driver, using only two bulk endpoints,
# don't waste memory for the other endpoints # don't waste memory for the other endpoints
config USB_PXA25X_SMALL config USB_PXA25X_SMALL
depends on USB_GADGET_PXA25X depends on USB_PXA25X
bool bool
default n if USB_ETH_RNDIS default n if USB_ETH_RNDIS
default y if USB_ZERO default y if USB_ZERO
default y if USB_ETH default y if USB_ETH
default y if USB_G_SERIAL default y if USB_G_SERIAL
config USB_GADGET_R8A66597 config USB_R8A66597
boolean "Renesas R8A66597 USB Peripheral Controller" tristate "Renesas R8A66597 USB Peripheral Controller"
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
R8A66597 is a discrete USB host and peripheral controller chip that R8A66597 is a discrete USB host and peripheral controller chip that
...@@ -254,32 +215,20 @@ config USB_GADGET_R8A66597 ...@@ -254,32 +215,20 @@ config USB_GADGET_R8A66597
dynamically linked module called "r8a66597_udc" and force all dynamically linked module called "r8a66597_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_R8A66597 config USB_RENESAS_USBHS
tristate tristate 'Renesas USBHS controller'
depends on USB_GADGET_R8A66597 depends on SUPERH || ARCH_SHMOBILE
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_RENESAS_USBHS
boolean "Renesas USBHS"
depends on USB_RENESAS_USBHS
select USB_GADGET_DUALSPEED
help help
Renesas USBHS is a discrete USB host and peripheral controller Renesas USBHS is a discrete USB host and peripheral controller chip
chip that supports both full and high speed USB 2.0 data transfers. that supports both full and high speed USB 2.0 data transfers.
platform is able to configure endpoint (pipe) style It has nine or more configurable endpoints, and endpoint zero.
Say "y" to enable the gadget specific portion of the USBHS driver.
config USB_RENESAS_USBHS_UDC Say "y" to link the driver statically, or "m" to build a
tristate dynamically linked module called "renesas_usbhs" and force all
depends on USB_GADGET_RENESAS_USBHS gadget drivers to also be dynamically linked.
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_PXA27X config USB_PXA27X
boolean "PXA 27x" tristate "PXA 27x"
depends on ARCH_PXA && (PXA27x || PXA3xx) depends on ARCH_PXA && (PXA27x || PXA3xx)
select USB_OTG_UTILS select USB_OTG_UTILS
help help
...@@ -293,14 +242,8 @@ config USB_GADGET_PXA27X ...@@ -293,14 +242,8 @@ config USB_GADGET_PXA27X
dynamically linked module called "pxa27x_udc" and force all dynamically linked module called "pxa27x_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_PXA27X config USB_S3C_HSOTG
tristate tristate "S3C HS/OtG USB Device controller"
depends on USB_GADGET_PXA27X
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_S3C_HSOTG
boolean "S3C HS/OtG USB Device controller"
depends on S3C_DEV_USB_HSOTG depends on S3C_DEV_USB_HSOTG
select USB_GADGET_S3C_HSOTG_PIO select USB_GADGET_S3C_HSOTG_PIO
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
...@@ -308,14 +251,8 @@ config USB_GADGET_S3C_HSOTG ...@@ -308,14 +251,8 @@ config USB_GADGET_S3C_HSOTG
The Samsung S3C64XX USB2.0 high-speed gadget controller The Samsung S3C64XX USB2.0 high-speed gadget controller
integrated into the S3C64XX series SoC. integrated into the S3C64XX series SoC.
config USB_S3C_HSOTG config USB_IMX
tristate tristate "Freescale IMX USB Peripheral Controller"
depends on USB_GADGET_S3C_HSOTG
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_IMX
boolean "Freescale IMX USB Peripheral Controller"
depends on ARCH_MX1 depends on ARCH_MX1
help help
Freescale's IMX series include an integrated full speed Freescale's IMX series include an integrated full speed
...@@ -329,14 +266,8 @@ config USB_GADGET_IMX ...@@ -329,14 +266,8 @@ config USB_GADGET_IMX
dynamically linked module called "imx_udc" and force all dynamically linked module called "imx_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_IMX config USB_S3C2410
tristate tristate "S3C2410 USB Device Controller"
depends on USB_GADGET_IMX
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_S3C2410
boolean "S3C2410 USB Device Controller"
depends on ARCH_S3C2410 depends on ARCH_S3C2410
help help
Samsung's S3C2410 is an ARM-4 processor with an integrated Samsung's S3C2410 is an ARM-4 processor with an integrated
...@@ -346,18 +277,12 @@ config USB_GADGET_S3C2410 ...@@ -346,18 +277,12 @@ config USB_GADGET_S3C2410
This driver has been tested on the S3C2410, S3C2412, and This driver has been tested on the S3C2410, S3C2412, and
S3C2440 processors. S3C2440 processors.
config USB_S3C2410
tristate
depends on USB_GADGET_S3C2410
default USB_GADGET
select USB_GADGET_SELECTED
config USB_S3C2410_DEBUG config USB_S3C2410_DEBUG
boolean "S3C2410 udc debug messages" boolean "S3C2410 udc debug messages"
depends on USB_GADGET_S3C2410 depends on USB_S3C2410
config USB_GADGET_S3C_HSUDC config USB_S3C_HSUDC
boolean "S3C2416, S3C2443 and S3C2450 USB Device Controller" tristate "S3C2416, S3C2443 and S3C2450 USB Device Controller"
depends on ARCH_S3C2410 depends on ARCH_S3C2410
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
...@@ -367,41 +292,29 @@ config USB_GADGET_S3C_HSUDC ...@@ -367,41 +292,29 @@ config USB_GADGET_S3C_HSUDC
This driver has been tested on S3C2416 and S3C2450 processors. This driver has been tested on S3C2416 and S3C2450 processors.
config USB_S3C_HSUDC config USB_PXA_U2O
tristate tristate "PXA9xx Processor USB2.0 controller"
depends on USB_GADGET_S3C_HSUDC depends on ARCH_MMP
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_PXA_U2O
boolean "PXA9xx Processor USB2.0 controller"
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
PXA9xx Processor series include a high speed USB2.0 device PXA9xx Processor series include a high speed USB2.0 device
controller, which support high speed and full speed USB peripheral. controller, which support high speed and full speed USB peripheral.
config USB_PXA_U2O
tristate
depends on USB_GADGET_PXA_U2O
default USB_GADGET
select USB_GADGET_SELECTED
# #
# Controllers available in both integrated and discrete versions # Controllers available in both integrated and discrete versions
# #
# musb builds in ../musb along with host support # musb builds in ../musb along with host support
config USB_GADGET_MUSB_HDRC config USB_GADGET_MUSB_HDRC
boolean "Inventra HDRC USB Peripheral (TI, ADI, ...)" tristate "Inventra HDRC USB Peripheral (TI, ADI, ...)"
depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG) depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG)
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
select USB_GADGET_SELECTED
help help
This OTG-capable silicon IP is used in dual designs including This OTG-capable silicon IP is used in dual designs including
the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin
config USB_GADGET_M66592 config USB_M66592
boolean "Renesas M66592 USB Peripheral Controller" tristate "Renesas M66592 USB Peripheral Controller"
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
M66592 is a discrete USB peripheral controller chip that M66592 is a discrete USB peripheral controller chip that
...@@ -412,18 +325,12 @@ config USB_GADGET_M66592 ...@@ -412,18 +325,12 @@ config USB_GADGET_M66592
dynamically linked module called "m66592_udc" and force all dynamically linked module called "m66592_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_M66592
tristate
depends on USB_GADGET_M66592
default USB_GADGET
select USB_GADGET_SELECTED
# #
# Controllers available only in discrete form (and all PCI controllers) # Controllers available only in discrete form (and all PCI controllers)
# #
config USB_GADGET_AMD5536UDC config USB_AMD5536UDC
boolean "AMD5536 UDC" tristate "AMD5536 UDC"
depends on PCI depends on PCI
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
...@@ -437,14 +344,8 @@ config USB_GADGET_AMD5536UDC ...@@ -437,14 +344,8 @@ config USB_GADGET_AMD5536UDC
dynamically linked module called "amd5536udc" and force all dynamically linked module called "amd5536udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_AMD5536UDC config USB_FSL_QE
tristate tristate "Freescale QE/CPM USB Device Controller"
depends on USB_GADGET_AMD5536UDC
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_FSL_QE
boolean "Freescale QE/CPM USB Device Controller"
depends on FSL_SOC && (QUICC_ENGINE || CPM) depends on FSL_SOC && (QUICC_ENGINE || CPM)
help help
Some of Freescale PowerPC processors have a Full Speed Some of Freescale PowerPC processors have a Full Speed
...@@ -456,14 +357,8 @@ config USB_GADGET_FSL_QE ...@@ -456,14 +357,8 @@ config USB_GADGET_FSL_QE
Set CONFIG_USB_GADGET to "m" to build this driver as a Set CONFIG_USB_GADGET to "m" to build this driver as a
dynamically linked module called "fsl_qe_udc". dynamically linked module called "fsl_qe_udc".
config USB_FSL_QE config USB_CI13XXX_PCI
tristate tristate "MIPS USB CI13xxx PCI UDC"
depends on USB_GADGET_FSL_QE
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_CI13XXX_PCI
boolean "MIPS USB CI13xxx PCI UDC"
depends on PCI depends on PCI
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
...@@ -474,14 +369,8 @@ config USB_GADGET_CI13XXX_PCI ...@@ -474,14 +369,8 @@ config USB_GADGET_CI13XXX_PCI
dynamically linked module called "ci13xxx_udc" and force all dynamically linked module called "ci13xxx_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_CI13XXX_PCI config USB_NET2272
tristate tristate "PLX NET2272"
depends on USB_GADGET_CI13XXX_PCI
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_NET2272
boolean "PLX NET2272"
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
PLX NET2272 is a USB peripheral controller which supports PLX NET2272 is a USB peripheral controller which supports
...@@ -493,9 +382,9 @@ config USB_GADGET_NET2272 ...@@ -493,9 +382,9 @@ config USB_GADGET_NET2272
dynamically linked module called "net2272" and force all dynamically linked module called "net2272" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_GADGET_NET2272_DMA config USB_NET2272_DMA
boolean "Support external DMA controller" boolean "Support external DMA controller"
depends on USB_GADGET_NET2272 depends on USB_NET2272
help help
The NET2272 part can optionally support an external DMA The NET2272 part can optionally support an external DMA
controller, but your board has to have support in the controller, but your board has to have support in the
...@@ -503,14 +392,8 @@ config USB_GADGET_NET2272_DMA ...@@ -503,14 +392,8 @@ config USB_GADGET_NET2272_DMA
If unsure, say "N" here. The driver works fine in PIO mode. If unsure, say "N" here. The driver works fine in PIO mode.
config USB_NET2272 config USB_NET2280
tristate tristate "NetChip 228x"
depends on USB_GADGET_NET2272
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_NET2280
boolean "NetChip 228x"
depends on PCI depends on PCI
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
...@@ -525,14 +408,8 @@ config USB_GADGET_NET2280 ...@@ -525,14 +408,8 @@ config USB_GADGET_NET2280
dynamically linked module called "net2280" and force all dynamically linked module called "net2280" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_NET2280 config USB_GOKU
tristate tristate "Toshiba TC86C001 'Goku-S'"
depends on USB_GADGET_NET2280
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_GOKU
boolean "Toshiba TC86C001 'Goku-S'"
depends on PCI depends on PCI
help help
The Toshiba TC86C001 is a PCI device which includes controllers The Toshiba TC86C001 is a PCI device which includes controllers
...@@ -545,14 +422,8 @@ config USB_GADGET_GOKU ...@@ -545,14 +422,8 @@ config USB_GADGET_GOKU
dynamically linked module called "goku_udc" and to force all dynamically linked module called "goku_udc" and to force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_GOKU config USB_LANGWELL
tristate tristate "Intel Langwell USB Device Controller"
depends on USB_GADGET_GOKU
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_LANGWELL
boolean "Intel Langwell USB Device Controller"
depends on PCI depends on PCI
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
...@@ -566,14 +437,8 @@ config USB_GADGET_LANGWELL ...@@ -566,14 +437,8 @@ config USB_GADGET_LANGWELL
dynamically linked module called "langwell_udc" and force all dynamically linked module called "langwell_udc" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_LANGWELL config USB_EG20T
tristate tristate "Intel EG20T PCH/OKI SEMICONDUCTOR ML7213 IOH UDC"
depends on USB_GADGET_LANGWELL
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_EG20T
boolean "Intel EG20T PCH/OKI SEMICONDUCTOR ML7213 IOH UDC"
depends on PCI depends on PCI
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
help help
...@@ -594,14 +459,8 @@ config USB_GADGET_EG20T ...@@ -594,14 +459,8 @@ config USB_GADGET_EG20T
ML7213 is companion chip for Intel Atom E6xx series. ML7213 is companion chip for Intel Atom E6xx series.
ML7213 is completely compatible for Intel EG20T PCH. ML7213 is completely compatible for Intel EG20T PCH.
config USB_EG20T config USB_CI13XXX_MSM
tristate tristate "MIPS USB CI13xxx for MSM"
depends on USB_GADGET_EG20T
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_CI13XXX_MSM
boolean "MIPS USB CI13xxx for MSM"
depends on ARCH_MSM depends on ARCH_MSM
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
select USB_MSM_OTG select USB_MSM_OTG
...@@ -617,18 +476,12 @@ config USB_GADGET_CI13XXX_MSM ...@@ -617,18 +476,12 @@ config USB_GADGET_CI13XXX_MSM
dynamically linked module called "ci13xxx_msm" and force all dynamically linked module called "ci13xxx_msm" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_CI13XXX_MSM
tristate
depends on USB_GADGET_CI13XXX_MSM
default USB_GADGET
select USB_GADGET_SELECTED
# #
# LAST -- dummy/emulated controller # LAST -- dummy/emulated controller
# #
config USB_GADGET_DUMMY_HCD config USB_DUMMY_HCD
boolean "Dummy HCD (DEVELOPMENT)" tristate "Dummy HCD (DEVELOPMENT)"
depends on USB=y || (USB=m && USB_GADGET=m) depends on USB=y || (USB=m && USB_GADGET=m)
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
select USB_GADGET_SUPERSPEED select USB_GADGET_SUPERSPEED
...@@ -638,11 +491,11 @@ config USB_GADGET_DUMMY_HCD ...@@ -638,11 +491,11 @@ config USB_GADGET_DUMMY_HCD
side is the master; the gadget side is the slave. Gadget drivers side is the master; the gadget side is the slave. Gadget drivers
can be high, full, or low speed; and they have access to endpoints can be high, full, or low speed; and they have access to endpoints
like those from NET2280, PXA2xx, or SA1100 hardware. like those from NET2280, PXA2xx, or SA1100 hardware.
This may help in some stages of creating a driver to embed in a This may help in some stages of creating a driver to embed in a
Linux device, since it lets you debug several parts of the gadget Linux device, since it lets you debug several parts of the gadget
driver without its hardware or drivers being involved. driver without its hardware or drivers being involved.
Since such a gadget side driver needs to interoperate with a host Since such a gadget side driver needs to interoperate with a host
side Linux-USB device driver, this may help to debug both sides side Linux-USB device driver, this may help to debug both sides
of a USB protocol stack. of a USB protocol stack.
...@@ -651,12 +504,6 @@ config USB_GADGET_DUMMY_HCD ...@@ -651,12 +504,6 @@ config USB_GADGET_DUMMY_HCD
dynamically linked module called "dummy_hcd" and force all dynamically linked module called "dummy_hcd" and force all
gadget drivers to also be dynamically linked. gadget drivers to also be dynamically linked.
config USB_DUMMY_HCD
tristate
depends on USB_GADGET_DUMMY_HCD
default USB_GADGET
select USB_GADGET_SELECTED
# NOTE: Please keep dummy_hcd LAST so that "real hardware" appears # NOTE: Please keep dummy_hcd LAST so that "real hardware" appears
# first and will be selected by default. # first and will be selected by default.
...@@ -678,7 +525,7 @@ config USB_GADGET_SUPERSPEED ...@@ -678,7 +525,7 @@ config USB_GADGET_SUPERSPEED
# #
choice choice
tristate "USB Gadget Drivers" tristate "USB Gadget Drivers"
depends on USB_GADGET && USB_GADGET_SELECTED depends on USB_GADGET
default USB_ETH default USB_ETH
help help
A Linux "Gadget Driver" talks to the USB Peripheral Controller A Linux "Gadget Driver" talks to the USB Peripheral Controller
......
#
# Renesas USB Controller Drivers
#
config USB_RENESAS_USBHS
tristate 'Renesas USBHS controller'
depends on SUPERH || ARCH_SHMOBILE
default n
help
Renesas USBHS is a discrete USB host and peripheral controller chip
that supports both full and high speed USB 2.0 data transfers.
It has nine or more configurable endpoints, and endpoint zero.
Say "y" to link the driver statically, or "m" to build a
dynamically linked module called "renesas_usbhs" and force all
gadget drivers to also be dynamically linked.
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