A good overview of GPIO's and device tree overlays: http://derekmolloy.ie/gpios-on-the-beaglebone-black-using-device-tree-overlays/
Which is something I've been meaning to read myself for a long time . . . On Fri, Nov 27, 2015 at 8:25 PM, Charles Steinkuehler < char...@steinkuehler.net> wrote: > I don't have time to dig into the full details, but IIRC this has > popped up before. I don't think the gpio-of-helper driver actually > does anything (like setup the pinmux) if you're not actually > _exporting_ any gpios. But I could be wrong...it's been a while since > I crawled through the code. > > Oh, and your pinmux settings don't match the comments. If you really > want inputs with the pullup enabled, the value to use is 0x37, *NOT* > 0x17. It's important to enable the gpio receive buffer (bit 0x20) or > you won't be able to read the value on the GPIO pin (IIRC it will > always return zero). If you really want outputs and just didn't > update the comments, 0x17 is fine. > > On 11/27/2015 2:14 PM, Riley Porter wrote: > > Yes I am running: > > > > *Linux beaglebone 4.1.1-bone10 #1 Tue Jul 7 01:15:35 UTC 2015 armv7l > > GNU/Linux* > > > > I followed your instructions but still am at a loss. I was able to > update > > the device tree compiler and the kernel which is now: > > > > *Linux beaglebone 4.1.13-ti-r33 #1 SMP PREEMPT Fri Nov 20 11:00:50 UTC > 2015 > > armv7l GNU/Linux* > > > > Perhaps describing my exact steps might shed some light on my screw up? > > > > > > *This is the device tree I am testing with:* > > > > > > /* > >> snip for space > >> */ > >> /dts-v1/; > >> /plugin/; > >> > >> /{ > >> compatible = "ti,beaglebone", "ti,beaglebone-black"; > >> part-number = "EBB-GPIO-Example"; > >> version = "00A0"; > >> > >> fragment@0 { > >> target = <&am33xx_pinmux>; > >> > >> > >> __overlay__ { > >> ebb_example: EBB_GPIO_Example { > >> pinctrl-single,pins = < > >> > >> > >> /*============= Inputs > ================*/ > >> 0x070 0x17 // P9_11 PINS$28 GPIO0_30 = > 30 > >> Input Mode7 pullup > >> 0x078 0x17 // P9_12 PINS$30 GPIO1_28 = > 60 > >> Input Mode7 pullup > >> 0x074 0x17 // P9_13 PINS$29 GPIO0_31 = > 31 > >> Input Mode7 pullup > >> 0x048 0x17 // P9_14 PINS$18 GPIO1_18 = > 50 > >> Input Mode7 pullup > >> 0x040 0x17 // P9_15 PINS$16 GPIO1_16 = > 48 > >> Input Mode7 pullup > >> 0x04c 0x17 // P9_16 PINS$19 GPIO1_19 = > 51 > >> Input Mode7 pullup > >> 0x15c 0x17 // P9_17 PINS$87 GPIO0_5 > = 5 > >> Input Mode7 pullup > >> 0x158 0x17 // P9_18 PINS$86 GPIO0_4 > = 4 > >> Input Mode7 pullup > >> > >> /* OUTPUT GPIO(mode7) 0x07 pulldown, > 0x17 > >> pullup, 0x?f no pullup/down */ > >> /* INPUT GPIO(mode7) 0x27 pulldown, > 0x37 > >> pullup, 0x?f no pullup/down */ > >> >; > >> }; > >> }; > >> }; > >> > >> fragment@1 { > >> target = <&ocp>; > >> __overlay__ { > >> gpio_helper { > >> compatible = "gpio-of-helper"; > >> status = "okay"; > >> pinctrl-names = "default"; > >> pinctrl-0 = <&ebb_example>; > >> }; > >> }; > >> }; > >> }; > > > > > > > > I also removed ALL overlays from my system before doing this below. > > Here is my output from slots and a python program to get the pins i > wrote: > > > > *root ~/bbb_stuff # **slots* > > > > > > > > > > * 0: PF---- -1 1: PF---- -1 2: PF---- -1 3: PF---- -1 9: P-O-L- > 0 > > Override Board Name,00A0,Override Manuf,EBB-GPIO-Example* > > > > *root ~/bbb_stuff # ./getpins * > > > > > > > > *==================================================Reading Pinux > > Pins==================================================* > > > > > > > > > > > > > > > > > > *pin 16 (44e10840.0) 00000027 pinctrl-singlepin 18 (44e10848.0) 00000027 > > pinctrl-singlepin 19 (44e1084c.0) 00000027 pinctrl-singlepin 28 > > (44e10870.0) 00000017 pinctrl-singlepin 29 (44e10874.0) 00000027 > > pinctrl-singlepin 30 (44e10878.0) 00000027 pinctrl-singlepin 86 > > (44e10958.0) 00000027 pinctrl-singlepin 87 (44e1095c.0) 00000027 > > pinctrl-single* > > > > You can clearly see I have requested them all to be 0x17? > > > > *Here are the alias's I am using:* > > > > *pins='cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins'**slots='cat > > /sys/devices/platform/bone_capemgr/slots'* > > > > > > *This is the command i used to compile the dt.* > > *dtc -O dtb -o EBB-GPIO-Example-00A0.dtbo -b 0 -@ EBB-GPIO-Example.dts* > > > > *This is the command I used to install it:* > > *echo EBB-GPIO-Example-00A0 > > "/sys/devices/platform/bone_capemgr/slots"* > > > > > > *This is the dmesg output after installing the overlay:* > > > > > > > > > > > > > > *[ 2629.259630] bone_capemgr bone_capemgr: part_number > > 'EBB-GPIO-Example-00A0', version 'N/A'[ 2629.259679] bone_capemgr > > bone_capemgr: slot #11: override[ 2629.259700] bone_capemgr > bone_capemgr: > > Using override eeprom data at slot 11[ 2629.259722] bone_capemgr > > bone_capemgr: slot #11: 'Override Board Name,00A0,Override > > Manuf,EBB-GPIO-Example'[ 2629.271307] gpio-of-helper ocp:gpio_helper: > > ready[ 2629.271555] bone_capemgr bone_capemgr: slot #11: dtbo > > 'EBB-GPIO-Example-00A0.dtbo' loaded; overlay id #0* > > > > > > > > So any help guys would be really appreciated! I am thinking that I must > be > > just doing something wrong. Perhaps the example device tree I am using > is > > outdated? Would someone be willing to share with me a GPIO device tree > > that works with kernel 4.1? Also I have tried the dt builder online: > > > > > http://kilobaser.com/blog/2014-07-28-beaglebone-black-devicetreeoverlay-generator#1gpiodto > > > > But this seems to not work also. Thanks again everyone. > > > > > > Riley > > > > On Thu, Nov 26, 2015 at 2:13 PM, John Syne <john3...@gmail.com> wrote: > > > >> That is strange because it seems to be working for everyone else. What > is > >> your kernel version? > >> > >> If you are using kernel version 4.1 or higher, then do the following on > >> your BBB > >> > >> git clone https://github.com/RobertCNelson/bb.org-overlays.git > >> > >> Follow the instructions readme.md file. My guess is you don’t have the > >> correct Device Tree Compiler, but this repo will install the correct > >> version. > >> > >> Regards, > >> John > >> > >> > >> > >> > >> On Nov 26, 2015, at 8:35 AM, Riley Porter <rileypor...@gmail.com> > wrote: > >> > >> Hey guys, > >> > >> I have been fighting this for a few days now. But it seems to me that > no > >> matter what I do I cannot get the pinmux'ing to work when applying > overlays > >> in debian. I have tried 7.8 and 8.2 and either is really different. > >> > >> I was looking around to see if I was the only one in this boat and it > >> turns out I found a post on stack exchange that describes my issue > >> perfectly. > >> > >> Unfortunately the "answer" was to install angstrom. I was hoping > someone > >> on the list would have some secret answer as to why applying an overlay > was > >> not changing the pinmux's? > >> > >> I would very much like to stick with debian but if the answer is go back > >> angstrom I guess I can live with that. > >> > >> Thanks > >> > >> -- > >> 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 beagleboard+unsubscr...@googlegroups.com. > >> For more options, visit https://groups.google.com/d/optout. > >> > >> > >> -- > >> 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 beagleboard+unsubscr...@googlegroups.com. > >> For more options, visit https://groups.google.com/d/optout. > >> > > > > > -- > Charles Steinkuehler > char...@steinkuehler.net > > -- > 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 beagleboard+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.