Smells of a bug. But perhaps the GPIO pinmux's need to be explicity cleared
as I mentioned above ?

On Fri, Nov 27, 2015 at 10:39 PM, William Hermans <[email protected]> wrote:

> OK so I changed to this:
>
> fragment@0 {
>         target = <&am33xx_pinmux>;
>         __overlay__ {
>             pinctrl_test: pinctrl_test_7_pins {
>                 pinctrl-single,pins = <
>                     0x040 0x27  // P9_15 PINS$16 GPIO1_16 = 48 Input Mode7
> pullup
>                 >;
>             };
>         };
>     };
>
> Compiled, copied, and then loaded the dtbo file. Then . . .
>
> $ dmesg |grep pinctrl-test-7
> [168784.685978] bone_capemgr bone_capemgr: part_number 'pinctrl-test-7',
> version 'N/A'
> [168784.706649] bone_capemgr bone_capemgr: slot #4: 'Override Board
> Name,00A0,Override Manuf,pinctrl-test-7'
> [168784.723188] bone_capemgr bone_capemgr: slot #4: dtbo
> 'pinctrl-test-7-00A0.dtbo' loaded; overlay id #0
> [169658.533949] bone_capemgr bone_capemgr: part_number 'pinctrl-test-7',
> version 'N/A'
> [169658.554579] bone_capemgr bone_capemgr: slot #5: 'Override Board
> Name,00A0,Override Manuf,pinctrl-test-7'
> [169658.565013] bone_capemgr bone_capemgr: slot #5: dtbo
> 'pinctrl-test-7-00A0.dtbo' loaded; overlay id #1
>
> This shows that both device tree overlays have been sucessfully loaded.
> Despite the fact that the previously overwritten overlay was never
> unloaded. Then . . .
>
> $ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins |grep 840
> pin 16 (44e10840.0) 00000017 pinctrl-single
>
> So . . .
> i$ cat /sys/devices/platform/bone_capemgr/slots
>  0: PF----  -1
>  1: PF----  -1
>  2: PF----  -1
>  3: PF----  -1
>  4: P-O-L-   0 Override Board Name,00A0,Override Manuf,pinctrl-test-7
>  5: P-O-L-   1 Override Board Name,00A0,Override Manuf,pinctrl-test-7
>
> oops, two overlays loaded lets see wha thappens when first one is unloaded.
>
> $ sudo sh -c "echo '-4' > /sys/devices/platform/bone_capemgr/slots"
> $ cat /sys/devices/platform/bone_capemgr/slots
>  0: PF----  -1
>  1: PF----  -1
>  2: PF----  -1
>  3: PF----  -1
>  5: P-O-L-   1 Override Board Name,00A0,Override Manuf,pinctrl-test-7
> $ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins |grep 840
> pin 16 (44e10840.0) 00000017 pinctrl-single
>
> Just as I thought, the original pinmux is persistent. So . . .
> $ sudo sh -c "echo '-5' > /sys/devices/platform/bone_capemgr/slots"
> $ cat /sys/devices/platform/bone_capemgr/slots
>  0: PF----  -1
>  1: PF----  -1
>  2: PF----  -1
>  3: PF----  -1
> $ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins |grep 840
> pin 16 (44e10840.0) 00000017 pinctrl-single
>
> Ok just as I expected. pinmux's are kept until explicitly changed. Let's
> try loading it again.
> $ sudo sh -c "echo 'pinctrl-test-7' >
> /sys/devices/platform/bone_capemgr/slots"
> $ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins |grep 840
> pin 16 (44e10840.0) 00000017 pinctrl-single
>
> Whoopsy . . ..
>
>
>
>
>
> On Fri, Nov 27, 2015 at 10:26 PM, William Hermans <[email protected]>
> wrote:
>
>> Here is what I get by following
>> https://github.com/jadonk/validation-scripts/blob/master/test-capemgr/README.md,
>> and modifying it to reflect one of the pins Riley is using. So, what I
>> suggest is that Riley has an overlay loaded that has already claimed these
>> pins. Either by experimenting previously with different values, and not
>> unloading the previous overlay. Or An overlay unbeknownst to him. I'll
>> experiment now with changing up my overlay and see what happens. But the
>> only other option really is that something on Riley's system is broken.
>>
>> /*
>>  * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
>>  *
>>  * This program is free software; you can redistribute it and/or modify
>>  * it under the terms of the GNU General Public License version 2 as
>>  * published by the Free Software Foundation.
>>  */
>> /dts-v1/;
>> /plugin/;
>>
>> / {
>>     compatible = "ti,beaglebone", "ti,beaglebone-black";
>>
>>     /* identification */
>>     part-number = "pinctrl-test-7";
>>
>>     fragment@0 {
>>         target = <&am33xx_pinmux>;
>>         __overlay__ {
>>             pinctrl_test: pinctrl_test_7_pins {
>>                 pinctrl-single,pins = <
>>                     0x040 0x17  // P9_15 PINS$16 GPIO1_16 = 48 Input
>> Mode7 pullup
>>                 >;
>>             };
>>         };
>>     };
>>
>>     fragment@1 {
>>         target = <&ocp>;
>>         __overlay__ {
>>             test_helper: helper {
>>                 compatible = "gpio-of-helper";
>>                 pinctrl-names = "default";
>>                 pinctrl-0 = <&pinctrl_test>;
>>                 status = "okay";
>>             };
>>         };
>>     };
>> };
>>
>>  $ dtc -O dtb -o pinctrl-test-7-00A0.dtbo -b 0 -@ pinctrl-test-7.dts
>>  $ sudo cp pinctrl-test-7-00A0.dtbo /lib/firmware/
>>  $ cat /sys/devices/platform/bone_capemgr/slots
>>  0: PF----  -1
>>  1: PF----  -1
>>  2: PF----  -1
>>  3: PF----  -1
>> $ sudo sh -c "echo 'pinctrl-test-7' >
>> /sys/devices/platform/bone_capemgr/slots"
>> $ cat /sys/devices/platform/bone_capemgr/slots
>> $ cat /sys/devices/platform/bone_capemgr/slots
>>  0: PF----  -1
>>  1: PF----  -1
>>  2: PF----  -1
>>  3: PF----  -1
>>  4: P-O-L-   0 Override Board Name,00A0,Override Manuf,pinctrl-test-7
>> $ dmesg |grep pinctrl-test-7
>> [168784.685978] bone_capemgr bone_capemgr: part_number 'pinctrl-test-7',
>> version 'N/A'
>> [168784.706649] bone_capemgr bone_capemgr: slot #4: 'Override Board
>> Name,00A0,Override Manuf,pinctrl-test-7'
>> [168784.723188] bone_capemgr bone_capemgr: slot #4: dtbo
>> 'pinctrl-test-7-00A0.dtbo' loaded; overlay id #0
>>
>> $ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins |grep 840
>> pin 16 (44e10840.0) 00000017 pinctrl-single
>>
>> On Fri, Nov 27, 2015 at 10:14 PM, John Syne <[email protected]> wrote:
>>
>>> I believe the pinmux gets setup in pinctrl_bind_pins() found in
>>> drivers/pinctrl.c.
>>>
>>> pinctrl_bind_pins() gets called by really_probe(), line 291 of
>>> drivers/dd.c and then calls the gpio_of_helper_probe on line 316 or 320, so
>>> I don’t think this has anything to do with gpio-of-helper.c driver.
>>> Probably need to setup some debug statements in pinctrl_bind_pins() to see
>>> why this does not work.
>>>
>>> Regards,
>>> John
>>>
>>>
>>>
>>>
>>> > On Nov 27, 2015, at 7:25 PM, Charles Steinkuehler <
>>> [email protected]> 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 <[email protected]>
>>> 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 <[email protected]>
>>> 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 [email protected].
>>> >>> 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 [email protected].
>>> >>> For more options, visit https://groups.google.com/d/optout.
>>> >>>
>>> >>
>>> >
>>> >
>>> > --
>>> > 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/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 [email protected].
>>> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to