mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
UPSTREAM: usb: dwc3: omap: Pass VBUS and ID events transparently
Don't make any decisions regarding VBUS session based on ID
status. That is best left to the OTG core.
Pass ID and VBUS events independent of each other so that OTG
core knows exactly what to do.
This makes dual-role with extcon work with OTG irq on OMAP platforms.
Change-Id: I141c03d4127b69530e77cfef3cee5f5b95f6df26
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit d2728fb3e0)
This commit is contained in:
committed by
Huang, Tao
parent
0b4a26de3a
commit
df61afdf93
@@ -231,18 +231,14 @@ static void dwc3_omap_set_mailbox(struct dwc3_omap *omap,
|
||||
}
|
||||
|
||||
val = dwc3_omap_read_utmi_ctrl(omap);
|
||||
val &= ~(USBOTGSS_UTMI_OTG_CTRL_IDDIG
|
||||
| USBOTGSS_UTMI_OTG_CTRL_VBUSVALID
|
||||
| USBOTGSS_UTMI_OTG_CTRL_SESSEND);
|
||||
val |= USBOTGSS_UTMI_OTG_CTRL_SESSVALID;
|
||||
val &= ~USBOTGSS_UTMI_OTG_CTRL_IDDIG;
|
||||
dwc3_omap_write_utmi_ctrl(omap, val);
|
||||
break;
|
||||
|
||||
case OMAP_DWC3_VBUS_VALID:
|
||||
val = dwc3_omap_read_utmi_ctrl(omap);
|
||||
val &= ~USBOTGSS_UTMI_OTG_CTRL_SESSEND;
|
||||
val |= USBOTGSS_UTMI_OTG_CTRL_IDDIG
|
||||
| USBOTGSS_UTMI_OTG_CTRL_VBUSVALID
|
||||
val |= USBOTGSS_UTMI_OTG_CTRL_VBUSVALID
|
||||
| USBOTGSS_UTMI_OTG_CTRL_SESSVALID;
|
||||
dwc3_omap_write_utmi_ctrl(omap, val);
|
||||
break;
|
||||
@@ -250,13 +246,15 @@ static void dwc3_omap_set_mailbox(struct dwc3_omap *omap,
|
||||
case OMAP_DWC3_ID_FLOAT:
|
||||
if (omap->vbus_reg)
|
||||
regulator_disable(omap->vbus_reg);
|
||||
val = dwc3_omap_read_utmi_ctrl(omap);
|
||||
val |= USBOTGSS_UTMI_OTG_CTRL_IDDIG;
|
||||
dwc3_omap_write_utmi_ctrl(omap, val);
|
||||
|
||||
case OMAP_DWC3_VBUS_OFF:
|
||||
val = dwc3_omap_read_utmi_ctrl(omap);
|
||||
val &= ~(USBOTGSS_UTMI_OTG_CTRL_SESSVALID
|
||||
| USBOTGSS_UTMI_OTG_CTRL_VBUSVALID);
|
||||
val |= USBOTGSS_UTMI_OTG_CTRL_SESSEND
|
||||
| USBOTGSS_UTMI_OTG_CTRL_IDDIG;
|
||||
val |= USBOTGSS_UTMI_OTG_CTRL_SESSEND;
|
||||
dwc3_omap_write_utmi_ctrl(omap, val);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user