usb-core: Add dependency to nls-base (#5973)
[openwrt/openwrt.git] / package / kernel / modules / usb.mk
index e36a52e463aa720bdf72270539111c62c9e5bb9e..8317161724ca57a7894ad5ded1b738f1405fefaf 100644 (file)
@@ -1,19 +1,37 @@
-# 
-# Copyright (C) 2006 OpenWrt.org
+#
+# Copyright (C) 2006-2008 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
-# $Id$
 
-USBMENU:=USB Support
+USB_MENU:=USB Support
+
+ifeq ($(KERNEL),2.4)
+  USBNET_DIR:=usb/net
+endif
+
+ifeq ($(KERNEL_PATCHVER),2.6.21)
+  USBNET_DIR:=usb/net
+  USBHID_DIR:=usb/input
+  USBINPUT_DIR:=usb/input
+endif
+
+USBNET_DIR?=net/usb
+USBHID_DIR?=hid/usbhid
+USBINPUT_DIR?=input/misc
+
+define usbdep
+  SUBMENU:=$(USB_MENU)
+  DEPENDS:=kmod-usb-core $(1)
+endef
+
 
 define KernelPackage/usb-core
+  SUBMENU:=$(USB_MENU)
   TITLE:=Support for USB
-  DESCRIPTION:=Kernel support for USB
-  DEPENDS:=@USB_SUPPORT
-  KCONFIG:=$(CONFIG_USB)
-  SUBMENU:=$(USBMENU)
+  DEPENDS:=@USB_SUPPORT +LINUX_2_6_31:kmod-nls-base
+  KCONFIG:=CONFIG_USB
   AUTOLOAD:=$(call AutoLoad,20,usbcore)
 endef
 
@@ -24,87 +42,148 @@ endef
 define KernelPackage/usb-core/2.6
   FILES:=$(LINUX_DIR)/drivers/usb/core/usbcore.$(LINUX_KMOD_SUFFIX)
 endef
+
+define KernelPackage/usb-core/description
+ Kernel support for USB
+endef
+
 $(eval $(call KernelPackage,usb-core))
 
 
 define KernelPackage/usb-uhci
+  $(call usbdep,)
   TITLE:=Support for UHCI controllers
-  DESCRIPTION:=Kernel support for USB UHCI controllers
-  DEPENDS:=kmod-usb-core
-  SUBMENU:=$(USBMENU)
+  KCONFIG:= \
+       CONFIG_USB_UHCI_ALT \
+       CONFIG_USB_UHCI_HCD
 endef
 
 define KernelPackage/usb-uhci/2.4
+#  KCONFIG:=CONFIG_USB_UHCI_ALT
   FILES:=$(LINUX_DIR)/drivers/usb/host/uhci.o
-  KCONFIG:=$(CONFIG_USB_UHCI_ALT)
   AUTOLOAD:=$(call AutoLoad,50,uhci)
 endef
 
 define KernelPackage/usb-uhci/2.6
+#  KCONFIG:=CONFIG_USB_UHCI_HCD
   FILES:=$(LINUX_DIR)/drivers/usb/host/uhci-hcd.ko
-  KCONFIG:=$(CONFIG_USB_UHCI_HCD)
   AUTOLOAD:=$(call AutoLoad,50,uhci-hcd)
 endef
+
+define KernelPackage/usb-uhci/description
+ Kernel support for USB UHCI controllers
+endef
+
 $(eval $(call KernelPackage,usb-uhci))
 
-define KernelPackage/usb-uhci-iv
-  TITLE:=Support for Intel/VIA UHCI controllers 
-  DESCRIPTION:=Kernel support for Intel/VIA USB UHCI controllers
-  DEPENDS:=kmod-usb-core @LINUX_2_4
-  SUBMENU:=$(USBMENU)
-endef 
 
-define KernelPackage/usb-uhci-iv/2.4
+define KernelPackage/usb-uhci-iv
+  $(call usbdep,@LINUX_2_4)
+  TITLE:=Support for Intel/VIA UHCI controllers
+  KCONFIG:=CONFIG_USB_UHCI
   FILES:=$(LINUX_DIR)/drivers/usb/host/usb-uhci.$(LINUX_KMOD_SUFFIX)
-  KCONFIG:=$(CONFIG_USB_UHCI)
-  AUTOLOAD:=$(call AutoLoad,50,usb-uhci) 
-endef 
-$(eval $(call KernelPackage,usb-uhci-iv)) 
+  AUTOLOAD:=$(call AutoLoad,50,usb-uhci)
+endef
+
+define KernelPackage/usb-uhci-iv/description
+ Kernel support for Intel/VIA USB UHCI controllers
+endef
+
+$(eval $(call KernelPackage,usb-uhci-iv))
+
 
 define KernelPackage/usb-ohci
+  $(call usbdep,)
   TITLE:=Support for OHCI controllers
-  DESCRIPTION:=Kernel support for USB OHCI controllers
-  DEPENDS:=kmod-usb-core
-  SUBMENU:=$(USBMENU)
+  KCONFIG:= \
+       CONFIG_USB_OHCI \
+       CONFIG_USB_OHCI_HCD \
+       CONFIG_USB_OHCI_AR71XX=y
 endef
 
 define KernelPackage/usb-ohci/2.4
+#  KCONFIG:=CONFIG_USB_OHCI
   FILES:=$(LINUX_DIR)/drivers/usb/host/usb-ohci.o
-  KCONFIG:=$(CONFIG_USB_OHCI)
   AUTOLOAD:=$(call AutoLoad,50,usb-ohci)
 endef
 
 define KernelPackage/usb-ohci/2.6
+#  KCONFIG:=CONFIG_USB_OHCI_HCD
   FILES:=$(LINUX_DIR)/drivers/usb/host/ohci-hcd.ko
-  KCONFIG:=$(CONFIG_USB_OHCI_HCD)
   AUTOLOAD:=$(call AutoLoad,50,ohci-hcd)
 endef
+
+define KernelPackage/usb-ohci/description
+ Kernel support for USB OHCI controllers
+endef
+
 $(eval $(call KernelPackage,usb-ohci))
 
+
+define KernelPackage/usb-adm5120
+  $(call usbdep,@TARGET_adm5120_router_be||@TARGET_adm5120_router_le)
+  TITLE:=Support for the ADM5120 HCD controller
+  KCONFIG:=CONFIG_USB_ADM5120_HCD
+  FILES:=$(LINUX_DIR)/drivers/usb/host/adm5120-hcd.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,50,adm5120-hcd)
+endef
+
+define KernelPackage/usb-adm5120/description
+ Kernel support for the ADM5120 HCD USB controller
+endef
+
+$(eval $(call KernelPackage,usb-adm5120))
+
+define KernelPackage/usb-etrax
+  $(call usbdep,@TARGET_etrax)
+  TITLE:=Support for the ETRAX USB host controller
+  KCONFIG:=CONFIG_ETRAX_USB_HOST \
+       CONFIG_ETRAX_USB_HOST_PORT1=y CONFIG_ETRAX_USB_HOST_PORT2=y
+  FILES:=$(LINUX_DIR)/drivers/usb/host/hc-crisv10.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,50,hc-crisv10)
+endef
+
+define KernelPackage/usb-etrax/description
+ Kernel support for the ETRAX USB host controller
+endef
+
+$(eval $(call KernelPackage,usb-etrax))
+
+define KernelPackage/usb-octeon
+  $(call usbdep,@TARGET_octeon)
+  TITLE:=Support for the Octeon USB OTG controller
+  KCONFIG:=CONFIG_USB_DWC_OTG
+  FILES:=$(LINUX_DIR)/drivers/usb/host/dwc_otg/dwc_otg.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,50,dwc_otg)
+endef
+
+define KernelPackage/usb-octeon/description
+  Kernel support for the Octeon USB host controller
+endef
+
+$(eval $(call KernelPackage,usb-octeon))
+
+
 define KernelPackage/usb2
