One more thing, just defining pinmux in the overlay will have no effect. The 
pinmux will only be configured as part of installing the driver. Just before 
the kernel calls the driver probe function, it sets up the pinmux as defined by 
the pinctrl definition. 

Regards,
John




> On Nov 27, 2015, at 3:58 PM, John Syne <[email protected]> wrote:
> 
> GPIO MODE SETTINGS
> Bit 6 Bit 5   Bit 4   Bit 3   Bit 2,1,0
> Slew Control  Receiver Active Pullup/Pulldown Enable Pullup/down      Mux Mode
> 0 Fast        0 Disable       0 Pulldown select       0 Enabled       000 
> Mode 0 to
> 1 Enable      1 Pullup select 1 Disabled      111 Mode 7       
> e.g. OUTPUT GPIO(mode7) 0x07 pulldown, 0x17 pullup, 0x?f no pullup/down
> e.g. INPUT GPIO(mode7) 0x27 pulldown, 0x37 pullup, 0x?f no pullup/down
> TRM Table 9-60                        
> 
> 
> 
> From the table above, 0x27 in an input and 0x17 is an output. My guess is 
> that there is some conflict that occurs and that is why the config isn’t set 
> correctly. What does your overlay look like and what do you see when you 
> install the overlay?
> 
> Regards,
> John
> 
> 
> 
> 
>> On Nov 27, 2015, at 1:03 PM, Riley Porter <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> William,
>> 
>> Thanks.  This basically is exactly what I did reading johns reply.  I guess 
>> my main disconnect here is.  I can apply a device tree overlay that I make.  
>> I see it "applied" in dmesg and in slots.  However the pinmux output from 
>> cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins continues to show 0x27 
>> for their modes when I specifically set the dtc to 0x17.  
>> 
>> I have not actually tried to use it as an input in code yet.  Merely have 
>> been seeing that it is not "applying" what i thought it should.  Perhaps I 
>> am looking at the wrong pinoutput?
>> 
>> for example P9_11's offset is 0x70 and its PIN value is 28.  So  | grep 870
>> 
>> root ~/bb.org <http://bb.org/>-overlays # cat 
>> /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 870
>> pin 28 (44e10870.0) 00000027 pinctrl-single 
>> 
>> which is not 0x17?
>> 
>> I am being very wordy here just to make sure you guys know exactly what I am 
>> doing and my expectations.  
>> 
>> 
>> 
>> So does anything I am doing look wrong?
>> 
>> 
>> 
>> Again thanks a bunch guys for the help.  I have been at this for the better 
>> part of a week now and I agree William it's a step in the WRONG direction 
>> going to Angstrom.
>> 
>> ril3y
>> 
>> 
>> 
>> 
>> On Fri, Nov 27, 2015 at 3:45 PM, William Hermans <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 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
>> You do not have to go back to Angstrom, and if you ask me that is very 
>> counter productive. Read my guide here: 
>> http://www.embeddedhobbyist.com/2015/09/beaglebone-black-updating-device-tree-files/
>>  
>> <http://www.embeddedhobbyist.com/2015/09/beaglebone-black-updating-device-tree-files/>
>> 
>> Do note, that the kernel I talk about at the beginning is just an example. 
>> You do not have to use the exact kernel I demonstrated. Any 4.x kernel 
>> should work with that guide.
>> 
>> 
>> On Fri, Nov 27, 2015 at 1:14 PM, Riley Porter <[email protected] 
>> <mailto:[email protected]>> 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-single
>> pin 18 (44e10848.0) 00000027 pinctrl-single
>> pin 19 (44e1084c.0) 00000027 pinctrl-single
>> pin 28 (44e10870.0) 00000017 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
>> 
>> 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
>>  
>> <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] 
>> <mailto:[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 
>> <https://github.com/RobertCNelson/bb.org-overlays.git>
>> 
>> Follow the instructions readme.md <http://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] 
>>> <mailto:[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 
>>> <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] 
>>> <mailto:[email protected]>.
>>> For more options, visit https://groups.google.com/d/optout 
>>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> For more options, visit http://beagleboard.org/discuss 
>> <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] 
>> <mailto:[email protected]>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> For more options, visit http://beagleboard.org/discuss 
>> <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] 
>> <mailto:[email protected]>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> For more options, visit http://beagleboard.org/discuss 
>> <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] 
>> <mailto:[email protected]>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> For more options, visit http://beagleboard.org/discuss 
>> <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] 
>> <mailto:[email protected]>.
>> For more options, visit https://groups.google.com/d/optout 
>> <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