• David Brownell's avatar
    musb_hdrc: davinci · 636fa27e
    David Brownell authored
    Update how DaVinci handles powering up VBUS, and make cable based role
    switching work more or less as well as on TUSB6010.
    
      - Work around VBUS_ERROR IRQs triggering during enumeration, which
        seems to be a design botch from Mentor (TUSB 6010 has it too).
    
    	This is particularly nasty on the EVM (30 second delay) because
    	of differences between its RTL and the newer stuff in tusb6010.
    
      - Work around lack of ID change IRQ, a design botch in how the Mentor
        core was integrated into DaVinci.
    
    	This builds on the polling mechanism used to cope with VBUS
    	errors.  OTG devices will probe every few seconds until either
    	the ID pin grounds, or the device leaves B_IDLE.
    
      - Rename vbus_power() to source_power(), better matching its role.
        (DaVinci doesn't sink VBUS e.g. to charge batteries -- yet.)
    
      - Provide more complete tracing of IRQ events.
    
      - Provide a symbol for the DRVVBUS irq.
    
    Basically, with this driver's core behaving better (thanks to OTG/host
    updates for TUSB), the DaVinci stuff doesn't need to fight them so much;
    and it's more clear when problems are in the core vs its integration.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    636fa27e
davinci.c 13.1 KB