#
-# Copyright (C) 2006-2012 OpenWrt.org
+# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
endef
+define KernelPackage/usb-musb-hdrc
+ TITLE:=Support for Mentor Graphics silicon dual role USB
+ KCONFIG:= \
+ CONFIG_USB_MUSB_HDRC \
+ CONFIG_USB_INVENTRA_DMA=n \
+ CONFIG_USB_TI_CPPI41_DMA=n \
+ CONFIG_MUSB_PIO_ONLY=y \
+ CONFIG_USB_MUSB_DUAL_ROLE=y \
+ CONFIG_USB_MUSB_GADGET=n \
+ CONFIG_USB_MUSB_HOST=n \
+ CONFIG_USB_MUSB_DEBUG=y
+ DEPENDS:= \
+ @(TARGET_omap||TARGET_omap24xx) +kmod-usb-gadget \
+ +TARGET_omap24xx:kmod-usb-musb-tusb6010
+ FILES:=$(LINUX_DIR)/drivers/usb/musb/musb_hdrc.ko
+ AUTOLOAD:=$(call AutoLoad,46,musb_hdrc)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-musb-hdrc/description
+ Kernel support for Mentor Graphics silicon dual role USB device.
+endef
+
+$(eval $(call KernelPackage,usb-musb-hdrc))
+
+
+define KernelPackage/usb-musb-platformglue
+ TITLE:=MUSB platform glue layer
+ KCONFIG:= \
+ CONFIG_USB_MUSB_TUSB6010=n \
+ CONFIG_USB_MUSB_OMAP2PLUS=n \
+ CONFIG_USB_MUSB_AM35X=n \
+ CONFIG_USB_MUSB_DSPS \
+ CONFIG_USB_MUSB_UX500=n
+ DEPENDS:=@TARGET_omap +kmod-usb-phy-nop +kmod-usb-musb-hdrc +kmod-usb-phy-am335x
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/musb/musb_dsps.ko \
+ $(LINUX_DIR)/drivers/usb/musb/musb_am335x.ko
+ AUTOLOAD:=$(call AutoLoad,45,phy-omap-control musb_dsps musb_am335x)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-musb-platformglue/description
+ MUSB platform glue modules
+endef
+
+$(eval $(call KernelPackage,usb-musb-platformglue))
+
+
+define KernelPackage/usb-musb-tusb6010
+ TITLE:=Support for TUSB 6010
+ KCONFIG:=CONFIG_USB_MUSB_TUSB6010
+ DEPENDS:=@TARGET_omap24xx
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-musb-tusb6010/description
+ TUSB6010 support
+endef
+
+$(eval $(call KernelPackage,usb-musb-tusb6010))
+
+
+define KernelPackage/usb-phy-nop
+ TITLE:=Support for USB NOP transceiver
+ KCONFIG:=CONFIG_NOP_USB_XCEIV
+ HIDDEN:=1
+ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/phy/phy-generic.ko),)
+ FILES:=$(LINUX_DIR)/drivers/usb/phy/phy-generic.ko
+ AUTOLOAD:=$(call AutoLoad,43,phy-generic)
+else
+ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/phy/phy-nop.ko),)
+ FILES:=$(LINUX_DIR)/drivers/usb/phy/phy-nop.ko
+ AUTOLOAD:=$(call AutoLoad,43,phy-nop)
+else
+ FILES:=$(LINUX_DIR)/drivers/usb/otg/nop-usb-xceiv.ko
+ AUTOLOAD:=$(call AutoLoad,43,nop-usb-xceiv)
+endif
+endif
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-phy-nop/description
+ Support for USB NOP transceiver
+endef
+
+$(eval $(call KernelPackage,usb-phy-nop))
+
+
+define KernelPackage/usb-phy-am335x
+ TITLE:=Support for AM335x USB PHY
+ KCONFIG:= \
+ CONFIG_AM335X_PHY_USB \
+ CONFIG_AM335X_CONTROL_USB
+ DEPENDS:=@TARGET_omap +kmod-usb-phy-nop
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/phy/phy-am335x.ko \
+ $(LINUX_DIR)/drivers/usb/phy/phy-am335x-control.ko
+ AUTOLOAD:=$(call AutoLoad,44,phy-am335x)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-phy-am335x/description
+ Support for AM335x USB PHY
+endef
+
+$(eval $(call KernelPackage,usb-phy-am335x))
+
+
+define KernelPackage/usb-phy-omap-usb2
+ TITLE:=Support for OMAP2 USB PHY
+ KCONFIG:= \
+ CONFIG_OMAP_USB2 \
+ CONFIG_OMAP_CONTROL_USB
+ DEPENDS:=@TARGET_omap
+ FILES:= \
+ $(LINUX_DIR)/drivers/phy/phy-omap-usb2.ko \
+ $(LINUX_DIR)/drivers/usb/phy/phy-omap-control.ko
+ AUTOLOAD:=$(call AutoLoad,45,phy-omap-control phy-omap-usb2)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-phy-omap-usb2/description
+ Support for AM335x USB PHY
+endef
+
+$(eval $(call KernelPackage,usb-phy-omap-usb2))
+
+
+define KernelPackage/usb-phy-omap-usb3
+ TITLE:=Support for OMAP USB3 PHY
+ KCONFIG:=CONFIG_OMAP_USB3
+ DEPENDS:=@TARGET_omap +kmod-usb-phy-omap-usb2
+ FILES:=$(LINUX_DIR)/drivers/usb/phy/phy-omap-usb3.ko
+ AUTOLOAD:=$(call AutoLoad,45,phy-omap-usb3)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-phy-omap-usb3/description
+ Support for OMAP USB3 PHY
+endef
+
+$(eval $(call KernelPackage,usb-phy-omap-usb3))
+
+
+define KernelPackage/usb-phy-twl4030
+ TITLE:=Support for TWL4030 OTG PHY
+ KCONFIG:=CONFIG_TWL4030_USB
+ DEPENDS:=@TARGET_omap +kmod-usb-phy-omap-usb2 +kmod-usb-musb-hdrc
+ FILES:=$(LINUX_DIR)/drivers/phy/phy-twl4030-usb.ko
+ AUTOLOAD:=$(call AutoLoad,45,phy-twl4030-usb)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-phy-twl4030/description
+ Support for TWL4030/TWL5030/TPS659x0 OTG PHY
+endef
+
+$(eval $(call KernelPackage,usb-phy-twl4030))
+
+
+define KernelPackage/usb-phy-twl6030
+ TITLE:=Support for TWL6030 OTG PHY
+ KCONFIG:=CONFIG_TWL6030_USB
+ DEPENDS:=@TARGET_omap +kmod-usb-phy-omap-usb2 +kmod-usb-musb-hdrc
+ FILES:=$(LINUX_DIR)/drivers/usb/phy/phy-twl6030-usb.ko
+ AUTOLOAD:=$(call AutoLoad,45,phy-twl6030-usb)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-phy-twl6030/description
+ Support for TWL6030 OTG PHY
+endef
+
+$(eval $(call KernelPackage,usb-phy-twl6030))
+
+
define KernelPackage/usb-gadget
TITLE:=USB Gadget support
KCONFIG:=CONFIG_USB_GADGET
KCONFIG:= \
CONFIG_USB_ETH \
CONFIG_USB_ETH_RNDIS=y \
- CONFIG_USB_ETH_EEM=y
+ CONFIG_USB_ETH_EEM=n
DEPENDS:=+kmod-usb-gadget +(!LINUX_3_3&&!LINUX_3_6):kmod-usb-lib-composite
+ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/gadget/u_ether.ko),)
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/gadget/u_ether.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/usb_f_ecm.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/usb_f_ecm_subset.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/usb_f_rndis.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/g_ether.ko
+ ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/gadget/u_rndis.ko),)
+ FILES+=$(LINUX_DIR)/drivers/usb/gadget/u_rndis.ko
+ endif
+ AUTOLOAD:=$(call AutoLoad,52,usb_f_ecm g_ether)
+else
FILES:=$(LINUX_DIR)/drivers/usb/gadget/g_ether.ko
AUTOLOAD:=$(call AutoLoad,52,g_ether)
+endif
$(call AddDepends/usb)
endef
$(eval $(call KernelPackage,usb-eth-gadget))
+define KernelPackage/usb-serial-gadget
+ TITLE:=USB Serial Gadget support
+ KCONFIG:=CONFIG_USB_G_SERIAL
+ DEPENDS:=+kmod-usb-gadget +(!LINUX_3_3&&!LINUX_3_6):kmod-usb-lib-composite
+ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/gadget/u_serial.ko),)
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/gadget/u_serial.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/usb_f_acm.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/usb_f_obex.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/usb_f_serial.ko \
+ $(LINUX_DIR)/drivers/usb/gadget/g_serial.ko
+ AUTOLOAD:=$(call AutoLoad,52,usb_f_acm g_serial)
+else
+ FILES:=$(LINUX_DIR)/drivers/usb/gadget/g_serial.ko
+ AUTOLOAD:=$(call AutoLoad,52,g_serial)
+endif
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-serial-gadget/description
+ Kernel support for USB Serial Gadget.
+endef
+
+$(eval $(call KernelPackage,usb-serial-gadget))
+
+
define KernelPackage/usb-uhci
TITLE:=Support for UHCI controllers
KCONFIG:= \
$(eval $(call KernelPackage,usb2-fsl))
+define KernelPackage/usb2-omap
+ TITLE:=Support for USB2 for OMAP
+ DEPENDS:=@TARGET_omap +kmod-usb-phy-nop +kmod-usb-phy-am335x +kmod-usb2
+ KCONFIG:=CONFIG_USB_EHCI_HCD_OMAP
+ FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-omap.ko
+ AUTOLOAD:=$(call AutoLoad,39,ehci-omap)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb2-omap/description
+ Kernel support for OMAP USB2 (EHCI) controllers
+endef
+
+$(eval $(call KernelPackage,usb2-omap))
+
+
define KernelPackage/usb2
TITLE:=Support for USB2 controllers
DEPENDS:=\
FILES:= \
$(LINUX_DIR)/drivers/usb/host/ehci-hcd.ko \
$(LINUX_DIR)/drivers/usb/host/ehci-platform.ko
- AUTOLOAD:=$(call AutoLoad,40,ehci-hcd ehci-platform,1)
+ ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ehci-orion.ko),)
+ FILES+=$(LINUX_DIR)/drivers/usb/host/ehci-orion.ko
+ endif
+ AUTOLOAD:=$(call AutoLoad,40,ehci-hcd ehci-platform ehci-orion,1)
else
FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-hcd.ko
AUTOLOAD:=$(call AutoLoad,40,ehci-hcd,1)
define KernelPackage/usb2-pci
TITLE:=Support for PCI USB2 controllers
- DEPENDS:=@PCI_SUPPORT @(LINUX_3_8||LINUX_3_9||LINUX_3_10) +kmod-usb2
+ DEPENDS:=@PCI_SUPPORT @(!LINUX_3_3&&!LINUX_3_6) +kmod-usb2
KCONFIG:=CONFIG_USB_EHCI_PCI
FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-pci.ko
AUTOLOAD:=$(call AutoLoad,42,ehci-pci,1)
define KernelPackage/usb-dwc2
TITLE:=DWC2 USB controller driver
- DEPENDS:=@LINUX_3_10
+ DEPENDS:=@(!LINUX_3_3&&!LINUX_3_6&&!LINUX_3_8&&!LINUX_3_9)
KCONFIG:= \
CONFIG_USB_DWC2 \
CONFIG_USB_DWC2_DEBUG=n \
CONFIG_USB_DWC2_VERBOSE=n \
CONFIG_USB_DWC2_TRACK_MISSED_SOFS=n
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.14.0)),1)
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/dwc2/dwc2.ko \
+ $(LINUX_DIR)/drivers/usb/dwc2/dwc2_platform.ko
+else
FILES:= \
$(LINUX_DIR)/drivers/staging/dwc2/dwc2.ko \
$(LINUX_DIR)/drivers/staging/dwc2/dwc2_platform.ko
+endif
AUTOLOAD:=$(call AutoLoad,54,dwc2 dwc2_platform,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-net
TITLE:=Kernel modules for USB-to-Ethernet convertors
- KCONFIG:=CONFIG_USB_USBNET CONFIG_MII=y
+ DEPENDS:=+kmod-mii
+ KCONFIG:=CONFIG_USB_USBNET
AUTOLOAD:=$(call AutoProbe,usbnet)
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/usbnet.ko
$(call AddDepends/usb)
$(eval $(call KernelPackage,usb-net-mcs7830))
+define KernelPackage/usb-net-smsc95xx
+ TITLE:=SMSC LAN95XX based USB 2.0 10/100 ethernet devices
+ KCONFIG:=CONFIG_USB_NET_SMSC95XX
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc95xx.ko
+ AUTOLOAD:=$(call AutoProbe,smsc95xx)
+ $(call AddDepends/usb-net, +(!LINUX_3_3&&!LINUX_3_6):kmod-lib-crc16)
+endef
+
+define KernelPackage/usb-net-smsc95xx/description
+ Kernel module for SMSC LAN95XX based devices
+endef
+
+$(eval $(call KernelPackage,usb-net-smsc95xx))
+
+
define KernelPackage/usb-net-dm9601-ether
TITLE:=Support for DM9601 ethernet connections
KCONFIG:=CONFIG_USB_NET_DM9601
$(eval $(call KernelPackage,usb-net-cdc-ether))
+define KernelPackage/usb-net-cdc-eem
+ TITLE:=Support for CDC EEM connections
+ KCONFIG:=CONFIG_USB_NET_CDC_EEM
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_eem.ko
+ AUTOLOAD:=$(call AutoProbe,cdc_eem)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-cdc-eem/description
+ Kernel support for USB CDC EEM
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-eem))
+
+
+define KernelPackage/usb-net-cdc-subset
+ TITLE:=Support for CDC Ethernet subset connections
+ KCONFIG:= \
+ CONFIG_USB_NET_CDC_SUBSET \
+ CONFIG_USB_ARMLINUX
+ FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_subset.ko
+ AUTOLOAD:=$(call AutoProbe,cdc_subset)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-cdc-subset/description
+ Kernel support for Simple USB Network Links (CDC Ethernet subset)
+endef
+
+$(eval $(call KernelPackage,usb-net-cdc-subset))
+
+
define KernelPackage/usb-net-qmi-wwan
TITLE:=QMI WWAN driver
KCONFIG:=CONFIG_USB_NET_QMI_WWAN
$(eval $(call KernelPackage,usb-net-ipheth))
+define KernelPackage/usb-net-kalmia
+ TITLE:=Samsung Kalmia based LTE USB modem
+ KCONFIG:=CONFIG_USB_NET_KALMIA
+ FILES:=$(LINUX_DIR)/drivers/net/usb/kalmia.ko
+ AUTOLOAD:=$(call AutoProbe,kalmia)
+ $(call AddDepends/usb-net)
+endef
+
+define KernelPackage/usb-net-kalmia/description
+ Kernel support for Samsung Kalmia based LTE USB modem
+endef
+
+$(eval $(call KernelPackage,usb-net-kalmia))
+
+
define KernelPackage/usb-hid
TITLE:=Support for USB Human Input Devices
KCONFIG:=CONFIG_HID_SUPPORT=y CONFIG_USB_HID CONFIG_USB_HIDDEV=y
FILES:=$(LINUX_DIR)/drivers/$(USBHID_DIR)/usbhid.ko
AUTOLOAD:=$(call AutoProbe,usbhid)
$(call AddDepends/usb)
- $(call AddDepends/hid)
+ $(call AddDepends/hid,+kmod-hid-generic)
$(call AddDepends/input,+kmod-input-evdev)
endef
define KernelPackage/usb-chipidea
TITLE:=Support for ChipIdea controllers
- DEPENDS:=+kmod-usb2
+ DEPENDS:=+kmod-usb2 +USB_GADGET_SUPPORT:kmod-usb-gadget
KCONFIG:=\
CONFIG_USB_CHIPIDEA \
CONFIG_USB_CHIPIDEA_HOST=y \
- CONFIG_USB_CHIPIDEA_UDC=n \
+ CONFIG_USB_CHIPIDEA_UDC=y \
CONFIG_USB_CHIPIDEA_DEBUG=y
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),lt,3.11.0)),1)
FILES:=\
$(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc.ko \
$(if $(CONFIG_OF_DEVICE),$(LINUX_DIR)/drivers/usb/chipidea/ci13xxx_imx.ko) \
$(if $(CONFIG_OF_DEVICE),$(LINUX_DIR)/drivers/usb/chipidea/usbmisc_imx$(if $(call kernel_patchver_le,3.9),6q).ko)
AUTOLOAD:=$(call AutoLoad,51,ci_hdrc $(if $(CONFIG_OF_DEVICE),ci13xxx_imx usbmisc_imx$(if $(call kernel_patchver_le,3.9),6q)),1)
+else
+ FILES:=\
+ $(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc.ko \
+ $(if $(CONFIG_OF),$(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc_imx.ko) \
+ $(if $(CONFIG_OF),$(LINUX_DIR)/drivers/usb/chipidea/usbmisc_imx.ko)
+ AUTOLOAD:=$(call AutoLoad,51,ci_hdrc $(if $(CONFIG_OF),ci_hdrc_imx usbmisc_imx),1)
+endif
$(call AddDepends/usb)
endef
define KernelPackage/usb-mxs-phy
TITLE:=Support for Freescale MXS USB PHY
- DEPENDS:=@TARGET_imx6
+ DEPENDS:=@TARGET_imx6||TARGET_mxs +TARGET_mxs:kmod-usb-chipidea-imx
KCONFIG:=CONFIG_USB_MXS_PHY
FILES:=\
$(LINUX_DIR)/drivers/usb/phy/phy-mxs-usb.ko
endef
$(eval $(call KernelPackage,usbmon))
+
+
+define KernelPackage/usb3
+ TITLE:=Support for USB3 controllers
+ DEPENDS:=+TARGET_omap:kmod-usb-phy-omap-usb3
+ KCONFIG:= \
+ CONFIG_USB_XHCI_HCD \
+ CONFIG_USB_XHCI_HCD_DEBUGGING=n
+ FILES:= \
+ $(LINUX_DIR)/drivers/usb/host/xhci-hcd.ko
+ AUTOLOAD:=$(call AutoLoad,54,xhci-hcd,1)
+ $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb3/description
+ Kernel support for USB3 (XHCI) controllers
+endef
+
+$(eval $(call KernelPackage,usb3))