Re: [PATCH v4 3/3] counter: capture-tiecap: capture driver support for ECAP

From: Julien Panis
Date: Tue Aug 16 2022 - 06:06:20 EST




On 15/08/2022 13:20, William Breathitt Gray wrote:
On Sun, Aug 14, 2022 at 01:03:48PM -0400, William Breathitt Gray wrote:
On Wed, Aug 10, 2022 at 04:07:24PM +0200, Julien Panis wrote:
+static int ecap_cnt_function_read(struct counter_device *counter,
+ struct counter_count *count,
+ enum counter_function *function)
+{
+ *function = COUNTER_FUNCTION_INCREASE;
+
+ return 0;
+}
+
+static int ecap_cnt_action_read(struct counter_device *counter,
+ struct counter_count *count,
+ struct counter_synapse *synapse,
+ enum counter_synapse_action *action)
+{
+ *action = COUNTER_SYNAPSE_ACTION_BOTH_EDGES;
+
+ return 0;
+}
Right now you have a Signal defined for the ECAPSIG line, but there is
at least one more relevant Signal to define: the clock updating ECAPCNT.
The Synapse action of COUNTER_SYNAPSE_ACTION_BOTH_EDGES is for that
clock Signal, but for the ECAPSIG Signal you will need to report a
Synapse action based on the polarity of the next capture (i.e. whether
high or low).
I need to make a correction here. IIUC, the ECAPSIG signal doesn't
affect the count value of ECAPCNT (ECAPSIG only triggers the captures),
so the Synapse action for ECAPSIG should always be
COUNTER_SYNAPSE_ACTION_NONE. You don't need to account for the capture
polarities because they're not relevant in this particular situation:
ECAPSIG doesn't trigger the ECAPCNT count function.

William Breathitt Gray

It appears to me that you spoke about TSCNT register content (32 bits). So, you were
not talking about the Mod4 counter (2 bits).
Do you confirm that ?