Pinmux Problems

I'm trying to add some new pinmux modes to the universal overlay, but
something fundamental seems to be wrong. I'm using the RCN built
machinekit image with the 3.8.13-xenomai-r79 kernel. I started with
the existing dts
(/opt/source/beaglebone-universal-io/cape-universal-00A0.dts), gave it
a new name and compiled it. When I try to load it, however, I get
*TONS* of errors, pretty much all of them looking like this:

[ 2758.176552] bone-pinmux-helper P8_07_pinmux.14: could not find pctldev for node /ocp/interrupt-controller@48200000, deferring probe
[ 2758.176578] bone-pinmux-helper P8_07_pinmux.14: Failed to get pinctrl
[ 2758.183378] platform P8_07_pinmux.14: Driver bone-pinmux-helper requests probe deferral
[ 2758.183812] bone-pinmux-helper P8_08_pinmux.15: could not find pctldev for node /ocp/edma@49000000, deferring probe
[ 2758.183834] bone-pinmux-helper P8_08_pinmux.15: Failed to get pinctrl
[ 2758.190601] platform P8_08_pinmux.15: Driver bone-pinmux-helper requests probe deferral
[ 2758.190934] bone-pinmux-helper P8_09_pinmux.16: could not find pctldev for node /fixedregulator@0, deferring probe
[ 2758.190948] bone-pinmux-helper P8_09_pinmux.16: Failed to get pinctrl

...and most of the pinmux control files don't get created in sysfs.

If I just load the cape-universal overlay that's built-in to the
kernel, it works fine.

I'm pulling the 3.8.13-xenomai-r79 kernel source, but it's going to
take a while (my local kernel git repo is very stale). Are there some
recent changes that would cause "legacy" universal capes to suddenly
stop working properly?

Problem solved...it's not an issue with the overlay, it's the
device-tree-compiler.

The dtc version on recent images is 1.4.1, but the version used by the
3.8.13 kernel is 1.2.0-g37c0b6a0. If I use the dtc from the kernel
source I can happily load a freshly compiled overlay.

Robert:
Any idea exactly what's going on? Both versions report that they
generate version 17 dtb blobs by default, but something is obviously
different in the results.

Also, I didn't see a package for the older dtc available in the repos
(just 1.4.0 and 1.4.1). Is there a way to get 1.4.x to make a dtb the
3.8.13 kernel will like or a suggested way to install the appropriate
dtc on the Machinekit images when built? I just copied the dtc binary
from the 3.8.13 kernel tree, but that's probably not a desired
end-user experience. :slight_smile:

The dtc version on recent images is 1.4.1, but the version used by the
3.8.13 kernel is 1.2.0-g37c0b6a0. If I use the dtc from the kernel
source I can happily load a freshly compiled overlay.

It should be 1.4.0 for 3.8.x kernels. As I recall.

Yeah the dtc between 3.8.x and 4.1.x+ is not compabitle..

Run this script to get a 3.8.x compatible one in jessie:

wget https://raw.githubusercontent.com/RobertCNelson/tools/master/pkgs/dtc.sh
/bin/bash dtc.sh

Regards,

Thanks, I'll see if I can get that integrated into the image builds,
but it might take me a while.