Ambiguous Beaglebone Black P9 header pinout

There are two pins on the Beaglebone Black P8 header which are P9_41A/P9_41B and P9_42A/P9_42B. I guess there are two separate CPU pins which can be output to the same header pin? How do I choose which one is connected?

You’re talking about the Beaglebone (white, green, black) P9 header. Perhaps you want to adapt your subject.

Yes, two (digital) CPU balls are connected to a single header pin at P9_41 and P9_42. But there is no A or B version, at least in libpruio.

Ok, so how do I choose between A and B for these pins then?


I saw the .dtsi files that are already mentioned, from which one gets the .dts file recommendations and I think the fellows at are trying to mainline the parts on the AI (I think you are discussing this board).

So, look in /lib/firmware/ and look at their repo. under /BeagleBoard-DeviceTrees. This may be of some help. To familiarize oneself w/ the .dts and .dtsi files of which board one is using is helpful. From my perspective, these files can help out a great deal.

Linux has their files and has their files. I would look at both to learn what is mainline, what is biased to only boards, and then compare and contrast.

I perform this idea in time and a lot to try to function in this world. It is not easy. It takes time and patience.


P.S. But…I would start, if you are indeed using the AI, in /lib/firmware/ of their current images and/or go to the site where they have /BeagleBoard-DeviceTrees/srm/arm/ to review their ideas of what already works and what they have that is maintained. I really go to these places online to look over their work they already performed. It is an abundance of info. (too much for one man/woman to handle at first) but it may be worth it in the long run if you plan on using these boards that are already made, what will be made, and to know Linux a bit better on how the Device Tree Specification is handled and etc.

Where’s A or B? There’s nothing ambiguous, one header pin and one macro:



P9_41A, P9_41B

I think I should switch one of them to input whenever I want to work with the other, right?

Can you find those pins on your board headers?

I think a professional pinmux tool should care about that safety issue (setting both CPU balls in oposite output states can damage the CPU).

Sure, I can. These two CPU pins both are connected to P9_41 pin of the header as far as I understand.

Oh wait… Do you mean libpruio takes care of that? E.g., I can enable a mode of P9_41A and then P9_41B is automatically disabled? So I get the output of P9_41A on P9_41 header contact?

Yes, there’s no A or B pin in libpruio. Just choose a function on P9_41 and libpruio sets the matching CPU ball (after setting the other ball in GPIO input mode, no resitor).