From: Kent Gibson <warthog618@gmail.com>
To: Hans Kurscheidt <lve0200@gmail.com>
Cc: linux-gpio@vger.kernel.org
Subject: Re: Edit/gpiomon: Question about mode
Date: Tue, 29 Mar 2022 23:25:05 +0800 [thread overview]
Message-ID: <20220329152505.GA379693@sol> (raw)
In-Reply-To: <28ae22ab-935e-5756-5caa-c8ed7274a123@gmail.com>
On Tue, Mar 29, 2022 at 03:56:36PM +0200, Hans Kurscheidt wrote:
>
> Am 29.03.2022 um 15:37 schrieb Hans Kurscheidt:
> >
> > Am 29.03.2022 um 10:51 schrieb Kent Gibson:
> > > On Tue, Mar 29, 2022 at 10:43:19AM +0200, Hans Kurscheidt wrote:
> > > > Am 29.03.2022 um 10:38 schrieb Kent Gibson:
> > > > > On Tue, Mar 29, 2022 at 10:07:57AM +0200, Hans Kurscheidt wrote:
> > > > > > Am 29.03.2022 um 05:38 schrieb Kent Gibson:
> > > > > > > On Mon, Mar 28, 2022 at 07:13:13PM +0200, Hans Kurscheidt wrote:
> > > > > > > > Am 28.03.2022 um 15:16 schrieb Hans Kurscheidt:
> > > > > > > > > Hi,
> > > > > > > > >
> > > > > > > > > what would be the right mode for gpiomon call from
> > > > > > > > >
> > > > > > > > > a shellscript executed as root from systemd at system start
> > > > > > > > >
> > > > > > > > > waiting on a Pin w/ pullup for invoking
> > > > > > > > > shutdown upon rising* edge.
> > > > > > > > > *changed
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Lots of interupts, Signals and other GPIO
> > > > > > > > > ongoing from other user APPs &
> > > > > > > > > threads in multi-user state.
> > > > > > > > 2b more precise: I wired a GPIO Pin to GND.
> > > > > > > >
> > > > > > > > Upon the cmd: sudo gpiomon -r -n1 <chip> <offset>
> > > > > > > >
> > > > > > > > the program exits immediately with 1 event,
> > > > > > > > although there was never a
> > > > > > > > rising edge due to the fix wire to GND. Is this
> > > > > > > > a feature or a bug, and is
> > > > > > > > it reproducible?
> > > > > > > >
> > > > > > > Not a feature and not reproducible for me on a
> > > > > > > Raspberry Pi4 with the
> > > > > > > setup you describe, so probably a bug specific to
> > > > > > > your hardware platform,
> > > > > > > whatever that may be.
> > > > > > >
> > > > > > > If it is 100% reproduceable for you, and assuming it
> > > > > > > is an initialisation
> > > > > > > issue so you only get the one spurious event, how
> > > > > > > about using -n2 as a
> > > > > > > workaround ;-)?
> > > > > > >
> > > > > > > Cheers,
> > > > > > > Kent.
> > > > > > It appears 2b reproduceable 100% on my OrangePi zero+
> > > > > > (Allwinner H5) and
> > > > > > using -n2 does the trick, but isn't gpiod not supposed to work on all
> > > > > > commercial HW platforms and related kernels, rather then
> > > > > > only on RPI??
> > > > > >
> > > > > gpiod will work on any platform with a supporting kernel.
> > > > > How well depends on the underlying hardware and driver.
> > > > > The RPi4 was merely a counter-example demonstrating that your issue is
> > > > > not universal, using hardware I happen to have readily available.
> > > > >
> > > > > Cheers,
> > > > > Kent.
> > > > So if I understand you right, gpiod works on sort of a logical
> > > > level, while
> > > > the HW dependend part depends of the kernel driver
> > > > implementation of the
> > > > specific HW?
> > > >
> > > >
> > > libgpiod is a userspace library and tools to access GPIO lines via the
> > > Linux GPIO character device. The actual interfacing to the hardware is
> > > performed by the kernel and appropriate drivers for your hardware.
> > > As your problem does not exhibit on other hardware, the root cause
> > > of your problem probably lies in the driver for your hardware, not in
> > > libgpiod nor the gpiolib subsystem of the kernel.
> > >
> > > But you would need to debug it further to be sure.
> > >
> > > Cheers,
> > > Kent.
> >
> > I raised a bug report at tha Armbian forum:
> >
> > https://forum.armbian.com/topic/20166-opi-zero-h5-gpiodmon-generates-spurious-interrupts-upon-invocation/
> >
> >
> >
> > I made some trial to understand if it is reproduceable, but I have
> > difficulties defining, when it happens. After RESET there is no spurious
> > event. The spurious event appears to happen, when the line was moved:
> >
> > Could you please make another trial on your RPI w/ the following
> > sequence:
> >
> > RESET, gpiomon -r -n1 -Bpull-up <chip><line> => No event, -> pull line
> > up /down, => event (as expected), gpiomon -r -n1 -Bpull-up <chip><line>
> > => false event
> >
> > There might be an issue w/ pending interrupts, when the line is bouncing
> > when pulled up/down. The 2nd gpiodmon cmd might catch one of the pending
> > interrupts. (Just an idea). This would hint to an initialisation
> > problem, that pending line states are not preempted, before the int is
> > attached.
> >
> sorry, 1 more thing,f I just let the line go up (by pull-up) and leave it
> "1", I get continuous false events on every gpiomon... cmd, just like "level
> interrupts"
>
>
And one more thing - your external pull-down has to be stronger
than the internal pull-up, else the two will will contend and leave your
line in a logical no man's land. In my testing I pulled the line
directly to ground as I'm not sure how strong the internal pull-ups are
on the RPi and didn't want to expend time hunting for an appropriately
sized resistor anyway.
Cheers,
Kent.
next prev parent reply other threads:[~2022-03-29 15:25 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-28 13:16 gpiomon: Question about mode Hans Kurscheidt
2022-03-28 17:13 ` Edit/gpiomon: " Hans Kurscheidt
2022-03-29 3:38 ` Kent Gibson
2022-03-29 8:07 ` Hans Kurscheidt
2022-03-29 8:38 ` Kent Gibson
2022-03-29 8:43 ` Hans Kurscheidt
2022-03-29 8:51 ` Kent Gibson
2022-03-29 9:03 ` Hans Kurscheidt
2022-03-29 13:37 ` Hans Kurscheidt
2022-03-29 13:56 ` Hans Kurscheidt
2022-03-29 15:25 ` Kent Gibson [this message]
2022-03-29 15:26 ` Hans Kurscheidt
2022-03-29 14:46 ` Kent Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220329152505.GA379693@sol \
--to=warthog618@gmail.com \
--cc=linux-gpio@vger.kernel.org \
--cc=lve0200@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).