diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index e137515487f826eb8970444e0c17293614ea3199..9226f222a8d092f22e241754fc85aa9cf207ca21 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -276,6 +276,32 @@ 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:= \