return 0;
 }
 
+static int omap_dm_timer_get_pwm_status(struct omap_dm_timer *timer)
+{
+       u32 l;
+
+       if (unlikely(!timer))
+               return -EINVAL;
+
+       omap_dm_timer_enable(timer);
+       l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG);
+       omap_dm_timer_disable(timer);
+
+       return l;
+}
+
 static int omap_dm_timer_set_prescaler(struct omap_dm_timer *timer,
                                        int prescaler)
 {
        .set_load = omap_dm_timer_set_load,
        .set_match = omap_dm_timer_set_match,
        .set_pwm = omap_dm_timer_set_pwm,
+       .get_pwm_status = omap_dm_timer_get_pwm_status,
        .set_prescaler = omap_dm_timer_set_prescaler,
        .read_counter = omap_dm_timer_read_counter,
        .write_counter = omap_dm_timer_write_counter,
 
                             unsigned int match);
        int     (*set_pwm)(struct omap_dm_timer *timer, int def_on,
                           int toggle, int trigger);
+       int     (*get_pwm_status)(struct omap_dm_timer *timer);
        int     (*set_prescaler)(struct omap_dm_timer *timer, int prescaler);
 
        unsigned int (*read_counter)(struct omap_dm_timer *timer);