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

Grant Likely grant.likely at secretlab.ca
Thu Aug 13 17:50:50 CEST 2009


On Thu, Aug 13, 2009 at 7:32 AM, Eric
Millbrandt<emillbrandt at 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 at dekaresearch.com>
Acked-by: Grant Likely <grant.likely at 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.


More information about the U-Boot mailing list