Hi Bill, I tested this series on da850evm from commit 60124de319dc2800c0f75f44bf84471a8de0dbc5 of git://git.billgatliff.com/pwm.git. With the following commands I was able to observe the production of a 100Hz 50% output on a GPIO (specifically GPIO #125 which is GPIO7[13] on the SoC and J15[13] on the baseboard for other da850 users). mount config /config -t configfs mkdir /config/gpio_pwm/125 echo 1 > /sys/class/pwm/gpio_pwm\:125/export echo 10000000 > /sys/class/pwm/gpio_pwm\:125/period_ns echo 5000000 > /sys/class/pwm/gpio_pwm\:125/duty_ns echo 1 > /sys/class/pwm/gpio_pwm\:125/run I noticed that the following command did not stop the pwm output. echo 0 > /sys/class/pwm/gpio_pwm\:125/run But the following command did (and I did not need to echo 1 > /sys/class/pwm/gpio_pwm\:125/unexport first) rm -rf /config/gpio_pwm/125 The observations from my testing above are repeated in context below: On Thu, Mar 31, 2011 at 11:59 PM, Bill Gatliff <bgat@xxxxxxxxxxxxxxx> wrote: > Emulates a PWM device using a GPIO pin and an hrtimer. Subject > to CPU, scheduler and hardware limitations, can support many > PWM outputs, e.g. as many as you have GPIO pins available for. > > On a 200 MHz ARM9 processor, a PWM frequency of 100 Hz can be attained > with this code so long as the duty cycle remains between about 20-80%. > At higher or lower duty cycles, the transition events may arrive too > close for the scheduler and CPU to reliably service. > > This driver supports creation of new GPIO+hrtimer PWM devices via > configfs: > > # mount config /config -t configfs > # mkdir /config/gpio-pwm/<gpio number> minor: I observed that the configfs directory was 'gpio_pwm' not 'gpio-pwm.' > The new PWM device will appear as /sys/class/pwm/gpio-pwm.<gpio number>. > > Caveats: > * The GPIO pin number must be valid, not already in use > * The output state of the GPIO pin is configured when the PWM starts > running i.e. not immediately upon request, because the polarity of > the inactive state of the pin isn't known until the pwm device's > 'polarity' attribute is configured > * After creating and binding the pwm device, you must then request > it by writing to /sys/class/pwm/gpio-pwm.<gpio number>/export > > Unbind and destroy the pwm device by first stopping and unexporting > the pwm device under sysfs as usual; then do: I observed that # echo 0 > /sys/class/pwm/gpio_pwm\:125/run did not stop the pwm output and that # echo 1 > /sys/class/pwm/gpio_pwm\:125/unexport was not required before rm -rf'ing the /config directory: > # rm -rf /config/gpio-pwm/<gpio number> > Signed-off-by: Bill Gatliff <bgat@xxxxxxxxxxxxxxx> Overall this is a really easy to user userspace interface -- it was a pleasure to setup and test. Tested-by: Ben Gardiner <bengardiner@xxxxxxxxxxxxxx> Best Regards, Ben Gardiner --- Nanometrics Inc. http://www.nanometrics.ca -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html