• Paul Walmsley's avatar
    ARM: OMAP2+: hwmod: revise hardreset behavior · 747834ab
    Paul Walmsley authored
    Change the way that hardreset lines are handled by the hwmod code.
    Hardreset lines are generally associated with initiator IP blocks.
    Prior to this change, the hwmod code expected to control hardreset
    lines itself, asserting them on shutdown and deasserting them upon
    enable.  But driver authors inside TI have commented to us that their
    drivers require direct control over these lines.  Unfortunately, these
    drivers haven't been posted publicly yet, so it's hard to determine
    exactly what is needed, a priori.  This change attempts to set forth
    some reasonable semantics that should be an improvement over the
    current code.
    
    The semantics implemented by this patch are as follows:
    
    - If the hwmod is not marked with HWMOD_INIT_NO_RESET, then assert all
      associated hardreset lines during IP block setup.  This is intended
      to place the IP blocks into a known state that will not interfere
      with other devices during kernel boot.
    
    - IP blocks with hardreset lines will not be automatically enabled or
      idled during setup.  Instead, they will be left in the INITIALIZED
      state.
    
    - When the hwmod code is asked to enable, idle, or shutdown an IP
      block with asserted hardreset lines, the hwmod code will do nothing.
      The driver integration code must do the remaining work needed to
      control these IP blocks.  Once this driver integration code is posted
      to the lists, hopefully we can consolidate it and move it inside the
      hwmod code.
    
    Custom reset functions for IP blocks with hardreset lines still should
    be supported and are strongly endorsed.  It is intended that every
    subsystem with hardreset lines should have a custom reset function
    that can place their subsystem into quiescent idle with the hardreset
    lines deasserted.
    
    This reverts most of commit 5365efbe
    ("OMAP: hwmod: Add hardreset management support").  Later code
    reorganizations caused the sequencing of the code from this patch to
    be changed, anyway.
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    Cc: Benoît Cousson <b-cousson@ti.com>
    747834ab
omap_hwmod.c 81.1 KB