lkml.org 
[lkml]   [2021]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 5/8] counter/ti-eqep: add support for latched position
From
Date
On 10/27/21 2:44 AM, William Breathitt Gray wrote:
> On Sat, Oct 16, 2021 at 08:33:40PM -0500, David Lechner wrote:
>> This adds support to the TI eQEP counter driver for a latched position.
>> This is a new extension that gets the counter count that was recorded
>> when an event was triggered. A new device-level latch_mode attribute is
>> added to select the trigger. Edge capture unit support will be needed
>> to make full use of this, but "Unit timeout" mode can already be used
>> to calculate high speeds.
>>
>> The unit timer could also have attributes for latched_time and
>> latched_period that use the same trigger. However this is not a use
>> case at this time, so they can be added later if needed.
>
> I see that "latched_count" holds the captured counter count; would this
> "latched_time" hold the captured unit timer time? If so, does that mean
> setting the latch mode to "Unit timeout" always results in a
> "latched_time" equal to 0 (assuming that's when the timeout event
> triggers)?
>

Some `latched_*` attributes will only be useful for one `latched_mode`
selection but not the other.

These latched registers are used to measure speed. There are two ways
to do this. A) measuring the change in position over a fixed time and
B) measuring the change in time for a fixed change in position. So for
A) latched_mode would be set to trigger on timeout and we would use
the latched_position for the measurement. For B) we would set the
latched_mode to trigger on reading the count register and use the
latched_time as the measurement.

...

>> static struct counter_comp ti_eqep_device_ext[] = {
>> + COUNTER_COMP_DEVICE_ENUM("latch_mode", ti_eqep_latch_mode_read,
>> + ti_eqep_latch_mode_write, ti_eqep_latch_modes),
>
> It seems more appropriate to move this alongside "latched_count" as
> Count extension because this is setting the trigger mode to latch the
> respective Count's count. Or does this particular extension also affect
> the "latched_time" capture for the unit timer?
>

In hardware, there are at least 3 registers that get latched that I
recall. They are in different subsystems (main count, unit timer,
edge capture). So as you have guessed, that is the reason for having
the trigger selection at the device level.

\
 
 \ /
  Last update: 2021-10-27 17:41    [W:0.100 / U:0.580 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site