1. 19 4月, 2012 2 次提交
    • P
      ARM: OMAP2+: hwmod: revise the IP block reset process · 30e105c0
      Paul Walmsley 提交于
      Revise the IP block reset process.  This patch ensures that the
      OCP_SYSCONFIG registers are reloaded after a custom reset.  Since
      OCP_SYSCONFIG bits are cleared during reset, they should be
      reprogrammed unless the IP block is being left in reset.  (The only IP
      blocks that are left in reset are IP blocks with hardreset lines and
      no custom reset function.)  If the IP block is left in reset, then it
      is inaccessible to the MPU, and an access to the OCP_SYSCONFIG
      register will cause an abort.
      
      This version incorporates comments from Omar Ramirez Luna
      <omar.ramirez@ti.com> to skip the OCP_SYSCONFIG access after asserting
      hardreset lines.  This allows the MMU (IOMMU) IP block, which has
      both hardreset lines and an OCP_SYSCONFIG register.
      
      Also, ignore _ocp_softreset() errors if the IP block doesn't include a
      softreset bit.  This is needed since a subsequent patch will start
      taking the return value of the _reset() function seriously.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      Cc: Omar Ramirez Luna <omar.ramirez@ti.com>
      30e105c0
    • P
      ARM: OMAP2+: hwmod: control all hardreset lines attached to a hwmod · 9c8b0ec7
      Paul Walmsley 提交于
      Parts of the hwmod code test to see if a module has one and only one
      hardreset line before taking an action.  It seems more appropriate
      to control all hardreset lines associated with a hwmod, not just one.
      
      It so happens that with the current hwmod data, this patch will not
      change any behavior, since hwmods with hardreset lines have only one
      hardreset line associated with them, and 'pseudo-hwmods' are used to
      handle the other hardreset lines.  But future hwmod data patches to
      remove the pseudo-hwmods will change this.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      9c8b0ec7
  2. 13 4月, 2012 2 次提交
  3. 05 4月, 2012 3 次提交
  4. 12 3月, 2012 1 次提交
  5. 13 2月, 2012 1 次提交
  6. 17 12月, 2011 4 次提交
    • B
      ARM: OMAP4: hwmod: Don't wait for the idle status if modulemode is not supported · bfc141e3
      Benoit Cousson 提交于
      If the module does not have any modulemode, the _disable_module function
      will do nothing. There is then no point waiting for a idle status change.
      
      It will remove the following warnings.
      
      [    0.331848] omap_hwmod: dmm: _wait_target_disable failed
      [    0.339935] omap_hwmod: emif_fw: _wait_target_disable failed
      [    0.348358] omap_hwmod: l3_main_1: _wait_target_disable failed
      [    0.356964] omap_hwmod: l3_main_2: _wait_target_disable failed
      [    0.365600] omap_hwmod: l4_abe: _wait_target_disable failed
      [    0.373931] omap_hwmod: l4_cfg: _wait_target_disable failed
      [    0.382263] omap_hwmod: l4_per: _wait_target_disable failed
      [    0.391113] omap_hwmod: l4_wkup: _wait_target_disable failed
      [    0.399536] omap_hwmod: dma_system: _wait_target_disable failed
      [    0.408325] omap_hwmod: dss_core: _wait_target_disable failed
      [    0.416839] omap_hwmod: dss_dispc: _wait_target_disable failed
      [    0.425445] omap_hwmod: dss_dsi1: _wait_target_disable failed
      [    0.433990] omap_hwmod: dss_dsi2: _wait_target_disable failed
      [    0.442504] omap_hwmod: dss_hdmi: _wait_target_disable failed
      [    0.451019] omap_hwmod: dss_rfbi: _wait_target_disable failed
      [    0.459564] omap_hwmod: dss_venc: _wait_target_disable failed
      [    0.489471] omap_hwmod: mailbox: _wait_target_disable failed
      [    0.505920] omap_hwmod: spinlock: _wait_target_disable failed
      
      Note: For such module, the state is managed automatically by HW according
      to clock domain transition. It is then not possible to wait for idle even
      later in the _idle function since the status will change at clock domain
      boundary.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: renamed fns to indicate that they are OMAP4-only; moved
       _wait_target_disable() into _disable_module(), removing duplicate code]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      bfc141e3
    • R
      ARM: OMAP2+: hwmod: Add a new flag to handle hwmods left enabled at init · aacf0941
      Rajendra Nayak 提交于
      An hwmod with a 'HWMOD_INIT_NO_IDLE' flag set, is left in
      enabled state by the hwmod framework post the initial setup.
      Once a real user of the device (a driver) tries to enable it
      at a later point, the hwmod framework throws a WARN() about
      the device being already in enabled state.
      
      Fix this by introducing a new internal flag '_HWMOD_SKIP_ENABLE' to
      identify such devices/hwmods. When the device/hwmod is requested to be
      enabled (the first time) by its driver/user, nothing except the
      mux-enable is needed. The mux data is board specific and is
      unavailable during initial enable() of the device, done by the
      framework as part of setup().
      
      A good example of a such a device is an UART used as debug console.
      The UART module needs to be kept enabled through the boot, until the
      UART driver takes control of it, for debug prints to appear on
      the console.
      Acked-by: NKevin Hilman <khilman@ti.com>
      Acked-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: use a flag rather than a state; updated commit message;
       edited some documentation]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      aacf0941
    • T
      ARM: OMAP: hwmod: add support for selecting mpu_irq for each wakeup pad · abc2d545
      Tero Kristo 提交于
      By default all registered pads will trigger mpu_irqs[0]. Now there is
      an API for selecting used mpu_irq on pad basis, which can be used to
      trigger different irq handlers for different pads in the same hwmod.
      Each pad that requires its interrupt to be re-routed this way must
      have a separate call to omap_hwmod_pad_route_irq(hwmod, pad, irq).
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Acked-by: NTony Lindgren <tony@atomide.com>
      Tested-by: NKevin Hilman <khilman@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      [paul@pwsan.com: moved fn to omap_hwmod.c; separated fn from mux scan_wakeups
       changes; added kerneldoc]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      abc2d545
    • G
      ARM: OMAP2+: hwmod: Add API to enable IO ring wakeup · eceec009
      Govindraj R 提交于
      Add API to enable IO pad wakeup capability based on mux pad and
      wake_up enable flag available from hwmod_mux initialization.
      
      Use the wakeup_enable flag and enable wakeup capability for the given
      pads. Wakeup capability will be enabled/disabled during hwmod idle
      transition based on whether wakeup_flag is set or cleared.  If the
      hwmod is currently idled, and any mux values were changed by
      _set_idle_ioring_wakeup(), the SCM PADCTRL registers will be updated.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Tested-by: NKevin Hilman <khilman@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      [paul@pwsan.com: rearranged code to limit indentation; cleaned up
       function documentation; removed unused non-static functions; modified
       to search all hwmod pads, not just dynamic remuxing ones; modified to
       update SCM regs if hwmod is currently idle and any pads have changed]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      eceec009
  7. 24 11月, 2011 1 次提交
  8. 18 11月, 2011 1 次提交
  9. 05 11月, 2011 1 次提交
  10. 15 9月, 2011 1 次提交
    • P
      OMAP2+: hwmod: remove OMAP_CHIP* · d6504acd
      Paul Walmsley 提交于
      At Tony's request, remove the OMAP_CHIP* flags from the hwmod data, and
      replace it instead with chip family, variant, and ES level-specific lists
      of hwmods to register.
      
      Thanks to Gražvydas Ignotas <notasas@gmail.com> for finding a bug in the
      AM3517/3505 support, and for other review comments.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Gražvydas Ignotas <notasas@gmail.com>
      d6504acd
  11. 10 7月, 2011 17 次提交
    • R
      OMAP2+: hwmod: Follow the recommended PRCM module enable sequence · 665d0013
      Rajendra Nayak 提交于
      On OMAP4, the PRCM recommended sequence for enabling
      a module after power-on-reset is:
      -1- Force clkdm to SW_WKUP
      -2- Enabling the clocks
      -3- Configure desired module mode to "enable" or "auto"
      -4- Wait for the desired module idle status to be FUNC
      -5- Program clkdm in HW_AUTO(if supported)
      
      This sequence applies to all older OMAPs' as well,
      however since they use autodeps, it makes sure that
      no clkdm is in IDLE, and hence not requiring a force
      SW_WKUP when a module is being enabled.
      
      OMAP4 does not need to support autodeps, because
      of the dyanamic dependency feature, wherein
      the HW takes care of waking up a clockdomain from
      idle and hence the module, whenever an interconnect
      access happens to the given module.
      
      Implementing the sequence for OMAP4 requires
      the clockdomain handling that is currently done in
      clock framework to be done as part of hwmod framework
      since the step -4- above to "Wait for the desired
      module idle status to be FUNC" is done as part of
      hwmod framework.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [b-cousson@ti.com: Adapt it to the new clkdm hwmod attribute and API]
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      [paul@pwsan.com: dropped mach-omap2/clock.c changes; modified to only
       call the clockdomain code if oh->clkdm is set; disable clock->clockdomain
       interaction on OMAP4]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      665d0013
    • B
      OMAP4: hwmod: Introduce the module control in hwmod control · 45c38252
      Benoit Cousson 提交于
      Take advantage of the explicit modulemode control to fix
      the way parents clocks are managed.
      A module must be disabled before any parents are disabled.
      That programming model was not possible with the previous
      implementation that was considering a modulemode as a leaf
      clock node managed by the clock fmwk.
      This was leading to bad crash upon disable when the parent
      clock was gated before the module completed its transition
      to idle.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      45c38252
    • B
      OMAP4: hwmod: Replace RSTCTRL absolute address with offset macros · eaac329d
      Benoit Cousson 提交于
      The RSTCTRL register was accessed using an absolute address.
      The usage of hardcoded macros to calculate virtual address from physical
      one should be avoided as much as possible.
      The usage of an offset will allow future improvement like migration from
      the current architecture code toward a module driver.
      
      Update prm_xxx accessors, move definition to the proper header file and
      update copyrights.
      Change the s16 register offset parameter to u16.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: use '_prminst_' in function names that are part of the
       prminst44xx.c file]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      eaac329d
    • B
      OMAP: hwmod: Wait the idle status to be disabled · 11b10341
      Benoit Cousson 提交于
      It is mandatory to wait for a module to be in disabled state before
      potentially disabling source clock or re-asserting a reset.
      
      omap_hwmod_idle and omap_hwmod_shutdown does not wait for
      the module to be fully idle.
      
      Add a cm_xxx accessor to wait the clkctrl idle status to be disabled.
      Fix hwmod_[idle|shutdown] to use this API.
      
      Based on Rajendra's initial patch.
      
      Please note that most interconnects hwmod will return one timeout because
      it is impossible for them to be in idle since the processor is accessing
      the registers though the interconnect.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Todd Poynor <toddpoynor@google.com>
      [paul@pwsan.com: move cpu_is_*() tests to the top of _wait_target_disable();
       incorporate some feedback from Todd]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      11b10341
    • B
      OMAP4: hwmod: Replace CLKCTRL absolute address with offset macros · d0f0631d
      Benoit Cousson 提交于
      The CLKCTRL register was accessed using an absolute address.
      The usage of hardcoded macros to calculate virtual address from physical
      one should be avoided as much as possible.
      The usage of a offset will allow future improvement like migration from
      the current architecture code toward a module driver.
      
      Update cm_xxx accessor, move definition to the proper header file and
      update copyrights.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Todd Poynor <toddpoynor@google.com>
      [paul@pwsan.com: renamed 'omap4_cm_' fns to 'omap4_cminst_'; removed empty
       fn prototype section from cm44xx.h; incorporated comments from Todd;
       documented some functions]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      d0f0631d
    • B
      OMAP2+: hwmod: Init clkdm field at boot time · 6ae76997
      Benoit Cousson 提交于
      At boot time, lookup the clkdm_name to get the clkdm
      structure pointer for further usage.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      6ae76997
    • A
      OMAP: hwmod: fix the i2c-reset timeout during bootup · 6d3c55fd
      Avinash.H.M 提交于
      The sequence of _ocp_softreset doesn't work for i2c. The i2c module has a
      special sequence to reset the module. The sequence is
       - Disable the I2C.
       - Write to SOFTRESET bit.
       - Enable the I2C.
       - Poll on the RESETDONE bit.
      The sequence is implemented as a function and the i2c_class is updated with
      the correct 'reset' pointer.  omap_hwmod_softreset function is implemented
      which triggers the softreset by writing into sysconfig register. On following
      this sequence, i2c module resets properly and timeouts are not seen.
      
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Benoit Cousson <b-cousson@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Signed-off-by: NAvinash.H.M <avinashhm@ti.com>
      [paul@pwsan.com: combined this patch with a patch to remove
       HWMOD_INIT_NO_RESET from the 44xx hwmod flags; change register
       offset conditional code to use the IP block revision; minor code
       cleanup]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      6d3c55fd
    • P
      omap_hwmod: use a terminator record with omap_hwmod_dma_info arrays · bc614958
      Paul Walmsley 提交于
      Previously, struct omap_hwmod_dma_info arrays were unterminated; and
      users of these arrays used the ARRAY_SIZE() macro to determine the
      length of the array.  However, ARRAY_SIZE() only works when the array
      is in the same scope as the macro user.
      
      So far this hasn't been a problem.  However, to reduce duplicated
      data, a subsequent patch will move common data to a separate, shared
      file.  When this is done, ARRAY_SIZE() will no longer be usable.
      
      This patch removes ARRAY_SIZE() usage for struct omap_hwmod_dma_info
      arrays and uses a sentinel value (irq == -1) as the array terminator
      instead.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      bc614958
    • P
      omap_hwmod: use a terminator record with omap_hwmod_mpu_irqs arrays · 212738a4
      Paul Walmsley 提交于
      Previously, struct omap_hwmod_mpu_irqs arrays were unterminated; and
      users of these arrays used the ARRAY_SIZE() macro to determine the
      length of the array.  However, ARRAY_SIZE() only works when the array
      is in the same scope as the macro user.
      
      So far this hasn't been a problem.  However, to reduce duplicated
      data, a subsequent patch will move common data to a separate, shared
      file.  When this is done, ARRAY_SIZE() will no longer be usable.
      
      This patch removes ARRAY_SIZE() usage for struct omap_hwmod_mpu_irqs
      arrays and uses a sentinel value (irq == -1) as the array terminator
      instead.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      212738a4
    • P
      omap_hwmod: use a null structure record to terminate omap_hwmod_addr_space arrays · 78183f3f
      Paul Walmsley 提交于
      Previously, struct omap_hwmod_addr_space arrays were unterminated; and
      users of these arrays used the ARRAY_SIZE() macro to determine the
      length of the array.  However, ARRAY_SIZE() only works when the array
      is in the same scope as the macro user.
      
      So far this hasn't been a problem.  However, to reduce duplicated
      data, a subsequent patch will move common data to a separate, shared
      file.  When this is done, ARRAY_SIZE() will no longer be usable.
      
      This patch removes ARRAY_SIZE() usage for struct omap_hwmod_addr_space
      arrays and uses a null structure member as the array terminator
      instead.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      
      
      
      
      78183f3f
    • B
      OMAP: hwmod: Move pr_debug to improve the readability · 34617e2a
      Benoit Cousson 提交于
      Move the pr_debug at the top of the function
      to trace the entry even if the first test is failing.
      That help understanding that we entered the function
      but failed in it.
      
      Move the _enable last part out of the test to reduce
      indentation and improve readability.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      34617e2a
    • B
      OMAP: hwmod: Add warnings if enable failed · 6652271a
      Benoit Cousson 提交于
      Change the debug into warning to check what IPs are failing.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      6652271a
    • B
      OMAP2+: hwmod: Fix the HW reset management · 31f62866
      Benoit Cousson 提交于
      The HW reset must be de-assert after the clocks are enabled
      but before waiting for the target to be ready. Otherwise the
      reset might not work properly since the clock is not running
      to proceed the reset.
      
      De-assert the reset after _enable_clocks and before
      _wait_target_ready.
      Re-assert it only when the clocks are disabled.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      31f62866
    • B
      OMAP2+: hwmod: Remove _populate_mpu_rt_base warning · d24bcaa3
      Benoit Cousson 提交于
      It is perfectly valid for some hwmod to not have any
      register target address for sysconfig. This is especially
      true for interconnect hwmods.
      Remove the warning.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      d24bcaa3
    • B
      OMAP2+: hwmod: Do not write the enawakeup bit if SYSC_HAS_ENAWAKEUP is not set · 1fe74113
      Benoit Cousson 提交于
      The Type 2 type of IPs will not have any enawakeup bit in their sysconfig.
      Writing to that bit will instead trigger a softreset.
      Check the flag to write this bit only if the module supports it.
      Reported-by: NMiguel Vadillo <vadillo@ti.com>
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      1fe74113
    • M
      OMAP2+: hwmod: Enable module in shutdown to access sysconfig · 6481c73c
      Miguel Vadillo 提交于
      When calling the shutdown, the module may be already in idle.
      Accessing the sysconfig register will then lead to a crash.
      In that case, re-enable the module in order to allow the access
      to the sysconfig register.
      Signed-off-by: NMiguel Vadillo <vadillo@ti.com>
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      6481c73c
    • B
      OMAP2+: hwmod: Fix smart-standby + wakeup support · 724019b0
      Benoit Cousson 提交于
      The commit 86009eb3 was adding
      the wakeup support for new OMAP4 IPs. This support is incomplete for
      busmaster IPs that need as well to use smart-standby with wakeup.
      
      This new standbymode is suported on HSI and USB_HOST_FS for the moment.
      
      Add the new MSTANDBY_SMART_WKUP flag to mark the IPs that support this
      capability.
      
      Enable this new mode when applicable in _enable_wakeup, _disable_wakeup,
      _enable_sysc and _idle_sysc.
      
      The omap_hwmod_44xx_data.c will have to be updated to add this new flag.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NDjamil Elaidi <d-elaidi@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      724019b0
  12. 01 6月, 2011 1 次提交
  13. 12 3月, 2011 1 次提交
  14. 10 3月, 2011 4 次提交
    • P
      OMAP2+: clockdomain: add flag that will block autodeps from being added for a clockdomain · 570b54c7
      Paul Walmsley 提交于
      Add a new clockdomain flag, CLKDM_NO_AUTODEPS, which, when marked on a
      clockdomain, will prevent "autodeps" from being associated with the
      clockdomain.  ("Autodeps" are sleep dependencies and wakeup
      dependencies from/to processor modules that are automatically added to
      a clockdomain when it is in hardware-supervised idle mode.  They are
      deprecated -- a relic from the old CDP trees -- but are still in use
      for OMAP3.)
      
      Also, prevent the hwmod code from adding or removing initiator
      dependencies for clockdomains with this flag set.
      
      This patch should allow others to test which clockdomains actually
      still need autodeps.
      
      Thanks to Kevin Hilman <khilman@ti.com> for noting that the original
      version should also modify the hwmod code.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@ti.com>
      570b54c7
    • K
      OMAP2+: hwmod: add API to handle autoidle mode · 9599217a
      Kishon Vijay Abraham I 提交于
      Create a new API that forms a wrapper to _set_module_autoidle()
      to modify the AUTOIDLE bit.
      
      This API is intended to be used by drivers that requires direct
      manipulation of the AUTOIDLE bits in SYSCONFIG register.
      McBSP driver requires autoidle bit to be enabled/disabled while
      using sidetone feature.
      Signed-off-by: NKishon Vijay Abraham I <kishon@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Benoit Cousson <b-cousson@ti.com>
      [paul@pwsan.com: restrict the hwmod states that the autoidle bit can be changed
       in; changed function name; dropped "int" from "unsigned int long"]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      9599217a
    • P
      OMAP2+: hwmod: allow board files to prevent devices from being reset upon init · 43b01643
      Paul Walmsley 提交于
      Some boards can't tolerate IP blocks being reset when they are initialized.
      Michael Büsch cites a case with the Nokia N810:
      
          http://www.spinics.net/lists/linux-omap/msg47277.html
      
      To allow such boards to continue working normally, allow board file
      maintainers to mark IP blocks to prevent them from being reset upon
      init.  This is done via a hwmod function, omap_hwmod_no_setup_reset().
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Michael Buesch <mb@bu3sch.de>
      43b01643
    • O
      OMAP2+: hwmod: use status bit info for reset line · cc1226e7
      omar ramirez 提交于
      On OMAP2 and OMAP3 the reset ctrl shift doesn't match the
      status bit, as it does on OMAP4, when handling the reset lines.
      
      This patch adds a new member in the reset info structure, so now it
      can be added as part of hwmod data, and checked accordingly for
      OMAP2 or 3; otherwise, there could be cases when the shift masks
      doesn't match both of the registers, and a successful reset might
      throw an error message or vice versa.
      Signed-off-by: NOmar Ramirez Luna <omar.ramirez@ti.com>
      [paul@pwsan.com: added a warning if st_shift used on OMAP4; renamed 'r'
       variable; improved some documentation]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      cc1226e7