I'm trying to use one of the timers of the DM8148 to generate a single shot pulse of programmable width. My problem is that the PWM functionality does not seem to work right in single shot mode (autoreload off). If I set the timer up as shown below, I see a short pulse when the timer expires, where I expect a longer pulse. If I turn off the toggle bit in set_pwm, I see 2 pulses as expected. Is this related to the "First match event ignored" note in figure 23-6 of SPRUGZ8B? If so is there a workaround for this?
omap_dm_timer_set_prescaler( up->rs485_timer, 0);
omap_dm_timer_set_pwm( up->rs485_timer, 0 /*def_on*/, 1 /*toggle*/, OMAP_TIMER_TRIGGER_OVERFLOW_AND_COMPARE );
omap_dm_timer_set_match(timer, 1 /*enable*/, 0xFFFFD005);
omap_dm_timer_write_counter(timer, 0xFFFFD000);
omap_dm_timer_start(timer);