Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp3065427pxb; Mon, 1 Mar 2021 00:06:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJx4CpRTihA/iW9ZzlaWNBwcZ7A9lYVPIJsrY6czZiMP8ucIm01pTtQHPI4Ox4cwk1i3hfkt X-Received: by 2002:a05:6402:d09:: with SMTP id eb9mr15263376edb.285.1614586014387; Mon, 01 Mar 2021 00:06:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614586014; cv=none; d=google.com; s=arc-20160816; b=KgqJRGGhwRTGYWCpXtSCG+p7Mwv+vsWrv2enZ5Y24FHV0Ql9jkGgcbZ1ZK4aWPemro 83MAOmAkeXS0F/Otn9FZJBwtxOeTHhD42L5PCA1snI/SB1BznAhjZSKCv8DiLv1Gcrhm PDMnRc6AdBRS9QTRD7formtAHHD8enGDPxCgoniOZX0wxhipfLy3qwSphTYybef3HrSv jSXnmOF913+YC5Anzt/6WP3zArLolq6lYP7yp53lzZ9f5eWRAGY8fWzQBvKkxB34nbXa Ff3tzo8S4+VLbX05kiSf/DlC/B8deR1pcZsExbEYAUYLoE7yIYIVbVbA9ryVfqZleNlj 74yA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=3cjfh6qrVG9fgdo5nUQ8cqG6zp5/Q1i0LZZwQDXzPVY=; b=bWn+Alfgta2JsC/TeU0sLxeGL/IqRRq5/z17Ugnd5FZEx/xAIB2GbyljscIETgE7W9 I/zZ6ZnuLPYUvoK7GodqnlUA8JAdv3ZonkdVy3ZViJXyCfHLXMncxECtmyIK2EHhKBJj sgT7w6BCUtMdXlRJ4z9fdha6vzgxVYgyzUSnVOd1mbvfqHNTPvItyLQVFSGPKxxHQwSL 74qB9YpBFebsLfVloQhuD7FCJirWcPrdSpNU9S+XyA/a9gHy9L3HNcNP7EOdbPdB0mOE UEdGXAjGKHtHYLi8srhAEL+Obeb1Hah90oWCSXmP1ite2vhyCSWKNFs/RKFJsr4FggLF XZIw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id yr5si8225196ejb.728.2021.03.01.00.06.31; Mon, 01 Mar 2021 00:06:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232708AbhCAIFL (ORCPT + 99 others); Mon, 1 Mar 2021 03:05:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41134 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232685AbhCAIEv (ORCPT ); Mon, 1 Mar 2021 03:04:51 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EDBBEC06178A for ; Mon, 1 Mar 2021 00:04:10 -0800 (PST) Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lGdX9-0003wk-5z; Mon, 01 Mar 2021 09:04:03 +0100 Received: from ore by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1lGdX8-0005mp-Gx; Mon, 01 Mar 2021 09:04:02 +0100 From: Oleksij Rempel To: Rob Herring , William Breathitt Gray Cc: Oleksij Rempel , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Pengutronix Kernel Team , David Jander , Robin van der Gracht , linux-iio@vger.kernel.org, Linus Walleij , Jonathan Cameron Subject: [PATCH v8 0/2] add support for GPIO or IRQ based event counter Date: Mon, 1 Mar 2021 09:03:59 +0100 Message-Id: <20210301080401.22190-1-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::7 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org changes v8: - use use enum index instead of enum value for the counter function - register signal unconditionally and return error is signal revel is read changes v7: - make most of structs dynamically allocatable to assign IRQ based description to the signal - assign dev name instead for driver name to the IRQ changes v6: - rename it to interrupt-counter - driver fixes - device tree fixes 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 interrupt-counter binding counter: add IRQ or GPIO based counter .../bindings/counter/interrupt-counter.yaml | 62 +++++ MAINTAINERS | 7 + drivers/counter/Kconfig | 10 + drivers/counter/Makefile | 1 + drivers/counter/interrupt-cnt.c | 244 ++++++++++++++++++ 5 files changed, 324 insertions(+) create mode 100644 Documentation/devicetree/bindings/counter/interrupt-counter.yaml create mode 100644 drivers/counter/interrupt-cnt.c -- 2.29.2