summaryrefslogtreecommitdiff
path: root/cpu/mpc5xxx
diff options
context:
space:
mode:
authorEric Millbrandt <emillbrandt@coldhaus.com>2009-08-13 08:32:37 -0500
committerWolfgang Denk <wd@denx.de>2009-08-25 12:57:55 +0200
commit307ecb6db04eebdc06b8c87d48bf48d3cbd5e9d7 (patch)
treed4fae38446c8dfdf5a5d240795571cc72c355f64 /cpu/mpc5xxx
parent6b8548b0f7068379ad1efa4fa28725f361b2d3cd (diff)
downloadu-boot-imx-307ecb6db04eebdc06b8c87d48bf48d3cbd5e9d7.zip
u-boot-imx-307ecb6db04eebdc06b8c87d48bf48d3cbd5e9d7.tar.gz
u-boot-imx-307ecb6db04eebdc06b8c87d48bf48d3cbd5e9d7.tar.bz2
Add support for USB on PSC3 for the mpc5200
Support USB on PSC3 on the mpc5200. Before this patch, enabling USB support would reconfigure PSC4 and PSC5 to USB. The mpc5200 does not support USB enabled on both the standard USB port and PSC3. This patch masks the appropriate bits when enabling USB. Signed-off-by: Eric Millbrandt <emillbrandt@dekaresearch.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Remy Bohmer <linux@bohmer.net>
Diffstat (limited to 'cpu/mpc5xxx')
-rw-r--r--cpu/mpc5xxx/usb.c6
-rw-r--r--cpu/mpc5xxx/usb_ohci.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/cpu/mpc5xxx/usb.c b/cpu/mpc5xxx/usb.c
index 8f2b66a..bec7da3 100644
--- a/cpu/mpc5xxx/usb.c
+++ b/cpu/mpc5xxx/usb.c
@@ -32,9 +32,13 @@ int usb_cpu_init(void)
/* Set the USB Clock */
*(vu_long *)MPC5XXX_CDM_48_FDC = CONFIG_USB_CLOCK;
+#ifdef CONFIG_PSC3_USB /* USB is using the alternate configuration */
+ /* remove all PSC3 USB bits first before ORing in ours */
+ *(vu_long *)MPC5XXX_GPS_PORT_CONFIG &= ~0x00804f00;
+#else
/* remove all USB bits first before ORing in ours */
*(vu_long *)MPC5XXX_GPS_PORT_CONFIG &= ~0x00807000;
-
+#endif
/* Activate USB port */
*(vu_long *)MPC5XXX_GPS_PORT_CONFIG |= CONFIG_USB_CONFIG;
diff --git a/cpu/mpc5xxx/usb_ohci.c b/cpu/mpc5xxx/usb_ohci.c
index 61a4e3f..66a4af8 100644
--- a/cpu/mpc5xxx/usb_ohci.c
+++ b/cpu/mpc5xxx/usb_ohci.c
@@ -1576,9 +1576,13 @@ int usb_lowlevel_init(void)
/* Set the USB Clock */
*(vu_long *)MPC5XXX_CDM_48_FDC = CONFIG_USB_CLOCK;
+#ifdef CONFIG_PSC3_USB /* USB is using the alternate configuration */
+ /* remove all PSC3 USB bits first before ORing in ours */
+ *(vu_long *)MPC5XXX_GPS_PORT_CONFIG &= ~0x00804f00;
+#else
/* remove all USB bits first before ORing in ours */
*(vu_long *)MPC5XXX_GPS_PORT_CONFIG &= ~0x00807000;
-
+#endif
/* Activate USB port */
*(vu_long *)MPC5XXX_GPS_PORT_CONFIG |= CONFIG_USB_CONFIG;