[U-Boot-Users] Patch: USB Host update for MPC8220
TsiChung Liew
Tsi-Chung.Liew at freescale.com
Tue May 15 22:34:39 CEST 2007
USB Host update for MPC8220 using generic USB OHCI driver
Regards,
TsiChung
Signed-off by TsiChung Liew<Tsi-Chung.Liew at freescale.com>
diff -rupN usborg/drivers/usb_ohci.c usbnew/drivers/usb_ohci.c
--- usborg/drivers/usb_ohci.c 2007-05-15 14:25:02.000000000 -0500
+++ usbnew/drivers/usb_ohci.c 2007-05-15 15:29:27.466913928 -0500
@@ -66,7 +66,8 @@
defined(CONFIG_S3C2400) || \
defined(CONFIG_S3C2410) || \
defined(CONFIG_440EP) || \
- defined(CONFIG_MPC5200)
+ defined(CONFIG_MPC5200) || \
+ defined(CONFIG_MPC8220)
# define OHCI_USE_NPS /* force NoPowerSwitching mode */
#endif
@@ -98,7 +99,7 @@
#define info(format, arg...) do {} while(0)
#endif
-#if defined(CONFIG_440EP) || defined(CONFIG_MPC5200)
+#if defined(CONFIG_440EP) || defined(CONFIG_MPC5200) || defined
(CONFIG_MPC8220)
# define m16_swap(x) (x)
# define m32_swap(x) (x)
#else
@@ -832,7 +833,7 @@ static td_t * dl_reverse_done_list (ohci
} else
td_list->ed->hwHeadP &= m32_swap (0xfffffff2);
}
-#ifdef CONFIG_MPC5200
+#if defined(CONFIG_MPC5200) || defined(CONFIG_MPC8220)
td_list->hwNextTD = 0;
#endif
}
@@ -882,13 +883,14 @@ static int dl_done_list (ohci_t *ohci, t
(lurb_priv->state != URB_DEL))
#else
if ((ed->state & (ED_OPER | ED_UNLINK)))
+#endif
urb_finished = 1;
else
dbg("dl_done_list: strange.., ED state %x, ed->state\n");
} else
dbg("dl_done_list: processing TD %x, len %x\n", lurb_priv->td_cnt,
lurb_priv->length);
-#endif
+
if (ed->state != ED_NEW) {
edHeadP = m32_swap (ed->hwHeadP) & 0xfffffff0;
edTailP = m32_swap (ed->hwTailP);
@@ -1074,7 +1076,7 @@ pkt_print(dev, pipe, buffer, transfer_le
}
bmRType_bReq = cmd->requesttype | (cmd->request << 8);
-#if defined(CONFIG_440EP) || defined(CONFIG_MPC5200)
+#if defined(CONFIG_440EP) || defined(CONFIG_MPC5200) || defined
(CONFIG_MPC8220)
wValue = __swap_16(cmd->value);
wIndex = __swap_16(cmd->index);
wLength = __swap_16(cmd->length);
@@ -1082,7 +1084,7 @@ pkt_print(dev, pipe, buffer, transfer_le
wValue = m16_swap (cmd->value);
wIndex = m16_swap (cmd->index);
wLength = m16_swap (cmd->length);
-#endif /* CONFIG_440EP || CONFIG_MPC5200 */
+#endif /* CONFIG_440EP || CONFIG_MPC5200 || CONFIG_MPC8220 */
info("Root-Hub: adr: %2x cmd(%1x): %08x %04x %04x %04x",
dev->devnum, 8, bmRType_bReq, wValue, wIndex, wLength);
@@ -1096,7 +1098,7 @@ pkt_print(dev, pipe, buffer, transfer_le
RH_OTHER | RH_CLASS almost ever means HUB_PORT here
*/
-#if defined(CONFIG_440EP) || defined(CONFIG_MPC5200)
+#if defined(CONFIG_440EP) || defined(CONFIG_MPC5200) || defined
(CONFIG_MPC8220)
case RH_GET_STATUS:
*(__u16 *) data_buf = __swap_16(1); OK (2);
case RH_GET_STATUS | RH_INTERFACE:
@@ -1122,7 +1124,7 @@ pkt_print(dev, pipe, buffer, transfer_le
OK (4);
case RH_GET_STATUS | RH_OTHER | RH_CLASS:
*(__u32 *) data_buf = m32_swap (RD_RH_PORTSTAT); OK (4);
-#endif /* CONFIG_440EP || CONFIG_MPC5200 */
+#endif /* CONFIG_440EP || CONFIG_MPC5200 || CONFIG_MPC8220 */
case RH_CLEAR_FEATURE | RH_ENDPOINT:
switch (wValue) {
diff -rupN usborg/drivers/usb_ohci.h usbnew/drivers/usb_ohci.h
--- usborg/drivers/usb_ohci.h 2007-05-15 14:25:20.000000000 -0500
+++ usbnew/drivers/usb_ohci.h 2007-05-15 13:46:30.412968000 -0500
@@ -10,7 +10,7 @@
/* functions for doing board or CPU specific setup/cleanup */
extern int usb_board_init(void);
extern int usb_board_stop(void);
-extern int usb_cpu_init_fail(void);
+extern int usb_board_init_fail(void);
extern int usb_cpu_init(void);
extern int usb_cpu_stop(void);
More information about the U-Boot
mailing list