root/include/linux/platform_data/pwm_omap_dmtimer.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * include/linux/platform_data/pwm_omap_dmtimer.h
   3  *
   4  * OMAP Dual-Mode Timer PWM platform data
   5  *
   6  * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
   7  * Tarun Kanti DebBarma <tarun.kanti@ti.com>
   8  * Thara Gopinath <thara@ti.com>
   9  *
  10  * Platform device conversion and hwmod support.
  11  *
  12  * Copyright (C) 2005 Nokia Corporation
  13  * Author: Lauri Leukkunen <lauri.leukkunen@nokia.com>
  14  * PWM and clock framework support by Timo Teras.
  15  *
  16  * This program is free software; you can redistribute it and/or modify it
  17  * under the terms of the GNU General Public License as published by the
  18  * Free Software Foundation; either version 2 of the License, or (at your
  19  * option) any later version.
  20  *
  21  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
  22  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  23  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
  24  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  26  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  28  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  29  *
  30  * You should have received a copy of the  GNU General Public License along
  31  * with this program; if not, write  to the Free Software Foundation, Inc.,
  32  * 675 Mass Ave, Cambridge, MA 02139, USA.
  33  */
  34 
  35 #ifndef __PWM_OMAP_DMTIMER_PDATA_H
  36 #define __PWM_OMAP_DMTIMER_PDATA_H
  37 
  38 /* clock sources */
  39 #define PWM_OMAP_DMTIMER_SRC_SYS_CLK                    0x00
  40 #define PWM_OMAP_DMTIMER_SRC_32_KHZ                     0x01
  41 #define PWM_OMAP_DMTIMER_SRC_EXT_CLK                    0x02
  42 
  43 /* timer interrupt enable bits */
  44 #define PWM_OMAP_DMTIMER_INT_CAPTURE                    (1 << 2)
  45 #define PWM_OMAP_DMTIMER_INT_OVERFLOW                   (1 << 1)
  46 #define PWM_OMAP_DMTIMER_INT_MATCH                      (1 << 0)
  47 
  48 /* trigger types */
  49 #define PWM_OMAP_DMTIMER_TRIGGER_NONE                   0x00
  50 #define PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW               0x01
  51 #define PWM_OMAP_DMTIMER_TRIGGER_OVERFLOW_AND_COMPARE   0x02
  52 
  53 struct omap_dm_timer;
  54 typedef struct omap_dm_timer pwm_omap_dmtimer;
  55 
  56 struct pwm_omap_dmtimer_pdata {
  57         pwm_omap_dmtimer *(*request_by_node)(struct device_node *np);
  58         pwm_omap_dmtimer *(*request_specific)(int timer_id);
  59         pwm_omap_dmtimer *(*request)(void);
  60 
  61         int     (*free)(pwm_omap_dmtimer *timer);
  62 
  63         void    (*enable)(pwm_omap_dmtimer *timer);
  64         void    (*disable)(pwm_omap_dmtimer *timer);
  65 
  66         int     (*get_irq)(pwm_omap_dmtimer *timer);
  67         int     (*set_int_enable)(pwm_omap_dmtimer *timer, unsigned int value);
  68         int     (*set_int_disable)(pwm_omap_dmtimer *timer, u32 mask);
  69 
  70         struct clk *(*get_fclk)(pwm_omap_dmtimer *timer);
  71 
  72         int     (*start)(pwm_omap_dmtimer *timer);
  73         int     (*stop)(pwm_omap_dmtimer *timer);
  74         int     (*set_source)(pwm_omap_dmtimer *timer, int source);
  75 
  76         int     (*set_load)(pwm_omap_dmtimer *timer, int autoreload,
  77                         unsigned int value);
  78         int     (*set_match)(pwm_omap_dmtimer *timer, int enable,
  79                         unsigned int match);
  80         int     (*set_pwm)(pwm_omap_dmtimer *timer, int def_on,
  81                         int toggle, int trigger);
  82         int     (*set_prescaler)(pwm_omap_dmtimer *timer, int prescaler);
  83 
  84         unsigned int (*read_counter)(pwm_omap_dmtimer *timer);
  85         int     (*write_counter)(pwm_omap_dmtimer *timer, unsigned int value);
  86         unsigned int (*read_status)(pwm_omap_dmtimer *timer);
  87         int     (*write_status)(pwm_omap_dmtimer *timer, unsigned int value);
  88 };
  89 
  90 #endif /* __PWM_OMAP_DMTIMER_PDATA_H */

/* [<][>][^][v][top][bottom][index][help] */