Where are the PWM Overlays stored?

Hi All,

Can anyone tell me where the device tree overlays for the PWM are stored? I found a post that described how to enable the PWM outputs by doing:

modprobe pwm_test
echo am33xx_pwm > /sys/devices/bone_capemgr.9/slots
echo bone_pwm_P9_14 > /sys/devices/bone_capemgr.9/slots
echo 500 > /sys/devices/ocp.2/pwm_test_P9_14./period
echo 250 > /sys/devices/ocp.2/pwm_test_P9_14.

This works for me, but I expect that there would be an am33xx_pwm-00A0.dtbo file and a bone_pwm_P9_14-00A0.dtbo file in /lib/firmware, but not only do I not find such overlays in this directory, I can’t find them anywhere on my system! What am I missing?

my uname output: Linux beaglebone 3.8.13-bone70 #1 SMP Fri Jan 23 02:15:42 UTC 2015 armv7l GNU/Linux

No idea where they have gone. That is the only location I know about. I can send you a zip file with them if you would like.

They are built-into the kernel "vmlinux"..


Greetings Robert,

Thanks a million for your help (and for being such an asset to the community in general). While I’ve been programming for a while, I’m pretty new to Linux embedded (and Linux in general). As for what overlays are available within the Kernel, is that a ‘dig through the source to learn about it’ proposition, or are they all documented somewhere? Can you point me towards good learning material either way? I’ve found plenty of device tree introductions and high level overviews, but nothing that details them exhaustively. Since the device tree and overlays seem like their own programming language, it would be nice if the dtc compiler had a good manual, and if there was some good comprehensive documentation/examples. Maybe I just haven’t dug enough…

Another minor question, is it possible to enable one of the dmtimers (4-7) PORGPOCFG pin output by way of just the device tree?

Thanks again,

Thanks for the offer. Since I wrote, In addition to Robert’s response, I also found a good article at https://briancode.wordpress.com/2015/01/06/working-with-pwm-on-a-beaglebone-black/ and, after disabling the HDMI cape in uEnv.txt, was able to get P8.36 working as PWM. My ultimate goal is to be able to write stuff in C to run under the auspices of the OS and use it’s utilities for various things while still trying to write as close to the hardware as the OS will let me (since I have a lot more experience writing bare metal).

Thanks again!