+  $(call usbdep,)
   TITLE:=Support for USB2 controllers
-  DESCRIPTION:=Kernel support for USB2 (EHCI) controllers
-  DEPENDS:=kmod-usb-core
-  KCONFIG:=$(CONFIG_USB)
-  SUBMENU:=$(USBMENU)
+  KCONFIG:=CONFIG_USB_EHCI_HCD \
+    CONFIG_USB_EHCI_AR71XX=y
   FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-hcd.$(LINUX_KMOD_SUFFIX)
-  KCONFIG:=$(CONFIG_USB_EHCI_HCD)
-  AUTOLOAD:=$(call AutoLoad,50,ehci-hcd)
+  AUTOLOAD:=$(call AutoLoad,40,ehci-hcd)
 endef
-$(eval $(call KernelPackage,usb2))
-
 
-define usbdep
-  SUBMENU:=$(USBMENU)
-  DEPENDS:=kmod-usb-core $(1)
+define KernelPackage/usb2/description
+ Kernel support for USB2 (EHCI) controllers
 endef
 
+$(eval $(call KernelPackage,usb2))
+
 
 define KernelPackage/usb-acm
   $(call usbdep,)
   TITLE:=Support for modems/isdn controllers
-  DESCRIPTION:=Kernel support for USB ACM devices (modems/isdn controllers)
-  KCONFIG:=$(CONFIG_USB_ACM)
+  KCONFIG:=CONFIG_USB_ACM
 endef
 
 define KernelPackage/usb-acm/2.4
