Attached is a patch to add my universal device tree overlay to the
-bone41 kernel source, mostly for Robert Nelson to add to the kernel builds.
If you'd like to play with this, you can find details and the config-pin
helper utility on my github site:
https://github.com/cdsteinkuehler/beaglebone-universal-io
As a reminder, this overlay enables most typically used hardware (things
like PWM and UARTs), and allows user-space run-time control of pin
multiplexing via the pinmux helper kernel module. In addition, there is
a user-space helper utility designed to make pin configuration easy for
those who don't want to mess with kernel GPIO numbers and custom device
tree overlays. This patch provides three overlays:
cape-univ-emmc
Overlay for the eMMC pins, requires the on-board eMMC to be disabled
cape-universal
Overlay that supports all pins other than eMMC and HDMI
Requires HDMI audio be disabled, works with the HDMIn "cape"
cape-universaln
Overlay that leaves the audio pins free, so you can use the default
HDMI "cape" with audio support
As a usage example, assuming you are running a stock BeagleBone Black
with one of RCN's recent 3.8 kernels and have compiled the overlay to
/lib/firmware. The HDMI cape (with audio) is loaded by default, so you
need to load the cape-universaln overlay:
# Install the overlay
sudo su -c "echo cape-universaln > /sys/devices/bone_capemgr.*/slots"
# Setup P9.26 to be UART1 RXD
sudo ./config-pin P9.26 uart
# Setup P9.27 to be a PRU direct input
sudo ./config-pin P9.27 pruin
# Setup P9.28 to be a GPIO pin with pull-up resistor
sudo ./config-pin P9.28 in+
# Report the status of P9.28:
./config-pin -q p9.28
A variety of other syntax is supported, see the README file and the
./config-pin usage for details. Also, the script is forgiving of
various pin naming conventions, so all of the following (and more) are
allowed and considered identical:
P8.07
p8-07
p8_7
P807
p87
807
8_7
87
Holler if you have any questions!