Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 248692
b: refs/heads/master
c: 2f98382
h: refs/heads/master
v: v3
  • Loading branch information
Kuninori Morimoto authored and Greg Kroah-Hartman committed Apr 13, 2011
1 parent da6d6d4 commit 71df19a
Show file tree
Hide file tree
Showing 7 changed files with 1,403 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f1407d5c66240b33d11a7f1a41d55ccf6a9d7647
refs/heads/master: 2f98382dcdfe1f0048b447da35f34507ffb514dc
18 changes: 18 additions & 0 deletions trunk/drivers/usb/gadget/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
9 changes: 9 additions & 0 deletions trunk/drivers/usb/gadget/gadget_chips.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
}

Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/usb/renesas_usbhs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
17 changes: 16 additions & 1 deletion trunk/drivers/usb/renesas_usbhs/mod.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
16 changes: 16 additions & 0 deletions trunk/drivers/usb/renesas_usbhs/mod.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 71df19a

Please sign in to comment.