Date: Mon, 2 Mar 2015 20:30:58 +0100 From: Milan Obuch <freebsd-arm@dino.sk> To: Luiz Otavio O Souza <lists.br@gmail.com> Cc: freebsd-arm@freebsd.org Subject: Re: Raspberry Pi with PiTFT - some GPIO weirdness Message-ID: <20150302203058.0d44266b@zeta.dino.sk> In-Reply-To: <CAB=2f8wv9X%2B-=AwBf-_6-Pzc49icWU7KV%2BU0t_qr=uX45BjbXw@mail.gmail.com> References: <20150228111852.15affe31@zeta.dino.sk> <20150228193658.6c872779@B85M-HD3-0.alogt.com> <20150228142424.6fed0ecf@zeta.dino.sk> <CAB=2f8wv9X%2B-=AwBf-_6-Pzc49icWU7KV%2BU0t_qr=uX45BjbXw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 28 Feb 2015 15:43:30 -0300 Luiz Otavio O Souza <lists.br@gmail.com> wrote: > 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 So, with some experimenting I can confirm this works. And after looking a bit more into available docs I understand it better - even the behavior which surprised me a bit. In BCM2835 ARM peripherals, page 100, GPIO pull-up/down register, second paragraph, second sentence: GPIO pull-ups are maintained even in power down mode when the core is off. So nothing unclear anymore, it just takes a bit of time to find all relevant information bits. Regards, Milan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150302203058.0d44266b>