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
--
2.30.0
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
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
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
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
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
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |