summaryrefslogtreecommitdiff
path: root/cpu/pxa/usb.c
diff options
context:
space:
mode:
authorRodolfo Giometti <giometti@enneenne.com>2007-10-15 11:59:17 +0200
committerWolfgang Denk <wd@denx.de>2007-10-15 12:57:41 +0200
commit4d4a945e189a2f384c66432316da2788a0ac1607 (patch)
tree99498b2f1d3ecda366c57854d1844ca216a2eb84 /cpu/pxa/usb.c
parentf8bf90461d9bad2e6fed31fcebaf235f60dd6763 (diff)
PXA USB OHCI: "usb stop" implementation.
Some USB keys need to be switched off before loading the kernel otherwise they can remain in an undefined status which prevents them to be correctly recognized by the kernel. Signed-off-by: Rodolfo Giometti <giometti@linux.it>
Diffstat (limited to 'cpu/pxa/usb.c')
-rw-r--r--cpu/pxa/usb.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpu/pxa/usb.c b/cpu/pxa/usb.c
index 65f457fe5..3c11d4de4 100644
--- a/cpu/pxa/usb.c
+++ b/cpu/pxa/usb.c
@@ -67,6 +67,22 @@ int usb_cpu_init()
int usb_cpu_stop()
{
+ UHCHR |= UHCHR_FHR;
+ udelay(11);
+ UHCHR &= ~UHCHR_FHR;
+
+ UHCCOMS |= 1;
+ udelay(10);
+
+#if defined(CONFIG_CPU_MONAHANS)
+ UHCHR |= UHCHR_SSEP0;
+#endif
+#if defined(CONFIG_PXA27X)
+ UHCHR |= UHCHR_SSEP2;
+#endif
+ UHCHR |= UHCHR_SSEP1;
+ UHCHR |= UHCHR_SSE;
+
return 0;
}