1#
2# USB device-side configuration
3# for 2.4 kbuild, drivers/usb/gadget/Config.in
4#
5# Long term, this likely doesn't all belong in one directory
6# Plan to split it up eventually.
7#
8mainmenu_option next_comment
9comment 'Support for USB gadgets'
10
11tristate 'Support for USB Gadgets' CONFIG_USB_GADGET
12if [ "$CONFIG_USB_GADGET" = "y" -o "$CONFIG_USB_GADGET" = "m" ]; then
13
14  #
15  # really want _exactly one_ device controller driver at a time,
16  # since they control compile options for gadget drivers.
17  #
18  choice 'USB Peripheral Controller Driver' "\
19	NetChip-2280			CONFIG_USB_GADGET_NET2280 \
20	Toshiba-TC86C001(Goku-S)	CONFIG_USB_GADGET_GOKU \
21	" NetChip-2280
22
23  define_tristate CONFIG_USB_GADGET_CONTROLLER n
24
25  if [ "$CONFIG_PCI" = "y" -a "$CONFIG_USB_GADGET_NET2280" = "y" ] ; then
26    define_tristate CONFIG_USB_NET2280 $CONFIG_USB_GADGET
27    define_tristate CONFIG_USB_GADGET_CONTROLLER $CONFIG_USB_NET2280
28  fi
29  if [ "$CONFIG_PCI" = "y" -a "$CONFIG_USB_GADGET_GOKU" = "y" ] ; then
30    define_tristate CONFIG_USB_GOKU $CONFIG_USB_GADGET
31    define_tristate CONFIG_USB_GADGET_CONTROLLER $CONFIG_USB_GOKU
32  fi
33
34  # or any other controller that supports high speed transfers ...
35  define_bool CONFIG_USB_GADGET_DUALSPEED $CONFIG_USB_GADGET_NET2280
36
37  if [ "$CONFIG_USB_GADGET_CONTROLLER" = "y" -o "$CONFIG_USB_GADGET_CONTROLLER" = "m" ] ; then
38
39  #
40  # no reason not to enable more than one gadget driver module, but
41  # for static linking that would make no sense since the usb model
42  # has exactly one of these upstream connections and only one
43  # lowest-level driver can control it.
44  #
45  # gadget drivers are compiled to work on specific hardware, since
46  #
47  # (a) gadget driver need hardware-specific configuration, like what
48  #     endpoint names and numbers to use, maxpacket sizes, etc
49  #
50  # (b) specific hardware features like iso endpoints may be required
51  #
52  comment 'USB Gadget Drivers'
53
54  dep_tristate '  Gadget Zero (DEVELOPMENT)' CONFIG_USB_ZERO $CONFIG_USB_GADGET_CONTROLLER
55  dep_tristate '  Ethernet Gadget' CONFIG_USB_ETH $CONFIG_USB_GADGET_CONTROLLER $CONFIG_NET
56  if [ "$CONFIG_USB_ETH" = "y" -o "$CONFIG_USB_ETH" = "m" ] ; then
57    dep_bool       '    RNDIS support (EXPERIMENTAL)' CONFIG_USB_ETH_RNDIS $CONFIG_EXPERIMENTAL
58  fi
59  dep_tristate '  File-backed Storage Gadget (DEVELOPMENT)' CONFIG_USB_FILE_STORAGE $CONFIG_USB_GADGET_CONTROLLER
60  dep_mbool '    File-backed Storage Gadget test mode' CONFIG_USB_FILE_STORAGE_TEST $CONFIG_USB_FILE_STORAGE
61
62
63    # enforce the "only one statically linked gadget driver" rule
64
65    if [ "$CONFIG_USB_ZERO" = "y" ]; then
66      # zero = y
67      define_tristate CONFIG_USB_ETH n
68      define_tristate CONFIG_USB_FILE_STORAGE n
69    fi
70
71    if [ "$CONFIG_USB_ETH" = "y" ]; then
72      define_tristate CONFIG_USB_ZERO n
73      # eth = y
74      define_tristate CONFIG_USB_FILE_STORAGE n
75    fi
76
77    if [ "$CONFIG_USB_FILE_STORAGE" = "y" ]; then
78      define_tristate CONFIG_USB_ZERO n
79      define_tristate CONFIG_USB_ETH n
80      # file_storage = y
81    fi
82  fi
83fi
84endmenu
85