linux/arch/arm/plat-omap
Paul Walmsley 63c8523841 OMAP2/3/4: create omap_hwmod layer
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: Paul 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>
2009-09-03 20:14:03 +03:00
..
include/mach OMAP2/3/4: create omap_hwmod layer 2009-09-03 20:14:03 +03:00
clock.c Merge branch 'omap4' into for-next 2009-05-28 15:45:14 -07:00
common.c OMAP: Remove omap boot parsing code 2009-08-28 10:51:35 -07:00
cpu-omap.c OMAP: PM: CPUfreq: obey min/max settings of policy 2009-08-05 09:10:54 -07:00
debug-devices.c ARM: OMAP: Switch to gpio_request/free calls 2008-12-10 17:35:30 -08:00
debug-leds.c ARM: OMAP: switch to standard gpio get/set calls 2008-12-10 17:35:25 -08:00
devices.c ARM: OMAP4: Add minimal support for omap4 2009-05-28 14:16:04 -07:00
dma.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
dmtimer.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
fb.c ARM: OMAP: Fix printing of reserved memory for frambuffer 2009-05-11 09:58:19 -07:00
gpio.c OMAP: GPIO: Avoid generating extra IRQs 2009-08-28 10:51:36 -07:00
i2c.c ARM: OMAP: Update contact address of I2C registration helper 2009-05-25 11:08:43 -07:00
io.c OMAP: Remove ifdefs for io.h 2009-08-28 10:50:37 -07:00
iommu-debug.c OMAP: iommu: add initial debugfs support 2009-08-28 10:54:41 -07:00
iommu.c OMAP: iommu: add initial debugfs support 2009-08-28 10:54:41 -07:00
iopgtable.h omap iommu: tlb and pagetable primitives 2009-05-05 14:52:39 +03:00
iovmm.c OMAP: iommu: fix wrong argument in flush_cache_vmap() 2009-08-28 10:54:40 -07:00
Kconfig OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM no-op layer 2009-09-03 20:14:01 +03:00
mailbox.c block: implement and enforce request peek/start/fetch 2009-05-11 09:52:18 +02:00
Makefile OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM no-op layer 2009-09-03 20:14:01 +03:00
mcbsp.c ARM: OMAP: McBSP: Fix legacy interrupts to clear their status 2009-05-25 11:08:42 -07:00
mux.c ARM: OMAP4: Add minimal support for omap4 2009-05-28 14:16:04 -07:00
ocpi.c [ARM] Convert asm/io.h to linux/io.h 2008-09-06 12:10:45 +01:00
omap-pm-noop.c OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM no-op layer 2009-09-03 20:14:01 +03:00
sram.c OMAP: Remove OMAP_IO_ADDRESS, use OMAP1_IO_ADDRESS and OMAP2_IO_ADDRESS instead 2009-08-28 10:50:33 -07:00
usb.c ARM: OMAP: get rid of OMAP_TAG_USB, v2 2009-03-23 18:51:20 -07:00