summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKishon Vijay Abraham I <kishon@ti.com>2015-02-23 18:40:06 +0530
committerMarek Vasut <marex@denx.de>2015-04-14 05:48:10 +0200
commit27d3b89d3362c912dccf1d9d27bcefc1e361fe19 (patch)
tree6f6eac7768f3f6a755e1dd068a7069e73dee8787
parent793d347f5372edd4e5b6353df49fac77ce54031c (diff)
downloadu-boot-imx-27d3b89d3362c912dccf1d9d27bcefc1e361fe19.zip
u-boot-imx-27d3b89d3362c912dccf1d9d27bcefc1e361fe19.tar.gz
u-boot-imx-27d3b89d3362c912dccf1d9d27bcefc1e361fe19.tar.bz2
dwc3: core: added an API to invoke irq handlers
Since interrupt support is not present in u-boot, added an API to handle the interrupts in dwc3 core. This API can be polled to handle the interrupts. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
-rw-r--r--drivers/usb/dwc3/core.c21
-rw-r--r--include/dwc3-uboot.h1
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index bd34dbd..5a8d5ea 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -758,6 +758,27 @@ void dwc3_uboot_exit(int index)
}
}
+/**
+ * dwc3_uboot_handle_interrupt - handle dwc3 core interrupt
+ * @index: index of this controller
+ *
+ * Invokes dwc3 gadget interrupts.
+ *
+ * Generally called from board file.
+ */
+void dwc3_uboot_handle_interrupt(int index)
+{
+ struct dwc3 *dwc = NULL;
+
+ list_for_each_entry(dwc, &dwc3_list, list) {
+ if (dwc->index != index)
+ continue;
+
+ dwc3_gadget_uboot_handle_interrupt(dwc);
+ break;
+ }
+}
+
MODULE_ALIAS("platform:dwc3");
MODULE_AUTHOR("Felipe Balbi <balbi@ti.com>");
MODULE_LICENSE("GPL v2");
diff --git a/include/dwc3-uboot.h b/include/dwc3-uboot.h
index 272a020..09ff8a7 100644
--- a/include/dwc3-uboot.h
+++ b/include/dwc3-uboot.h
@@ -38,4 +38,5 @@ struct dwc3_device {
int dwc3_uboot_init(struct dwc3_device *dev);
void dwc3_uboot_exit(int index);
+void dwc3_uboot_handle_interrupt(int index);
#endif /* __DWC3_UBOOT_H_ */