diff options
Diffstat (limited to 'drivers/usb/musb/musb_core.h')
| -rw-r--r-- | drivers/usb/musb/musb_core.h | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h index 65f3917b4fc..d155a156f24 100644 --- a/drivers/usb/musb/musb_core.h +++ b/drivers/usb/musb/musb_core.h @@ -46,6 +46,8 @@  #include <linux/usb.h>  #include <linux/usb/otg.h>  #include <linux/usb/musb.h> +#include <linux/phy/phy.h> +#include <linux/workqueue.h>  struct musb;  struct musb_hw_ep; @@ -190,6 +192,7 @@ struct musb_platform_ops {  	int	(*set_mode)(struct musb *musb, u8 mode);  	void	(*try_idle)(struct musb *musb, unsigned long timeout); +	void	(*reset)(struct musb *musb);  	int	(*vbus_status)(struct musb *musb);  	void	(*set_vbus)(struct musb *musb, int on); @@ -294,6 +297,9 @@ struct musb {  	irqreturn_t		(*isr)(int, void *);  	struct work_struct	irq_work; +	struct work_struct	recover_work; +	struct delayed_work	deassert_reset_work; +	struct delayed_work	finish_resume_work;  	u16			hwvers;  	u16			intrrxe; @@ -333,6 +339,7 @@ struct musb {  	dma_addr_t		async;  	dma_addr_t		sync;  	void __iomem		*sync_va; +	u8			tusb_revision;  #endif  	/* passed down from chip/board specific irq handlers */ @@ -341,6 +348,7 @@ struct musb {  	u16			int_tx;  	struct usb_phy		*xceiv; +	struct phy		*phy;  	int nIrq;  	unsigned		irq_wake:1; @@ -503,6 +511,7 @@ static inline void musb_configure_ep0(struct musb *musb)  extern const char musb_driver_name[];  extern void musb_stop(struct musb *musb); +extern void musb_start(struct musb *musb);  extern void musb_write_fifo(struct musb_hw_ep *ep, u16 len, const u8 *src);  extern void musb_read_fifo(struct musb_hw_ep *ep, u16 len, u8 *dst); @@ -546,6 +555,12 @@ static inline void musb_platform_try_idle(struct musb *musb,  		musb->ops->try_idle(musb, timeout);  } +static inline void musb_platform_reset(struct musb *musb) +{ +	if (musb->ops->reset) +		musb->ops->reset(musb); +} +  static inline int musb_platform_get_vbus_status(struct musb *musb)  {  	if (!musb->ops->vbus_status)  | 
