|
@@ -76,8 +76,23 @@
|
|
|
/* SYSCONFIG REGISTER */
|
|
|
#define USBOTGSS_SYSCONFIG_DMADISABLE (1 << 16)
|
|
|
#define USBOTGSS_SYSCONFIG_STANDBYMODE(x) ((x) << 4)
|
|
|
+
|
|
|
+#define USBOTGSS_STANDBYMODE_FORCE_STANDBY 0
|
|
|
+#define USBOTGSS_STANDBYMODE_NO_STANDBY 1
|
|
|
+#define USBOTGSS_STANDBYMODE_SMART_STANDBY 2
|
|
|
+#define USBOTGSS_STANDBYMODE_SMART_WAKEUP 3
|
|
|
+
|
|
|
+#define USBOTGSS_STANDBYMODE_MASK (0x03 << 4)
|
|
|
+
|
|
|
#define USBOTGSS_SYSCONFIG_IDLEMODE(x) ((x) << 2)
|
|
|
|
|
|
+#define USBOTGSS_IDLEMODE_FORCE_IDLE 0
|
|
|
+#define USBOTGSS_IDLEMODE_NO_IDLE 1
|
|
|
+#define USBOTGSS_IDLEMODE_SMART_IDLE 2
|
|
|
+#define USBOTGSS_IDLEMODE_SMART_WAKEUP 3
|
|
|
+
|
|
|
+#define USBOTGSS_IDLEMODE_MASK (0x03 << 2)
|
|
|
+
|
|
|
/* IRQ_EOI REGISTER */
|
|
|
#define USBOTGSS_IRQ_EOI_LINE_NUMBER (1 << 0)
|
|
|
|
|
@@ -270,6 +285,15 @@ static int __devinit dwc3_omap_probe(struct platform_device *pdev)
|
|
|
reg = dwc3_readl(omap->base, USBOTGSS_SYSCONFIG);
|
|
|
omap->dma_status = !!(reg & USBOTGSS_SYSCONFIG_DMADISABLE);
|
|
|
|
|
|
+ /* Set No-Idle and No-Standby */
|
|
|
+ reg &= ~(USBOTGSS_STANDBYMODE_MASK
|
|
|
+ | USBOTGSS_IDLEMODE_MASK);
|
|
|
+
|
|
|
+ reg |= (USBOTGSS_SYSCONFIG_STANDBYMODE(USBOTGSS_STANDBYMODE_NO_STANDBY)
|
|
|
+ | USBOTGSS_SYSCONFIG_IDLEMODE(USBOTGSS_IDLEMODE_NO_IDLE));
|
|
|
+
|
|
|
+ dwc3_writel(omap->base, USBOTGSS_SYSCONFIG, reg);
|
|
|
+
|
|
|
ret = request_irq(omap->irq, dwc3_omap_interrupt, 0,
|
|
|
"dwc3-omap", omap);
|
|
|
if (ret) {
|