04 Mar, 2008

1 commit

  • Create based on and the
    at91sam9263 and at32ap7000 datasheets. Most AT91 and AT32 SOCs have one
    or two of these TC blocks, which include three 16-bit timers that can be
    interconnected in various ways.

    These TC blocks can be used for external interfacing (such as PWM and
    measurement), or used as somewhat quirky sixteen-bit timers.

    Changes relative to the original version:
    * Drop unneeded inclusion of
    * Support an arbitrary number of TC blocks
    * Return a struct with information about a TC block from
    atmel_tc_alloc() instead of using a combination of return values
    and "out" parameters.
    * ioremap() the I/O registers on allocation
    * Look up clocks and irqs for all channels
    * Add "name" parameter to atmel_tc_alloc() and use this when
    requesting the iomem resource.
    * Check if the platform provided the necessary resources at probe()
    time instead of when the TCB is allocated.

    Signed-off-by: David Brownell
    Signed-off-by: Haavard Skinnemoen

    David Brownell