Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * DMTIMER platform data for TI OMAP platforms
0004  *
0005  * Copyright (C) 2012 Texas Instruments
0006  * Author: Jon Hunter <jon-hunter@ti.com>
0007  */
0008 
0009 #ifndef __PLATFORM_DATA_DMTIMER_OMAP_H__
0010 #define __PLATFORM_DATA_DMTIMER_OMAP_H__
0011 
0012 struct omap_dm_timer_ops {
0013     struct omap_dm_timer *(*request_by_node)(struct device_node *np);
0014     struct omap_dm_timer *(*request_specific)(int timer_id);
0015     struct omap_dm_timer *(*request)(void);
0016 
0017     int (*free)(struct omap_dm_timer *timer);
0018 
0019     void    (*enable)(struct omap_dm_timer *timer);
0020     void    (*disable)(struct omap_dm_timer *timer);
0021 
0022     int (*get_irq)(struct omap_dm_timer *timer);
0023     int (*set_int_enable)(struct omap_dm_timer *timer,
0024                   unsigned int value);
0025     int (*set_int_disable)(struct omap_dm_timer *timer, u32 mask);
0026 
0027     struct clk *(*get_fclk)(struct omap_dm_timer *timer);
0028 
0029     int (*start)(struct omap_dm_timer *timer);
0030     int (*stop)(struct omap_dm_timer *timer);
0031     int (*set_source)(struct omap_dm_timer *timer, int source);
0032 
0033     int (*set_load)(struct omap_dm_timer *timer, unsigned int value);
0034     int (*set_match)(struct omap_dm_timer *timer, int enable,
0035                  unsigned int match);
0036     int (*set_pwm)(struct omap_dm_timer *timer, int def_on,
0037                int toggle, int trigger, int autoreload);
0038     int (*get_pwm_status)(struct omap_dm_timer *timer);
0039     int (*set_prescaler)(struct omap_dm_timer *timer, int prescaler);
0040 
0041     unsigned int (*read_counter)(struct omap_dm_timer *timer);
0042     int (*write_counter)(struct omap_dm_timer *timer,
0043                  unsigned int value);
0044     unsigned int (*read_status)(struct omap_dm_timer *timer);
0045     int (*write_status)(struct omap_dm_timer *timer,
0046                 unsigned int value);
0047 };
0048 
0049 struct dmtimer_platform_data {
0050     /* set_timer_src - Only used for OMAP1 devices */
0051     int (*set_timer_src)(struct platform_device *pdev, int source);
0052     u32 timer_capability;
0053     u32 timer_errata;
0054     int (*get_context_loss_count)(struct device *);
0055     const struct omap_dm_timer_ops *timer_ops;
0056 };
0057 
0058 #endif /* __PLATFORM_DATA_DMTIMER_OMAP_H__ */