I've uploaded to github a couple of device drivers that might be of
1) OMAP capture driver. This driver can set up a pin on the OMAP 35xx
processor as an input capture source. The original purpose was to
measure the frequency of a signal that corresponded to the RPM of a
motor. Only 4 pins on the 35XX can be used for capture: 144, 145, 146
nd 147. The driver assumes that the capture pin is in "Mode 2"
(pwm_evt). The driver default is to set up pin 147 for capture. To
up one of the other pins as capture,invoke the driver with
"capture_pin=xxx", where "xxx" is one of 144, 145, 146 and 147. Pulse
width (rising edge to falling edge) and frequency measurements can be
made on a signal connected to the capture pin. The driver continuously
captures width and frequency counts. If there is no input on the pin,
or the input goes away, the driver will report 0 for pulse width and
frequency counts. The ioctl interface will provide an integer count
pulse width, frequency and clock source. To determine the values in
milliseconds, divide the returned count of width or frequency by the
clock source count and multiply by 1000.
2) OMAP 35xx control module pad configuration (aka cmpc) driver.
Derived from the mux driver code by Scott Ellis. This driver can set
the control module configuration register on the OMAP 35xx processor.
This allow configuring from user space the mode (from mode 0 to mode
for individual pins.
Both drivers should work, but are a little rough around the edges.
Comments are welcome.