[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200323232648.GC9140@localhost>
Date: Mon, 23 Mar 2020 16:26:48 -0700
From: Richard Cochran <richardcochran@...il.com>
To: Vladimir Oltean <olteanv@...il.com>
Cc: davem@...emloft.net, f.fainelli@...il.com,
vivien.didelot@...il.com, andrew@...n.ch, christian.herber@....com,
yangbo.lu@....com, netdev@...r.kernel.org
Subject: Re: [PATCH net-next 4/4] net: dsa: sja1105: configure the PTP_CLK
pin as EXT_TS or PER_OUT
On Tue, Mar 24, 2020 at 12:59:24AM +0200, Vladimir Oltean wrote:
> From: Vladimir Oltean <vladimir.oltean@....com>
>
> The SJA1105 switch family has a PTP_CLK pin which emits a signal with
> fixed 50% duty cycle, but variable frequency and programmable start time.
>
> On the second generation (P/Q/R/S) switches, this pin supports even more
> functionality. The use case described by the hardware documents talks
> about synchronization via oneshot pulses: given 2 sja1105 switches,
> arbitrarily designated as a master and a slave, the master emits a
> single pulse on PTP_CLK, while the slave is configured to timestamp this
> pulse received on its PTP_CLK pin (which must obviously be configured as
> input). The difference between the timestamps then exactly becomes the
> slave offset to the master.
>
> The only trouble with the above is that the hardware is very much tied
> into this use case only, and not very generic beyond that:
> - When emitting a oneshot pulse, instead of being told when to emit it,
> the switch just does it "now" and tells you later what time it was,
> via the PTPSYNCTS register. [ Incidentally, this is the same register
> that the slave uses to collect the ext_ts timestamp from, too. ]
> - On the sync slave, there is no interrupt mechanism on reception of a
> new extts, and no FIFO to buffer them, because in the foreseen use
> case, software is in control of both the master and the slave pins,
> so it "knows" when there's something to collect.
>
> These 2 problems mean that:
> - We don't support (at least yet) the quirky oneshot mode exposed by
> the hardware, just normal periodic output.
> - We abuse the hardware a little bit when we expose generic extts.
> Because there's no interrupt mechanism, we need to poll at double the
> frequency we expect to receive a pulse. Currently that means a
> non-configurable "twice a second".
>
> Signed-off-by: Vladimir Oltean <vladimir.oltean@....com>
Acked-by: Richard Cochran <richardcochran@...il.com>
Powered by blists - more mailing lists