|
@@ -103,3 +103,57 @@ struct omap_dm_timer {
|
|
|
int id;
|
|
|
int irq;
|
|
|
struct clk *fclk;
|
|
|
+
|
|
|
+ void __iomem *io_base;
|
|
|
+ void __iomem *irq_stat; /* TISR/IRQSTATUS interrupt status */
|
|
|
+ void __iomem *irq_ena; /* irq enable */
|
|
|
+ void __iomem *irq_dis; /* irq disable, only on v2 ip */
|
|
|
+ void __iomem *pend; /* write pending */
|
|
|
+ void __iomem *func_base; /* function register base */
|
|
|
+
|
|
|
+ unsigned long rate;
|
|
|
+ unsigned reserved:1;
|
|
|
+ unsigned posted:1;
|
|
|
+ struct timer_regs context;
|
|
|
+ int (*get_context_loss_count)(struct device *);
|
|
|
+ int ctx_loss_count;
|
|
|
+ int revision;
|
|
|
+ u32 capability;
|
|
|
+ u32 errata;
|
|
|
+ struct platform_device *pdev;
|
|
|
+ struct list_head node;
|
|
|
+};
|
|
|
+
|
|
|
+int omap_dm_timer_reserve_systimer(int id);
|
|
|
+struct omap_dm_timer *omap_dm_timer_request(void);
|
|
|
+struct omap_dm_timer *omap_dm_timer_request_specific(int timer_id);
|
|
|
+struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap);
|
|
|
+int omap_dm_timer_free(struct omap_dm_timer *timer);
|
|
|
+void omap_dm_timer_enable(struct omap_dm_timer *timer);
|
|
|
+void omap_dm_timer_disable(struct omap_dm_timer *timer);
|
|
|
+
|
|
|
+int omap_dm_timer_get_irq(struct omap_dm_timer *timer);
|
|
|
+
|
|
|
+u32 omap_dm_timer_modify_idlect_mask(u32 inputmask);
|
|
|
+struct clk *omap_dm_timer_get_fclk(struct omap_dm_timer *timer);
|
|
|
+
|
|
|
+int omap_dm_timer_trigger(struct omap_dm_timer *timer);
|
|
|
+int omap_dm_timer_start(struct omap_dm_timer *timer);
|
|
|
+int omap_dm_timer_stop(struct omap_dm_timer *timer);
|
|
|
+
|
|
|
+int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source);
|
|
|
+int omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload, unsigned int value);
|
|
|
+int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload, unsigned int value);
|
|
|
+int omap_dm_timer_set_match(struct omap_dm_timer *timer, int enable, unsigned int match);
|
|
|
+int omap_dm_timer_set_pwm(struct omap_dm_timer *timer, int def_on, int toggle, int trigger);
|
|
|
+int omap_dm_timer_set_prescaler(struct omap_dm_timer *timer, int prescaler);
|
|
|
+
|
|
|
+int omap_dm_timer_set_int_enable(struct omap_dm_timer *timer, unsigned int value);
|
|
|
+int omap_dm_timer_set_int_disable(struct omap_dm_timer *timer, u32 mask);
|
|
|
+
|
|
|
+unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer);
|
|
|
+int omap_dm_timer_write_status(struct omap_dm_timer *timer, unsigned int value);
|
|
|
+unsigned int omap_dm_timer_read_counter(struct omap_dm_timer *timer);
|
|
|
+int omap_dm_timer_write_counter(struct omap_dm_timer *timer, unsigned int value);
|
|
|
+
|
|
|
+int omap_dm_timers_active(void);
|