Unless you want to run the pin as GPIO Output mode, with the internal
pullup enabled.

gmail is really starting to annoy me today . . .

On Sat, Nov 28, 2015 at 12:04 AM, William Hermans <[email protected]> wrote:

> *I guess what you are saying is 0x17 is not a valid mode for the pins I
>> selected?  *
>>
>
> No. Read to comment in the code here:
>
> /* OUTPUT  GPIO(mode7) 0x07 pulldown, *0x17* pullup, 0x?f no pullup/down
> */
> /* INPUT   GPIO(mode7) *0x27* pulldown, 0x37 pullup, 0x?f no pullup/down
> */
>
> Whats the first word of each comment say ? I know the formating could be
> better for readability sake, but it's all explained right here in these two
> comments.
>
> In other words, 0x17 is the wrong pinmux for what you wanted to do. Unless
> you want to run the pin as GPI mode, with the internal pullup enabled.
>
>
> On Fri, Nov 27, 2015 at 11:52 PM, Riley Porter <[email protected]>
> wrote:
>
>> OK guys.
>>
>> dtc version here:
>>
>> root ~/bbb_stuff # dtc --version
>> Version: DTC 1.4.1-g71222ad7
>>
>> So after reading your comments I changed my overlay to 0x27 vs 0x17.  I
>> actually want an INPUT with a pulldown for my application.  I tried 0x17 to
>> see if I could control the pin modes for sure.  I guess what you are saying
>> is 0x17 is not a valid mode for the pins I selected?  Either way I changed
>> my overlay to this:
>>
>> /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 = <
>>
>>
>>                                 /*============= Player One Shmoo Deck
>> Inputs ================*/
>>                                 0x070 0x27  // P9_11 PINS$28 GPIO0_30 =
>> 30 Input Mode7 pulldown
>>                                 0x078 0x27  // P9_12 PINS$30 GPIO1_28 =
>> 60 Input Mode7 pulldown
>>                                 0x074 0x27  // P9_13 PINS$29 GPIO0_31 =
>> 31 Input Mode7 pulldown
>>                                 0x048 0x27  // P9_14 PINS$18 GPIO1_18 =
>> 50 Input Mode7 pulldown
>>                                 0x040 0x27  // P9_15 PINS$16 GPIO1_16 =
>> 48 Input Mode7 pulldown
>>                                 0x04c 0x27  // P9_16 PINS$19 GPIO1_19 =
>> 51 Input Mode7 pulldown
>>                                 0x15c 0x27  // P9_17 PINS$87 GPIO0_5  =
>>  5 Input Mode7 pulldown
>>                                 0x158 0x27  // P9_18 PINS$86 GPIO0_4  =
>>  4 Input Mode7 pulldown
>>
>>                                 /* 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>;
>>                         };
>>                 };
>>         };
>> };
>>
>>
>> On boot this is the state of slots and the pins in my overlay that I will
>> be changing once its applied.
>>
>> root ~/bbb_stuff # ./getpins
>> ==================================================
>> Reading Pinux Pins
>> ==================================================
>> pin 16 (44e10840.0) 00000027 pinctrl-single
>> pin 18 (44e10848.0) 00000027 pinctrl-single
>> pin 19 (44e1084c.0) 00000027 pinctrl-single
>> pin 28 (44e10870.0) 00000037 pinctrl-single
>> pin 29 (44e10874.0) 00000037 pinctrl-single
>> pin 30 (44e10878.0) 00000037 pinctrl-single
>> pin 86 (44e10958.0) 00000037 pinctrl-single
>> pin 87 (44e1095c.0) 00000037 pinctrl-single
>> root ~/bbb_stuff # slots
>>  0: PF----  -1
>>  1: PF----  -1
>>  2: PF----  -1
>>  3: PF----  -1
>>  4: P-O-L-   0 Override Board Name,00A0,Override Manuf,cape-universaln
>>
>>
>> *I remove the auto loaded overlay (From where is this loaded I am not
>> sure??)*
>>
>> root ~/bbb_stuff # echo -4 > $SLOTS
>> root ~/bbb_stuff # slots
>>  0: PF----  -1
>>  1: PF----  -1
>>  2: PF----  -1
>>  3: PF----  -1
>>
>> *I install my overlay:*
>> root ~/bbb_stuff # make install
>> -================================================-
>> INSTALLING EBB-GPIO-Example-00A0.dtbo to /lib/firmware
>> cp EBB-GPIO-Example-00A0.dtbo /lib/firmware
>> Activating EBB-GPIO-Example-00A0.dtbo overlay....
>> echo  EBB-GPIO-Example-00A0 > "/sys/devices/platform/bone_capemgr/slots"
>> -================================================-
>>
>>
>> *Check my slots*
>> root ~/bbb_stuff # slots
>>  0: PF----  -1
>>  1: PF----  -1
>>  2: PF----  -1
>>  3: PF----  -1
>>  5: 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-single
>> pin 18 (44e10848.0) 00000027 pinctrl-single
>> pin 19 (44e1084c.0) 00000027 pinctrl-single
>> pin 28 (44e10870.0) 00000027 pinctrl-single
>> pin 29 (44e10874.0) 00000027 pinctrl-single
>> pin 30 (44e10878.0) 00000027 pinctrl-single
>> pin 86 (44e10958.0) 00000027 pinctrl-single
>> pin 87 (44e1095c.0) 00000027 pinctrl-single
>>
>>
>> So it does look like its working?  My issue I guess was me overthinking
>> it.  I really wanted to make sure it was working so I changed the values to
>> 0x17 to make sure it would "change" but it was apparently a dumb setting
>> and would not work.  Ugh  Sorry to have wasted your time guys!  But I
>> learned a bunch in the process.  I have had a beagle bone for a few years
>> now but always have seen it as a "little linux box" which it is so much
>> more!  This thing is great.  I am so glad its finally working now with the
>> 4.1 kernel and overlays.
>>
>> upward and onward.
>>
>> One last question, do you guys know of any good indepth overlay device
>> tree tutorials that explain stuff fully. Like the gpio-helper.  I really
>> have no idea what and why I need this etc.
>>
>> Thanks again!
>>
>> Riley
>>
>>
>>
>> On Sat, Nov 28, 2015 at 1:33 AM, William Hermans <[email protected]>
>> wrote:
>>
>>> OK John, gotcha.
>>>
>>> So now idea how to why this is happening. But, it kind of seems like
>>> capemgr does not truly work "on the fly" as It is purported to do. e.g. it
>>> works once, but then a reboot is needed to change the pinmux value.
>>>
>>> *OR*
>>>
>>> I do recall reading somewhere in the TRM, around the part you originally
>>> talked about John( table 9-60 I think ) where you can clear the pin by
>>> writing a value of '1' to a bit location . . . but it could be the TRM was
>>> talking about something else perhaps
>>>
>>> On Fri, Nov 27, 2015 at 11:28 PM, John Syne <[email protected]> wrote:
>>>
>>>> Yeah, you are right, but he also tested on 870, which doesn’t have this
>>>> conflict. I’m just trying to avoid any other problems that might influence
>>>> this issue.
>>>>
>>>> Regards,
>>>> John
>>>>
>>>>
>>>>
>>>>
>>>> On Nov 27, 2015, at 10:22 PM, William Hermans <[email protected]>
>>>> wrote:
>>>>
>>>> As per Riley's overlay source, I only copy pasted it. But changed the
>>>> pinmux from 0x17, to 0x27 as a test.
>>>>
>>>> 0x040 0x27  // P9_15 PINS$16 GPIO1_16 = 48 Input Mode7 pullup
>>>>
>>>> On Fri, Nov 27, 2015 at 11:18 PM, John Syne <[email protected]> wrote:
>>>>
>>>>> P9_15A 16 0x840/040 GPIO1_16 48 P9_15B 34 0x888/088 GPIO1_16 64
>>>>>
>>>>> Regards,
>>>>> John
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Nov 27, 2015, at 10:10 PM, William Hermans <[email protected]>
>>>>> wrote:
>>>>>
>>>>> Or, more correctly I suppose . . .
>>>>>
>>>>> Pin value = 32 * GPIO bank + pin number.
>>>>>
>>>>> Where. . .
>>>>>
>>>>> GPIO Bank == 0-3
>>>>> Pin number == 0-31
>>>>>
>>>>> On Fri, Nov 27, 2015 at 11:07 PM, William Hermans <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> *BTW, 840 is connected to 888, so that pin might not be the best pin
>>>>>>> to test. Either way, I don’t understand why the Overlay manager doesn’t
>>>>>>> complain about a pin conflict. *
>>>>>>>
>>>>>>
>>>>>> Ok you're going to have to explain that. Since the pin I checked
>>>>>> changed. And I've always understood that . . . 32*<GPIO bank >+<GPIO bank
>>>>>> pin #>=pin value
>>>>>>
>>>>>> On Fri, Nov 27, 2015 at 11:03 PM, John Syne <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi William,
>>>>>>>
>>>>>>> I think you are right, there must be some sort of conflict on
>>>>>>> Riley’s system. BTW, 840 is connected to 888, so that pin might not be 
>>>>>>> the
>>>>>>> best pin to test. Either way, I don’t understand why the Overlay manager
>>>>>>> doesn’t complain about a pin conflict.
>>>>>>>
>>>>>>> Regards,
>>>>>>> John
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Nov 27, 2015, at 9:55 PM, William Hermans <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>> OK so I thought maybe I forgot to copy the newly compiled overlay
>>>>>>> over . . .
>>>>>>>
>>>>>>> $ ls |grep pin
>>>>>>> pinctrl-test-7-00A0.dtbo
>>>>>>> pinctrl-test-7.dts
>>>>>>>
>>>>>>> $ rm pin*
>>>>>>> $ ls |grep pin
>>>>>>> < No output >
>>>>>>>
>>>>>>> $ cp /lib/firmware/pinctrl-test-7-00A0.dtbo .
>>>>>>> $ dtc -I dtb -O dts pinctrl-test-7-00A0.dtbo >
>>>>>>> pinctrl-test-7-00A0.dts
>>>>>>>
>>>>>>> /dts-v1/;
>>>>>>>
>>>>>>> / {
>>>>>>>     compatible = "ti,beaglebone", "ti,beaglebone-black";
>>>>>>>     part-number = "pinctrl-test-7";
>>>>>>>
>>>>>>>     fragment@0 {
>>>>>>>         target = <0xdeadbeef>;
>>>>>>>
>>>>>>>         __overlay__ {
>>>>>>>
>>>>>>>             pinctrl_test_7_pins {
>>>>>>>                 pinctrl-single,pins = <0x40 0x27>;
>>>>>>>                 linux,phandle = <0x1>;
>>>>>>>                 phandle = <0x1>;
>>>>>>>             };
>>>>>>>         };
>>>>>>>     };
>>>>>>>
>>>>>>>     fragment@1 {
>>>>>>>         target = <0xdeadbeef>;
>>>>>>>
>>>>>>>         __overlay__ {
>>>>>>>
>>>>>>>             helper {
>>>>>>>                 compatible = "gpio-of-helper";
>>>>>>>                 pinctrl-names = "default";
>>>>>>>                 pinctrl-0 = <0x1>;
>>>>>>>                 status = "okay";
>>>>>>>                 linux,phandle = <0x2>;
>>>>>>>                 phandle = <0x2>;
>>>>>>>             };
>>>>>>>         };
>>>>>>>     };
>>>>>>>
>>>>>>>     __symbols__ {
>>>>>>>         pinctrl_test = "/fragment@0
>>>>>>> /__overlay__/pinctrl_test_7_pins";
>>>>>>>         test_helper = "/fragment@1/__overlay__/helper";
>>>>>>>     };
>>>>>>>
>>>>>>>     __local_fixups__ {
>>>>>>>
>>>>>>>         fragment@1 {
>>>>>>>
>>>>>>>             __overlay__ {
>>>>>>>
>>>>>>>                 helper {
>>>>>>>                     pinctrl-0 = <0x0>;
>>>>>>>                 };
>>>>>>>             };
>>>>>>>         };
>>>>>>>     };
>>>>>>>
>>>>>>>     __fixups__ {
>>>>>>>         am33xx_pinmux = "/fragment@0:target:0";
>>>>>>>         ocp = "/fragment@1:target:0";
>>>>>>>     };
>>>>>>> };
>>>>>>>
>>>>>>> Ok, so this source mangling seems odd, but just looking things over,
>>>>>>> it seems like it should work. Next, reboot, and reload, then see what
>>>>>>> happens.
>>>>>>>
>>>>>>> On Fri, Nov 27, 2015 at 10:40 PM, William Hermans <[email protected]
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> 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.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 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.
>>>>>
>>>>
>>>>
>>>> --
>>>> 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.
>>>
>>
>> --
>> 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