1. 18 1月, 2015 1 次提交
    • M
      ARM: OMAP: Work around hardcoded interrupts · 0fb22a8f
      Marc Zyngier 提交于
      Commit 9a1091ef ("irqchip: gic: Support hierarchy irq domain")
      changed the GIC driver to use a non-legacy IRQ domain on DT
      platforms. This patch assumes that DT-driven systems are getting
      all of their interrupts from device tree.
      
      Turns out that OMAP has quite a few hidden gems, and still uses
      hardcoded interrupts despite having fairly complete DTs.
      
      This patch attempts to work around these by offering a translation
      method that can be called directly from the hwmod code, if present.
      The same hack is sprinkled over PRCM and TWL.
      
      It isn't pretty, but it seems to do the job without having to add
      more hacks to the interrupt controller code.
      
      Tested on OMAP4 (Panda-ES) and OMAP5 (UEVM5432).
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NNishanth Menon <nm@ti.com>
      [tony@atomide.com: updated to fix make randconfig issue]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0fb22a8f
  2. 27 10月, 2014 8 次提交
  3. 08 9月, 2014 4 次提交
  4. 16 5月, 2014 4 次提交
  5. 08 5月, 2014 1 次提交
  6. 23 8月, 2013 2 次提交
  7. 19 3月, 2013 2 次提交
  8. 12 1月, 2013 1 次提交
    • T
      ARM: OMAP2+: Use omap initcalls · b76c8b19
      Tony Lindgren 提交于
      This way the initcalls don't run on other SoCs on multiplatform
      kernels. Otherwise we'll get something like this when booting
      on vexpress:
      
      omap_hwmod: _ensure_mpu_hwmod_is_setup: MPU initiator hwmod mpu not yet registered
      ...
      WARNING: at arch/arm/mach-omap2/pm.c:82 _init_omap_device+0x74/0x94()
      _init_omap_device: could not find omap_hwmod for mpu
      ...
      omap-dma-engine omap-dma-engine: OMAP DMA engine driver
      ...
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      b76c8b19
  9. 03 1月, 2013 2 次提交
  10. 22 11月, 2012 2 次提交
    • R
      ARM: OMAP2+: hwmod: Add support for per hwmod/module context lost count · e6d3a8b0
      Rajendra Nayak 提交于
      OMAP4 has module specific context lost registers which makes it now
      possible to have module level context loss count, instead of relying
      on the powerdomain level context count.
      
      Add 2 private hwmod api's to update/clear the hwmod/module specific
      context lost counters/register.
      
      Update the module specific context_lost_counter and clear the hardware
      bits just after enabling the module.
      
      omap_hwmod_get_context_loss_count() now returns the hwmod context loss
      count them on platforms where they exist (OMAP4), else fall back on
      the pwrdm level counters for older platforms.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: added function kerneldoc, fixed structure kerneldoc,
       rearranged structure to avoid memory waste, marked fns as OMAP4-specific,
       prevent fn entry on non-OMAP4 chips, reduced indentation, merged update
       and clear, merged patches]
      [t-kristo@ti.com: added support for arch specific hwmod ops, and changed
       the no context offset indicator to USHRT_MAX]
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      [paul@pwsan.com: use NO_CONTEXT_LOSS_BIT flag rather than USHRT_MAX;
       convert unsigned context lost counter to int to match the return type;
       get rid of hwmod_ops in favor of the existing soc_ops mechanism;
       move context loss low-level accesses to the PRM code]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      e6d3a8b0
    • P
      ARM: OMAP2+: PRM: initialize some PRM functions early · 63a293e0
      Paul Walmsley 提交于
      Some PRM functions will need to be called by the hwmod code early in
      kernel init.  To handle this, split the PRM initialization code into
      early and late phases.  The early init is handled via mach-omap2/io.c,
      while the late init is handled by subsys_initcall().
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      63a293e0
  11. 09 11月, 2012 1 次提交
  12. 21 10月, 2012 3 次提交
    • P
      ARM: OMAP2+: PRM: create PRM reset source API for the watchdog timer driver · 2bb2a5d3
      Paul Walmsley 提交于
      The OMAP watchdog timer driver needs to determine what caused the SoC
      to reset for its GETBOOTSTATUS ioctl.  So, define a set of standard
      reset sources across OMAP SoCs.  For OMAP2xxx, 3xxx, and 4xxx SoCs,
      define mappings from the SoC-specific reset source register bits to
      the standardized reset source IDs.  Create SoC-specific PRM functions
      that read the appropriate per-SoC register and use the mapping to
      return the standardized reset bits.  Register the SoC-specific PRM
      functions with the common PRM code via prm_register().  Create a
      function in the common PRM code, prm_read_reset_sources(), that
      calls the SoC-specific function, registered during boot.
      
      This patch does not yet handle some SoCs, such as AM33xx.  Those SoCs
      were not handled by the code this will replace.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      2bb2a5d3
    • P
      ARM: OMAP2+: powerdomain/PRM: move the low-level powerdomain functions into PRM · 49815399
      Paul Walmsley 提交于
      Move the low-level SoC-specific powerdomain control functions into
      prm*.c.  For example, OMAP2xxx low-level powerdomain functions go into
      prm2xxx.c.  Then remove the unnecessary powerdomain*xxx*.c files.
      
      The objective is to centralize low-level PRM register accesses into
      the prm*.[ch] files, and then to export an OMAP SoC-independent API to
      higher-level OMAP power management code.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Vaibhav Hiremath <hvaibhav@ti.com>
      Acked-by: NRajendra Nayak <rnayak@ti.com>
      Reviewed-by: NRuss Dill <Russ.Dill@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      49815399
    • P
      ARM: OMAP2+: PRM: split PRM functions into OMAP2, OMAP3-specific files · 139563ad
      Paul Walmsley 提交于
      Move OMAP3xxx-specific PRM functions & macros into prm3xxx.[ch] and
      OMAP2xxx-specific macros into prm2xxx.h.  (prm2xxx.c will be created
      by a subsequent patch when it's needed.)  Move basic PRM register
      access functions into static inline functions in prm2xxx_3xxx.h, leaving
      only OMAP2/3 hardreset functions in prm2xxx_3xxx.c.
      
      Also clarify the initcall function naming to reinforce that this code
      is specifically for the PRM IP block.
      
      This is in preparation for the upcoming powerdomain series and the
      upcoming move of this code to drivers/.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Reviewed-by: NRuss Dill <Russ.Dill@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      139563ad
  13. 13 9月, 2012 2 次提交
    • T
      ARM: OMAP: Split plat/hardware.h, use local soc.h for omap2+ · dbc04161
      Tony Lindgren 提交于
      As the plat and mach includes need to disappear for single zImage work,
      we need to remove plat/hardware.h.
      
      Do this by splitting plat/hardware.h into omap1 and omap2+ specific files.
      
      The old plat/hardware.h already has omap1 only defines, so it gets moved
      to mach/hardware.h for omap1. For omap2+, we use the local soc.h
      that for now just includes the related SoC headers to keep this patch more
      readable.
      
      Note that the local soc.h still includes plat/cpu.h that can be dealt
      with in later patches. Let's also include plat/serial.h from common.h for
      all the board-*.c files. This allows making the include files local later
      on without patching these files again.
      
      Note that only minimal changes are done in this patch for the
      drivers/watchdog/omap_wdt.c driver to keep things compiling. Further
      patches are needed to eventually remove cpu_is_omap usage in the drivers.
      
      Also only minimal changes are done to sound/soc/omap/* to remove the
      unneeded includes and to define OMAP44XX_MCPDM_L3_BASE locally so there's
      no need to include omap44xx.h.
      
      While at it, also sort some of the includes in the standard way.
      
      Cc: linux-watchdog@vger.kernel.org
      Cc: alsa-devel@alsa-project.org
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
      Cc: Liam Girdwood <lrg@ti.com>
      Acked-by: NWim Van Sebroeck <wim@iguana.be>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      dbc04161
    • T
      ARM: OMAP2+: Prepare for irqs.h removal · 7d7e1eba
      Tony Lindgren 提交于
      As the interrupts should only be defined in the platform_data, and
      eventually coming from device tree, there's no need to define them
      in header files.
      
      Let's remove the hardcoded references to irqs.h and fix up the includes
      so we don't rely on headers included in irqs.h. Note that we're
      defining OMAP_INTC_START as 0 to the interrupts. This will be needed
      when we enable SPARSE_IRQ. For some drivers we need to add
      #include <plat/cpu.h> for now until these drivers are fixed to
      remove cpu_is_omapxxxx() usage.
      
      While at it, sort som of the includes the standard way, and add
      the trailing commas where they are missing in the related data
      structures.
      
      Note that for drivers/staging/tidspbridge we just define things
      locally.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      7d7e1eba
  14. 22 6月, 2012 2 次提交
    • T
      ARM: OMAP3+: PRM: Enable IO wake up · 8a680ea2
      Tero Kristo 提交于
      Enable IO Wake up for OMAP3/4 as part of PRM Init. Currently this has been
      managed in cpuidle path which is not the right place. Subsequent patch
      will remove IO Daisy chain handling in cpuidle path once daisy chain is
      handled as part of hwmod mux. This patch also moves the OMAP4 IO wakeup
      enable code from the trigger function to init time setup.
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Reviewed-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: harmonize function names with other PRM functions; add
       kerneldoc; resolve checkpatch warnings]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      8a680ea2
    • R
      ARM: OMAP4: PRM: Add IO Daisychain support · dea6200b
      Rajendra Nayak 提交于
      IO daisychain is a mechanism that allows individual IO pads to generate
      wakeup events on their own based on a switch of an input signal level.
      This allows the hardware module behind the pad to be powered down, but
      still have device level capability to detect IO events, and once this
      happens the module can be powered back up to resume IO. See section
      3.9.4 in OMAP4430 Public TRM for details.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NVishwanath BS <vishwanath.bs@ti.com>
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      [paul@pwsan.com: use the shared MAX_IOPAD_LATCH_TIME declaration; renamed
       omap4_trigger_io_chain() to conform to other PRM function names;
       added kerneldoc; resolved checkpatch warnings]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      dea6200b
  15. 12 3月, 2012 1 次提交
  16. 25 2月, 2012 1 次提交
  17. 13 2月, 2012 1 次提交
  18. 17 12月, 2011 2 次提交
    • T
      ARM: OMAP4: PRM: use PRCM interrupt handler · 2f31b516
      Tero Kristo 提交于
      Use the new PRCM interrupt handler code on OMAP4 systems.
      
      The OMAP code will need to be converted to use sparse IRQs for this
      to work.  Until that time, the following message will appear on boot:
      
      PRCM: failed to allocate irq descs: -12
      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: split this from a previous patch to this patch; call
       omap4xxx_prcm_init() during init; write trivial commit log]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      2f31b516
    • T
      ARM: OMAP: PRCM: add suspend prepare / finish support · 91285b6f
      Tero Kristo 提交于
      PRCM chain handler needs to disable forwarding of interrupts during
      suspend, because runtime PM is disabled and most of the drivers
      are potentially not able to handle interrupts coming at this time.
      
      This patch masks all the PRCM interrupt events if a PRCM interrupt
      occurs during suspend, but does not ack them. Once suspend finish
      is called, all the masked events will be re-enabled, which causes
      immediate PRCM interrupt and handles the postponed event.
      
      The suspend prepare and complete  callbacks will be called from
      pm34xx.c / pm44xx.c files in the following patches.
      
      The functions defined in this patch should eventually be moved to
      suspend->prepare and suspend->finish driver hooks, once the PRCM
      chain handler will be made as its own driver.
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Tested-by: NKevin Hilman <khilman@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      [paul@pwsan.com: add kerneldoc, add omap_prcm_irq_setup.saved_mask, add fn
       ptrs for save_and_clear_irqen() and restore_irqen()]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      91285b6f