Hello!

I try to create a Kernel driver which uses the DMTimer capture mode to 
catch triggers on the GPIO of the timer. Therefore I use timer4 PIN (P8.7). 
For this driver I basicly use the Code of Dan Drowns pps-gmtimer [1].

In the initialization of the timer I changed the catch mode from 
OMAP_TIMER_CTRL_TCM_LOWTOHIGH to OMAP_TIMER_CTRL_TCM_BOTHEDGES:

ctrl = __omap_dm_timer_read(timer, OMAP_TIMER_CTRL_REG, timer->posted);
ctrl &= ~(OMAP_TIMER_CTRL_PRE | (0x07 << 2));
ctrl |= OMAP_TIMER_CTRL_AR;
  __omap_dm_timer_write(timer, OMAP_TIMER_LOAD_REG, 0, timer->posted);

ctrl |= OMAP_TIMER_CTRL_ST | *OMAP_TIMER_CTRL_TCM_BOTHEDGES* | 
OMAP_TIMER_CTRL_GPOCFG;

  __omap_dm_timer_load_start(timer, ctrl, 0, timer->posted);


In the interrupt routine I also want to save the edge of the trigger. My 
first question: *Does the DMTimer somehow save the trigger reason?* In the 
documentation of the Sitara AM335x I can't find any register of the DMTimer 
where this might be stored.
For now I put the signal also to another GPIO and read out the value of 
that GPIO at the timer the interrupt happens. But I think I might miss a 
edge.

Another way of distiguishing the edges I thought of was to set the trigger 
to "OMAP_TIMER_CTRL_TCM_LOWTOHIGH" first and then to reconfigure it to 
"OMAP_TIMER_CTRL_TCM_HIGHTOLOW"  (or vice versa) in the interrupt routine. 
My second and third question: *Is this possible? And: Can I keep the timer 
value if I do that?*

Thanks for the help,
Christoph

[1] https://github.com/ddrown/pps-gmtimer


-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to