Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1060468pxb; Fri, 26 Feb 2021 01:13:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJz3ooXAR8BGwKu/DCwye0TcLAkmK0IPR73Kaaj9FJ85D2J4BxHcEq84NbI+JHDf9hF8ISLL X-Received: by 2002:a17:907:778d:: with SMTP id ky13mr1384801ejc.291.1614330817431; Fri, 26 Feb 2021 01:13:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614330817; cv=none; d=google.com; s=arc-20160816; b=manbgGDgOGc/yXbh2N49j4uxNNL7iIF6+QXoOyS8I1gw26G2kMx2o2T1U8z08yCOTL VwDvwcWiX0VhvISkWtZH1H/qcKinycikHFyPlmr4rnOfu5ts+wcIcbT+4Ecz8hKowKAv D1o4qtsbR9cKfKrqvWjKs7slFY073RaP1s1s7BJt+8YqatESnmz5G8GnLdaHv9vTYEti xEpXOFojMXqqQGInxrLLiOrFo6l/2zXkxChBdBPCNov0ZZpL1zmZf9T/jxQ9ryvY4k+5 lpMZEQnBq2i4UplAEwRTasoJjBHs1DnmeBgvqXhJcml6MkQYkx/7CbgoNQIRZ8u7c1Lv d8uQ== 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=yLoJ842G+fp7pkgxM0GG8k9LyZtjhVqX3CtoMkJcbmQ=; b=f8lwQdP//oG+d9F5gdRatyROFLZ0rL3Suzu/qWTnCGtyp8jEUJDWagaQk1m06R53+8 GCNW/IedUi9pI8e5/Z25Sv4BJr3TIkvjB7XVD7OX5bPn+qdJ6u448gikBB2/KLTTE6Ec DgeOBOO57GVOn31uc+VdIlRJfUUqOeTzomE8A7+PpdBZC0Q8uqw1jFC3kr+tgkdWSm3H 69sYV987SQsJpr2v0Pxb1wm0offPmPI5NfkyZfGlPAKUjWdmcEzcsJyJLOIc8t6DRzZE 5tc2rFRFupY4nhxJ5t1ru46Ogxgm2qof0x2unjl2oWwpZHMCLYIHL6Ui9Im8ic/AoyLQ hKyQ== 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 gn26si5505901ejc.525.2021.02.26.01.13.15; Fri, 26 Feb 2021 01:13:37 -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 S230121AbhBZJKa (ORCPT + 99 others); Fri, 26 Feb 2021 04:10:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230040AbhBZJJS (ORCPT ); Fri, 26 Feb 2021 04:09:18 -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 3839DC061786 for ; Fri, 26 Feb 2021 01:08:38 -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 1lFZ6u-00032j-Ex; Fri, 26 Feb 2021 10:08:32 +0100 Received: from ore by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1lFZ6t-0002r9-Qd; Fri, 26 Feb 2021 10:08:31 +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 v7 0/2] add support for GPIO or IRQ based evemt counter Date: Fri, 26 Feb 2021 10:08:28 +0100 Message-Id: <20210226090830.10927-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 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 | 243 ++++++++++++++++++ 5 files changed, 323 insertions(+) create mode 100644 Documentation/devicetree/bindings/counter/interrupt-counter.yaml create mode 100644 drivers/counter/interrupt-cnt.c -- 2.29.2