@@ -116,36 +195,47 @@ define KernelPackage/usb-acm/2.6
   FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-acm.ko
   AUTOLOAD:=$(call AutoLoad,60,cdc-acm)
 endef
+
+define KernelPackage/usb-acm/description
+ Kernel support for USB ACM devices (modems/isdn controllers)
+endef
+
 $(eval $(call KernelPackage,usb-acm))
 
 
 define KernelPackage/usb-audio
-  $(call usbdep,+kmod-soundcore)
-  TITLE:=Support for audio devices
-  DESCRIPTION:=Kernel support for USB audio devices
+  $(call usbdep,+kmod-sound-core)
+  TITLE:=Support for USB audio devices
+  KCONFIG:= \
+       CONFIG_USB_AUDIO \
+       CONFIG_SND_USB_AUDIO
 endef
 
 define KernelPackage/usb-audio/2.4
-  KCONFIG:=$(CONFIG_USB_AUDIO)
+#  KCONFIG:=CONFIG_USB_AUDIO
   FILES:=$(LINUX_DIR)/drivers/usb/audio.o
   AUTOLOAD:=$(call AutoLoad,60,audio)
 endef
 
 define KernelPackage/usb-audio/2.6
-  KCONFIG:=$(CONFIG_SND_USB_AUDIO)
+#  KCONFIG:=CONFIG_SND_USB_AUDIO
   FILES:= \
        $(LINUX_DIR)/sound/usb/snd-usb-lib.ko \
        $(LINUX_DIR)/sound/usb/snd-usb-audio.ko
   AUTOLOAD:=$(call AutoLoad,60,snd-usb-lib snd-usb-audio)
 endef
+
+define KernelPackage/usb-audio/description
+ Kernel support for USB audio devices
+endef
+
 $(eval $(call KernelPackage,usb-audio))
 
 
 define KernelPackage/usb-printer
   $(call usbdep,)
   TITLE:=Support for printers
-  DESCRIPTION:=Kernel support for USB printers
-  KCONFIG:=$(CONFIG_USB_PRINTER)
+  KCONFIG:=CONFIG_USB_PRINTER
 endef
 
 define KernelPackage/usb-printer/2.4
@@ -157,149 +247,347 @@ define KernelPackage/usb-printer/2.6
   FILES:=$(LINUX_DIR)/drivers/usb/class/usblp.ko
   AUTOLOAD:=$(call AutoLoad,60,usblp)
 endef
+
+define KernelPackage/usb-printer/description
+ Kernel support for USB printers
+endef
+
 $(eval $(call KernelPackage,usb-printer))
 
 
 define KernelPackage/usb-serial
   $(call usbdep,)
   TITLE:=Support for USB-to-Serial converters
-  DESCRIPTION:=Kernel support for USB-to-Serial converters
-  KCONFIG:=$(CONFIG_USB_SERIAL)
+  KCONFIG:=CONFIG_USB_SERIAL
   FILES:=$(LINUX_DIR)/drivers/usb/serial/usbserial.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,60,usbserial)
 endef
+
+define KernelPackage/usb-serial/description
+ Kernel support for USB-to-Serial converters
+endef
+
 $(eval $(call KernelPackage,usb-serial))
 
+
 define KernelPackage/usb-serial-airprime
-  TITLE:=Support for Airprime (EVDO) 
-  DESCRIPTION:=Kernel support for Airprime (EVDO) 
-  DEPENDS:=kmod-usb-serial
-  SUBMENU:=$(USBMENU)
-  KCONFIG:=$(CONFIG_USB_SERIAL_AIRPRIME)
+  $(call usbdep,kmod-usb-serial @LINUX_2_6)
+  TITLE:=Support for Airprime (EVDO)
+  KCONFIG:=CONFIG_USB_SERIAL_AIRPRIME
   FILES:=$(LINUX_DIR)/drivers/usb/serial/airprime.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,65,airprime)
 endef
+
+define KernelPackage/usb-serial-airprime/description
+ Kernel support for Airprime (EVDO)
+endef
+
 $(eval $(call KernelPackage,usb-serial-airprime))
 
+
 define KernelPackage/usb-serial-belkin
+  $(call usbdep,kmod-usb-serial)
   TITLE:=Support for Belkin devices
-  DESCRIPTION:=Kernel support for Belkin USB-to-Serial converters
-  DEPENDS:=kmod-usb-serial
-  SUBMENU:=$(USBMENU)
-  KCONFIG:=$(CONFIG_USB_SERIAL_BELKIN)
+  KCONFIG:=CONFIG_USB_SERIAL_BELKIN
   FILES:=$(LINUX_DIR)/drivers/usb/serial/belkin_sa.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,65,belkin_sa)
 endef
+
+define KernelPackage/usb-serial-belkin/description
+ Kernel support for Belkin USB-to-Serial converters
+endef
+
 $(eval $(call KernelPackage,usb-serial-belkin))
 
 
