[U-Boot] [PATCH] Add support for USB on PSC3 for the mpc5200

Grant Likely
2009-08-13T15:50:50Z

On Thu, Aug 13, 2009 at 7:32 AM, Eric
Millbrandt<emillbrandt@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 at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>

--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.