All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Gary E. Miller" <gem@rellim.com>
To: "Jan Lübbe" <jlu@pengutronix.de>
Cc: linux-kernel@vger.kernel.org,
	Rodolfo Giometti <giometti@enneenne.com>,
	Ricardo Martin s <rasm@fe.up.pt>,
	James Nus s <jamesnuss@nanometrics.ca>
Subject: Re: [PATCH] PPS: Restore lost capture-clear option to pps-gpio module.
Date: Thu, 9 Apr 2015 12:49:45 -0700	[thread overview]
Message-ID: <20150409124945.2743383e@rellim.com> (raw)
In-Reply-To: <1428584709.7346.25.camel@pengutronix.de>

Yo Jan!

On Thu, 09 Apr 2015 15:05:09 +0200
Jan Lübbe <jlu@pengutronix.de> wrote:

> Hi Gary,
> 
> On Do, 2015-04-02 at 12:21 -0700, Gary E. Miller wrote:
> > In the conversion from platform to device tree the capture-clear
> > option was lost.
> > 
> > capture-clear is needed so that time_pps_fetch() will report both
> > edges of each PPS pulse.  Both edges are needed so that userland
> > programs, like gpsd, can autodetect the leading and trailing PPS
> > edges.
> 
> This is intentional. The userspace program can configure which edges
> it wants to capture at runtime.

Yes, on pps-ldisc, but no on pps-gpio.

If you think I am wrong then please show me how I can do that in my
userspace program. I have talked to several experts that could not
figure out how to do so.  They all started with the same assertion as
yours.

The time_pps_setcap() function call will not work to do so because
the PPS_CAPTUREASSERT is locked out before time_pps_getcap().

You can easily verify this with the ppstest program on a Raspberry
Pi running Debian Wheezy using an Adafruit GPS.  

Notice that info->catpure_clear can ONLY be set one place in the entire
driver, and that place is during platform probing.  pps-gpio.c line 110.
No other place.

Without info->capture_clear it is not possible to capture the clear
edge.   Check pps-gpio.c lines 68 and 82.

I would be happy to provide you ssh access to the test platform
if you think you can prove me wrong.  I have test programs I
can show you that demonstrate this.

> Only the polarity
> (assert-falling-edge) is actually determined by the hardware and must
> be described in the device tree.

Now, but when it was a platform driver the capture assert could also be
selected in the platform hardware description.  I'm just trying to
restore lost functionality.

If instead you would be in favor of always allowing capture assert that
would be good as well.

RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97701
	gem@rellim.com  Tel:+1(541)382-8588

  reply	other threads:[~2015-04-09 20:02 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-02 19:21 [PATCH] PPS: Restore lost capture-clear option to pps-gpio module Gary E. Miller
2015-04-09 13:05 ` Jan Lübbe
2015-04-09 19:49   ` Gary E. Miller [this message]
2015-04-10  8:15     ` Jan Lübbe
2015-04-10 18:13       ` Gary E. Miller

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=20150409124945.2743383e@rellim.com \
    --to=gem@rellim.com \
    --cc=giometti@enneenne.com \
    --cc=jamesnuss@nanometrics.ca \
    --cc=jlu@pengutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rasm@fe.up.pt \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.