+define KernelPackage/usb-serial-ch341
+  $(call usbdep,kmod-usb-serial @LINUX_2_6&&@!LINUX_2_6_23)
+  TITLE:=Support for CH341 devices
+  KCONFIG:=CONFIG_USB_SERIAL_CH341
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/ch341.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,65,ch341)
+endef
+
+define KernelPackage/usb-serial-belkin/description
+ Kernel support for Winchiphead CH341 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-ch341))
+
+
 define KernelPackage/usb-serial-ftdi
+  $(call usbdep,kmod-usb-serial)
   TITLE:=Support for FTDI devices
-  DESCRIPTION:=Kernel support for FTDI USB-to-Serial converters
-  DEPENDS:=kmod-usb-serial
-  SUBMENU:=$(USBMENU)
-  KCONFIG:=$(CONFIG_USB_SERIAL_FTDI_SIO)
+  KCONFIG:=CONFIG_USB_SERIAL_FTDI_SIO
   FILES:=$(LINUX_DIR)/drivers/usb/serial/ftdi_sio.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,65,ftdi_sio)
 endef
+
+define KernelPackage/usb-serial-ftdi/description
+ Kernel support for FTDI USB-to-Serial converters
+endef
+
 $(eval $(call KernelPackage,usb-serial-ftdi))
 
 
 define KernelPackage/usb-serial-mct
+  $(call usbdep,kmod-usb-serial)
   TITLE:=Support for Magic Control Tech. devices
-  DESCRIPTION:=Kernel support for Magic Control Technology USB-to-Serial converters
-  DEPENDS:=kmod-usb-serial
-  SUBMENU:=$(USBMENU)
-  KCONFIG:=$(CONFIG_USB_SERIAL_MCT_U232)
+  KCONFIG:=CONFIG_USB_SERIAL_MCT_U232
   FILES:=$(LINUX_DIR)/drivers/usb/serial/mct_u232.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,65,mct_u232)
 endef
+
+define KernelPackage/usb-serial-mct/description
+ Kernel support for Magic Control Technology USB-to-Serial converters
+endef
+
 $(eval $(call KernelPackage,usb-serial-mct))
 
+
 define KernelPackage/usb-serial-pl2303
+  $(call usbdep,kmod-usb-serial)
   TITLE:=Support for Prolific PL2303 devices
-  DESCRIPTION:=Kernel support for Prolific PL2303 USB-to-Serial converters
-  DEPENDS:=kmod-usb-serial
-  SUBMENU:=$(USBMENU)
-  KCONFIG:=$(CONFIG_USB_SERIAL_PL2303)
+  KCONFIG:=CONFIG_USB_SERIAL_PL2303
   FILES:=$(LINUX_DIR)/drivers/usb/serial/pl2303.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,65,pl2303)
 endef
+
+define KernelPackage/usb-serial-pl2303/description
+ Kernel support for Prolific PL2303 USB-to-Serial converters
+endef
+
 $(eval $(call KernelPackage,usb-serial-pl2303))
 
 
+define KernelPackage/usb-serial-cp2101
+  $(call usbdep,kmod-usb-serial)
+  TITLE:=Support for Silicon Labs cp2101 devices
+  KCONFIG:=CONFIG_USB_SERIAL_CP2101
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/cp2101.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,65,cp2101)
+endef
+
+define KernelPackage/usb-serial-cp2101/description
+ Kernel support for Silicon Labs cp2101 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-cp2101))
+
+
+define KernelPackage/usb-serial-ark3116
+  $(call usbdep,kmod-usb-serial @LINUX_2_6)
+  TITLE:=Support for ArkMicroChips ARK3116 devices
+  KCONFIG:=CONFIG_USB_SERIAL_ARK3116
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/ark3116.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,65,ark3116)
+endef
+
+define KernelPackage/usb-serial-ark3116/description
+ Kernel support for ArkMicroChips ARK3116 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-ark3116))
+
+
+define KernelPackage/usb-serial-oti6858
+  $(call usbdep,kmod-usb-serial @LINUX_2_6)
+  TITLE:=Support for Ours Technology OTI6858 devices
+  KCONFIG:=CONFIG_USB_SERIAL_OTI6858
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/oti6858.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,65,oti6858)
+endef
+
+define KernelPackage/usb-serial-oti6858/description
+ Kernel support for Ours Technology OTI6858 USB-to-Serial converters
+endef
+
+$(eval $(call KernelPackage,usb-serial-oti6858))
+
+
 define KernelPackage/usb-serial-sierrawireless
+  $(call usbdep,kmod-usb-serial)
   TITLE:=Support for Sierra Wireless devices
