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.

Reply via email to