I have the first version of my universal device tree available: https://github.com/cdsteinkuehler/beaglebone-universal-io
The general idea is to enable virtually all generally useful hardware via a single device tree, and use the pinmux helper to allow run-time setup of the pin multiplexing from user-space (no writing custom kernel drivers or editing and compiling device trees needed!). This is still a work in progress, but it's stable enough to begin testing. I would appreciate review by anyone familiar with device tree files, and particularly anyone using the various special purpose hardware (I've mostly just used the PRU and GPIO pins so far). When the device tree is loaded, all I/O pins currently default to GPIO inputs, with pull up/down resistors enabled matching the hardware reset defaults. If you would like to use UART4 to transmit some data, the device is already created (/dev/ttyO4), but it's pins are not connected to the outside world. Simply use the pinmux nodes in sysfs to set P9 pin 13 to the uart function (uart4_txd): echo uart > /sys/devices/ocp.*/P9_13_pinmux.*/state ...and you've got UART data coming out P9_13! The individual control over I/O pin multiplexing with all devices already loaded will hopefully avoid some of the problems people have been having with trying to load multiple overlays. This way you don't have to craft a custom device tree if you want to use the rts/cts lines for a UART, or perhaps don't need the data in pin of an SPI bus and would like to use it as an output. GPIO is controlled in the usual way via /sys/class/gpio, which currently requires you know the kernel gpio number of the BeagleBone pin you want to manipulate. I hope to code up an application to make this easier, but it may take some time. More details and a list of all the valid pinmux values you can use for the various pins is listed in the README on github. Comments welcome! But please stick to the merits or shortcomings of this device tree overlay. Philosophical musings on kernel internals should go in a new thread! ;-) -- Charles Steinkuehler [email protected] -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
