[U-Boot] [PATCH 4/8] OMAP3 Add usb device support

Gupta, Ajay Kumar ajay.gupta at ti.com
Tue Oct 27 06:18:44 CET 2009


Tom,

> From: Tom Rix <Tom.Rix <at> windriver.com>
> Subject: [PATCH 4/8] OMAP3 Add usb device support
> Newsgroups: gmane.comp.boot-loaders.u-boot
> Date: 2009-09-28 16:37:25 GMT (4 weeks, 12 hours and 29 minutes ago)
> This change adds the usb device support for musb.
> 
> Omap3 platform support added at the same level as davinci.
> 
> The interface for usbtty to use the musb device support was added.
> 
> Verified on omap3 beagle, zoom1 and zoom2.
> 
> Signed-off-by: Tom Rix <Tom.Rix <at> windriver.com>
> ---
>  drivers/serial/usbtty.h       |    2 +
>  drivers/usb/musb/Makefile     |    2 +
>  drivers/usb/musb/musb_core.c  |    8 +-
>  drivers/usb/musb/musb_core.h  |   40 ++
>  drivers/usb/musb/musb_debug.h |  205 +++++++++
>  drivers/usb/musb/musb_udc.c   |  963
> +++++++++++++++++++++++++++++++++++++++++
>  drivers/usb/musb/omap3.c      |  129 ++++++
>  drivers/usb/musb/omap3.h      |   48 ++
>  include/usb.h                 |    3 +-
>  include/usb/musb_udc.h        |   54 +++
>  10 files changed, 1451 insertions(+), 3 deletions(-)
>  create mode 100644 drivers/usb/musb/musb_debug.h
>  create mode 100644 drivers/usb/musb/musb_udc.c
>  create mode 100644 drivers/usb/musb/omap3.c
>  create mode 100644 drivers/usb/musb/omap3.h
>  create mode 100644 include/usb/musb_udc.h
> 

<snip>
..
..

> +int musb_platform_init(void)
> +{
> +       int ret = -1;
> +
> +       if (platform_needs_initialization) {
> +              u32 stdby;
> +
> +              if (twl4030_usb_ulpi_init()) {
> +                      serial_printf("ERROR: %s Could not initialize
> PHY\n",
> +                              __PRETTY_FUNCTION__);
> +                      goto end;
> +              }

OMAP3EVM uses ISP1504 phy and so twl4030 related init is not required.
Can we move this within #ifdef like,

#ifndef CONFIG_OMAP3_EVM
+              if (twl4030_usb_ulpi_init()) {
...
...
#endif


-Ajay

> +
> +              otg = (struct omap3_otg_regs *)OMAP3_OTG_BASE;
> +
> +              /* Set OTG to always be on */
> +              writel(OMAP3_OTG_SYSCONFIG_NO_STANDBY_MODE |
> +                     OMAP3_OTG_SYSCONFIG_NO_IDLE_MODE, &otg->sysconfig);
> +
> +              /* Set the interface */
> +              writel(OMAP3_OTG_INTERFSEL_OMAP, &otg->interfsel);
> +
> +              /* Clear force standby */
> +              stdby = readl(&otg->forcestdby);
> +              stdby &= ~OMAP3_OTG_FORCESTDBY_STANDBY;
> +              writel(stdby, &otg->forcestdby);
> +
> +              platform_needs_initialization = 0;
> +       }
> +
> +       ret = platform_needs_initialization;
> +end:
> +       return ret;
> +
> +}
> +
> +
> +/* UDC level routines */
> +void udc_irq(void);
> +void udc_set_nak(int ep_num);
> +void udc_unset_nak(int ep_num);
> +int udc_endpoint_write(struct usb_endpoint_instance *endpoint);
> +void udc_setup_ep(struct usb_device_instance *device, unsigned int id,
> +                struct usb_endpoint_instance *endpoint);
> +void udc_connect(void);
> +void udc_disconnect(void);
> +void udc_enable(struct usb_device_instance *device);
> +void udc_disable(void);
> +void udc_startup_events(struct usb_device_instance *device);
> +int udc_init(void);
> +
> +/* usbtty */
> +#ifdef CONFIG_USB_TTY
> +
> +#define EP0_MAX_PACKET_SIZE   64 /* MUSB_EP0_FIFOSIZE */
> +#define UDC_INT_ENDPOINT      1
> +#define UDC_INT_PACKET_SIZE   64
> +#define UDC_OUT_ENDPOINT      2
> +#define UDC_OUT_PACKET_SIZE   64
> +#define UDC_IN_ENDPOINT              3
> +#define UDC_IN_PACKET_SIZE    64
> +#define UDC_BULK_PACKET_SIZE  64
> +
> +#endif /* CONFIG_USB_TTY */
> +
> +#endif /* __MUSB_UDC_H__ */
> +
> --
> 1.6.0.6



More information about the U-Boot mailing list