aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb/da8xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/musb/da8xx.c')
-rw-r--r--drivers/usb/musb/da8xx.c37
1 files changed, 25 insertions, 12 deletions
diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
index 84427bebbf6..6161fc50d04 100644
--- a/drivers/usb/musb/da8xx.c
+++ b/drivers/usb/musb/da8xx.c
@@ -131,9 +131,9 @@ static inline void phy_off(void)
131 */ 131 */
132 132
133/** 133/**
134 * musb_platform_enable - enable interrupts 134 * da8xx_musb_enable - enable interrupts
135 */ 135 */
136void musb_platform_enable(struct musb *musb) 136static void da8xx_musb_enable(struct musb *musb)
137{ 137{
138 void __iomem *reg_base = musb->ctrl_base; 138 void __iomem *reg_base = musb->ctrl_base;
139 u32 mask; 139 u32 mask;
@@ -151,9 +151,9 @@ void musb_platform_enable(struct musb *musb)
151} 151}
152 152
153/** 153/**
154 * musb_platform_disable - disable HDRC and flush interrupts 154 * da8xx_musb_disable - disable HDRC and flush interrupts
155 */ 155 */
156void musb_platform_disable(struct musb *musb) 156static void da8xx_musb_disable(struct musb *musb)
157{ 157{
158 void __iomem *reg_base = musb->ctrl_base; 158 void __iomem *reg_base = musb->ctrl_base;
159 159
@@ -170,7 +170,7 @@ void musb_platform_disable(struct musb *musb)
170#define portstate(stmt) 170#define portstate(stmt)
171#endif 171#endif
172 172
173static void da8xx_set_vbus(struct musb *musb, int is_on) 173static void da8xx_musb_set_vbus(struct musb *musb, int is_on)
174{ 174{
175 WARN_ON(is_on && is_peripheral_active(musb)); 175 WARN_ON(is_on && is_peripheral_active(musb));
176} 176}
@@ -252,7 +252,7 @@ static void otg_timer(unsigned long _musb)
252 spin_unlock_irqrestore(&musb->lock, flags); 252 spin_unlock_irqrestore(&musb->lock, flags);
253} 253}
254 254
255void musb_platform_try_idle(struct musb *musb, unsigned long timeout) 255static void da8xx_musb_try_idle(struct musb *musb, unsigned long timeout)
256{ 256{
257 static unsigned long last_timer; 257 static unsigned long last_timer;
258 258
@@ -282,7 +282,7 @@ void musb_platform_try_idle(struct musb *musb, unsigned long timeout)
282 mod_timer(&otg_workaround, timeout); 282 mod_timer(&otg_workaround, timeout);
283} 283}
284 284
285static irqreturn_t da8xx_interrupt(int irq, void *hci) 285static irqreturn_t da8xx_musb_interrupt(int irq, void *hci)
286{ 286{
287 struct musb *musb = hci; 287 struct musb *musb = hci;
288 void __iomem *reg_base = musb->ctrl_base; 288 void __iomem *reg_base = musb->ctrl_base;
@@ -380,7 +380,7 @@ static irqreturn_t da8xx_interrupt(int irq, void *hci)
380 return ret; 380 return ret;
381} 381}
382 382
383int musb_platform_set_mode(struct musb *musb, u8 musb_mode) 383static int da8xx_musb_set_mode(struct musb *musb, u8 musb_mode)
384{ 384{
385 u32 cfgchip2 = __raw_readl(CFGCHIP2); 385 u32 cfgchip2 = __raw_readl(CFGCHIP2);
386 386
@@ -409,7 +409,7 @@ int musb_platform_set_mode(struct musb *musb, u8 musb_mode)
409 return 0; 409 return 0;
410} 410}
411 411
412int __init musb_platform_init(struct musb *musb, void *board_data) 412static int da8xx_musb_init(struct musb *musb)
413{ 413{
414 void __iomem *reg_base = musb->ctrl_base; 414 void __iomem *reg_base = musb->ctrl_base;
415 u32 rev; 415 u32 rev;
@@ -431,7 +431,7 @@ int __init musb_platform_init(struct musb *musb, void *board_data)
431 if (is_host_enabled(musb)) 431 if (is_host_enabled(musb))
432 setup_timer(&otg_workaround, otg_timer, (unsigned long)musb); 432 setup_timer(&otg_workaround, otg_timer, (unsigned long)musb);
433 433
434 musb->board_set_vbus = da8xx_set_vbus; 434 musb->board_set_vbus = da8xx_musb_set_vbus;
435 435
436 /* Reset the controller */ 436 /* Reset the controller */
437 musb_writel(reg_base, DA8XX_USB_CTRL_REG, DA8XX_SOFT_RESET_MASK); 437 musb_writel(reg_base, DA8XX_USB_CTRL_REG, DA8XX_SOFT_RESET_MASK);
@@ -446,14 +446,14 @@ int __init musb_platform_init(struct musb *musb, void *board_data)
446 rev, __raw_readl(CFGCHIP2), 446 rev, __raw_readl(CFGCHIP2),
447 musb_readb(reg_base, DA8XX_USB_CTRL_REG)); 447 musb_readb(reg_base, DA8XX_USB_CTRL_REG));
448 448
449 musb->isr = da8xx_interrupt; 449 musb->isr = da8xx_musb_interrupt;
450 return 0; 450 return 0;
451fail: 451fail:
452 clk_disable(musb->clock); 452 clk_disable(musb->clock);
453 return -ENODEV; 453 return -ENODEV;
454} 454}
455 455
456int musb_platform_exit(struct musb *musb) 456static int da8xx_musb_exit(struct musb *musb)
457{ 457{
458 if (is_host_enabled(musb)) 458 if (is_host_enabled(musb))
459 del_timer_sync(&otg_workaround); 459 del_timer_sync(&otg_workaround);
@@ -467,3 +467,16 @@ int musb_platform_exit(struct musb *musb)
467 467
468 return 0; 468 return 0;
469} 469}
470
471const struct musb_platform_ops musb_ops = {
472 .init = da8xx_musb_init,
473 .exit = da8xx_musb_exit,
474
475 .enable = da8xx_musb_enable,
476 .disable = da8xx_musb_disable,
477
478 .set_mode = da8xx_musb_set_mode,
479 .try_idle = da8xx_musb_try_idle,
480
481 .set_vbus = da8xx_musb_set_vbus,
482};