Skip to content
  • Jarkko Nikula's avatar
    383cf4e8
    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
    usb: musb: omap2430: Fix retention idle on musb peripheral only boards
    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>
Loading