usb: phy: ab8500-usb: update irq handling code

Update irq handling code to notify all possible link status changes of
AB8500 and AB8505 to the ux500-musb glue driver.  The additional event
codes will be used for pm-runtime implementation, and are defined in a
separate ux500-specific header.

This also modify the irq registration code to use devm_* helpers and
drop all non necessary fail path code.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Fabio Baltieri
2013-03-08 10:27:09 +08:00
committed by Felipe Balbi
parent 73f226cbd7
commit af6882be36
3 changed files with 386 additions and 100 deletions

View File

@@ -26,6 +26,7 @@
#include <linux/err.h>
#include <linux/io.h>
#include <linux/platform_device.h>
#include <linux/usb/musb-ux500.h>
#include "musb_core.h"
@@ -107,15 +108,15 @@ static int musb_otg_notifications(struct notifier_block *nb,
event, usb_otg_state_string(musb->xceiv->state));
switch (event) {
case USB_EVENT_ID:
case UX500_MUSB_ID:
dev_dbg(musb->controller, "ID GND\n");
ux500_musb_set_vbus(musb, 1);
break;
case USB_EVENT_VBUS:
case UX500_MUSB_VBUS:
dev_dbg(musb->controller, "VBUS Connect\n");
ux500_musb_set_vbus(musb, 0);
break;
case USB_EVENT_NONE:
case UX500_MUSB_NONE:
dev_dbg(musb->controller, "VBUS Disconnect\n");
if (is_host_active(musb))
ux500_musb_set_vbus(musb, 0);