Universal Overlay, enabling a single pin

I have been trying to figure out how to get a single gpio pin to work with my ds18b20 onewire device. I have installed dtb-rebuilder and looked at the device tree definitions in am335x-boneblack.dts and I get the idea that I can comment different sections to get the specific sets of pins to work. I have an old dts file, from 9 months ago or so, but I don’t see how it fits in with universal-io.

It seems like I need a file xxx.dtsi, and they don’t look like the dts files. How do I figure this out?

Hi Ray,

This one worked for me, there are a couple of errors in the DTS code which are mentioned in the posts below the main instructions but other than that it works fine. I have 10 sensors working on the same pin returning temperature.




Thanks Dave, I appreciate your help.

I have read that post and the issue is, it uses the capemgr overlay and the image I have doesn’t have the capemgr.

Which release/kernel are you running?

You will need to download the correct dtb-rebuilder for that version kernel.

Then, go inside the src (source) folder and start with am335x-boneblack.dts and follow
the listing, including following and reading any #includes, until you find the file that
manages the pin in question. Un comment the statement that will put it in the mode
that you want. The “universal-io” has been rolled into this dtb-rebuilder source.
You do not have to go to “universal-io” separately. You will know it when you find
the file.

The only warning I would offer, is that to be sure that if the pin is currently in use
for some default mode, you need to find that, too, and comment it out. If the pin
is assigned to do two modes, the compiler will complain.

Once you have a clean “make”, check to see that the resulting “.dtb” is where it is
supposed to be, then edit the dtb= statement in the uEnv.txt file.

— Graham

Thank you for the help. I am trying to use a onewire ds18B20 temperature sensor and I also need to know how to convert the old capemgr dto to work with the universal overlay. Do I just take the fragment@1 piece and put it into a dtsi file and include it in the am335x-boneblack.dts file? Fragment@0 seems to be managed by am335x-boneblack.dts.

Then I don’t even know if the onewire driver is supported in the new kernel.