• David Brownell's avatar
    twl4030-usb updates/fixes · ca6bc50f
    David Brownell authored
    Simplify handling of VBUS and ID status and the USB_PRES interrupt.
    This seems to resolve the problems I previously saw on Beagle and
    Overo boards.
    
     - Read the status directly, instead of trying to infer it from
       dodgey side effects of IRQ handling and trigger tweaking.
    
     - Stop trying to arrange those dodgey side effects; just leave
       the IRQ enabled at all times.
    
     - Check that status as part of driver probe, so the PHY can
       always be active by the time it's needed.  (BUGFIX!)
    
     - Re-sequence probe() to be less racey, and to avoid duplicating
       logic found elsewhere (notably irq handling and PHY activation).
    
     - Make the irq_chip be the exclusive owner of PWR_EDR (finally).
    
     - Get rid of needless work_struct ... in this irq handling thread,
       it's safe and cheap to call sysfs_notify() directly.
    
    Stop enabling IRQs on the USB subchip.  There's no IRQ handler for
    them, and since ALT_INT_REROUTE isn't being set they'll never
    arrive ... so there's no point to enabling them.
    
    Also add some comments about other things such an otg_transciever
    driver should be doing, fixing minor omissions; and remove some
    unnecessary file inclusions.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    ca6bc50f
twl4030-usb.c 20.8 KB