Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Feb 2015 15:43:30 -0300
From:      Luiz Otavio O Souza <lists.br@gmail.com>
To:        Milan Obuch <freebsd-arm@dino.sk>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: Raspberry Pi with PiTFT - some GPIO weirdness
Message-ID:  <CAB=2f8wv9X%2B-=AwBf-_6-Pzc49icWU7KV%2BU0t_qr=uX45BjbXw@mail.gmail.com>
In-Reply-To: <20150228142424.6fed0ecf@zeta.dino.sk>
References:  <20150228111852.15affe31@zeta.dino.sk> <20150228193658.6c872779@B85M-HD3-0.alogt.com> <20150228142424.6fed0ecf@zeta.dino.sk>

next in thread | previous in thread | raw e-mail | index | archive | help
On 28 February 2015 at 10:24, Milan Obuch wrote:
> On Sat, 28 Feb 2015 19:36:58 +0800
> Erich Dollansky wrote:
>
>> Hi,
>>
>> On Sat, 28 Feb 2015 11:18:52 +0100
>> Milan Obuch <freebsd-arm@dino.sk> wrote:
>>
>> > today I found some time to play a bit with my little display
>> > attached to Rasoberry Pi, and I decided to test buttons connected
>> > to GPIO, as this should work on FreeBSD already. According docs,
>> > buttons are connected to GPIO lines 23, 22, 21 and 18, leftmost
>> > first.
>> >
>> > Using basic 'gpioctl -f /dev/gpioc0 -lv' command I found only first
>> > one, on line 23, reacts. It has value 1 normally and 0 when pressed.
>> >
>> you must setup the pins as inputs first before using them as inputs. I
>> would not rely on any defaults.
>>
>> Erich
>
> According available docs, all GPIO are set to input mode after reset.
> This seems not to be the case, but that's not my point. What was a bit
> of surprise for me was even 'gpioctl -f /dev/gpioc0 -l' tells those
> pins are in input mode ('pin nn<IN>'), it did not work. And fact that
> even after power disconnect the state remains the same is even more
> weird.
>
> Anyway, I accept the necessity for setup, the question is, where should
> these setup instruction go.
>
> Regards,
> Milan

The GPIO driver do not touch the pin settings at boot, there are a few
things like the LAN reset (GPIO pin 6) where we hope the loader is
doing the right thing.

Only a few drivers are checking and making sure that the pins they use
have the right settings at boot.

What I see from PiTFT schematics is that the push buttons doesn't have
any pull-ups resistors, so it must rely on RPi settings.

Please try the following (set the pin as input with pull-up enabled):

gpioctl -c 18 in pu
gpioctl -c 21 in pu  # or 27 for rev. 2
gpioctl -c 22 in pu
gpioctl -c 23 in pu

HTH,
Luiz



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB=2f8wv9X%2B-=AwBf-_6-Pzc49icWU7KV%2BU0t_qr=uX45BjbXw>