[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