Hello, I think I had a similar issue, and I would like to report it as well:

If you set a gpio configuration with the dto the kernel correctly loads it, 
but when you export one gpio from that peripheral for the first time, the 
kernel reset the configuration. I solved this by running a script on boot 
that exports the first GPIO for every peripheral and this actually solves 
this problem.
I think is an issue  of the kernel

Il giorno mercoledì 19 agosto 2015 08:31:32 UTC+2, Paco Dupont ha scritto:
>
> Thanks for your answer Andrew but I need that the board setup correctly 
> the pin at boot time (to avoid any trouble in the time elapsed between the 
> DTB is load and the kernel is ready).
> I'm actually facing a strange thing, 1st the number I used to set gpio3_21 
> was wrong : gpio = <107 0>; This call require the GPIO number on the bank 
> and not the PIN number. So using : gpio = <21 0>; I end up with that result 
> :
>
> root@arm:~# cat /sys/kernel/debug/gpio
> GPIOs 0-31, platform/44e07000.gpio, gpio:
>  gpio-6   (cd                  ) in  hi IRQ
>
> GPIOs 32-63, platform/4804c000.gpio, gpio:
>  gpio-53  (?                   ) out lo    
>  gpio-54  (?                   ) out lo    
>  gpio-55  (?                   ) out hi    
>  gpio-56  (?                   ) out lo    
>
> GPIOs 64-95, platform/481ac000.gpio, gpio:
>
> GPIOs 96-127, platform/481ae000.gpio, gpio:
>  gpio-117 (TOR input           ) out lo    
> root@arm:~# cat /sys/kernel/debug/gpio
> GPIOs 0-31, platform/44e07000.gpio, gpio:
>  gpio-6   (cd                  ) in  hi IRQ
>
> GPIOs 32-63, platform/4804c000.gpio, gpio:
>  gpio-53  (?                   ) out hi    
>  gpio-54  (?                   ) out lo    
>  gpio-55  (?                   ) out hi    
>  gpio-56  (?                   ) out lo    
>
> GPIOs 64-95, platform/481ac000.gpio, gpio:
>
> GPIOs 96-127, platform/481ae000.gpio, gpio:
>  gpio-117 (TOR input           ) out lo
>
> So this is nice because that's means my DTB is correctly loaded, but the 
> pinmux register didn't change :
> root@arm:~# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins|grep 9ac
> pin 107 (44e109ac.0) 00000027 pinctrl-single
>
> 0x27 means the register is set to INPUT | MODE7 ... Why ???? The gpio 
> setup and his register differ ... Can this cause me any trouble ? Or should 
> I ignore it ? Is it a problem from my pinctrl,pin setup in the DTB ?
>
>
> Le mercredi 19 août 2015 06:35:25 UTC+2, AndrewTaneGlen a écrit :
>>
>> I had trouble (viz. gave up) working with input pins with the device 
>> tree. I ended up doing all the init at run time (once I'd made sure nothing 
>> else was using the same pins in the device tree).
>> Check that you have removed any reference to the HDMI in your 
>> 'am335x-bone-common-no-capemgr.dtsi' file. I had to remove a 'status = 
>> "okay"' from the standard ''am335x-bone-common.dtsi', not sure if this is 
>> the same in the 'no cape' variant.
>>
>> For BBB expansion header P9, pin 23 (GPIO 1_17), AKA pin 49, I do the 
>> following to intialise an input for use as a switch:
>>
>> echo "49" > /sys/class/gpio/export
>> echo in > /sys/class/gpio/gpio49/direction
>> echo 1 > /sys/class/gpio/gpio49/active_low
>>
>> To read in the state I then use:
>> head -1 /sys/class/gpio/gpio49/value
>>
>> e.g., in a script, use:
>>
>> SWITCH=$(head -1 /sys/class/gpio/gpio49/value)
>>
>> if [ ${SWITCH} = "1" ]; then
>> ...
>> fi
>>
>> For outputs I use the 'standard' led interface, as already used in the 
>> BBB device tree for the heartbeat/mmc leds.
>> e.g., with the pnmux as you have done, add something like the following 
>> to the 'leds' section in the common dtsi file:
>>
>> led@6 {
>>     label = "my_led";
>>     gpios <&gpio1 16 GPIO_ACTIVE_HIGH>;
>>     linux,default-trigger = "none";
>>     default-state = "off";
>> };
>>
>> Then set the output state as follows:
>>
>> echo 1 > /sys/devices/leds.4/leds/my_led/value
>>
>> Hope that helps.
>> Andrew.
>>
>> On Wednesday, 19 August 2015 01:16:30 UTC+12, Paco Dupont wrote:
>>>
>>> I've replace the last part I added (&ocp...) by Nelson's advice on this 
>>> post : 
>>> https://groups.google.com/d/msg/beagleboard/iW4i-xy9zJw/JFrr5M9_IwAJ
>>> &gpio3 {
>>>      torout0 {
>>>           gpio-hog;
>>>           gpios = <107 0>;
>>>           output-low;
>>>           line-name = "TOR input";
>>>      };
>>> };
>>>
>>> Just trying for 1 pin but still the same output no change ...
>>>
>>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/c84b6570-b0f7-4463-91b8-c4ade04f959a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to