usb: gadget: f_rndis: add configfs support
[firefly-linux-kernel-4.4.55.git] / drivers / usb / gadget / Kconfig
index 83300d94a8933ff97a52992466799874cdeacb20..b6cd4bd74cb234f3f6eafa3208366579affbb054 100644 (file)
@@ -146,7 +146,6 @@ config USB_LPC32XX
        depends on ARCH_LPC32XX
        depends on USB_PHY
        select USB_ISP1301
-       select USB_OTG_UTILS
        help
           This option selects the USB device controller in the LPC32xx SoC.
 
@@ -335,14 +334,6 @@ config USB_MV_U3D
 # Controllers available in both integrated and discrete versions
 #
 
-# musb builds in ../musb along with host support
-config USB_GADGET_MUSB_HDRC
-       tristate "Inventra HDRC USB Peripheral (TI, ADI, ...)"
-       depends on USB_MUSB_HDRC
-       help
-         This OTG-capable silicon IP is used in dual designs including
-         the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin
-
 config USB_M66592
        tristate "Renesas M66592 USB Peripheral Controller"
        help
@@ -508,12 +499,36 @@ config USB_F_SS_LB
 config USB_U_SERIAL
        tristate
 
+config USB_U_ETHER
+       tristate
+
+config USB_U_RNDIS
+       tristate
+
 config USB_F_SERIAL
        tristate
 
 config USB_F_OBEX
        tristate
 
+config USB_F_NCM
+       tristate
+
+config USB_F_ECM
+       tristate
+
+config USB_F_PHONET
+       tristate
+
+config USB_F_EEM
+       tristate
+
+config USB_F_SUBSET
+       tristate
+
+config USB_F_RNDIS
+       tristate
+
 choice
        tristate "USB Gadget Drivers"
        default USB_ETH
@@ -535,6 +550,57 @@ choice
 
 # this first set of drivers all depend on bulk-capable hardware.
 
+config USB_CONFIGFS_ECM_SUBSET
+       boolean "Ethernet Control Model (CDC ECM) subset"
+       depends on USB_CONFIGFS
+       depends on NET
+       select USB_U_ETHER
+       select USB_F_SUBSET
+       help
+         On hardware that can't implement the full protocol,
+         a simple CDC subset is used, placing fewer demands on USB.
+
+config USB_CONFIGFS_RNDIS
+       bool "RNDIS"
+       depends on USB_CONFIGFS
+       depends on NET
+       select USB_U_ETHER
+       select USB_F_RNDIS
+       help
+          Microsoft Windows XP bundles the "Remote NDIS" (RNDIS) protocol,
+          and Microsoft provides redistributable binary RNDIS drivers for
+          older versions of Windows.
+
+          To make MS-Windows work with this, use Documentation/usb/linux.inf
+          as the "driver info file".  For versions of MS-Windows older than
+          XP, you'll need to download drivers from Microsoft's website; a URL
+          is given in comments found in that info file.
+
+config USB_CONFIGFS_EEM
+       bool "Ethernet Emulation Model (EEM)"
+       depends on USB_CONFIGFS
+       depends on NET
+       select USB_U_ETHER
+       select USB_F_EEM
+       help
+         CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM
+         and therefore can be supported by more hardware.  Technically ECM and
+         EEM are designed for different applications.  The ECM model extends
+         the network interface to the target (e.g. a USB cable modem), and the
+         EEM model is for mobile devices to communicate with hosts using
+         ethernet over USB.  For Linux gadgets, however, the interface with
+         the host is the same (a usbX device), so the differences are minimal.
+
+config USB_CONFIGFS_PHONET
+       boolean "Phonet protocol"
+       depends on USB_CONFIGFS
+       depends on NET
+       depends on PHONET
+       select USB_U_ETHER
+       select USB_F_PHONET
+       help
+         The Phonet protocol implementation for USB device.
+
 config USB_ZERO
        tristate "Gadget Zero (DEVELOPMENT)"
        select USB_LIBCOMPOSITE
@@ -604,6 +670,10 @@ config USB_ETH
        tristate "Ethernet Gadget (with CDC Ethernet support)"
        depends on NET
        select USB_LIBCOMPOSITE
+       select USB_U_ETHER
+       select USB_U_RNDIS
+       select USB_F_ECM
+       select USB_F_SUBSET
        select CRC32
        help
          This driver implements Ethernet style communication, in one of
@@ -640,6 +710,7 @@ config USB_ETH_RNDIS
        bool "RNDIS support"
        depends on USB_ETH
        select USB_LIBCOMPOSITE
+       select USB_F_RNDIS
        default y
        help
           Microsoft Windows XP bundles the "Remote NDIS" (RNDIS) protocol,
@@ -659,6 +730,7 @@ config USB_ETH_EEM
        bool "Ethernet Emulation Model (EEM) support"
        depends on USB_ETH
        select USB_LIBCOMPOSITE
+       select USB_F_EEM
        default n
        help
          CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM
@@ -676,6 +748,8 @@ config USB_G_NCM
        tristate "Network Control Model (NCM) support"
        depends on NET
        select USB_LIBCOMPOSITE
+       select USB_U_ETHER
+       select USB_F_NCM
        select CRC32
        help
          This driver implements USB CDC NCM subclass standard. NCM is
@@ -719,6 +793,7 @@ config USB_FUNCTIONFS
 config USB_FUNCTIONFS_ETH
        bool "Include configuration with CDC ECM (Ethernet)"
        depends on USB_FUNCTIONFS && NET
+       select USB_U_ETHER
        help
          Include a configuration with CDC ECM function (Ethernet) and the
          Function Filesystem.
@@ -726,6 +801,8 @@ config USB_FUNCTIONFS_ETH
 config USB_FUNCTIONFS_RNDIS
        bool "Include configuration with RNDIS (Ethernet)"
        depends on USB_FUNCTIONFS && NET
+       select USB_U_ETHER
+       select USB_U_RNDIS
        help
          Include a configuration with RNDIS function (Ethernet) and the Filesystem.
 
@@ -826,7 +903,9 @@ config USB_CDC_COMPOSITE
        depends on NET
        select USB_LIBCOMPOSITE
        select USB_U_SERIAL
+       select USB_U_ETHER
        select USB_F_ACM
+       select USB_F_ECM
        help
          This driver provides two functions in one configuration:
          a CDC Ethernet (ECM) link, and a CDC ACM (serial port) link.
@@ -843,7 +922,11 @@ config USB_G_NOKIA
        depends on PHONET
        select USB_LIBCOMPOSITE
        select USB_U_SERIAL
+       select USB_U_ETHER
        select USB_F_ACM
+       select USB_F_OBEX
+       select USB_F_PHONET
+       select USB_F_ECM
        help
          The Nokia composite gadget provides support for acm, obex
          and phonet in only one composite gadget driver.
@@ -870,6 +953,8 @@ config USB_G_MULTI
        select USB_G_MULTI_CDC if !USB_G_MULTI_RNDIS
        select USB_LIBCOMPOSITE
        select USB_U_SERIAL
+       select USB_U_ETHER
+       select USB_U_RNDIS
        select USB_F_ACM
        help
          The Multifunction Composite Gadget provides Ethernet (RNDIS