Using Universal IO to set pullup/pulldown on a PRU input

I can set a PRU input as follows:

config-pin P9_27 pruin

However, I need to control the pullup/pulldown resistor as well.
This can be done when the pin is in GPIO mode.
How is this controlled in pruin mode?


The same way, by setting bits in the pinmux register.

You'll probably have to make a custom version of the universal cape to
do this. When creating the pinmux values available for user-mode
control, I only crafted pull-up/down permutations for the GPIO option
(otherwise you get a *LOT* of entries!).

By default, I set the pull-up/down for input pins based on the pin's
default state at reset (most are pull-down):

After a large dose of confusion, I got it figured out.

I’m using the univ-emmc blob on a Beaglebone Black.
I found the pin entries in the dts file, and changed the value from 0x26 to 0x2e.
Now when I use config-pin P9_27 pruin, for example, the resistor is disengaged.
I’m using the -f option and a file to set pin configurations as required. Very convenient!

This was the last piece of the puzzle in getting demo code running with TI’s PRU Cape and remoteproc.
The schematic of the cape has a resistor network connected to a switch, and the pull-down was loading
the cape’s network and not allowing the voltage to exceed threshold.

The help and the universal IO is very much appreciated!