• David Brownell's avatar
    atmel_tc library · 2a341f5c
    David Brownell authored
    Create <linux/atmel_tc.h> based on <asm-arm/arch-at91/at91-tc.h> 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 <linux/mutex.h>
      * 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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarHaavard Skinnemoen <hskinnemoen@atmel.com>
    2a341f5c
atmel_tclib.c 3.54 KB