diff options
author | Andrzej Pietrasiewicz <andrzej.p@samsung.com> | 2014-07-15 07:09:44 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2014-07-16 13:14:05 -0400 |
commit | 8443f2d2b7782fef35fe579bf1eb612c24951486 (patch) | |
tree | 904e98cbbe3e0916af116f8f55754d994ce92e79 /drivers/usb/gadget/Kconfig | |
parent | 8ecef00fe1f33658ee36e902dba6850b51312073 (diff) |
usb: gadget: Gadget directory cleanup - group legacy gadgets
The drivers/usb/gadget directory contains many files.
Files which are related can be distributed into separate directories.
This patch moves the legacy gadgets (i.e. those not using configfs)
into a separate directory.
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget/Kconfig')
-rw-r--r-- | drivers/usb/gadget/Kconfig | 461 |
1 files changed, 1 insertions, 460 deletions
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig index 49e434ec527d..2986a4369df4 100644 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig | |||
@@ -722,466 +722,7 @@ config USB_CONFIGFS_F_FS | |||
722 | implemented in kernel space (for instance Ethernet, serial or | 722 | implemented in kernel space (for instance Ethernet, serial or |
723 | mass storage) and other are implemented in user space. | 723 | mass storage) and other are implemented in user space. |
724 | 724 | ||
725 | config USB_ZERO | 725 | source "drivers/usb/gadget/legacy/Kconfig" |
726 | tristate "Gadget Zero (DEVELOPMENT)" | ||
727 | select USB_LIBCOMPOSITE | ||
728 | select USB_F_SS_LB | ||
729 | help | ||
730 | Gadget Zero is a two-configuration device. It either sinks and | ||
731 | sources bulk data; or it loops back a configurable number of | ||
732 | transfers. It also implements control requests, for "chapter 9" | ||
733 | conformance. The driver needs only two bulk-capable endpoints, so | ||
734 | it can work on top of most device-side usb controllers. It's | ||
735 | useful for testing, and is also a working example showing how | ||
736 | USB "gadget drivers" can be written. | ||
737 | |||
738 | Make this be the first driver you try using on top of any new | ||
739 | USB peripheral controller driver. Then you can use host-side | ||
740 | test software, like the "usbtest" driver, to put your hardware | ||
741 | and its driver through a basic set of functional tests. | ||
742 | |||
743 | Gadget Zero also works with the host-side "usb-skeleton" driver, | ||
744 | and with many kinds of host-side test software. You may need | ||
745 | to tweak product and vendor IDs before host software knows about | ||
746 | this device, and arrange to select an appropriate configuration. | ||
747 | |||
748 | Say "y" to link the driver statically, or "m" to build a | ||
749 | dynamically linked module called "g_zero". | ||
750 | |||
751 | config USB_ZERO_HNPTEST | ||
752 | boolean "HNP Test Device" | ||
753 | depends on USB_ZERO && USB_OTG | ||
754 | help | ||
755 | You can configure this device to enumerate using the device | ||
756 | identifiers of the USB-OTG test device. That means that when | ||
757 | this gadget connects to another OTG device, with this one using | ||
758 | the "B-Peripheral" role, that device will use HNP to let this | ||
759 | one serve as the USB host instead (in the "B-Host" role). | ||
760 | |||
761 | config USB_AUDIO | ||
762 | tristate "Audio Gadget" | ||
763 | depends on SND | ||
764 | select USB_LIBCOMPOSITE | ||
765 | select SND_PCM | ||
766 | help | ||
767 | This Gadget Audio driver is compatible with USB Audio Class | ||
768 | specification 2.0. It implements 1 AudioControl interface, | ||
769 | 1 AudioStreaming Interface each for USB-OUT and USB-IN. | ||
770 | Number of channels, sample rate and sample size can be | ||
771 | specified as module parameters. | ||
772 | This driver doesn't expect any real Audio codec to be present | ||
773 | on the device - the audio streams are simply sinked to and | ||
774 | sourced from a virtual ALSA sound card created. The user-space | ||
775 | application may choose to do whatever it wants with the data | ||
776 | received from the USB Host and choose to provide whatever it | ||
777 | wants as audio data to the USB Host. | ||
778 | |||
779 | Say "y" to link the driver statically, or "m" to build a | ||
780 | dynamically linked module called "g_audio". | ||
781 | |||
782 | config GADGET_UAC1 | ||
783 | bool "UAC 1.0 (Legacy)" | ||
784 | depends on USB_AUDIO | ||
785 | help | ||
786 | If you instead want older UAC Spec-1.0 driver that also has audio | ||
787 | paths hardwired to the Audio codec chip on-board and doesn't work | ||
788 | without one. | ||
789 | |||
790 | config USB_ETH | ||
791 | tristate "Ethernet Gadget (with CDC Ethernet support)" | ||
792 | depends on NET | ||
793 | select USB_LIBCOMPOSITE | ||
794 | select USB_U_ETHER | ||
795 | select USB_F_ECM | ||
796 | select USB_F_SUBSET | ||
797 | select CRC32 | ||
798 | help | ||
799 | This driver implements Ethernet style communication, in one of | ||
800 | several ways: | ||
801 | |||
802 | - The "Communication Device Class" (CDC) Ethernet Control Model. | ||
803 | That protocol is often avoided with pure Ethernet adapters, in | ||
804 | favor of simpler vendor-specific hardware, but is widely | ||
805 | supported by firmware for smart network devices. | ||
806 | |||
807 | - On hardware can't implement that protocol, a simple CDC subset | ||
808 | is used, placing fewer demands on USB. | ||
809 | |||
810 | - CDC Ethernet Emulation Model (EEM) is a newer standard that has | ||
811 | a simpler interface that can be used by more USB hardware. | ||
812 | |||
813 | RNDIS support is an additional option, more demanding than than | ||
814 | subset. | ||
815 | |||
816 | Within the USB device, this gadget driver exposes a network device | ||
817 | "usbX", where X depends on what other networking devices you have. | ||
818 | Treat it like a two-node Ethernet link: host, and gadget. | ||
819 | |||
820 | The Linux-USB host-side "usbnet" driver interoperates with this | ||
821 | driver, so that deep I/O queues can be supported. On 2.4 kernels, | ||
822 | use "CDCEther" instead, if you're using the CDC option. That CDC | ||
823 | mode should also interoperate with standard CDC Ethernet class | ||
824 | drivers on other host operating systems. | ||
825 | |||
826 | Say "y" to link the driver statically, or "m" to build a | ||
827 | dynamically linked module called "g_ether". | ||
828 | |||
829 | config USB_ETH_RNDIS | ||
830 | bool "RNDIS support" | ||
831 | depends on USB_ETH | ||
832 | select USB_LIBCOMPOSITE | ||
833 | select USB_F_RNDIS | ||
834 | default y | ||
835 | help | ||
836 | Microsoft Windows XP bundles the "Remote NDIS" (RNDIS) protocol, | ||
837 | and Microsoft provides redistributable binary RNDIS drivers for | ||
838 | older versions of Windows. | ||
839 | |||
840 | If you say "y" here, the Ethernet gadget driver will try to provide | ||
841 | a second device configuration, supporting RNDIS to talk to such | ||
842 | Microsoft USB hosts. | ||
843 | |||
844 | To make MS-Windows work with this, use Documentation/usb/linux.inf | ||
845 | as the "driver info file". For versions of MS-Windows older than | ||
846 | XP, you'll need to download drivers from Microsoft's website; a URL | ||
847 | is given in comments found in that info file. | ||
848 | |||
849 | config USB_ETH_EEM | ||
850 | bool "Ethernet Emulation Model (EEM) support" | ||
851 | depends on USB_ETH | ||
852 | select USB_LIBCOMPOSITE | ||
853 | select USB_F_EEM | ||
854 | default n | ||
855 | help | ||
856 | CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM | ||
857 | and therefore can be supported by more hardware. Technically ECM and | ||
858 | EEM are designed for different applications. The ECM model extends | ||
859 | the network interface to the target (e.g. a USB cable modem), and the | ||
860 | EEM model is for mobile devices to communicate with hosts using | ||
861 | ethernet over USB. For Linux gadgets, however, the interface with | ||
862 | the host is the same (a usbX device), so the differences are minimal. | ||
863 | |||
864 | If you say "y" here, the Ethernet gadget driver will use the EEM | ||
865 | protocol rather than ECM. If unsure, say "n". | ||
866 | |||
867 | config USB_G_NCM | ||
868 | tristate "Network Control Model (NCM) support" | ||
869 | depends on NET | ||
870 | select USB_LIBCOMPOSITE | ||
871 | select USB_U_ETHER | ||
872 | select USB_F_NCM | ||
873 | select CRC32 | ||
874 | help | ||
875 | This driver implements USB CDC NCM subclass standard. NCM is | ||
876 | an advanced protocol for Ethernet encapsulation, allows grouping | ||
877 | of several ethernet frames into one USB transfer and different | ||
878 | alignment possibilities. | ||
879 | |||
880 | Say "y" to link the driver statically, or "m" to build a | ||
881 | dynamically linked module called "g_ncm". | ||
882 | |||
883 | config USB_GADGETFS | ||
884 | tristate "Gadget Filesystem" | ||
885 | help | ||
886 | This driver provides a filesystem based API that lets user mode | ||
887 | programs implement a single-configuration USB device, including | ||
888 | endpoint I/O and control requests that don't relate to enumeration. | ||
889 | All endpoints, transfer speeds, and transfer types supported by | ||
890 | the hardware are available, through read() and write() calls. | ||
891 | |||
892 | Say "y" to link the driver statically, or "m" to build a | ||
893 | dynamically linked module called "gadgetfs". | ||
894 | |||
895 | config USB_FUNCTIONFS | ||
896 | tristate "Function Filesystem" | ||
897 | select USB_LIBCOMPOSITE | ||
898 | select USB_F_FS | ||
899 | select USB_FUNCTIONFS_GENERIC if !(USB_FUNCTIONFS_ETH || USB_FUNCTIONFS_RNDIS) | ||
900 | help | ||
901 | The Function Filesystem (FunctionFS) lets one create USB | ||
902 | composite functions in user space in the same way GadgetFS | ||
903 | lets one create USB gadgets in user space. This allows creation | ||
904 | of composite gadgets such that some of the functions are | ||
905 | implemented in kernel space (for instance Ethernet, serial or | ||
906 | mass storage) and other are implemented in user space. | ||
907 | |||
908 | If you say "y" or "m" here you will be able what kind of | ||
909 | configurations the gadget will provide. | ||
910 | |||
911 | Say "y" to link the driver statically, or "m" to build | ||
912 | a dynamically linked module called "g_ffs". | ||
913 | |||
914 | config USB_FUNCTIONFS_ETH | ||
915 | bool "Include configuration with CDC ECM (Ethernet)" | ||
916 | depends on USB_FUNCTIONFS && NET | ||
917 | select USB_U_ETHER | ||
918 | select USB_F_ECM | ||
919 | select USB_F_SUBSET | ||
920 | help | ||
921 | Include a configuration with CDC ECM function (Ethernet) and the | ||
922 | Function Filesystem. | ||
923 | |||
924 | config USB_FUNCTIONFS_RNDIS | ||
925 | bool "Include configuration with RNDIS (Ethernet)" | ||
926 | depends on USB_FUNCTIONFS && NET | ||
927 | select USB_U_ETHER | ||
928 | select USB_F_RNDIS | ||
929 | help | ||
930 | Include a configuration with RNDIS function (Ethernet) and the Filesystem. | ||
931 | |||
932 | config USB_FUNCTIONFS_GENERIC | ||
933 | bool "Include 'pure' configuration" | ||
934 | depends on USB_FUNCTIONFS | ||
935 | help | ||
936 | Include a configuration with the Function Filesystem alone with | ||
937 | no Ethernet interface. | ||
938 | |||
939 | config USB_MASS_STORAGE | ||
940 | tristate "Mass Storage Gadget" | ||
941 | depends on BLOCK | ||
942 | select USB_LIBCOMPOSITE | ||
943 | select USB_F_MASS_STORAGE | ||
944 | help | ||
945 | The Mass Storage Gadget acts as a USB Mass Storage disk drive. | ||
946 | As its storage repository it can use a regular file or a block | ||
947 | device (in much the same way as the "loop" device driver), | ||
948 | specified as a module parameter or sysfs option. | ||
949 | |||
950 | This driver is a replacement for now removed File-backed | ||
951 | Storage Gadget (g_file_storage). | ||
952 | |||
953 | Say "y" to link the driver statically, or "m" to build | ||
954 | a dynamically linked module called "g_mass_storage". | ||
955 | |||
956 | config USB_GADGET_TARGET | ||
957 | tristate "USB Gadget Target Fabric Module" | ||
958 | depends on TARGET_CORE | ||
959 | select USB_LIBCOMPOSITE | ||
960 | help | ||
961 | This fabric is an USB gadget. Two USB protocols are supported that is | ||
962 | BBB or BOT (Bulk Only Transport) and UAS (USB Attached SCSI). BOT is | ||
963 | advertised on alternative interface 0 (primary) and UAS is on | ||
964 | alternative interface 1. Both protocols can work on USB2.0 and USB3.0. | ||
965 | UAS utilizes the USB 3.0 feature called streams support. | ||
966 | |||
967 | config USB_G_SERIAL | ||
968 | tristate "Serial Gadget (with CDC ACM and CDC OBEX support)" | ||
969 | depends on TTY | ||
970 | select USB_U_SERIAL | ||
971 | select USB_F_ACM | ||
972 | select USB_F_SERIAL | ||
973 | select USB_F_OBEX | ||
974 | select USB_LIBCOMPOSITE | ||
975 | help | ||
976 | The Serial Gadget talks to the Linux-USB generic serial driver. | ||
977 | This driver supports a CDC-ACM module option, which can be used | ||
978 | to interoperate with MS-Windows hosts or with the Linux-USB | ||
979 | "cdc-acm" driver. | ||
980 | |||
981 | This driver also supports a CDC-OBEX option. You will need a | ||
982 | user space OBEX server talking to /dev/ttyGS*, since the kernel | ||
983 | itself doesn't implement the OBEX protocol. | ||
984 | |||
985 | Say "y" to link the driver statically, or "m" to build a | ||
986 | dynamically linked module called "g_serial". | ||
987 | |||
988 | For more information, see Documentation/usb/gadget_serial.txt | ||
989 | which includes instructions and a "driver info file" needed to | ||
990 | make MS-Windows work with CDC ACM. | ||
991 | |||
992 | config USB_MIDI_GADGET | ||
993 | tristate "MIDI Gadget" | ||
994 | depends on SND | ||
995 | select USB_LIBCOMPOSITE | ||
996 | select SND_RAWMIDI | ||
997 | help | ||
998 | The MIDI Gadget acts as a USB Audio device, with one MIDI | ||
999 | input and one MIDI output. These MIDI jacks appear as | ||
1000 | a sound "card" in the ALSA sound system. Other MIDI | ||
1001 | connections can then be made on the gadget system, using | ||
1002 | ALSA's aconnect utility etc. | ||
1003 | |||
1004 | Say "y" to link the driver statically, or "m" to build a | ||
1005 | dynamically linked module called "g_midi". | ||
1006 | |||
1007 | config USB_G_PRINTER | ||
1008 | tristate "Printer Gadget" | ||
1009 | select USB_LIBCOMPOSITE | ||
1010 | help | ||
1011 | The Printer Gadget channels data between the USB host and a | ||
1012 | userspace program driving the print engine. The user space | ||
1013 | program reads and writes the device file /dev/g_printer to | ||
1014 | receive or send printer data. It can use ioctl calls to | ||
1015 | the device file to get or set printer status. | ||
1016 | |||
1017 | Say "y" to link the driver statically, or "m" to build a | ||
1018 | dynamically linked module called "g_printer". | ||
1019 | |||
1020 | For more information, see Documentation/usb/gadget_printer.txt | ||
1021 | which includes sample code for accessing the device file. | ||
1022 | |||
1023 | if TTY | ||
1024 | |||
1025 | config USB_CDC_COMPOSITE | ||
1026 | tristate "CDC Composite Device (Ethernet and ACM)" | ||
1027 | depends on NET | ||
1028 | select USB_LIBCOMPOSITE | ||
1029 | select USB_U_SERIAL | ||
1030 | select USB_U_ETHER | ||
1031 | select USB_F_ACM | ||
1032 | select USB_F_ECM | ||
1033 | help | ||
1034 | This driver provides two functions in one configuration: | ||
1035 | a CDC Ethernet (ECM) link, and a CDC ACM (serial port) link. | ||
1036 | |||
1037 | This driver requires four bulk and two interrupt endpoints, | ||
1038 | plus the ability to handle altsettings. Not all peripheral | ||
1039 | controllers are that capable. | ||
1040 | |||
1041 | Say "y" to link the driver statically, or "m" to build a | ||
1042 | dynamically linked module. | ||
1043 | |||
1044 | config USB_G_NOKIA | ||
1045 | tristate "Nokia composite gadget" | ||
1046 | depends on PHONET | ||
1047 | select USB_LIBCOMPOSITE | ||
1048 | select USB_U_SERIAL | ||
1049 | select USB_U_ETHER | ||
1050 | select USB_F_ACM | ||
1051 | select USB_F_OBEX | ||
1052 | select USB_F_PHONET | ||
1053 | select USB_F_ECM | ||
1054 | help | ||
1055 | The Nokia composite gadget provides support for acm, obex | ||
1056 | and phonet in only one composite gadget driver. | ||
1057 | |||
1058 | It's only really useful for N900 hardware. If you're building | ||
1059 | a kernel for N900, say Y or M here. If unsure, say N. | ||
1060 | |||
1061 | config USB_G_ACM_MS | ||
1062 | tristate "CDC Composite Device (ACM and mass storage)" | ||
1063 | depends on BLOCK | ||
1064 | select USB_LIBCOMPOSITE | ||
1065 | select USB_U_SERIAL | ||
1066 | select USB_F_ACM | ||
1067 | select USB_F_MASS_STORAGE | ||
1068 | help | ||
1069 | This driver provides two functions in one configuration: | ||
1070 | a mass storage, and a CDC ACM (serial port) link. | ||
1071 | |||
1072 | Say "y" to link the driver statically, or "m" to build a | ||
1073 | dynamically linked module called "g_acm_ms". | ||
1074 | |||
1075 | config USB_G_MULTI | ||
1076 | tristate "Multifunction Composite Gadget" | ||
1077 | depends on BLOCK && NET | ||
1078 | select USB_G_MULTI_CDC if !USB_G_MULTI_RNDIS | ||
1079 | select USB_LIBCOMPOSITE | ||
1080 | select USB_U_SERIAL | ||
1081 | select USB_U_ETHER | ||
1082 | select USB_F_ACM | ||
1083 | select USB_F_MASS_STORAGE | ||
1084 | help | ||
1085 | The Multifunction Composite Gadget provides Ethernet (RNDIS | ||
1086 | and/or CDC Ethernet), mass storage and ACM serial link | ||
1087 | interfaces. | ||
1088 | |||
1089 | You will be asked to choose which of the two configurations is | ||
1090 | to be available in the gadget. At least one configuration must | ||
1091 | be chosen to make the gadget usable. Selecting more than one | ||
1092 | configuration will prevent Windows from automatically detecting | ||
1093 | the gadget as a composite gadget, so an INF file will be needed to | ||
1094 | use the gadget. | ||
1095 | |||
1096 | Say "y" to link the driver statically, or "m" to build a | ||
1097 | dynamically linked module called "g_multi". | ||
1098 | |||
1099 | config USB_G_MULTI_RNDIS | ||
1100 | bool "RNDIS + CDC Serial + Storage configuration" | ||
1101 | depends on USB_G_MULTI | ||
1102 | select USB_F_RNDIS | ||
1103 | default y | ||
1104 | help | ||
1105 | This option enables a configuration with RNDIS, CDC Serial and | ||
1106 | Mass Storage functions available in the Multifunction Composite | ||
1107 | Gadget. This is the configuration dedicated for Windows since RNDIS | ||
1108 | is Microsoft's protocol. | ||
1109 | |||
1110 | If unsure, say "y". | ||
1111 | |||
1112 | config USB_G_MULTI_CDC | ||
1113 | bool "CDC Ethernet + CDC Serial + Storage configuration" | ||
1114 | depends on USB_G_MULTI | ||
1115 | default n | ||
1116 | select USB_F_ECM | ||
1117 | help | ||
1118 | This option enables a configuration with CDC Ethernet (ECM), CDC | ||
1119 | Serial and Mass Storage functions available in the Multifunction | ||
1120 | Composite Gadget. | ||
1121 | |||
1122 | If unsure, say "y". | ||
1123 | |||
1124 | endif # TTY | ||
1125 | |||
1126 | config USB_G_HID | ||
1127 | tristate "HID Gadget" | ||
1128 | select USB_LIBCOMPOSITE | ||
1129 | help | ||
1130 | The HID gadget driver provides generic emulation of USB | ||
1131 | Human Interface Devices (HID). | ||
1132 | |||
1133 | For more information, see Documentation/usb/gadget_hid.txt which | ||
1134 | includes sample code for accessing the device files. | ||
1135 | |||
1136 | Say "y" to link the driver statically, or "m" to build a | ||
1137 | dynamically linked module called "g_hid". | ||
1138 | |||
1139 | # Standalone / single function gadgets | ||
1140 | config USB_G_DBGP | ||
1141 | tristate "EHCI Debug Device Gadget" | ||
1142 | depends on TTY | ||
1143 | select USB_LIBCOMPOSITE | ||
1144 | help | ||
1145 | This gadget emulates an EHCI Debug device. This is useful when you want | ||
1146 | to interact with an EHCI Debug Port. | ||
1147 | |||
1148 | Say "y" to link the driver statically, or "m" to build a | ||
1149 | dynamically linked module called "g_dbgp". | ||
1150 | |||
1151 | if USB_G_DBGP | ||
1152 | choice | ||
1153 | prompt "EHCI Debug Device mode" | ||
1154 | default USB_G_DBGP_SERIAL | ||
1155 | |||
1156 | config USB_G_DBGP_PRINTK | ||
1157 | depends on USB_G_DBGP | ||
1158 | bool "printk" | ||
1159 | help | ||
1160 | Directly printk() received data. No interaction. | ||
1161 | |||
1162 | config USB_G_DBGP_SERIAL | ||
1163 | depends on USB_G_DBGP | ||
1164 | select USB_U_SERIAL | ||
1165 | bool "serial" | ||
1166 | help | ||
1167 | Userland can interact using /dev/ttyGSxxx. | ||
1168 | endchoice | ||
1169 | endif | ||
1170 | |||
1171 | # put drivers that need isochronous transfer support (for audio | ||
1172 | # or video class gadget drivers), or specific hardware, here. | ||
1173 | config USB_G_WEBCAM | ||
1174 | tristate "USB Webcam Gadget" | ||
1175 | depends on VIDEO_DEV | ||
1176 | select USB_LIBCOMPOSITE | ||
1177 | select VIDEOBUF2_VMALLOC | ||
1178 | help | ||
1179 | The Webcam Gadget acts as a composite USB Audio and Video Class | ||
1180 | device. It provides a userspace API to process UVC control requests | ||
1181 | and stream video data to the host. | ||
1182 | |||
1183 | Say "y" to link the driver statically, or "m" to build a | ||
1184 | dynamically linked module called "g_webcam". | ||
1185 | 726 | ||
1186 | endchoice | 727 | endchoice |
1187 | 728 | ||