-  DESCRIPTION:=Kernel support for Sierra Wireless devices
-  DEPENDS:=kmod-usb-serial
-  SUBMENU:=$(USBMENU)
-  KCONFIG:=$(CONFIG_USB_SERIAL_SIERRAWIRELESS)
+  KCONFIG:=CONFIG_USB_SERIAL_SIERRAWIRELESS
   FILES:=$(LINUX_DIR)/drivers/usb/serial/sierra.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,65,sierra)
 endef
+
+define KernelPackage/usb-serial-sierrawireless/description
+ Kernel support for Sierra Wireless devices
+endef
+
 $(eval $(call KernelPackage,usb-serial-sierrawireless))
 
 
+define KernelPackage/usb-serial-motorola-phone
+  $(call usbdep,kmod-usb-serial)
+  TITLE:=Support for Motorola usb phone
+  KCONFIG:=CONFIG_USB_SERIAL_MOTOROLA
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/moto_modem.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,65,moto_modem)
+endef
+
+define KernelPackage/usb-serial-motorola-phone/description
+ Kernel support for Motorola usb phone
+endef
+
+$(eval $(call KernelPackage,usb-serial-motorola-phone))
+
+
+
 define KernelPackage/usb-serial-visor
+  $(call usbdep,kmod-usb-serial)
   TITLE:=Support for Handspring Visor devices
-  DESCRIPTION:=Kernel support for Handspring Visor PDAs
-  DEPENDS:=kmod-usb-serial
-  SUBMENU:=$(USBMENU)
-  KCONFIG:=$(CONFIG_USB_SERIAL_VISOR)
+  KCONFIG:=CONFIG_USB_SERIAL_VISOR
   FILES:=$(LINUX_DIR)/drivers/usb/serial/visor.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,65,visor)
 endef
+
+define KernelPackage/usb-serial-visor/description
+ Kernel support for Handspring Visor PDAs
+endef
+
 $(eval $(call KernelPackage,usb-serial-visor))
 
 
+define KernelPackage/usb-serial-keyspan
+  $(call usbdep,kmod-usb-serial)
+  TITLE:=Support for Keyspan USB-to-Serial devices
+  KCONFIG:= \
+       CONFIG_USB_SERIAL_KEYSPAN \
+       CONFIG_USB_SERIAL_KEYSPAN_USA28 \
+       CONFIG_USB_SERIAL_KEYSPAN_USA28X \
+       CONFIG_USB_SERIAL_KEYSPAN_USA28XA \
+       CONFIG_USB_SERIAL_KEYSPAN_USA28XB \
+       CONFIG_USB_SERIAL_KEYSPAN_USA19 \
+       CONFIG_USB_SERIAL_KEYSPAN_USA18X \
+       CONFIG_USB_SERIAL_KEYSPAN_USA19W \
+       CONFIG_USB_SERIAL_KEYSPAN_USA19QW \
+       CONFIG_USB_SERIAL_KEYSPAN_USA19QI \
+       CONFIG_USB_SERIAL_KEYSPAN_MPR \
+       CONFIG_USB_SERIAL_KEYSPAN_USA49W \
+       CONFIG_USB_SERIAL_KEYSPAN_USA49WLC
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/keyspan.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,65,keyspan)
+endef
+
+define KernelPackage/usb-serial-keyspan/description
+ Kernel support for Keyspan USB-to-Serial devices
+endef
+
+$(eval $(call KernelPackage,usb-serial-keyspan))
+
+
+define KernelPackage/usb-serial-option
+  $(call usbdep,kmod-usb-serial @LINUX_2_6)
+  TITLE:=Support for Option HSDPA modems
+  KCONFIG:=CONFIG_USB_SERIAL_OPTION
+  FILES:=$(LINUX_DIR)/drivers/usb/serial/option.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,65,option)
+endef
+
+define KernelPackage/usb-serial-option/description
+ Kernel support for Option HSDPA modems
+endef
+
+$(eval $(call KernelPackage,usb-serial-option))
+
+
 define KernelPackage/usb-storage
-  $(call usbdep,)
+  $(call usbdep,+kmod-scsi-core)
   TITLE:=USB Storage support
-  DESCRIPTION:=Kernel support for USB Mass Storage devices
-  KCONFIG:=$(CONFIG_USB_STORAGE)
-  FILES:= \
-       $(LINUX_DIR)/drivers/usb/storage/usb-storage.$(LINUX_KMOD_SUFFIX)
+  KCONFIG:=CONFIG_USB_STORAGE
+  FILES:=$(LINUX_DIR)/drivers/usb/storage/usb-storage.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,60,scsi_mod sd_mod usb-storage)
-  DEPENDS:=+kmod-scsi-core
 endef
+
+define KernelPackage/usb-storage/description
+ Kernel support for USB Mass Storage devices
+endef
+
 $(eval $(call KernelPackage,usb-storage))
 
 
