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