Re: [RFC PATCH 1/3] pinctrl: add new generic pinconf config for deglitchfilter

From: boris brezillon
Date: Tue Aug 27 2013 - 02:26:14 EST


On 27/08/2013 05:55, Stephen Warren wrote:
On 08/26/2013 11:01 AM, boris brezillon wrote:
Hello Stephen,

On 26/08/2013 18:50, Stephen Warren wrote:
On 08/24/2013 03:35 PM, Boris BREZILLON wrote:
Add a new parameter to support deglitch filter configuration.
A deglitch filter works like a debounce filter but with a smaller
delay (nanoseconds).
Why not use the existing debounce property, just with a small delay
specified. It seems like that's exactly what the property is for?
That's one of the question I asked in my cover letter :-)

Indeed the at91 deglitch filter delay is not configurable and is statically
assigned to half a master clk cycle (if master clk = 133MHz -> 8 ns).
The debounce property argument is currently expressed in usecs.

This will result in always selecting the debounce filter (which is also
available on at91 SoCs) over the deglitch filter.

Could we add a flag in the deglitch argument to specify the delay unit
(nsecs or usecs) ?
If the value is hard-coded in HW, why not use non-zero (or 1) to enable
and zero to disable?

Indeed at91 pins support both deglitch and debounce filter and I have to choose
between the two given the argument value (in usec).

Here's what I can do:

if (arg >= 1/2 * slowclock) /* debounce case */
/* choose debounce filter and configure the delay
according to the given argument value */
else /* deglitch case */
/* choose deglitch filter */


Slow clock is running at 32KHz which gives a 30 usec clock cycle.


(this kind of thing is why I'm not convinced that generic pinconf works
so well... What if we need psecs in the future?)

Should I keep the at91 native pinconf binding and add the missing flags to this binding
(OUTPUT configuration flags) ?

This was another question I asked in my cover letter: wether or not the generic pinconf
binding should be used.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/