changes v5:
- rename it to event counter, since it support different event sources
- make it work with gpio-only or irq-only configuration
- update yaml binding
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 event-counter binding
counter: add IRQ or GPIO based event counter
.../bindings/counter/event-counter.yaml | 56 ++++
drivers/counter/Kconfig | 10 +
drivers/counter/Makefile | 1 +
drivers/counter/event-cnt.c | 250 ++++++++++++++++++
4 files changed, 317 insertions(+)
create mode 100644 Documentation/devicetree/bindings/counter/event-counter.yaml
create mode 100644 drivers/counter/event-cnt.c
--
2.30.0
On Mon, Feb 08, 2021 at 02:53:45PM +0100, Oleksij Rempel wrote:
> changes v5:
> - rename it to event counter, since it support different event sources
At the risk of bikeshedding, I feel "event counter" is too general of a
phrase to be useful here -- not to mention that the Counter subsystem
concept of an "event" does not necessarily correlate to unique
interrupts (a Counter driver may generate multiple events for a given
interrupt, or even events for non-interrupt state changes). Instead, if
I understand the behavior of this particular driver correctly, it is
more apt to call this an "interrupt counter" because it is counting
interrupts regardless of the source (GPIO or not).
William Breathitt Gray
> - make it work with gpio-only or irq-only configuration
> - update yaml binding
>
> 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 event-counter binding
> counter: add IRQ or GPIO based event counter
>
> .../bindings/counter/event-counter.yaml | 56 ++++
> drivers/counter/Kconfig | 10 +
> drivers/counter/Makefile | 1 +
> drivers/counter/event-cnt.c | 250 ++++++++++++++++++
> 4 files changed, 317 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/counter/event-counter.yaml
> create mode 100644 drivers/counter/event-cnt.c
>
> --
> 2.30.0
>