GNU Linux-libre 4.19.245-gnu1
[releases.git] / drivers / net / usb / Kconfig
1 #
2 # USB Network devices configuration
3 #
4 comment "Host-side USB support is needed for USB Network Adapter support"
5         depends on !USB && NET
6
7 menuconfig USB_NET_DRIVERS
8         tristate "USB Network Adapters"
9         default USB if USB
10         depends on USB && NET
11
12 if USB_NET_DRIVERS
13
14 config USB_CATC
15         tristate "USB CATC NetMate-based Ethernet device support"
16         select CRC32
17         ---help---
18           Say Y if you want to use one of the following 10Mbps USB Ethernet
19           device based on the EL1210A chip. Supported devices are:
20           Belkin F5U011
21           Belkin F5U111
22           CATC NetMate
23           CATC NetMate II
24           smartBridges smartNIC
25
26           This driver makes the adapter appear as a normal Ethernet interface,
27           typically on eth0, if it is the only ethernet device, or perhaps on
28           eth1, if you have a PCI or ISA ethernet card installed.
29
30           To compile this driver as a module, choose M here: the
31           module will be called catc.
32
33 config USB_KAWETH
34         tristate "USB KLSI KL5USB101-based ethernet device support"
35         ---help---
36           Say Y here if you want to use one of the following 10Mbps only
37           USB Ethernet adapters based on the KLSI KL5KUSB101B chipset:
38           3Com 3C19250
39           ADS USB-10BT
40           ATEN USB Ethernet
41           ASANTE USB To Ethernet Adapter
42           AOX Endpoints USB Ethernet
43           Correga K.K.
44           D-Link DSB-650C and DU-E10
45           Entrega / Portgear E45
46           I-O DATA USB-ET/T
47           Jaton USB Ethernet Device Adapter
48           Kingston Technology USB Ethernet Adapter
49           Linksys USB10T
50           Mobility USB-Ethernet Adapter
51           NetGear EA-101
52           Peracom Enet and Enet2
53           Portsmith Express Ethernet Adapter
54           Shark Pocket Adapter
55           SMC 2202USB
56           Sony Vaio port extender
57
58           This driver is likely to work with most 10Mbps only USB Ethernet
59           adapters, including some "no brand" devices. It does NOT work on
60           SmartBridges smartNIC or on Belkin F5U111 devices - you should use
61           the CATC NetMate driver for those. If you are not sure which one
62           you need, select both, and the correct one should be selected for
63           you.
64
65           This driver makes the adapter appear as a normal Ethernet interface,
66           typically on eth0, if it is the only ethernet device, or perhaps on
67           eth1, if you have a PCI or ISA ethernet card installed.
68
69           To compile this driver as a module, choose M here: the
70           module will be called kaweth.
71
72 config USB_PEGASUS
73         tristate "USB Pegasus/Pegasus-II based ethernet device support"
74         select MII
75         ---help---
76           Say Y here if you know you have Pegasus or Pegasus-II based adapter.
77           If in doubt then look at <file:drivers/net/usb/pegasus.h> for the
78           complete list of supported devices.
79
80           If your particular adapter is not in the list and you are _sure_ it
81           is Pegasus or Pegasus II based then send me
82           <petkan@users.sourceforge.net> vendor and device IDs.
83
84           To compile this driver as a module, choose M here: the
85           module will be called pegasus.
86
87 config USB_RTL8150
88         tristate "USB RTL8150 based ethernet device support"
89         select MII
90         help
91           Say Y here if you have RTL8150 based usb-ethernet adapter.
92           Send me <petkan@users.sourceforge.net> any comments you may have.
93           You can also check for updates at <http://pegasus2.sourceforge.net/>.
94
95           To compile this driver as a module, choose M here: the
96           module will be called rtl8150.
97
98 config USB_RTL8152
99         tristate "Realtek RTL8152/RTL8153 Based USB Ethernet Adapters"
100         select MII
101         select CRC32
102         select CRYPTO
103         select CRYPTO_HASH
104         select CRYPTO_SHA256
105         help
106           This option adds support for Realtek RTL8152 based USB 2.0
107           10/100 Ethernet adapters and RTL8153 based USB 3.0 10/100/1000
108           Ethernet adapters.
109
110           To compile this driver as a module, choose M here: the
111           module will be called r8152.
112
113 config USB_LAN78XX
114         tristate "Microchip LAN78XX Based USB Ethernet Adapters"
115         select MII
116         select PHYLIB
117         select MICROCHIP_PHY
118         select FIXED_PHY
119         select CRC32
120         help
121           This option adds support for Microchip LAN78XX based USB 2
122           & USB 3 10/100/1000 Ethernet adapters.
123           LAN7800 : USB 3 to 10/100/1000 Ethernet adapter
124           LAN7850 : USB 2 to 10/100/1000 Ethernet adapter
125           LAN7801 : USB 3 to 10/100/1000 Ethernet adapter (MAC only)
126
127           Proper PHY driver is required for LAN7801.
128
129           To compile this driver as a module, choose M here: the
130           module will be called lan78xx.
131
132 config USB_USBNET
133         tristate "Multi-purpose USB Networking Framework"
134         select MII
135         ---help---
136           This driver supports several kinds of network links over USB,
137           with "minidrivers" built around a common network driver core
138           that supports deep queues for efficient transfers.  (This gives
139           better performance with small packets and at high speeds).
140
141           The USB host runs "usbnet", and the other end of the link might be:
142
143           - Another USB host, when using USB "network" or "data transfer"
144             cables.  These are often used to network laptops to PCs, like
145             "Laplink" parallel cables or some motherboards.  These rely
146             on specialized chips from many suppliers.
147
148           - An intelligent USB gadget, perhaps embedding a Linux system.
149             These include PDAs running Linux (iPaq, Yopy, Zaurus, and
150             others), and devices that interoperate using the standard
151             CDC-Ethernet specification (including many cable modems).
152
153           - Network adapter hardware (like those for 10/100 Ethernet) which
154             uses this driver framework.
155
156           The link will appear with a name like "usb0", when the link is
157           a two-node link, or "eth0" for most CDC-Ethernet devices.  Those
158           two-node links are most easily managed with Ethernet Bridging
159           (CONFIG_BRIDGE) instead of routing.
160
161           For more information see <http://www.linux-usb.org/usbnet/>.
162
163           To compile this driver as a module, choose M here: the
164           module will be called usbnet.
165
166 config USB_NET_AX8817X
167         tristate "ASIX AX88xxx Based USB 2.0 Ethernet Adapters"
168         depends on USB_USBNET
169         select CRC32
170         select PHYLIB
171         default y
172         help
173           This option adds support for ASIX AX88xxx based USB 2.0
174           10/100 Ethernet adapters.
175
176           This driver should work with at least the following devices:
177             * Aten UC210T
178             * ASIX AX88172
179             * Billionton Systems, USB2AR
180             * Billionton Systems, GUSB2AM-1G-B
181             * Buffalo LUA-U2-KTX
182             * Corega FEther USB2-TX
183             * D-Link DUB-E100
184             * Hawking UF200
185             * Linksys USB200M
186             * Netgear FA120
187             * Sitecom LN-029
188             * Sitecom LN-028
189             * Intellinet USB 2.0 Ethernet
190             * ST Lab USB 2.0 Ethernet
191             * TrendNet TU2-ET100
192
193           This driver creates an interface named "ethX", where X depends on
194           what other networking devices you have in use.
195
196 config USB_NET_AX88179_178A
197         tristate "ASIX AX88179/178A USB 3.0/2.0 to Gigabit Ethernet"
198         depends on USB_USBNET
199         select CRC32
200         select PHYLIB
201         default y
202         help
203           This option adds support for ASIX AX88179 based USB 3.0/2.0
204           to Gigabit Ethernet adapters.
205
206           This driver should work with at least the following devices:
207             * ASIX AX88179
208             * ASIX AX88178A
209             * Sitcomm LN-032
210
211           This driver creates an interface named "ethX", where X depends on
212           what other networking devices you have in use.
213
214 config USB_NET_CDCETHER
215         tristate "CDC Ethernet support (smart devices such as cable modems)"
216         depends on USB_USBNET
217         default y
218         help
219           This option supports devices conforming to the Communication Device
220           Class (CDC) Ethernet Control Model, a specification that's easy to
221           implement in device firmware.  The CDC specifications are available
222           from <http://www.usb.org/>.
223
224           CDC Ethernet is an implementation option for DOCSIS cable modems
225           that support USB connectivity, used for non-Microsoft USB hosts.
226           The Linux-USB CDC Ethernet Gadget driver is an open implementation.
227           This driver should work with at least the following devices:
228
229             * Dell Wireless 5530 HSPA
230             * Ericsson PipeRider (all variants)
231             * Ericsson Mobile Broadband Module (all variants)
232             * Motorola (DM100 and SB4100)
233             * Broadcom Cable Modem (reference design)
234             * Toshiba (PCX1100U and F3507g/F3607gw)
235             * ...
236
237           This driver creates an interface named "ethX", where X depends on
238           what other networking devices you have in use.  However, if the
239           IEEE 802 "local assignment" bit is set in the address, a "usbX"
240           name is used instead.
241
242 config USB_NET_CDC_EEM
243         tristate "CDC EEM support"
244         depends on USB_USBNET
245         help
246           This option supports devices conforming to the Communication Device
247           Class (CDC) Ethernet Emulation Model, a specification that's easy to
248           implement in device firmware.  The CDC EEM specifications are available
249           from <http://www.usb.org/>.
250
251           This driver creates an interface named "ethX", where X depends on
252           what other networking devices you have in use.  However, if the
253           IEEE 802 "local assignment" bit is set in the address, a "usbX"
254           name is used instead.
255
256 config USB_NET_CDC_NCM
257         tristate "CDC NCM support"
258         depends on USB_USBNET
259         default y
260         help
261           This driver provides support for CDC NCM (Network Control Model
262           Device USB Class Specification). The CDC NCM specification is
263           available from <http://www.usb.org/>.
264
265           Say "y" to link the driver statically, or "m" to build a
266           dynamically linked module.
267
268           This driver should work with at least the following devices:
269             * ST-Ericsson M700 LTE FDD/TDD Mobile Broadband Modem (ref. design)
270             * ST-Ericsson M5730 HSPA+ Mobile Broadband Modem (reference design)
271             * ST-Ericsson M570 HSPA+ Mobile Broadband Modem (reference design)
272             * ST-Ericsson M343 HSPA Mobile Broadband Modem (reference design)
273             * Ericsson F5521gw Mobile Broadband Module
274
275 config USB_NET_HUAWEI_CDC_NCM
276         tristate "Huawei NCM embedded AT channel support"
277         depends on USB_USBNET
278         select USB_WDM
279         select USB_NET_CDC_NCM
280         help
281                 This driver supports huawei-style NCM devices, that use NCM as a
282                 transport for other protocols, usually an embedded AT channel.
283                 Good examples are:
284                 * Huawei E3131
285                 * Huawei E3251
286
287                 To compile this driver as a module, choose M here: the module will be
288                 called huawei_cdc_ncm.ko.
289
290 config USB_NET_CDC_MBIM
291         tristate "CDC MBIM support"
292         depends on USB_USBNET
293         select USB_WDM
294         select USB_NET_CDC_NCM
295         help
296           This driver provides support for CDC MBIM (Mobile Broadband
297           Interface Model) devices. The CDC MBIM specification is
298           available from <http://www.usb.org/>.
299
300           MBIM devices require configuration using the management
301           protocol defined by the MBIM specification.  This driver
302           provides unfiltered access to the MBIM control channel
303           through the associated /dev/cdc-wdmx character device.
304
305           To compile this driver as a module, choose M here: the
306           module will be called cdc_mbim.
307
308 config USB_NET_DM9601
309         tristate "Davicom DM96xx based USB 10/100 ethernet devices"
310         depends on USB_USBNET
311         select CRC32
312         help
313           This option adds support for Davicom DM9601/DM9620/DM9621A
314           based USB 10/100 Ethernet adapters.
315
316 config USB_NET_SR9700
317         tristate "CoreChip-sz SR9700 based USB 1.1 10/100 ethernet devices"
318         depends on USB_USBNET
319         select CRC32
320         help
321           This option adds support for CoreChip-sz SR9700 based USB 1.1
322           10/100 Ethernet adapters.
323
324 config USB_NET_SR9800
325         tristate "CoreChip-sz SR9800 based USB 2.0 10/100 ethernet devices"
326         depends on USB_USBNET
327         select CRC32
328         ---help---
329           Say Y if you want to use one of the following 100Mbps USB Ethernet
330           device based on the CoreChip-sz SR9800 chip.
331
332           This driver makes the adapter appear as a normal Ethernet interface,
333           typically on eth0, if it is the only ethernet device, or perhaps on
334           eth1, if you have a PCI or ISA ethernet card installed.
335
336           To compile this driver as a module, choose M here: the
337           module will be called sr9800.
338
339 config USB_NET_SMSC75XX
340         tristate "SMSC LAN75XX based USB 2.0 gigabit ethernet devices"
341         depends on USB_USBNET
342         select BITREVERSE
343         select CRC16
344         select CRC32
345         help
346           This option adds support for SMSC LAN75XX based USB 2.0
347           Gigabit Ethernet adapters.
348
349 config USB_NET_SMSC95XX
350         tristate "SMSC LAN95XX based USB 2.0 10/100 ethernet devices"
351         depends on USB_USBNET
352         select BITREVERSE
353         select CRC16
354         select CRC32
355         help
356           This option adds support for SMSC LAN95XX based USB 2.0
357           10/100 Ethernet adapters.
358
359 config USB_NET_GL620A
360         tristate "GeneSys GL620USB-A based cables"
361         depends on USB_USBNET
362         help
363           Choose this option if you're using a host-to-host cable,
364           or PC2PC motherboard, with this chip.
365
366           Note that the half-duplex "GL620USB" is not supported.
367
368 config USB_NET_NET1080
369         tristate "NetChip 1080 based cables (Laplink, ...)"
370         default y
371         depends on USB_USBNET
372         help
373           Choose this option if you're using a host-to-host cable based
374           on this design:  one NetChip 1080 chip and supporting logic,
375           optionally with LEDs that indicate traffic
376
377 config USB_NET_PLUSB
378         tristate "Prolific PL-2301/2302/25A1/27A1 based cables"
379         # if the handshake/init/reset problems, from original 'plusb',
380         # are ever resolved ... then remove "experimental"
381         depends on USB_USBNET
382         help
383           Choose this option if you're using a host-to-host cable
384           with one of these chips.
385
386 config USB_NET_MCS7830
387         tristate "MosChip MCS7830 based Ethernet adapters"
388         depends on USB_USBNET
389         help
390           Choose this option if you're using a 10/100 Ethernet USB2
391           adapter based on the MosChip 7830 controller. This includes
392           adapters marketed under the DeLOCK brand.
393
394 config USB_NET_RNDIS_HOST
395         tristate "Host for RNDIS and ActiveSync devices"
396         depends on USB_USBNET
397         select USB_NET_CDCETHER
398         help
399           This option enables hosting "Remote NDIS" USB networking links,
400           as encouraged by Microsoft (instead of CDC Ethernet!) for use in
401           various devices that may only support this protocol.  A variant
402           of this protocol (with even less public documentation) seems to
403           be at the root of Microsoft's "ActiveSync" too.
404
405           Avoid using this protocol unless you have no better options.
406           The protocol specification is incomplete, and is controlled by
407           (and for) Microsoft; it isn't an "Open" ecosystem or market.
408
409 config USB_NET_CDC_SUBSET_ENABLE
410         tristate
411         depends on USB_NET_CDC_SUBSET
412
413 config USB_NET_CDC_SUBSET
414         tristate "Simple USB Network Links (CDC Ethernet subset)"
415         depends on USB_USBNET
416         default y
417         help
418           This driver module supports USB network devices that can work
419           without any device-specific information.  Select it if you have
420           one of these drivers.
421
422           Note that while many USB host-to-host cables can work in this mode,
423           that may mean not being able to talk to Win32 systems or more
424           commonly not being able to handle certain events (like replugging
425           the host on the other end) very well.  Also, these devices will
426           not generally have permanently assigned Ethernet addresses.
427
428 config USB_ALI_M5632
429         bool "ALi M5632 based 'USB 2.0 Data Link' cables"
430         depends on USB_NET_CDC_SUBSET
431         select USB_NET_CDC_SUBSET_ENABLE
432         help
433           Choose this option if you're using a host-to-host cable
434           based on this design, which supports USB 2.0 high speed.
435
436 config USB_AN2720
437         bool "AnchorChips 2720 based cables (Xircom PGUNET, ...)"
438         depends on USB_NET_CDC_SUBSET
439         select USB_NET_CDC_SUBSET_ENABLE
440         help
441           Choose this option if you're using a host-to-host cable
442           based on this design.  Note that AnchorChips is now a
443           Cypress brand.
444
445 config USB_BELKIN
446         bool "eTEK based host-to-host cables (Advance, Belkin, ...)"
447         depends on USB_NET_CDC_SUBSET
448         select USB_NET_CDC_SUBSET_ENABLE
449         default y
450         help
451           Choose this option if you're using a host-to-host cable
452           based on this design:  two NetChip 2890 chips and an Atmel
453           microcontroller, with LEDs that indicate traffic.
454
455 config USB_ARMLINUX
456         bool "Embedded ARM Linux links (iPaq, ...)"
457         depends on USB_NET_CDC_SUBSET
458         select USB_NET_CDC_SUBSET_ENABLE
459         default y
460         help
461           Choose this option to support the "usb-eth" networking driver
462           used by most of the ARM Linux community with device controllers
463           such as the SA-11x0 and PXA-25x UDCs, or the tftp capabilities
464           in some PXA versions of the "blob" boot loader.
465
466           Linux-based "Gumstix" PXA-25x based systems use this protocol
467           to talk with other Linux systems.
468
469           Although the ROMs shipped with Sharp Zaurus products use a
470           different link level framing protocol, you can have them use
471           this simpler protocol by installing a different kernel.
472
473 config USB_EPSON2888
474         bool "Epson 2888 based firmware (DEVELOPMENT)"
475         depends on USB_NET_CDC_SUBSET
476         select USB_NET_CDC_SUBSET_ENABLE
477         help
478           Choose this option to support the usb networking links used
479           by some sample firmware from Epson.
480
481 config USB_KC2190
482         bool "KT Technology KC2190 based cables (InstaNet)"
483         depends on USB_NET_CDC_SUBSET
484         select USB_NET_CDC_SUBSET_ENABLE
485         help
486           Choose this option if you're using a host-to-host cable
487           with one of these chips.
488
489 config USB_NET_ZAURUS
490         tristate "Sharp Zaurus (stock ROMs) and compatible"
491         depends on USB_USBNET
492         select USB_NET_CDCETHER
493         select CRC32
494         default y
495         help
496           Choose this option to support the usb networking links used by
497           Zaurus models like the SL-5000D, SL-5500, SL-5600, A-300, B-500.
498           This also supports some related device firmware, as used in some
499           PDAs from Olympus and some cell phones from Motorola.
500
501           If you install an alternate image, such as the Linux 2.6 based
502           versions of OpenZaurus, you should no longer need to support this
503           protocol.  Only the "eth-fd" or "net_fd" drivers in these devices
504           really need this non-conformant variant of CDC Ethernet (or in
505           some cases CDC MDLM) protocol, not "g_ether".
506
507 config USB_NET_CX82310_ETH
508         tristate "Conexant CX82310 USB ethernet port"
509         depends on USB_USBNET
510         help
511           Choose this option if you're using a Conexant CX82310-based ADSL
512           router with USB ethernet port. This driver is for routers only,
513           it will not work with ADSL modems (use cxacru driver instead).
514
515 config USB_NET_KALMIA
516         tristate "Samsung Kalmia based LTE USB modem"
517         depends on USB_USBNET
518         help
519           Choose this option if you have a Samsung Kalmia based USB modem
520           as Samsung GT-B3730.
521
522           To compile this driver as a module, choose M here: the
523           module will be called kalmia.
524
525 config USB_NET_QMI_WWAN
526         tristate "QMI WWAN driver for Qualcomm MSM based 3G and LTE modems"
527         depends on USB_USBNET
528         select USB_WDM
529         help
530           Support WWAN LTE/3G devices based on Qualcomm Mobile Data Modem
531           (MDM) chipsets.  Examples of such devices are
532             * Huawei E392/E398
533
534           This driver will only drive the ethernet part of the chips.
535           The devices require additional configuration to be usable.
536           Multiple management interfaces with linux drivers are
537           available:
538
539             * option: AT commands on /dev/ttyUSBx
540             * cdc-wdm: Qualcomm MSM Interface (QMI) protocol on /dev/cdc-wdmx
541
542           A modem manager with support for QMI is recommended.
543
544           To compile this driver as a module, choose M here: the
545           module will be called qmi_wwan.
546
547 config USB_HSO
548         tristate "Option USB High Speed Mobile Devices"
549         depends on USB && RFKILL && TTY
550         default n
551         help
552           Choose this option if you have an Option HSDPA/HSUPA card.
553           These cards support downlink speeds of 7.2Mbps or greater.
554
555           To compile this driver as a module, choose M here: the
556           module will be called hso.
557
558 config USB_NET_INT51X1
559         tristate "Intellon PLC based usb adapter"
560         depends on USB_USBNET
561         help
562           Choose this option if you're using a 14Mb USB-based PLC
563           (Powerline Communications) solution with an Intellon
564           INT51x1/INT5200 chip, like the "devolo dLan duo".
565
566 config USB_CDC_PHONET
567         tristate "CDC Phonet support"
568         depends on PHONET && USB_USBNET
569         help
570           Choose this option to support the Phonet interface to a Nokia
571           cellular modem, as found on most Nokia handsets with the
572           "PC suite" USB profile.
573
574 config USB_IPHETH
575         tristate "Apple iPhone USB Ethernet driver"
576         default n
577         ---help---
578           Module used to share Internet connection (tethering) from your
579           iPhone (Original, 3G and 3GS) to your system.
580           Note that you need userspace libraries and programs that are needed
581           to pair your device with your system and that understand the iPhone
582           protocol.
583
584           For more information: http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver
585
586 config USB_SIERRA_NET
587         tristate "USB-to-WWAN Driver for Sierra Wireless modems"
588         depends on USB_USBNET
589         help
590           Choose this option if you have a Sierra Wireless USB-to-WWAN device.
591
592           To compile this driver as a module, choose M here: the
593           module will be called sierra_net.
594
595 config USB_VL600
596         tristate "LG VL600 modem dongle"
597         depends on USB_NET_CDCETHER && TTY
598         select USB_ACM
599         help
600           Select this if you want to use an LG Electronics 4G/LTE usb modem
601           called VL600.  This driver only handles the ethernet
602           interface exposed by the modem firmware.  To establish a connection
603           you will first need a userspace program that sends the right
604           command to the modem through its CDC ACM port, and most
605           likely also a DHCP client.  See this thread about using the
606           4G modem from Verizon:
607
608           http://ubuntuforums.org/showpost.php?p=10589647&postcount=17
609
610 config USB_NET_CH9200
611         tristate "QingHeng CH9200 USB ethernet support"
612         depends on USB_USBNET
613         select MII
614         help
615           Choose this option if you have a USB ethernet adapter with a QinHeng
616           CH9200 chipset.
617
618           To compile this driver as a module, choose M here: the
619           module will be called ch9200.
620
621 endif # USB_NET_DRIVERS