+define KernelPackage/usb-video
+  $(call usbdep,@LINUX_2_6)
+  TITLE:=Support for USB video devices
+  KCONFIG:=CONFIG_VIDEO_USBVIDEO
+  FILES:=$(LINUX_DIR)/drivers/media/video/usbvideo/usbvideo.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,60,usbvideo)
+endef
 
-define KernelPackage/usb-speedtouch
-  $(call usbdep,@LINUX_2_6 kmod-atm)
-  TITLE:=Support for SpeedTouch ADSL modems
-  DESCRIPTION:=Kernel support for SpeedTouch USB ADSL modems
-  KCONFIG:=$(CONFIG_USB_SPEEDTOUCH)
-  FILES:= \
-       $(LINUX_DIR)/drivers/usb/atm/usbatm.$(LINUX_KMOD_SUFFIX) \
-       $(LINUX_DIR)/drivers/usb/atm/speedtch.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,70,usbatm speedtch)
+define KernelPackage/usb-video/description
+ Kernel support for USB video devices
 endef
-$(eval $(call KernelPackage,usb-speedtouch))
+
+$(eval $(call KernelPackage,usb-video))
 
 
-define KernelPackage/usb-pwc
-  $(call usbdep,+kmod-videodev)
-  TITLE:=Philips WebCam driver
-  DESCRIPTION:=Kernel modules for supporting Philips WebCam USB devices
-  KCONFIG:=$(CONFIG_USB_PWC)
-  AUTOLOAD:=$(call AutoLoad,70,pwc)
+define KernelPackage/usb-atm
+  $(call usbdep,@LINUX_2_6 +kmod-atm)
+  TITLE:=Support for ATM on USB bus
+  KCONFIG:=CONFIG_USB_ATM
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/usbatm.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,60,usbatm)
 endef
 
-define KernelPackage/usb-pwc/2.4
-  FILES:=$(LINUX_DIR)/drivers/usb/pwc.$(LINUX_KMOD_SUFFIX)
+define KernelPackage/usb-atm/description
+ Kernel support for USB DSL modems
 endef
 
-$(eval $(call KernelPackage,usb-pwc))
+$(eval $(call KernelPackage,usb-atm))
+
+
+define KernelPackage/usb-atm-speedtouch
+  $(call usbdep,kmod-usb-atm @LINUX_2_6)
+  TITLE:=SpeedTouch USB ADSL modems support
+  KCONFIG:=CONFIG_USB_SPEEDTOUCH
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/speedtch.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,70,speedtch)
+endef
+
+define KernelPackage/usb-atm-speedtouch/description
+ Kernel support for SpeedTouch USB ADSL modems
+endef
+
+$(eval $(call KernelPackage,usb-atm-speedtouch))
+
+
+define KernelPackage/usb-atm-ueagle
+  $(call usbdep,kmod-usb-atm @LINUX_2_6)
+  TITLE:=Eagle 8051 based USB ADSL modems support
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/ueagle-atm.$(LINUX_KMOD_SUFFIX)
+  KCONFIG:=CONFIG_USB_UEAGLEATM
+  AUTOLOAD:=$(call AutoLoad,70,ueagle-atm)
+endef
+
+define KernelPackage/usb-atm-ueagle/description
+ Kernel support for Eagle 8051 based USB ADSL modems
+endef
+
+$(eval $(call KernelPackage,usb-atm-ueagle))
+
+define KernelPackage/usb-atm-cxacru
+  $(call usbdep,kmod-usb-atm @LINUX_2_6)
+  TITLE:=cxacru
+  FILES:=$(LINUX_DIR)/drivers/usb/atm/cxacru.$(LINUX_KMOD_SUFFIX)
+  KCONFIG:=CONFIG_USB_CXACRU
+  AUTOLOAD:=$(call AutoLoad,70,cxacru)
+endef
+
+define KernelPackage/usb-atm-cxacru/description
+ Kernel support for cxacru based USB ADSL modems
+endef
+
+$(eval $(call KernelPackage,usb-atm-cxacru))
+
 
 define KernelPackage/usb-net
   $(call usbdep,)
   TITLE:=Kernel modules for USB-to-Ethernet convertors
-  DESCRIPTION:=Kernel modules for USB-to-Ethernet convertors
-  KCONFIG:=$(CONFIG_USB_USBNET)
-  DEPENDS:=@USB_SUPPORT
-  AUTOLOAD:=$(call Autoload,60, usbnet)
+  KCONFIG:=CONFIG_USB_USBNET
+  AUTOLOAD:=$(call AutoLoad,60,usbnet)
 endef
 
 define KernelPackage/usb-net/2.4
@@ -307,53 +595,205 @@ define KernelPackage/usb-net/2.4
 endef
 
 define KernelPackage/usb-net/2.6
