1. 12 12月, 2009 6 次提交
    • K
      OMAP: hwmod: warn on missing clockdomain · 81d7c6ff
      Kevin Hilman 提交于
      WARN if a clock/hwmod is missing a clockdomain association since
      resulting hwmod will not be able to correctly enable/disable clocks.
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      81d7c6ff
    • P
      OMAP3 hwmod: drop most of the OCP_SYSCONFIG.CLOCKACTIVITY code · a16b1f7f
      Paul Walmsley 提交于
      Earlier, the hwmod code had considered the OCP_SYSCONFIG.CLOCKACTIVITY
      bits to be incremental power saving bits, controlling internal IP
      block clock gates.  This was a misapprehension.  The CLOCKACTIVITY
      bits are used to indicate, in advance, which clocks will be cut when
      the module acknowledges an idle request.  This enables the IP block to
      take whatever action is necessary to complete any in-progress work
      before asserting its IdleAck.
      
      In the current Linux-OMAP code, this implies that the clock framework
      should be changing module CLOCKACTIVITY bits as module clocks are enabled
      and disabled.  We don't do that yet, but in the future, we should.
      This must wait until the clock tree is annotated with omap_hwmod pointers
      (or vice-versa).  In the meantime, drop most of the hwmod code that
      controls CLOCKACTIVITY bits to avoid confusion.
      
      This patch has benefited from many illuminating discussions with (in
      alphabetical order) Benoît Cousson <b-cousson@ti.com>, Rajendra Nayak
      <rnayak@ti.com>, and Sebastien Sabatier <s-sabatier1@ti.com>.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Sebastien Sabatier <s-sabatier1@ti.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      a16b1f7f
    • P
      OMAP hwmod: add names to module MPU IRQ lines · 718bfd76
      Paul Walmsley 提交于
      Replace the existing u8 array of module MPU IRQ lines with a struct
      that includes a name - similar to the existing struct
      omap_hwmod_dma_info.  Device drivers can then use
      platform_get_resource_byname() to retrieve specific IRQs without nasty
      dependencies on array ordering.
      
      Thanks to Benoît Cousson <b-cousson@ti.com> and Kevin Hilman
      <khilman@deeprootsystems.com> for feedback on this approach.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      718bfd76
    • P
      OMAP3 hwmod: Add automatic OCP_SYSCONFIG AUTOIDLE handling · 726072e5
      Paul Walmsley 提交于
      This patch fills in the OCP_SYSCONFIG.AUTOIDLE handling in the OMAP
      hwmod code.
      
      After this patch, the hwmod code will set the module AUTOIDLE bit
      (generally <module>.OCP_SYSCONFIG.AUTOIDLE) to 1 by default upon
      enable.  If the hwmod flag HWMOD_NO_OCP_AUTOIDLE is set, AUTOIDLE will
      be set to 0 upon enable.  Upon module disable, AUTOIDLE will be set to
      1.
      
      Enabling module autoidle should save some power.  The only reason to
      not set the OCP_SYSCONFIG.AUTOIDLE bit is if there is a bug in the
      module RTL, e.g., the MPUINTC block on OMAP3.
      
      Comments from Kevin Hilman <khilman@deeprootsystems.com> inspired this patch,
      and Kevin tested an earlier version of this patch.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Tested-by: NKevin Hilman <khilman@deeprootsystems.com>
      726072e5
    • P
      OMAP3 hwmod: reprogram OCP_SYSCONFIG register after setting SOFTRESET · b835d014
      Paul Walmsley 提交于
      Reprogram the module's OCP_SYSCONFIG register after module reset (SOFTRESET
      = 1).  This may not be needed, but the definition of the reset performed by
      the SOFTRESET bit is unclear.
      
      Kevin Hilman <khilman@deeprootsystems.com> tested an earlier version of
      this patch.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Tested-by: NKevin Hilman <khilman@deeprootsystems.com>
      b835d014
    • P
      OMAP clock/hwmod: fix off-by-one errors · 6f8b7ff5
      Paul Walmsley 提交于
      Fix loop bailout off-by-one bugs reported by Juha Leppänen
      <juha_motorsportcom@luukku.com>.
      
      This second version incorporates comments from Russell King
      <linux@arm.linux.org.uk>.  A new macro, 'omap_test_timeout', has
      been created, with cleaner code, and existing code has been converted
      to use it.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Juha Leppänen <juha_motorsportcom@luukku.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      6f8b7ff5
  2. 21 10月, 2009 1 次提交
    • T
      omap: headers: Move remaining headers from include/mach to include/plat · ce491cf8
      Tony Lindgren 提交于
      Move the remaining headers under plat-omap/include/mach
      to plat-omap/include/plat. Also search and replace the
      files using these headers to include using the right path.
      
      This was done with:
      
      #!/bin/bash
      mach_dir_old="arch/arm/plat-omap/include/mach"
      plat_dir_new="arch/arm/plat-omap/include/plat"
      headers=$(cd $mach_dir_old && ls *.h)
      omap_dirs="arch/arm/*omap*/ \
      drivers/video/omap \
      sound/soc/omap"
      other_files="drivers/leds/leds-ams-delta.c \
      drivers/mfd/menelaus.c \
      drivers/mfd/twl4030-core.c \
      drivers/mtd/nand/ams-delta.c"
      
      for header in $headers; do
      	old="#include <mach\/$header"
      	new="#include <plat\/$header"
      	for dir in $omap_dirs; do
      		find $dir -type f -name \*.[chS] | \
      			xargs sed -i "s/$old/$new/"
      	done
      	find drivers/ -type f -name \*omap*.[chS] | \
      		xargs sed -i "s/$old/$new/"
      	for file in $other_files; do
      		sed -i "s/$old/$new/" $file
      	done
      done
      
      for header in $(ls $mach_dir_old/*.h); do
      	git mv $header $plat_dir_new/
      done
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      ce491cf8
  3. 20 10月, 2009 1 次提交
  4. 04 9月, 2009 2 次提交
    • P
      OMAP: omap_hwmod: call omap_hwmod init at boot; create interconnects · 02bfc030
      Paul Walmsley 提交于
      Connect the omap_hwmod code to the kernel boot.  Create some basic
      interconnect and device structures for OMAP2/3 chips.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      02bfc030
    • P
      OMAP2/3/4: create omap_hwmod layer · 63c85238
      Paul Walmsley 提交于
      OMAP SoCs can be considered a collection of hardware IP blocks
      connected by various interconnects.  The bus topology and device
      integration data is somewhat more complex than platform_device can
      encode.  This patch creates code and structures to manage information
      about OMAP on-chip devices ("hardware modules") and their integration
      to the rest of the chip.  Hardware module data is intended to be
      generated dynamically from the TI hardware database for the OMAP4
      chips and beyond, easing Linux support for new chip variants.
      
      This code currently:
      
      - resets and configures all hardware modules upon startup, reducing bootloader
        dependencies;
      
      - provides hooks for Linux driver model code to enable, idle, and shutdown
        hardware modules (forthcoming patch);
      
      - waits for hardware modules to leave idle once their clocks
        are enabled and OCP_SYSCONFIG bits are set appropriately.
      
      - provides a means to pass arbitrary IP block configuration data (e.g.,
        FIFO size) to the device driver (via the dev_attr void pointer)
      
      In the future this code is intended to:
      
      - estimate interconnect bandwidth and latency characteristics to
        ensure constraints are satisfied during DVFS
      
      - provide *GRPSEL bit data to the powerdomain code
      
      - handle pin/ball muxing for devices
      
      - generate IO mapping information dynamically
      
      - supply device firewall configuration data
      
      - provide hardware module data to other on-chip coprocessor software
      
      - allow the removal of the "disable unused clocks" code in the OMAP2/3
        clock code
      
      This patch represents a collaborative effort involving many people from TI,
      Nokia, and the Linux-OMAP community.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoit Cousson <b-cousson@ti.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Vikram Pandita <vikram.pandita@ti.com>
      Cc: Sakari Poussa <sakari.poussa@nokia.com>
      Cc: Anand Sawant <sawant@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Eric Thomas <ethomas@ti.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      63c85238