[U-Boot] [PATCH] 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 --- README | 4 ++++ cpu/mpc5xxx/usb.c | 6 +++++- cpu/mpc5xxx/usb_ohci.c | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/README b/README index 9071472..a8dc1cd 100644 --- a/README +++ b/README @@ -854,9 +854,13 @@ The following options need to be configured: MPC5200 USB requires additional defines: CONFIG_USB_CLOCK for 528 MHz Clock: 0x0001bbbb + CONFIG_PSC3_USB + for USB on PSC3 CONFIG_USB_CONFIG for differential drivers: 0x00001000 for single ended drivers: 0x00005000 + for differential drivers on PSC3: 0x00000100 + for single ended drivers on PSC3: 0x00004100 CONFIG_SYS_USB_EVENT_POLL May be defined to allow interrupt polling instead of using asynchronous interrupts 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;

On Thu, Aug 13, 2009 at 7:32 AM, Eric Millbrandtemillbrandt@coldhaus.com wrote:
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
README | 4 ++++ cpu/mpc5xxx/usb.c | 6 +++++- cpu/mpc5xxx/usb_ohci.c | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/README b/README index 9071472..a8dc1cd 100644 --- a/README +++ b/README @@ -854,9 +854,13 @@ The following options need to be configured: MPC5200 USB requires additional defines: CONFIG_USB_CLOCK for 528 MHz Clock: 0x0001bbbb
- CONFIG_PSC3_USB
- for USB on PSC3
CONFIG_USB_CONFIG for differential drivers: 0x00001000 for single ended drivers: 0x00005000
- for differential drivers on PSC3: 0x00000100
- for single ended drivers on PSC3: 0x00004100
CONFIG_SYS_USB_EVENT_POLL May be defined to allow interrupt polling instead of using asynchronous interrupts 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;
-- 1.6.3.1
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

Hello,
2009/8/13 Eric Millbrandt emillbrandt@coldhaus.com:
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
README | 4 ++++ cpu/mpc5xxx/usb.c | 6 +++++- cpu/mpc5xxx/usb_ohci.c | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-)
Except from the fact that IMHO this driver belongs in the drivers/usb section (and being merged into the existing ohci-driver): Acked-by: Remy Bohmer linux@bohmer.net
Wolfgang, do you take it in your mpc5xxx tree?
Kind Regards,
Remy

Dear Remy Bohmer,
In message 3efb10970908180032w57826ddexeae344ae52a8b5a1@mail.gmail.com you wrote:
Except from the fact that IMHO this driver belongs in the drivers/usb section (and being merged into the existing ohci-driver):
Agreed...
Acked-by: Remy Bohmer linux@bohmer.net
Thanks.
Wolfgang, do you take it in your mpc5xxx tree?
I take it directly to "next".
Best regards,
Wolfgang Denk

Dear "Eric Millbrandt",
In message 20090813131409.M57679@coldhaus.com you wrote:
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
README | 4 ++++ cpu/mpc5xxx/usb.c | 6 +++++- cpu/mpc5xxx/usb_ohci.c | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-)
Applied to "next", thanks.
Best regards,
Wolfgang Denk
participants (4)
-
Eric Millbrandt
-
Grant Likely
-
Remy Bohmer
-
Wolfgang Denk