• Jarkko Nikula's avatar
    usb: musb: omap2430: Fix retention idle on musb peripheral only boards · 383cf4e8
    Jarkko Nikula authored
    Recent runtime pm and hwmod conversions for 2.6.39 broke the musb peripheral
    mode OMAP retention idle on boards where the board mode in struct
    musb_hdrc_platform_data is set to MUSB_PERIPHERAL.
    
    These conversions changed the way how the OTG_SYSCONFIG register is
    configured and used in runtime. Before 2.6.39 smart standby/idle modes were
    activated statically in OTG_SYSCONFIG. Those modes allow that the musb is
    able to idle when peripheral device is not connected to host.
    
    In 2.6.39 the OTG_SYSCONFIG is updated runtime depending on VBUS status.
    No standby/idle modes are used when device is connected and force
    standby/idle when disconnected.
    
    Unfortunately VBUS disconnect event that handles the disconnect case lets
    the peripheral musb to idle only when board mode is MUSB_OTG. Fix this by
    checking the peripheral mode also.
    Signed-off-by: default avatarJarkko Nikula <jhnikula@gmail.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    383cf4e8
omap2430.c 13.3 KB