-  FILES:=$(LINUX_DIR)/drivers/usb/net/usbnet.$(LINUX_KMOD_SUFFIX)
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/usbnet.$(LINUX_KMOD_SUFFIX)
+endef
+
+define KernelPackage/usb-net/description
+ Kernel modules for USB-to-Ethernet convertors
 endef
 
 $(eval $(call KernelPackage,usb-net))
 
+
 define KernelPackage/usb-net-asix
-  $(call usbdep,+kmod-usbnet)
+  $(call usbdep,kmod-usb-net @LINUX_2_6)
   TITLE:=Kernel module for USB-to-Ethernet Asix convertors
-  DESCRIPTION:=Kernel module for USB-to-Ethernet Asix convertors
-  DEPENDS:=kmod-usb-net
-  KCONFIG:=$(CONFIG_USB_NET_AX8817X)
+  KCONFIG:=CONFIG_USB_NET_AX8817X
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,61,asix)
 endef
 
-define KernelPackage/usb-net-asix/2.4
-  FILES:=$(LINUX_DIR)/drivers/usb/ax8817x.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call Autoload,61,ax8817x)
+define KernelPackage/usb-net-asix/description
+ Kernel module for USB-to-Ethernet Asix convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-asix))
+
+
+define KernelPackage/usb-net-hso
+  $(call usbdep,kmod-usb-net @LINUX_2_6 @!LINUX_2_6_21 @!LINUX_2_6_23 @!LINUX_2_6_24 @!LINUX_2_6_25 +!TARGET_rb532||!TARGET_avr32||!TARGET_brcm47xx||!TARGET_s3c24xx||!TARGET_ifxmips||!TARGET_atheros||!TARGET_adm5120||!TARGET_ar7||!TARGET_ppc40x||!TARGET_ixp4xx||!TARGET_rdc:kmod-rfkill)
+  TITLE:=Kernel module for Option USB High Speed Mobile Devices
+  KCONFIG:=CONFIG_USB_HSO
+  FILES:= \
+       $(LINUX_DIR)/drivers/$(USBNET_DIR)/hso.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,61,hso)
 endef
 
-define KernelPackage/usb-net-asix/2.6
-  FILES:=$(LINUX_DIR)/drivers/usb/net/asix.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call Autoload,61,asix)
+define KernelPackage/usb-net-hso/description
+ Kernel module for Option USB High Speed Mobile Devices
 endef
 
-$(eval $(call KernelPackage,usb-net-asix))
+$(eval $(call KernelPackage,usb-net-hso))
+
+
+define KernelPackage/usb-net-kaweth
+  $(call usbdep,kmod-usb-net @LINUX_2_6)
+  TITLE:=Kernel module for USB-to-Ethernet Kaweth convertors
+  KCONFIG:=CONFIG_USB_KAWETH
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/kaweth.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,61,kaweth)
+endef
+
+define KernelPackage/usb-net-kaweth/description
+ Kernel module for USB-to-Ethernet Kaweth convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-kaweth))
+
+
+define KernelPackage/usb-net-pegasus
+  $(call usbdep,kmod-usb-net @LINUX_2_6)
+  TITLE:=Kernel module for USB-to-Ethernet Pegasus convertors
+  KCONFIG:=CONFIG_USB_PEGASUS
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/pegasus.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,61,pegasus)
+endef
+
+define KernelPackage/usb-net-pegasus/description
+ Kernel module for USB-to-Ethernet Pegasus convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-pegasus))
+
+
+define KernelPackage/usb-net-mcs7830
+  $(call usbdep,kmod-usb-net @LINUX_2_6)
+  TITLE:=Kernel module for USB-to-Ethernet MCS7830 convertors
+  KCONFIG:=CONFIG_USB_NET_MCS7830
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/mcs7830.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,61,mcs7830)
+endef
+
+define KernelPackage/usb-net-mcs7830/description
+ Kernel module for USB-to-Ethernet MCS7830 convertors
+endef
+
+$(eval $(call KernelPackage,usb-net-mcs7830))
+
+define KernelPackage/usb-net-dm9601-ether
+  $(call usbdep,kmod-usb-net @LINUX_2_6)
+  TITLE:=Support for DM9601 ethernet connections
+  KCONFIG:=CONFIG_USB_NET_DM9601
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/dm9601.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,61,dm9601)
+endef
+
+define KernelPackage/usb-net-dm9601-ether/description
+  Kernel support for USB DM9601 devices
+endef
+
+$(eval $(call KernelPackage,usb-net-dm9601-ether))
+
+define KernelPackage/usb-net-cdc-ether
+  $(call usbdep,kmod-usb-net @LINUX_2_6)
+  TITLE:=Support for cdc ethernet connections
+  KCONFIG:=CONFIG_USB_NET_CDCETHER
+  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ether.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,61,cdc_ether)
+endef
+
+define KernelPackage/usb-net-cdc-ether/description
+ Kernel support for USB CDC Ethernet devices
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-ether))
+
+
+define KernelPackage/usb-net-rndis
+  $(call usbdep,kmod-usb-net @LINUX_2_6)
+  TITLE:=Support for RNDIS connections
+  DEPENDS:=+kmod-usb-net-cdc-ether
+  KCONFIG:=CONFIG_USB_NET_RNDIS_HOST 
+  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/rndis_host.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,62,rndis_host)
+endef
+
+define KernelPackage/usb-net-rndis/description
+ Kernel support for RNDIS connections
+endef
+
+$(eval $(call KernelPackage,usb-net-rndis))
+
 
 define KernelPackage/usb-hid
