summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorEric Miao <eric.miao@marvell.com>2008-10-04 06:45:39 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-10-07 20:12:58 +0200
commit0cb0b0d3c6ebb8215500685a1f70a45bbbdc8e47 (patch)
treecd19d09b768377f0db57fa52bb70fa9b03431520 /drivers/usb
parent[ARM] ohci-pxa27x: use platform_get_{irq,resource} for the resource (diff)
downloadlinux-0cb0b0d3c6ebb8215500685a1f70a45bbbdc8e47.tar.xz
linux-0cb0b0d3c6ebb8215500685a1f70a45bbbdc8e47.zip
[ARM] ohci-pxa27x: introduce pxa27x_clear_otgph()
Direct access to pxa27x specific register PSSR in a generic ohci driver is no good, introduce pxa27x_clear_otgph() and move the implementation into processor specific code. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/ohci-pxa27x.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c
index 8530c6e9b770..1fd77933a4c6 100644
--- a/drivers/usb/host/ohci-pxa27x.c
+++ b/drivers/usb/host/ohci-pxa27x.c
@@ -25,7 +25,6 @@
#include <linux/clk.h>
#include <mach/hardware.h>
-#include <mach/pxa2xx-regs.h> /* FIXME: for PSSR */
#include <mach/ohci.h>
/*
@@ -182,6 +181,12 @@ static inline void pxa27x_setup_hc(struct pxaohci_platform_data *inf)
UHCRHDA = uhcrhda;
}
+#ifdef CONFIG_CPU_PXA27x
+extern void pxa27x_clear_otgph(void);
+#else
+#define pxa27x_clear_otgph() do {} while (0)
+#endif
+
static int pxa27x_start_hc(struct device *dev)
{
int retval = 0;
@@ -212,9 +217,7 @@ static int pxa27x_start_hc(struct device *dev)
UHCHIE = (UHCHIE_UPRIE | UHCHIE_RWIE);
/* Clear any OTG Pin Hold */
- if (cpu_is_pxa27x() && (PSSR & PSSR_OTGPH))
- PSSR |= PSSR_OTGPH;
-
+ pxa27x_clear_otgph();
return 0;
}