BeagleBone Black PWM not responding to sysfs commands

have been having trouble getting the PWM on the BeagleBone Black to work. I am currently running Debian linux with the 3.8.13 kernel.

I currently have the board set to automatically load the following device tree overlays on boot: am33xx_pwm, bone_pwm_P8_19, bone_pwm_P8_34, and bone_pwm_P8_46. I have disabled the HDMI (both with audio and without audio) as well in the uEnv.txt file. After boot, I can see the three PWM pins and the proper sysfs files in those directories. I hooked up the pins directly to an oscilloscope to sanity check the setup, and can only get P8.34 to work properly.

P8.46 enumerates as pwm_test_P8_46.13. When I send the commands

`

sudo sh -c ‘echo 20000000 > period’
sudo sh -c ‘echo 1000000 > duty’
`

I get a period of 500 us and a pulse width of 100 us. The pin responds properly to commands to change polarity and run state, but not to subsequent commands to change period.

P8.19 enumerates as pwm_test_P8_19.11. When I send the commands

`

sudo sh -c ‘echo 20000000 > period’
sudo sh -c ‘echo 1000000 > duty’
`

I just get a high value on the scope (3.3V). The pin does respond properly to the command to change polarity, but not to commands to change run state (or at least not that I can see from the oscilloscope).

Just for comparison, P8.34 enumerates as pwm_test_P8_34.12. When I send the commands

`

sudo sh -c ‘echo 20000000 > period’
sudo sh -c ‘echo 1000000 > duty’
`

I get a period of 20 ms, neg pulse width of 1 ms, pk-pk voltage of 4.16V, high steady state of 3.2V, low steady state of 0V, overshoot to 3.72V, undershoot to -520 mV. The pin does respond properly to change polarity and change run state commands, as well as period change commands, as verified from an oscilloscope.

Anyone have any idea why the other two PWM pins aren’t working, and/or how to fix that problem? Can anyone replicate this problem?