Re: usb, davinci: usb 2.0 problem on an am1808 based board

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Nov 11, 2011 at 05:00:49AM +0100, Heiko Schocher wrote:
> I try to bring up usb 2.0 support on an am1808 based
> board and Linux version 3.1.0-rc10 and I am facing
> some issues:
> 
> - in arch/arm/mach-davinci/usb.c in
>   static struct musb_hdrc_platform_data usb_data
>   ".mode" var get only initialized if some of the
>   CONFIG_USB_MUSB_* config options are set, but your
> 
>   commit 622859634a663c5e55d0e2a2cdbb55ac058d97b3
>     Author: Felipe Balbi <balbi@xxxxxx>
>     Date:   Wed Jun 22 17:28:09 2011 +0300
> 
>         usb: musb: drop a gigantic amount of ifdeferry
> 
>   dropped a lot of ifdefs, also the USB_MUSB_HOST,
>   USB_MUSB_PERIPHERAL and USB_MUSB_OTG defines, which
>   are used in arch/arm/mach-davinci/usb.c!
> 
>   So I think, this ".mode" var is used uninitialized,
>   or miss I something?
> 
>   I made a patch, which sets this var to MUSB_OTG
>   which should be the right value ... should I post
>   it? (BTW: in arch/arm/mach-davinci/board-da830-evm.c
>   is also an CONFIG_USB_MUSB_HOST define, which
>   should be cleaned up)

sure, that needs to be applied.

> - If I set ".mode = MUSB_OTG" and set in the syscfg2
>   soc register ~CFGCHIP2_OTGMODE a memstick is not
>   detected. But if I add in drivers/usb/musb/da8xx.c
>   da8xx_musb_interrupt() a 10ms delay befor the
>   "if (status & (DA8XX_INTR_DRVVBUS << DA8XX_INTR_USB_SHIFT)) {"
>   line usb works fine!
>   It also works without this timeout if I change the
>   "dev_dbg(musb->controller, "USB IRQ %08x\n", status);"
>   to
>   "printk(musb->controller, "USB IRQ %08x\n", status);"
> 
>   -> some timing issue, but I have no idea why!
>      (Maybe you have an idea?)

unfortunately I don't know any details about DaVinci. Sergei, are you
able to help on this question ?

> - We use on the board host only mode, so i tried the
>   following:
> 
>   set syscfg2 |= CFGCHIP2_FORCE_HOST in board code,
>   and in arch/arm/mach-davinci/usb.c
> 
> static struct musb_hdrc_platform_data usb_data = {
> -       .mode           = MUSB_OTG,
> +       .mode           = MUSB_HOST,
> 
>    -> USB works (without the above timeout) fine!
> 
> Do you have any idea?
> 
> I think, the issue with the CONFIG_USB_MUSB_* and
> the not setup var ".mode" in musb_hdrc_platform_data
> must be fixed ... and I think MUSB_OTG should be the right
> value ... or?

yes, the MUSB IP is always OTG-capable and if that's not working on
DaVinci, the root cause needs to be found and fixed.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux