linux/arch/arm/plat-omap
Jon Hunter b7b4ff764f ARM: OMAP2+: Add dmtimer platform function to reserve systimers
During early boot, one or two dmtimers are reserved by the kernel as system
timers (for clocksource and clockevents). These timers are marked as reserved
and the dmtimer driver is notified which timers have been reserved via the
platform data information.

For OMAP2+ devices the timers reserved may vary depending on device and compile
flags. Therefore, it is not easy to assume which timers we be reserved for the
system timers. In order to migrate the dmtimer driver to support device-tree we
need a way to pass the timers reserved for system timers to the dmtimer driver.
Using the platform data structure will not work in the same way as it is
currently used because the platform data structure will be stored statically in
the dmtimer itself and the platform data will be selected via the device-tree
match device function (of_match_device).

There are a couple ways to workaround this. One option is to store the system
timers reserved for the kernel in the device-tree and query them on boot.
The downside of this approach is that it adds some delay to parse the DT blob
to search for the system timers. Secondly, for OMAP3 devices we have a
dependency on compile time flags and the device-tree would not be aware of that
kernel compile flags and so we would need to address that.

The second option is to add a function to the dmtimer code to reserved the
system timers during boot and so the dmtimer knows exactly which timers are
being used for system timers. This also allows us to remove the "reserved"
member from the timer platform data. This seemed like the simpler approach and
so was implemented here.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2012-06-14 02:39:06 -07:00
..
include/plat ARM: OMAP2+: Add dmtimer platform function to reserve systimers 2012-06-14 02:39:06 -07:00
clock.c ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors 2012-04-14 17:49:07 -07:00
common.c ARM: OMAP: add includes for missing prototypes 2012-04-13 06:34:26 -06:00
counter_32k.c arm-soc: cleanups, part 2 2012-05-26 12:31:49 -07:00
debug-devices.c ARM: gpio: convert includes of mach/gpio.h and asm/gpio.h to linux/gpio.h 2011-08-08 14:27:41 +01:00
debug-leds.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
devices.c ARM: OMAP: Move omap_mmc_add() to mach-omap1 2012-05-09 16:35:12 -07:00
dma.c arm-soc: cleanups, part 2 2012-05-26 12:31:49 -07:00
dmtimer.c ARM: OMAP2+: Add dmtimer platform function to reserve systimers 2012-06-14 02:39:06 -07:00
fb.c ARM: OMAP2+: Fix compile error when FB_OMAP2 is not set 2012-03-09 09:53:21 +02:00
i2c.c ARM: OMAP: I2C: Fix omap_register_i2c_bus() return value on success 2011-11-04 17:41:07 -07:00
Kconfig ARM: fix __io macro for PCMCIA 2012-04-05 11:29:55 -07:00
mailbox.c ARM: OMAP: mailbox: trivial whitespace fix 2012-03-05 16:11:03 -08:00
Makefile ARM: OMAP1: OCPI: move to mach-omap1/ 2012-04-13 06:34:27 -06:00
mux.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
omap_device.c ARM: OMAP2+: clean up some cppcheck warnings 2012-04-17 15:50:47 -06:00
omap-pm-noop.c ARM: OMAP: omap_device: remove omap_device_parent 2012-03-05 15:38:02 -08:00
sram.c Sparse and cppcheck warning fixes 2012-05-09 02:28:46 -07:00
sram.h
usb.c ARM: OMAP: OTG integration: fix compiler warning 2012-05-11 09:56:43 -07:00