On Fri, Aug 02, 2019 at 11:17:11AM -0500, David Lechner wrote: > On 8/2/19 4:27 AM, William Breathitt Gray wrote: > >> +static const struct counter_ops ti_eqep_counter_ops = { > >> + .count_read = ti_eqep_count_read, > >> + .count_write = ti_eqep_count_write, > >> + .function_get = ti_eqep_function_get, > >> + .function_set = ti_eqep_function_set, > >> +}; > > Are you able to provide a signal_read function, or are the Signals not > > exposed to the user by this device? Sometimes quadrature encoder devices > > provide an instanteous read of the signal lines to tell whether they are > > high or low, so I figured I'd ask. > > No, it does not look like these signals can be read directly. All right, in that case you can ignore signal_read. > > > > You should define an action_get function as well along with Synapses > > corresponding to each Signal. This will allow users to know whether the > > Synapse fires on a rising edge, falling edge, no edge, or both edges. > > > > For example, consider the drivers/counter/104-quad-8.c file. Each count > > register has three associated signal lines: Quadrature A, Quadrature B, > > and Index. > > > > Quadrature A and B are your typical quadrature encoder lines and > > depending on the function mode selected (quadrature x4, pulse-direction, > > etc.) could have a Synapse action mode of none, rising edge, falling > > edge, or both edges; see the quad8_synapse_actions_list array. > > > > In contrast, the Index signal line only has two Synapse action modes: > > rising edge (in the case preset functionality is enabled) or none. > > The encoders I have don't use the index or strobe signals, so I was > thinking maybe I should omit those two signals from the driver for the > time being since I don't have a way of testing. That should be fine for now. We can add them in a later patch down the road and keep this introduction patch simple. William Breathitt Gray