As you may know all the guides on the Internet about BeagleBoard-XM on using the GPIOs refer to the old angstrom Linux version using the special file omap_mux in /sys/kernel/debug.
This file is no longer present on recent Ubuntu / Debian Linux images from elinux.org/. The only way to enable GPIOs is using Device Trees.
You can find very few tips on using Device Trees for Beagleboard-XM because most of the information is about the beaglebone black. Many people are asking how to use the GPIOs on Beagleboard-XM but in every case, there is no reply.
I decided to step up and deal with this missing information. This was not easy. Even though I am a professor in Embedded Systems, I had to read thousands of pages from the Technical Reference Manual, from the Linux Device Tree and so on.
In the end, I managed to put all the missing parts together and use the GPIO on the Beagleboard-XM on ubuntu 16.
I have made a very detailed guide in Greek for my students, which explains all the steps and why we use specific numbers. I have put references on every part of the guide, which will help someone to understand 100% why some things are done like the way I am writing them.
The guide is in Greek but carries many references and even a complete Device Tree Source that I utilize 5 GPIOs for input and output. You can use google translate to understand the detail, but I am also available to give hints.
The guide is available at http://arch.icte.uowm.gr/courses/embedded/OC_lab-OS-%20BeagleBoard_GPIO.pdf
Also, I have another guide for beagleboard-XM in which I solve the problem of -110 about sd card and not booting the filesystem (in most of my board this is typical). I have written a guide (in Greek) of how you can use an SD card for the first stages of the boot and a USB Flash Drive for the root file system. Also, you can install using elinux.org the image on a USB flash drive and use a small SD card of 64MB or 128MB FAT formatted to copy the contents of the FAT partition of the USB, and you will have a proper bootable system.
I believe that my guides will give a proper solution to two of the most serious problem on Beagleboard-XM: (a) not booting because -110 error on MMC, (b) Using the GPIOs
I just register to the group to post this because it took me over a week to study all the details and I believe that they will help some people in the future.