mbox series

[v4,0/2] add support for GPIO based counter

Message ID 20210126131239.8335-1-o.rempel@pengutronix.de (mailing list archive)
Headers show
Series add support for GPIO based counter | expand

Message

Oleksij Rempel Jan. 26, 2021, 1:12 p.m. UTC
changes v4:
- use IRQ_NOAUTOEN to not enable IRQ by default
- rename gpio_ from name pattern and make this driver work any IRQ
  source.

changes v3:
- convert counter to atomic_t

changes v2:
- add commas
- avoid possible unhandled interrupts in the enable path
- do not use of_ specific gpio functions

Add support for GPIO based pulse counter. For now it can only count
pulses. With counter char device support, we will be able to attach
timestamps and measure actual pulse frequency.

Never the less, it is better to mainline this driver now (before chardev
patches go mainline), to provide developers additional use case for the counter
framework with chardev support.

Oleksij Rempel (2):
  dt-bindings: counter: add pulse-counter binding
  counter: add IRQ or GPIO based pulse counter

 .../bindings/counter/pulse-counter.yaml       |  52 ++++
 drivers/counter/Kconfig                       |  10 +
 drivers/counter/Makefile                      |   1 +
 drivers/counter/pulse-cnt.c                   | 235 ++++++++++++++++++
 4 files changed, 298 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/counter/pulse-counter.yaml
 create mode 100644 drivers/counter/pulse-cnt.c

Comments

Marc Kleine-Budde Jan. 26, 2021, 1:18 p.m. UTC | #1
On 1/26/21 2:12 PM, Oleksij Rempel wrote:
> changes v4:
> - use IRQ_NOAUTOEN to not enable IRQ by default
> - rename gpio_ from name pattern and make this driver work any IRQ
>   source.
> 
> changes v3:
> - convert counter to atomic_t

What's the guaranteed width of atomic_t? IIRC a long time ago it was 24 bit only....

Marc
Oleksij Rempel Jan. 27, 2021, 6:44 a.m. UTC | #2
On Tue, Jan 26, 2021 at 02:18:34PM +0100, Marc Kleine-Budde wrote:
> On 1/26/21 2:12 PM, Oleksij Rempel wrote:
> > changes v4:
> > - use IRQ_NOAUTOEN to not enable IRQ by default
> > - rename gpio_ from name pattern and make this driver work any IRQ
> >   source.
> > 
> > changes v3:
> > - convert counter to atomic_t
> 
> What's the guaranteed width of atomic_t? IIRC a long time ago it was 24 bit only....

32 bits. The counter is wrapped after 4294967295

Regards,
Oleksij
Marc Kleine-Budde Jan. 27, 2021, 7:10 a.m. UTC | #3
On 1/27/21 7:44 AM, Oleksij Rempel wrote:
>>> changes v3:
>>> - convert counter to atomic_t
>>
>> What's the guaranteed width of atomic_t? IIRC a long time ago it was 24 bit only....
> 
> 32 bits. The counter is wrapped after 4294967295

Note: This is only true for >= v2.6.3 :D

https://lwn.net/Articles/71732/

Feeling old,
Marc