I tested this series on da850evm from commit
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
on the SoC and J15 on the baseboard for other da850 users).
mount config /config -t configfs
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 >
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
> 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
> # mount config /config -t configfs
> # mkdir /config/gpio-pwm/
minor: I observed that the configfs directory was 'gpio_pwm' not
> The new PWM device will appear as /sys/class/pwm/gpio-pwm..
> * 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./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/
> Signed-off-by: Bill Gatliff
Overall this is a really easy to user userspace interface -- it was a
pleasure to setup and test.
Tested-by: Ben Gardiner