Subject: Re: USB on AU1550

From: Herbert Valerio Riedel <[email-masked]>
Date: Sat, 24 Dec 2005 12:52:42 +0100

hello,

On Wed, 2005-09-28 at 15:52 -0500, Jay Monkman wrote:
> I'm trying to get USB working on my AU1550 board, and I'm getting an error I
> don't understand. I've searched the web and the mailing list archives, but
> haven't found anything relevant.

there was a post of mine, dating back to 22 Nov 2004 which could have
been relevant to your cause :-)

> 
> I'm using 2.6.12, in big-endian mode.
[..]
> Can anyone point me in the right direction to get this working?

don't know whether you still require being pointed in to any direction;
however, the following patch (against current GIT HEAD, works for me,
YMMV :-) might provide a hint:

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index ed1899d..914b964 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -100,12 +100,14 @@ config USB_OHCI_HCD_PCI
 config USB_OHCI_BIG_ENDIAN
 	bool
 	depends on USB_OHCI_HCD
+	default y if SOC_AU1X00 && CPU_BIG_ENDIAN
 	default n
 
 config USB_OHCI_LITTLE_ENDIAN
 	bool
 	depends on USB_OHCI_HCD
 	default n if STB03xxx || PPC_MPC52xx
+	default n if SOC_AU1X00 && CPU_BIG_ENDIAN
 	default y
 
 config USB_UHCI_HCD
diff --git a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h
index caacf14..bf18351 100644
--- a/drivers/usb/host/ohci.h
+++ b/drivers/usb/host/ohci.h
@@ -462,6 +462,11 @@ static inline struct usb_hcd *ohci_to_hc
 #define writel_be(val, addr)	out_be32((__force unsigned *)addr, val)
 #endif
 
+#if defined(CONFIG_SOC_AU1X00)
+#define readl_be(addr)          __raw_readl((__force u32 *)(addr))
+#define writel_be(val, addr)    __raw_writel(val, (__force u32 *)(addr))
+#endif
+
 static inline unsigned int ohci_readl (const struct ohci_hcd *ohci,
 							__hc32 __iomem * regs)
 {

greetings,
-- 
Herbert Valerio Riedel <[email-masked]>
GnuPG Key Fingerprint: 7BB9 2D6C D485 CE64 4748  5F65 4981 E064 883F 4142