linux-kernel-test/arch/arm
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
..
boot ARM: includecheck fix: misc.c 2009-07-25 17:07:00 +01:00
common ARM: 5639/1: arm: clkdev.c should include <linux/clk.h> 2009-08-05 22:06:58 +01:00
configs OMAP3: update OMAP3 Beagle defconfig 2009-08-28 11:24:17 -07:00
include/asm ARM: Fix broken highmem support 2009-08-15 12:36:00 +01:00
kernel ARM: 5638/1: arch/arm/kernel/signal.c: use correct address space for CRUNCH 2009-08-05 22:06:58 +01:00
lib Merge branch 'copy_user' of git://git.marvell.com/orion into devel 2009-06-14 10:59:32 +01:00
mach-aaec2000
mach-at91 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2009-07-30 16:46:31 -07:00
mach-clps711x
mach-davinci ARM: includecheck fix: board-sffsdr.c 2009-07-25 17:07:02 +01:00
mach-ebsa110
mach-ep93xx [ARM] 5611/1: ep93xx: update ts72xx nor flash support 2009-07-23 10:21:24 +01:00
mach-footbridge
mach-gemini Gemini: Fix SRAM/ROM location after memory swap 2009-05-28 16:42:25 +03:00
mach-h720x
mach-integrator [ARM] 5517/1: integrator: don't put clock lookups in __initdata 2009-05-18 17:43:16 +01:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx IXP4xx: Fix IO_SPACE_LIMIT for 2.6.31-rc core PCI changes 2009-08-11 19:22:20 +02:00
mach-ixp23xx
mach-ixp2000
mach-kirkwood [ARM] Kirkwood: enable eSATA on QNAP TS-219P 2009-08-24 11:56:00 -04:00
mach-ks8695 ARM: 5637/1: [KS8695] Don't reference CLOCK_TICK_RATE in drivers 2009-08-05 22:06:56 +01:00
mach-l7200 [ARM] mach-l7200: fix spelling of SYS_CLOCK_OFF 2009-05-18 11:25:08 +01:00
mach-lh7a40x
mach-loki [ARM] add coherent DMA mask for mv643xx_eth 2009-05-22 17:05:53 -04:00
mach-mmp [ARM] pxa: add PWM devices support for pxa168/910 2009-06-05 10:32:06 +08:00
mach-msm
mach-mv78xx0 [ARM] orion: convert gpio to use gpiolib 2009-06-08 13:04:57 -04:00
mach-mx1 mx1ads: rename mxc_map_io to mx1_map_io 2009-05-07 16:20:22 +02:00
mach-mx2 Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-06-14 13:42:43 -07:00
mach-mx3 mx31moboard: invert sdhc ro signal sense 2009-08-14 12:33:23 +02:00
mach-netx [ARM] VIC: Add power management device 2009-05-07 11:04:57 +01:00
mach-ns9xxx
mach-omap1 OMAP1: AMS_DELTA: add modem support 2009-08-28 10:51:37 -07:00
mach-omap2 OMAP2/3/4: create omap_hwmod layer 2009-09-03 20:14:03 +03:00
mach-orion5x [ARM] orion5x: register the crypto device on SOCs that support it 2009-06-15 00:37:08 -04:00
mach-pnx4008
mach-pxa Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 2009-07-30 10:46:12 +01:00
mach-realview ARM: Realview & Versatile: Fix i2c_board_info definitions 2009-07-18 17:08:59 +01:00
mach-rpc
mach-s3c24a0/include/mach
mach-s3c2400 [ARM] S3C24XX: GPIO: Fix error returns from gpio functions 2009-05-18 19:40:18 +01:00
mach-s3c2410 S3C24XX: GPIO: Fix pin range check in s3c_gpiolib_getchip 2009-07-29 23:47:14 +01:00
mach-s3c2412 Merge branch for-rmk-devel of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-06-10 22:41:06 +01:00
mach-s3c2440 [ARM] MINI2440: Add missing flash_bbt flat to NAND 2009-06-23 18:23:27 +01:00
mach-s3c2442 [ARM] GTA02: build fixes (s3c2410_nand_set usage) 2009-06-24 00:10:46 +01:00
mach-s3c2443
mach-s3c6400 Merge branch for-rmk-devel of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-06-10 22:41:06 +01:00
mach-s3c6410 [ARM] SMDK6410: Add USB high-speed/OtG gadget device 2009-05-16 22:14:09 +01:00
mach-sa1100 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-06-14 13:46:25 -07:00
mach-shark
mach-stmp37xx [ARM] 5539/1: Freescale STMP: onboard devices declaration 2009-06-04 14:16:45 +01:00
mach-stmp378x [ARM] 5539/1: Freescale STMP: onboard devices declaration 2009-06-04 14:16:45 +01:00
mach-u300 ARM: 5673/1: U300 fix initsection compile warning 2009-08-15 15:36:52 +01:00
mach-versatile ARM: Realview & Versatile: Fix i2c_board_info definitions 2009-07-18 17:08:59 +01:00
mach-w90x900 [ARM] 5549/1: Add clock api for w90p910 platform. 2009-06-11 14:45:18 +01:00
mm ARM: Fix broken highmem support 2009-08-15 12:36:00 +01:00
nwfpe [ARM] nwfpe: fix 'floatx80_is_nan' sparse warning 2009-05-15 12:49:14 +01:00
oprofile RealView: Move the IRQ_* definitions out of the board-*.h files 2009-05-30 14:00:17 +01:00
plat-iop
plat-mxc pcm037: add MT9T031 camera support 2009-06-23 14:25:26 +02:00
plat-omap OMAP2/3/4: create omap_hwmod layer 2009-09-03 20:14:03 +03:00
plat-orion [ARM] Kirkwood: __init requires linux/init.h 2009-08-24 11:55:59 -04:00
plat-pxa [ARM] pxa: use kzalloc() in pxa_init_gpio_chip() 2009-07-03 14:17:51 +08:00
plat-s3c [ARM] S3C: Fix S3C24XX build to not include s3c64xx IIS devices 2009-06-23 16:34:35 +01:00
plat-s3c24xx ARM: S3C24XX: Fix clkout mpx error 2009-08-14 00:45:49 +01:00
plat-s3c64xx Merge branch 's3c-fixes-rc4' of git://aeryn.fluff.org.uk/bjdooks/linux 2009-07-30 10:47:55 +01:00
plat-stmp3xxx ARM: includecheck fix: plat-stmp3xxx/pinmux.c 2009-07-25 17:08:24 +01:00
tools [ARM] Update mach-types 2009-06-20 22:28:41 +01:00
vfp Fix the VFP handling on the Feroceon CPU 2009-05-30 14:00:18 +01:00
Kconfig [ARM] S3C64XX: Initial support for DVFS 2009-06-16 23:36:24 +01:00
Kconfig-nommu
Kconfig.debug [ARM] S3C: Remove unused CONFIG_DEBUG_S3C_PORT 2009-06-23 12:24:07 +01:00
Makefile Merge branch 'u300' into devel 2009-06-14 11:01:44 +01:00