Loading drivers/usb/gadget/Kconfig +18 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,24 @@ config USB_R8A66597 default USB_GADGET select USB_GADGET_SELECTED config USB_GADGET_RENESAS_USBHS boolean "Renesas USBHS" depends on USB_RENESAS_USBHS select USB_GADGET_DUALSPEED help Renesas USBHS is a discrete USB host and peripheral controller chip that supports both full and high speed USB 2.0 data transfers. platform is able to configure endpoint (pipe) style Say "y" to enable the gadget specific portion of the USBHS driver. config USB_RENESAS_USBHS_UDC tristate depends on USB_GADGET_RENESAS_USBHS default USB_GADGET select USB_GADGET_SELECTED config USB_GADGET_PXA27X boolean "PXA 27x" depends on ARCH_PXA && (PXA27x || PXA3xx) Loading drivers/usb/gadget/gadget_chips.h +9 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,12 @@ #define gadget_is_ci13xxx_msm(g) 0 #endif #ifdef CONFIG_USB_GADGET_RENESAS_USBHS #define gadget_is_renesas_usbhs(g) (!strcmp("renesas_usbhs_udc", (g)->name)) #else #define gadget_is_renesas_usbhs(g) 0 #endif /** * usb_gadget_controller_number - support bcdDevice id convention * @gadget: the controller being driven Loading Loading @@ -207,6 +213,9 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget) return 0x27; else if (gadget_is_ci13xxx_msm(gadget)) return 0x28; else if (gadget_is_renesas_usbhs(gadget)) return 0x29; return -ENOENT; } Loading drivers/usb/renesas_usbhs/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,5 @@ obj-$(CONFIG_USB_RENESAS_USBHS) += renesas_usbhs.o renesas_usbhs-y := common.o mod.o pipe.o renesas_usbhs-$(CONFIG_USB_RENESAS_USBHS_UDC) += mod_gadget.o drivers/usb/renesas_usbhs/mod.c +16 −1 Original line number Diff line number Diff line Loading @@ -94,17 +94,32 @@ int usbhs_mod_probe(struct usbhs_priv *priv) struct device *dev = usbhs_priv_to_dev(priv); int ret; /* * install host/gadget driver */ ret = usbhs_mod_gadget_probe(priv); if (ret < 0) return ret; /* irq settings */ ret = request_irq(priv->irq, usbhs_interrupt, IRQF_DISABLED, dev_name(dev), priv); if (ret) if (ret) { dev_err(dev, "irq request err\n"); goto mod_init_gadget_err; } return ret; mod_init_gadget_err: usbhs_mod_gadget_remove(priv); return ret; } void usbhs_mod_remove(struct usbhs_priv *priv) { usbhs_mod_gadget_remove(priv); free_irq(priv->irq, priv); } Loading drivers/usb/renesas_usbhs/mod.h +16 −0 Original line number Diff line number Diff line Loading @@ -103,4 +103,20 @@ void usbhs_irq_callback_update(struct usbhs_priv *priv, struct usbhs_mod *mod); mod->func(param); \ }) /* * gadget control */ #ifdef CONFIG_USB_RENESAS_USBHS_UDC extern int __devinit usbhs_mod_gadget_probe(struct usbhs_priv *priv); extern void __devexit usbhs_mod_gadget_remove(struct usbhs_priv *priv); #else static inline int usbhs_mod_gadget_probe(struct usbhs_priv *priv) { return 0; } static inline void usbhs_mod_gadget_remove(struct usbhs_priv *priv) { } #endif #endif /* RENESAS_USB_MOD_H */ Loading
drivers/usb/gadget/Kconfig +18 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,24 @@ config USB_R8A66597 default USB_GADGET select USB_GADGET_SELECTED config USB_GADGET_RENESAS_USBHS boolean "Renesas USBHS" depends on USB_RENESAS_USBHS select USB_GADGET_DUALSPEED help Renesas USBHS is a discrete USB host and peripheral controller chip that supports both full and high speed USB 2.0 data transfers. platform is able to configure endpoint (pipe) style Say "y" to enable the gadget specific portion of the USBHS driver. config USB_RENESAS_USBHS_UDC tristate depends on USB_GADGET_RENESAS_USBHS default USB_GADGET select USB_GADGET_SELECTED config USB_GADGET_PXA27X boolean "PXA 27x" depends on ARCH_PXA && (PXA27x || PXA3xx) Loading
drivers/usb/gadget/gadget_chips.h +9 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,12 @@ #define gadget_is_ci13xxx_msm(g) 0 #endif #ifdef CONFIG_USB_GADGET_RENESAS_USBHS #define gadget_is_renesas_usbhs(g) (!strcmp("renesas_usbhs_udc", (g)->name)) #else #define gadget_is_renesas_usbhs(g) 0 #endif /** * usb_gadget_controller_number - support bcdDevice id convention * @gadget: the controller being driven Loading Loading @@ -207,6 +213,9 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget) return 0x27; else if (gadget_is_ci13xxx_msm(gadget)) return 0x28; else if (gadget_is_renesas_usbhs(gadget)) return 0x29; return -ENOENT; } Loading
drivers/usb/renesas_usbhs/Makefile +2 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,5 @@ obj-$(CONFIG_USB_RENESAS_USBHS) += renesas_usbhs.o renesas_usbhs-y := common.o mod.o pipe.o renesas_usbhs-$(CONFIG_USB_RENESAS_USBHS_UDC) += mod_gadget.o
drivers/usb/renesas_usbhs/mod.c +16 −1 Original line number Diff line number Diff line Loading @@ -94,17 +94,32 @@ int usbhs_mod_probe(struct usbhs_priv *priv) struct device *dev = usbhs_priv_to_dev(priv); int ret; /* * install host/gadget driver */ ret = usbhs_mod_gadget_probe(priv); if (ret < 0) return ret; /* irq settings */ ret = request_irq(priv->irq, usbhs_interrupt, IRQF_DISABLED, dev_name(dev), priv); if (ret) if (ret) { dev_err(dev, "irq request err\n"); goto mod_init_gadget_err; } return ret; mod_init_gadget_err: usbhs_mod_gadget_remove(priv); return ret; } void usbhs_mod_remove(struct usbhs_priv *priv) { usbhs_mod_gadget_remove(priv); free_irq(priv->irq, priv); } Loading
drivers/usb/renesas_usbhs/mod.h +16 −0 Original line number Diff line number Diff line Loading @@ -103,4 +103,20 @@ void usbhs_irq_callback_update(struct usbhs_priv *priv, struct usbhs_mod *mod); mod->func(param); \ }) /* * gadget control */ #ifdef CONFIG_USB_RENESAS_USBHS_UDC extern int __devinit usbhs_mod_gadget_probe(struct usbhs_priv *priv); extern void __devexit usbhs_mod_gadget_remove(struct usbhs_priv *priv); #else static inline int usbhs_mod_gadget_probe(struct usbhs_priv *priv) { return 0; } static inline void usbhs_mod_gadget_remove(struct usbhs_priv *priv) { } #endif #endif /* RENESAS_USB_MOD_H */