-  $(call usbdep,@LINUX_2_6 evdev)
+  $(call usbdep,@LINUX_2_6 +kmod-input-core +kmod-input-evdev +kmod-hid)
   TITLE:=Support for USB Human Input Devices
-  DESCRIPTION:=Kernel support for USB HID devices such as keyboards and mice
-  KCONFIG:=$(CONFIG_USB_HID)
+  KCONFIG:=CONFIG_HID_SUPPORT=y CONFIG_USB_HID
+  FILES:=$(LINUX_DIR)/drivers/$(USBHID_DIR)/usbhid.ko
   AUTOLOAD:=$(call AutoLoad,70,usbhid)
 endef
 
-define KernelPackage/usb-hid/2.6
-  FILES:=$(LINUX_DIR)/drivers/usb/input/usbhid.ko
+
+define KernelPackage/usb-hid/description
+ Kernel support for USB HID devices such as keyboards and mice
 endef
+
 $(eval $(call KernelPackage,usb-hid))
 
+
 define KernelPackage/usb-yealink
-  $(call usbdep,@LINUX_2_6)
+  $(call usbdep,@LINUX_2_6 +kmod-input-core +kmod-input-evdev)
   TITLE:=USB Yealink VOIP phone
-  DESCRIPTION:=Kernel support for Yealink VOIP phone
-  KCONFIG:=$(CONFIG_USB_YEALINK)
-  FILES:=$(LINUX_DIR)/drivers/usb/input/yealink.ko
+  KCONFIG:=CONFIG_USB_YEALINK CONFIG_INPUT_YEALINK CONFIG_INPUT=m CONFIG_INPUT_MISC=y
+  FILES:=$(LINUX_DIR)/drivers/$(USBINPUT_DIR)/yealink.ko
   AUTOLOAD:=$(call AutoLoad,70,yealink)
-  DEPENDS:=kmod-input-core kmod-input-evdev
 endef
+
+define KernelPackage/usb-yealink/description
+ Kernel support for Yealink VOIP phone
+endef
+
 $(eval $(call KernelPackage,usb-yealink))
 
 
+define KernelPackage/usb-cm109
+  $(call usbdep,@LINUX_2_6 +kmod-input-core +kmod-input-evdev)
+  TITLE:=Support for CM109 device
+  KCONFIG:=CONFIG_USB_CM109 CONFIG_INPUT_CM109 CONFIG_INPUT=m CONFIG_INPUT_MISC=y
+  FILES:=$(LINUX_DIR)/drivers/$(USBINPUT_DIR)/cm109.ko
+  AUTOLOAD:=$(call AutoLoad,70,cm109)
+endef
+
+define KernelPackage/usb-cm109/description
+ Kernel support for CM109 VOIP phone
+endef
+
+$(eval $(call KernelPackage,usb-cm109))
+
+
+define KernelPackage/usb-test
+  $(call usbdep,@LINUX_2_6 @DEVEL)
+  TITLE:=USB Testing Driver
+  KCONFIG:=CONFIG_USB_TEST
+  FILES:=$(LINUX_DIR)/drivers/usb/misc/usbtest.ko
+endef
+
+define KernelPackage/usb-test/description
+ Kernel support for testing USB Host Controller software.
+endef
+
+$(eval $(call KernelPackage,usb-test))
+
+define KernelPackage/usb-phidget
+  $(call usbdep,@LINUX_2_6)
+  TITLE:=USB Phidget Driver
+  KCONFIG:=CONFIG_USB_PHIDGET CONFIG_USB_PHIDGETKIT CONFIG_USB_PHIDGETMOTORCONTROL CONFIG_USB_PHIDGETSERVO
+  FILES:=$(LINUX_DIR)/drivers/usb/misc/phidget*.ko
+endef
+
+define KernelPackage/usb-phidget/description
+ Kernel support for USB Phidget devices.
+endef
+
+$(eval $(call KernelPackage,usb-phidget))
+