devicetree pinmuxing on beaglebone
Tim Sander
tim at krieglstein.org
Fri Apr 12 19:28:17 EDT 2013
Hi
I have a patched kernel with devicetree support. The kernel version i got
running was 3.8.4. Unfortunatly with loads of patches.
After searching hours* for the right settings for pinmux in devicetree
i came up with the following fragment which i tried to drop into the end of
am335x-bone.dts:
/ {
fragment at 0 {
target = <&am33xx_pinmux>;
__overlay__ {
wind_pins:pinctrl-single,pins = <
0x000 0x27 /* gpmc_ad0 = ad0 = P8-25 = gpio1_0|input, no
pullup, gpio mux */
0x004 0x27 /* gpmc_ad1 = ad1 = P8-24 = gpio1_1|input, no
pullup, gpio mux */
0x008 0x27 /* gpmc_ad2 = ad2 = P8-5 = gpio1_2|input, no pullup,
gpio mux */
0x00c 0x27 /* gpmc_ad3 = ad3 = P8-6 = gpio1_3|input, no pullup,
gpio mux */
0x020 0x27 /* gpmc_ad8 = ehrpwm2A = P8_19 = gpio0 22|input, no
pullup, gpio mux */
>;
};
};
};
I am not sure if the offsets/values are correct (see below) but the dtc
compiled without error. But i don't think it does any value checking?
But booting this thing i could not see any changes in the debugfs
representation of the pinmux driver. Any ideas why these pinmux changes don't
change up?
Thanks
Tim
*First the pinmux is not described in the kernel documentation for the
beaglebone. It took me quite a while to figure out that there was an magic
offset to of 0x800 to the first value. This was caused by a stupid
documentation for the am3359 chip reference where page 811 (9.3.50) only
states all functions for all mux register and refers to Table 9-10. This table
contains the offset but the names are not very descriptive and the register
description is empty ("§$%*!). But it says to look at the device datasheet.
The device datasheet then says nothing about muxing but refers to a s******
windows tool. Please fixup the documentation TI.
More information about the linux-arm-kernel
mailing list