cdsteinkuehler / beaglebone-universal-io

Device tree overlay and support scripts for using most available hardware I/O on the BeagleBone without editing dts files or rebuilding the kernel
GNU General Public License v2.0
127 stars 54 forks source link

Usage of other capes with this universal-cape #23

Closed adityapatadia closed 9 years ago

adityapatadia commented 9 years ago

I can see that this is universal cape which uses almost all the pins of BeagleBone. Now, after loading this, if we try to use other cape like LCD with this, it gives error. Can you please clarify how to use other capes with universal-cape?

cdsteinkuehler commented 9 years ago

The idea is that you use the universal cape instead of loading other overlays, so you'd use config-pin to setup the I/O as needed for whatever hardware cape(s) you're using.

This is convenient for experimenting with the 3.8.13 kernels, where unloading a cape is a good way to get your kernel to crash, but is critical for use with newer kernels (like 3.14) which do not have the cape manager and cannot change the device tree once loaded.

Obviously some things cannot be controlled this way, so it's still necessary to craft custom device trees in some cases. The goal with cape-univeral is to make it possible to easily switch GPIO pins between various useful functions (GPIO in/out, UART, PWM, etc) without having to understand device trees and craft custom overlays.

adityapatadia commented 9 years ago

Can you give me an example how to use LCD cape with universal cape? One more question about 3.14 kernels, can you explain what are the changes compared to 3.8 kernel?

cdsteinkuehler commented 9 years ago

If you want to use an LCD cape with the universal cape, you generally need to craft a device tree for the LCD that avoids claiming the GPIO pins and pinmux in the kernel, and instead uses the default mode field in the pinmux helper to set the desired pinmux. This allows pin muxing to remain in control of the pinmux helper, meaning it can be changed at runtime. The 3.14 kernel includes a LOT of driver improvements, but there is no cape manager.

adityapatadia commented 9 years ago

Ok, I want to learn more about changes in 3.14 kernel and how things are managed without cape manager in new kernel. Can you provide some links? Also please close this issue since the doubts are cleared.

cdsteinkuehler commented 9 years ago

The best place for information on the 3.14 kernel is probably the BeagleBoard Google group archives, and/or contacting Robert C. Nelson (likely through that same BeagleBoard group). There's some information on the 3.8 to 3.14 cape migration and support status at elinux: http://elinux.org/Beagleboard:Capes_3.8_to_3.14 along with some details on crafting a custom device tree overlay, which is still necessary for using most of the capes.