1. 24 9月, 2012 2 次提交
    • P
      ARM: OMAP3: hwmod data: add mmu data for iva and isp · 5486474c
      Paul Walmsley 提交于
      Add mmu hwmod data for iva and isp.
      
      Due to compatibility an ifdef CONFIG_OMAP_IOMMU_IVA2 needs to be
      propagated (previously on iommu resource info) to hwmod data in OMAP3,
      so users of iommu and tidspbridge can avoid issues of two modules
      managing mmu data/irqs/resets; this until tidspbridge can be migrated
      to iommu framework.
      
      Cc: Benoit Cousson <b-cousson@ti.com>
      Signed-off-by: NOmar Ramirez Luna <omar.luna@linaro.org>
      [paul@pwsan.com: fixed some kerneldoc and whitespace; ISP MMUs not present
       on AM35xx so restricted these hwmods to 34xx/36xx]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      5486474c
    • T
      ARM: OMAP3: hwmod data: add sad2d hwmod · 8f993a01
      Tero Kristo 提交于
      SAD2D stands for the die to die interface, and is used for communicating
      with the optional stacked modem. This hwmod is added in preparation for
      the d2d_idle move from pm34xx.c to hwmod data.
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      [paul@pwsan.com: SAD2D presumably doesn't exist on non-OMAP34xx/OMAP36xx,
       so only add it to the OMAP34xx/OMAP36xx lists]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      8f993a01
  2. 13 9月, 2012 3 次提交
    • 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
    • T
      ARM: OMAP: Move gpio.h to include/linux/platform_data · 4b25408f
      Tony Lindgren 提交于
      This way we can remove includes of plat/gpio.h which won't work
      with the single zImage support.
      
      Note that we also remove the cpu_class_is_omap2() check
      in gpio-omap.c as the drivers should not call it as we need to
      make it local to arch/arm/mach-omap2 for single zImage support.
      
      While at it, arrange the related includes in the standard way.
      
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: linux-mtd@lists.infradead.org
      Cc: alsa-devel@alsa-project.org
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      4b25408f
  3. 04 9月, 2012 1 次提交
  4. 28 6月, 2012 4 次提交
    • M
      ARM: OMAP AM35x: EMAC/MDIO integration: Add Davinci EMAC/MDIO hwmod support · 31ba8808
      Mark A. Greer 提交于
      Add hwmod support for the EMAC (and MDIO)
      ethernet controller that's on the am35x
      family of SoC's.
      Signed-off-by: NMark A. Greer <mgreer@animalcreek.com>
      [paul@pwsan.com: updated subject line; updated to apply on v3.5-rc4;
       added comments to hwmod data regarding IPSS]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      31ba8808
    • P
      ARM: OMAP: AM35xx: fix UART4 softreset · 82ee620d
      Paul Walmsley 提交于
      During kernel init, the AM3505/AM3517 UART4 cannot complete its softreset:
      
      omap_hwmod: uart4: softreset failed (waited 10000 usec)
      
      This also results in another warning later in the boot process:
      
      omap_hwmod: uart4: enabled state can only be entered from initialized, idle, or disabled state
      
      From empirical observation, the AM35xx UART4 IP block requires either
      uart1_fck or uart2_fck to be enabled while UART4 resets.  Otherwise
      the reset will never complete.  So this patch adds uart1_fck as an
      optional clock for UART4 and adds the appropriate hwmod flag to cause
      uart1_fck to be enabled during the reset process.  (The choice of
      uart1_fck over uart2_fck was arbitrary.)
      
      Unfortunately this observation raises many questions.  Is it necessary
      for uart1_fck or uart2_fck to be controlled with uart4_fck for the
      UART4 to work correctly?  What exactly do the AM35xx UART4 clock
      tree and the related PRCM idle management FSMs look like?  If anyone
      has the ability to answer these questions through empirical functional
      testing, or hardware information from the AM35xx designers, it would
      be greatly appreciated.
      
      Cc: Benoît Cousson <b-cousson@ti.com>
      Cc: Kyle Manna <kyle.manna@fuel7.com>
      Cc: Mark A. Greer <mgreer@animalcreek.com>
      Cc: Ranjith Lohithakshan <ranjithl@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Tested-by: NMark A. Greer <mgreer@animalcreek.com>
      82ee620d
    • P
      ARM: OMAP AM35xx: clock and hwmod data: fix UART4 data · bf765237
      Paul Walmsley 提交于
      Add missing terminators to the arrays of IRQ, DMA, and address space
      structure records in the AM35xx UART4 hwmod data.  Without these
      terminators, the following warnings appear on boot:
      
      omap_uart.3: failed to claim resource 58
      omap_device: omap_uart: build failed (-16)
      WARNING: at /home/paul/linux/arch/arm/mach-omap2/serial.c:375 omap_serial_init_port+0x198/0x284()
      Could not build omap_device for omap_uart: uart4.
      
      Also, AM35xx uart4_fck has an incorrect parent clock pointer.  Fix it
      and clean up a whitespace issue.
      
      Fix some incorrectly-named macros related to AM35xx UART4.
      
      Cc: Kyle Manna <kyle.manna@fuel7.com>
      Cc: Mark A. Greer <mgreer@animalcreek.com>
      Cc: Ranjith Lohithakshan <ranjithl@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Tested-by: NMark A. Greer <mgreer@animalcreek.com>
      bf765237
    • P
      ARM: OMAP AM35xx: clock and hwmod data: fix AM35xx HSOTGUSB hwmod · 89ea2583
      Paul Walmsley 提交于
      Partially fix the hwmod data for the AM35xx USB OTG hwmod.  This
      should resolve the following boot warning on AM35xx platforms:
      
      omap_hwmod: am35x_otg_hs: cannot be enabled for reset (3)
      
      While here, also fix the clkdev records, to avoid warnings about
      duplicate clock aliases.
      
      The hwmod is also connected to the wrong interconnect.  It should be
      connected to the IPSS, not the L4 CORE.  But that is left for a future
      fix, since it probably has a dependency on some hwmod core changes.
      
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Hema HK <hemahk@ti.com>
      Cc: Mark A. Greer <mgreer@animalcreek.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Tested-by: NMark A. Greer <mgreer@animalcreek.com>
      89ea2583
  5. 19 6月, 2012 2 次提交
  6. 14 6月, 2012 2 次提交
    • J
      ARM: OMAP2+: Fix external clock support for dmtimers · 67d2e760
      Jon Hunter 提交于
      Currently, the dmtimer determines whether an timer can support an external
      clock source (sys_altclk) for driving the timer by the IP version. Only
      OMAP24xx devices can support an external clock source, but the IP version
      between OMAP24xx and OMAP3xxx is common and so this incorrectly indicates
      that OMAP3 devices can use an external clock source.
      
      Rather than use the IP version, just let the clock framework handle this.
      If the "alt_ck" does not exist for a timer then the clock framework will fail
      to find the clock and hence will return an error. By doing this we can eliminate
      the "timer_ip_version" variable passed as part of the platform data and simplify
      the code.
      
      We can also remove the timer IP version from the HWMOD data because the dmtimer
      driver uses the TIDR register to determine the IP version.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      67d2e760
    • J
      ARM: OMAP2+: HWMOD: Correct timer device attributes · 139486fa
      Jon Hunter 提交于
      Fix the following issues with the timer device attributes for OMAP2+ devices:
      
      1. For OMAP24xx devices, timers 2-8 have the ALWAYS-ON attribute indicating
         that these timers are in an ALWAYS-ON power domain. This is not the case
         only timer1 is in an ALWAYS-ON power domain.
      2. For OMAP3xxx devices, timers 2-7 have the ALWAYS-ON attribute indicating
         that these timers are in an ALWAYS-ON power domain. This is not the case
         only timer1 and timer12 are in an ALWAYS-ON power domain.
      3. For OMAP3xxx devices, timer12 does not have the ALWAYS-ON attribute but
         is in an always-on power domain.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Acked-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      139486fa
  7. 01 6月, 2012 2 次提交
  8. 11 5月, 2012 1 次提交
  9. 09 5月, 2012 4 次提交
    • K
      ARM: OMAP2+: WDTIMER integration: fix !PM boot crash, disarm timer after hwmod reset · 414e4128
      Kevin Hilman 提交于
      Without runtime PM enabled, hwmod needs to leave all IP blocks in an
      enabled state by default so any driver access to the HW will succeed.
      This is accomplished by seting the postsetup_state to enabled for all
      hwmods during init when runtime PM is disabled.
      
      Currently, we have a special case for WDT in that its postsetup_state
      is always set to disabled.  This is done so that the WDT is disabled
      and the timer is disarmed at boot in case there is no WDT driver.
      This also means that when runtime PM is disabled, if a WDT driver *is*
      built in the kernel, the kernel will crash on the first access to the
      WDT hardware.
      
      We can't simply leave the WDT module enabled, because the timer is
      armed by default after reset. That means that if there is no WDT
      driver initialzed or loaded before the timer expires, the kernel will
      reboot.
      
      To fix this, a custom reset method is added to the watchdog class of
      omap_hwmod.  This method will *always* disarm the timer after hwmod
      reset.  The WDT timer then will only be rearmed when/if the driver is
      loaded for the WDT.  With the timer disarmed by default, we no longer
      need a special-case for the postsetup_state of WDT during init, so it
      is removed.
      
      Any platforms wishing to ensure the watchdog remains armed across the
      entire boot boot can simply disable the reset-on-init feature of the
      watchdog hwmod using omap_hwmod_no_setup_reset().
      
      Tested on 3530/Overo, 4430/Panda.
      
      NOTE: on 4430, the hwmod OCP reset does not seem to rearm the timer as
      documented in the TRM (and what happens on OMAP3.)  I noticed this
      because testing the HWMOD_INIT_NO_RESET feature with no driver loaded,
      I expected a reboot part way through the boot, but did not see a
      reboot.  Adding some debug to read the counter, I verified that right
      after OCP softreset, the counter is not firing.  After writing the
      magic start sequence, the timer starts counting.  This means that the
      timer disarm sequence added here does not seem to be needed for 4430,
      but is technically the correct way to ensure the timer is disarmed, so
      it is left in for OMAP4.
      
      Special thanks to Paul Walmsley for helping brainstorm ideas to fix
      this problem.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      [paul@pwsan.com: updated the omap2_wd_timer_reset() function in the
       wake of commit 3c55c1ba ("ARM:
       OMAP2+: hwmod: Revert "ARM: OMAP2+: hwmod: Make omap_hwmod_softreset
       wait for reset status""); added kerneldoc; rolled in warning fix from Kevin]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      414e4128
    • V
      ARM: OMAP2/3: hwmod data: Add 32k-sync timer data to hwmod database · c8d82ff6
      Vaibhav Hiremath 提交于
      Add 32k-sync timer hwmod-data and add ocp_if details to
      omap2 & 3 hwmod table.
      Signed-off-by: NVaibhav Hiremath <hvaibhav@ti.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Benoit Cousson <b-cousson@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      c8d82ff6
    • P
      ARM: OMAP3: hwmod_data: Rename the common irq for McBSP ports · 1c2badc1
      Peter Ujfalusi 提交于
      Use 'common' as name for the common irq number in hwmod data for the McBSP
      ports. The same name already in use for OMAP2430, and the OMAP4 hwmod data
      will be using the same name.
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      1c2badc1
    • P
      ARM: OMAP3: hwmod data: add HDQ/1-wire hwmod · 45a4bb06
      Paul Walmsley 提交于
      Add the HDQ1W hwmod for OMAP34xx, OMAP36xx, and AM3505/3517 devices.
      According to the respective TRMs, it doesn't appear to be available for the
      816x/814x or the AM335x.
      
      The OCPIF_SWSUP_IDLE flag is added to work around an apparent hardware
      bug: the hardware is not taking the CM_FCLKEN*_CORE.EN_HDQ bit into
      account when considering whether to go idle:
      
          http://www.spinics.net/lists/linux-omap/msg63576.html
      
      This causes HDQ transfers to fail or become corrupt.  Thanks to
      NeilBrown for his help diagnosing and testing fixes for this problem.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: NeilBrown <neilb@suse.de>
      Tested-by: NNeilBrown <neilb@suse.de>
      45a4bb06
  10. 19 4月, 2012 8 次提交
    • P
      ARM: OMAP3: hwmod data: add IVA hard reset lines, main clock, clockdomain · f42c5496
      Paul Walmsley 提交于
      The IVA hwmod data is missing some fields that cause the following
      warning on boot:
      
      [    0.118011] omap_hwmod: iva: cannot be enabled for reset (3)
      
      Fix by encoding the IP block's main functional clock, reset lines, and
      clockdomain.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      f42c5496
    • P
      ARM: OMAP3: hwmod data: fix IVA interface clock · 064931ab
      Paul Walmsley 提交于
      The OMAP3 hwmod data listed iva2_ck as an interface clock between the
      IVA and L3.  This is incorrect.  iva2_ck is not an interface clock.
      Since it cannot auto-idle, specifying it here prevents the IVA and at
      least one of the CORE clockdomains from going idle, which causes PM
      problems such as these upon system suspend:
      
      [   70.626129] Powerdomain (iva2_pwrdm) didn't enter target state 1
      [   70.626190] Powerdomain (core_pwrdm) didn't enter target state 1
      
      Fix by specifying the actual interface clock in the hwmod data.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      064931ab
    • P
      ARM: OMAP2+: hwmod data: remove forward declarations, reorganize · 844a3b63
      Paul Walmsley 提交于
      Reorganize the hwmod data to declare the IP blocks first and the
      interconnects second.  This allows us to remove the forward
      declarations, which this patch also does. Saves some lines of source
      data.  While here, take the opportunity to synchronize the order of
      the OMAP44xx hwmod data with the autogenerator output -- it's slightly
      different due to past mismerges -- and fix a few minor typos and
      whitespace problems in the files.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      844a3b63
    • P
      ARM: OMAP2+: hwmod data: convert to link registration · 0a78c5c5
      Paul Walmsley 提交于
      Register interconnect links between IP blocks, rather than the IP
      blocks themselves.  (The IP blocks will be registered as a side-effect
      of registering the links.)
      
      The objective is to reduce the number of lines of static data and
      facilitate the sharing of IP block data between different SoCs.  These
      objectives come at the penalty of increased boot time due to increased
      computation.
      
      While here, fix a few whitespace problems and inaccurate variable names.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      0a78c5c5
    • P
      ARM: OMAP3: hwmod data: GPTIMER12 is attached to a separate interconnect · 43085705
      Paul Walmsley 提交于
      GPTIMER12 is attached to the L4 SEC interconnect, not directly to L4 WKUP.
      Add the L4 SEC interconnect and attach GPTIMER12 to it.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      43085705
    • P
      ARM: OMAP3: hwmod data: add DSS->L3 interconnect for 3430ES1 · d69dc648
      Paul Walmsley 提交于
      The OMAP3 hwmod data was missing a DSS->L3 interconnect link for the
      OMAP3430 ES1 DSS hwmod.  Since the hwmod code and data is being modified
      to register interfaces rather than hwmods, this would result in the DSS hwmod
      not being registered correctly on OMAP3430ES1.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      
      
      d69dc648
    • P
      ARM: OMAP3: hwmod data: fix interfaces for the MMC hwmods · 4a9efb62
      Paul Walmsley 提交于
      Commit a52e2ab6 ("ARM: OMAP3: hwmod
      data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1")
      didn't link the MMC hwmods to the interconnects correctly.  Future
      patches will register hwmods by interface, so if this is not fixed,
      the MMC IP blocks won't be registered.  Update the interface data
      records to point to the correct IP blocks.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      
      
      4a9efb62
    • P
      ARM: OMAP2/3: hwmod data: update old names · bec93811
      Paul Walmsley 提交于
      Some of the 2xxx and 3xxx hwmod data files use the old naming style
      for hwmods, ending in a "_hwmod".  These names are used by the OMAP
      integration code to map hwmods to platform_devices, so they need to be
      consistent, or the platform_devices won't be created.  Remove the
      _hwmod suffix to conform with the rest of the OMAP SoC data.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      bec93811
  11. 13 4月, 2012 1 次提交
    • A
      ARM: OMAP2/3: VENC hwmods: Remove OCPIF_SWSUP_IDLE flag from VENC slave interface · 1f5e6247
      Archit Taneja 提交于
      The clocks for all DSS slave interfaces were recently changed to "dss_ick" on
      OMAP2 and OMAP3, this clock can be autoidled by PRCM. The VENC interface
      previously had "dss_54m_fck" as it's clock which couldn't be autoidled, and
      hence the OCPIF_SWSUP_IDLE flag was needed.
      
      Remove the OCPIF_SWSUP_IDLE flag from VENC interfaces as it's clock is
      now "dss_ick".  This allows the PRCM hardware to autoidle the VENC
      interface clocks when they are not active, rather than relying on the
      software to do it, which can keep the interface clocks active
      unnecessarily.
      Signed-off-by: NArchit Taneja <archit@ti.com>
      [paul@pwsan.com: add a short description of the fix to the commit log]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      1f5e6247
  12. 06 3月, 2012 2 次提交
  13. 26 1月, 2012 3 次提交
    • I
      ARM: OMAP3: hwmod data: register dss hwmods after dss_core · 1d2f56c8
      Ilya Yanok 提交于
      dss_core has to be initialized before any other DSS hwmod. Currently
      this is broken as dss_core is listed in chip/revision specific hwmod
      lists while other DSS hwmods are listed in common list which is
      registered first.
      
      This patch moves DSS hwmods (except for dss_core) to the separate list
      which is registered last to ensure that dss_core is already registered.
      
      This solves the problem with BUG() in L3 interrupt handler on boards
      with DSS enabled in bootloader.
      
      The long-term fix to this is to ensure modules are set up in dependency
      order in the hwmod core code.
      
      CC: Tomi Valkeinen <tomi.valkeinen@ti.com>
      CC: Archit Taneja <archit@ti.com>
      CC: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NIlya Yanok <yanok@emcraft.com>
      [paul@pwsan.com: add notes that this is just a temporary workaround until
       hwmod dependencies are added]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      1d2f56c8
    • T
      ARM: OMAP3: hwmod data: add SYSC_HAS_ENAWAKEUP for dispc · b0a85faf
      Tomi Valkeinen 提交于
      dispc's sysc_flags is missing SYSC_HAS_ENAWAKEUP flag. This seems to
      cause SYNC_LOST errors from the DSS when the power management is
      enabled.
      
      This patch adds the missing SYSC_HAS_ENAWAKEUP flag. Note that there are
      other flags missing also (clock activity, DSI's sysc flags), but as they
      are not critical, they will be fixed in the next merge window.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      b0a85faf
    • T
      ARM: OMAP2+: hwmod data: split omap2/3 dispc hwmod class · 1ac6d46e
      Tomi Valkeinen 提交于
      Currently OMAP2 and 3 share the same omap_hwmod_class and
      omap_hwmod_class_sysconfig for dispc. However, OMAP3 has sysconfig
      bits that OMAP2 doesn't have, so we need to split those structs into
      OMAP2 and OMAP3 specific versions.
      
      This patch only splits the structs, without changing the contents.
      This is a prerequisite for a subsequent fix.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      [paul@pwsan.com: added commit note]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      
      1ac6d46e
  14. 16 12月, 2011 5 次提交
    • S
      ARM: OMAP3+: hwmod data: Add the default clockactivity for I2C · 3e47dc6a
      Shubhrajyoti D 提交于
      For I2C clockactivity field is added for OMAP3 and OMAP4 that defines how the
      interface (OCP) and functional (system) clocks behave when the I2C module is
      idle.
      
      The configuration of the clock activity bit field (per TRM) is as follows:
      0x0: Both clocks can be cut off
      0x1: Only OCP clock must be kept active; system clock
           can be cut off
      0x3: Both clocks must be kept active
      0x2: Only system clock must be kept active; OCP clock
           can be cut off
      
      The patch makes 0x2(CLOCKACT_TEST_ICLK) the default for OMAP3 and OMAP4.
      Signed-off-by: NShubhrajyoti D <shubhrajyoti@ti.com>
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      3e47dc6a
    • P
      ARM: OMAP3: hwmod data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1 · a52e2ab6
      Paul Walmsley 提交于
      The HSMMC1/HSMMC2 host controllers on OMAP34xx and
      OMAP3503/3515/3525/3530 chips at ES levels prior to 3.0 can't do multiple
      block reads[1].  Mark the hwmod data appropriately.
      
      Reported by Dave Hylands <dhylands@gmail.com> and Steve Sakoman
      <sakoman@gmail.com>.  Thanks to Steve Sakoman for further help
      testing this patch.
      
      1. See for example Advisory 2.1.1.128 "MMC: Multiple Block Read
         Operation Issue" in _OMAP3530/3525/3515/3503 Silicon Errata_
         Revision F (October 2010) (SPRZ278F), available from
         http://focus.ti.com/lit/er/sprz278f/sprz278f.pdfSigned-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Dave Hylands <dhylands@gmail.com>
      Cc: Steve Sakoman <sakoman@gmail.com>
      a52e2ab6
    • K
      ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3 · de231388
      Keshava Munegowda 提交于
      Following 2 hwmod structures are added
          1. usb_host_hs
               The hwmod of usbhs with uhh, ehci and ohci base addresses
               functional clock and ehci, ohci irqs
      
          2. usb_tll_hs
                hwmod of usbhs with the TLL base address and irq.
      Signed-off-by: NKeshava Munegowda <keshava_mgowda@ti.com>
      Reviewed-by: NPartha Basak <parthab@india.ti.com>
      [paul@pwsan.com: fixed whitespace; removed nonexistent TLL->L3 interface;
       added master & slave for L4 CORE->TLL interface; skip registration on
       3430ES1; fixed multiline comment style; updated to apply on Tony's cleanup
       branch; rebased]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      de231388
    • K
      ARM: OMAP: hwmod data: Add support for AM35xx UART4/ttyO3 · 4bf90f65
      Kyle Manna 提交于
      Add hwmod support to enable access to UART4 of the AM35xx series of
      chips.  The UART4 device referenced from the TRM will show up as ttyO3.
      
      This was tested on an AM3505.
      Signed-off-by: NKyle Manna <kyle.manna@fuel7.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      4bf90f65
    • A
      ARM: OMAP: hwmod data: fix the panic on Nokia RM-680 during boot · 91a36bdb
      Aaro Koskinen 提交于
      Booting the Linux kernel on Nokia RM-680 board has been broken since
      2.6.39 due to the following:
      
      [    0.217193] omap_hwmod: timer12: enabling
      [    0.221435] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa304010
      [    0.229431] Internal error: : 1028 [#1] SMP
      [    0.233825] Modules linked in:
      [    0.237060] CPU: 0    Not tainted  (3.2.0-rc4-dirty #46)
      [    0.242645] PC is at _update_sysc_cache+0x2c/0x7c
      [    0.247589] LR is at _enable+0x1b0/0x2d8
      [    0.251708] pc : [<c0026108>]    lr : [<c0026df4>]    psr: 40000013
      [    0.251708] sp : ef831f40  ip : ef82f380  fp : c06ac0c0
      [    0.263702] r10: 00000000  r9 : c05dfb2c  r8 : ef830000
      [    0.269165] r7 : c0027494  r6 : 00000000  r5 : 00000000  r4 : c06608b0
      [    0.276000] r3 : fa304000  r2 : 00000010  r1 : c0661e28  r0 : c06608b0
      [    0.282806] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      [    0.290405] Control: 10c5387d  Table: 80004019  DAC: 00000017
      [    0.296417] Process swapper (pid: 1, stack limit = 0xef8302f8)
      [    0.302520] Stack: (0xef831f40 to 0xef832000)
      [    0.307098] 1f40: c06608b0 c0026df4 c06ad094 c0035120 00000001 c06608b0 00000000 c0027530
      [    0.315612] 1f60: c0027604 ef830000 c05dfb2c c06608b0 c0642ac0 c0025bf0 c0621234 c062120c
      [    0.324127] 1f80: c0621738 00000013 ef830000 c05dfb6c c0621234 c0008688 c062c880 c009eadc
      [    0.332641] 1fa0: 0000005f 00000000 c0621738 35390013 00000000 00000000 00000000 0000019a
      [    0.341156] 1fc0: c0681cf4 c0621234 c062120c c0621738 00000013 00000000 00000000 00000000
      [    0.349670] 1fe0: 00000000 c05d5298 00000000 c05d5200 c0014fa8 c0014fa8 ffff0000 ffff0000
      [    0.358184] [<c0026108>] (_update_sysc_cache+0x2c/0x7c) from [<c0026df4>] (_enable+0x1b0/0x2d8)
      [    0.367248] [<c0026df4>] (_enable+0x1b0/0x2d8) from [<c0027530>] (_setup+0x9c/0x170)
      [    0.375335] [<c0027530>] (_setup+0x9c/0x170) from [<c0025bf0>] (omap_hwmod_for_each+0x38/0x58)
      [    0.384307] [<c0025bf0>] (omap_hwmod_for_each+0x38/0x58) from [<c05dfb6c>] (omap_hwmod_setup_all+0x40/0xa0)
      [    0.394409] [<c05dfb6c>] (omap_hwmod_setup_all+0x40/0xa0) from [<c0008688>] (do_one_initcall+0x34/0x180)
      [    0.404296] [<c0008688>] (do_one_initcall+0x34/0x180) from [<c05d5298>] (kernel_init+0x98/0x144)
      [    0.413452] [<c05d5298>] (kernel_init+0x98/0x144) from [<c0014fa8>] (kernel_thread_exit+0x0/0x8)
      [    0.422576] Code: e3130c01 1590304c 0590304c 119320b2 (07932002)
      [    0.429046] ---[ end trace 1b75b31a2719ed1c ]---
      [    0.433959] Kernel panic - not syncing: Attempted to kill init!
      
      Timer 12 is not necessarily available on non-GP devices (see e.g.
      http://marc.info/?l=linux-omap&m=129433066521102&w=2), so it should be
      registered only on GP OMAPs. With this change it's again possible to
      boot RM-680 into the shell. Tested with 3.2-rc4.
      Signed-off-by: NAaro Koskinen <aaro.koskinen@nokia.com>
      [paul@pwsan.com: changed subject line]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      91a36bdb