aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/host/ehci-hcd.c10
-rw-r--r--drivers/usb/host/ehci.h6
2 files changed, 14 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 889c2027e7f7..a205a53c61ff 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -201,9 +201,15 @@ static void tdi_reset (struct ehci_hcd *ehci)
201 u32 __iomem *reg_ptr; 201 u32 __iomem *reg_ptr;
202 u32 tmp; 202 u32 tmp;
203 203
204 reg_ptr = (u32 __iomem *)(((u8 __iomem *)ehci->regs) + 0x68); 204 reg_ptr = (u32 __iomem *)(((u8 __iomem *)ehci->regs) + USBMODE);
205 tmp = ehci_readl(ehci, reg_ptr); 205 tmp = ehci_readl(ehci, reg_ptr);
206 tmp |= 0x3; 206 tmp |= USBMODE_CM_HC;
207 /* The default byte access to MMR space is LE after
208 * controller reset. Set the required endian mode
209 * for transfer buffers to match the host microprocessor
210 */
211 if (ehci_big_endian_mmio(ehci))
212 tmp |= USBMODE_BE;
207 ehci_writel(ehci, tmp, reg_ptr); 213 ehci_writel(ehci, tmp, reg_ptr);
208} 214}
209 215
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 4d617108f552..2c68a04230c1 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -302,6 +302,12 @@ struct ehci_regs {
302#define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC) 302#define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC)
303} __attribute__ ((packed)); 303} __attribute__ ((packed));
304 304
305#define USBMODE 0x68 /* USB Device mode */
306#define USBMODE_SDIS (1<<3) /* Stream disable */
307#define USBMODE_BE (1<<2) /* BE/LE endianness select */
308#define USBMODE_CM_HC (3<<0) /* host controller mode */
309#define USBMODE_CM_IDLE (0<<0) /* idle state */
310
305/* Appendix C, Debug port ... intended for use with special "debug devices" 311/* Appendix C, Debug port ... intended for use with special "debug devices"
306 * that can help if there's no serial console. (nonstandard enumeration.) 312 * that can help if there's no serial console. (nonstandard enumeration.)
307 */ 313 */