From patchwork Mon Oct 24 12:37:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matti Vaittinen X-Patchwork-Id: 13017890 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC97DFA3740 for ; Mon, 24 Oct 2022 17:33:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229838AbiJXRdk (ORCPT ); Mon, 24 Oct 2022 13:33:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56282 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232904AbiJXRdX (ORCPT ); Mon, 24 Oct 2022 13:33:23 -0400 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63DE21217C8; Mon, 24 Oct 2022 09:08:23 -0700 (PDT) Received: by mail-lf1-x133.google.com with SMTP id o12so17499950lfq.9; Mon, 24 Oct 2022 09:08:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=SZ31JYmFe9OeMvl31YJl/+jDyOyYGwS2gqipXqgE/JY=; b=a8QiwcnfvpSSkOBFc+YL0WGUUJN3LaaE6tQs7Oqyh+fF6YhbQMxwlFRT9RvL1gCa2H NdYb4KIcxIBLt2K2+UvwckUXzBPFPRWh/HSEoHREhbkKnvcHLNB8QOjpq0/GSvXTjjKA 7dPaacxyXYZPrQvZwWHeXKkK8LkXLBc/19HYlXLsyGNdf3Yx0HNNhNgRs4ygOR4As5pn IjuI7tC03qpKDrgSPdoEEr8Gvp8v7uMs7r3eWMKn/UT3L3LxOzFdLYKXxE/7sdpUY1Ql fqTPl+LUd6UCI1athJTnYUqePNd4GB1xq3I4hH4er3Y50Ia6S39UAx3d0DftGTIg00aB eHrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SZ31JYmFe9OeMvl31YJl/+jDyOyYGwS2gqipXqgE/JY=; b=p+ni1VQMI1bKDF4mCV0wYIzt6kMa6ZV0olK80k2o0nCqxnklKygTwcllpJj6skyrZ3 zQXxv62pSlu0tvyu+1VrjE3lVW84NV/BEHzWlj7zjYVSvWuIii9QW0BJjvEXLVvG5oGN C5YBzI5THjYTc/GHl+ubgHCOpe8y3NzTZgj92jPGPN7n0jpeHBAGpoEss2+eMBQuak6c YSsVh87oMItWrrJQoOCkCwL7/eIXMPdv5yUI+HSfv+HJJDrsP6rOpqERDLaAKHRBvX2E 5ReHHSsus17UCkbDR64OeFhoQaNSubGjXa/9BfaFHg3YdcWwKX6gJKZZ1FX12h5IqNiD X3IQ== X-Gm-Message-State: ACrzQf10ySI+fxG9fZbembWETjt2HA+6xUyV9uFChFpj6Csho+jcWRg7 Y0XSV64g6Hga+aZ//c0jIKqLszPusAs= X-Google-Smtp-Source: AMsMyM6jrtptf470/Tn9hAMyX1rEqScRqGCQPpLB+WzCKvrgv6JBMzws3gKuWiMtFg96No723ThLKA== X-Received: by 2002:a2e:7a17:0:b0:277:139b:27db with SMTP id v23-20020a2e7a17000000b00277139b27dbmr112812ljc.222.1666615101139; Mon, 24 Oct 2022 05:38:21 -0700 (PDT) Received: from dc75zzyyyyyyyyyyyyyby-3.rev.dnainternet.fi (dc75zzyyyyyyyyyyyyyby-3.rev.dnainternet.fi. [2001:14ba:16f3:4a00::2]) by smtp.gmail.com with ESMTPSA id f23-20020a19ae17000000b00497b198987bsm387887lfc.26.2022.10.24.05.38.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Oct 2022 05:38:20 -0700 (PDT) Date: Mon, 24 Oct 2022 15:37:57 +0300 From: Matti Vaittinen To: Matti Vaittinen , Matti Vaittinen Cc: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Matti Vaittinen , Andy Shevchenko , Dmitry Rokosov , Nikita Yushchenko , Cosmin Tanislav , Jagath Jog J , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v5 0/3] iio: Support ROHM/Kionix kx022a Message-ID: MIME-Version: 1.0 Content-Disposition: inline Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org Add initial support for ROHM/Kionix kx022a accelerometer About the HW: KX022A accelerometer is a sensor which: - supports G-ranges of (+/-) 2, 4, 8, and 16G - can be connected to I2C or SPI - has internal HW FIFO buffer - supports various ODRs (output data rates) - support detecting special events like double tap or motion - can be configured to wake-up system when events are detected. About the series: This series adds support for only getting the accelerometer data and configuring the G-range / ODR via IIO. Motion detection or double-tap detection are not supported by the series. The other quite important but still missing piece is the runtime PM. Nevertheless, the driver should be usable and brings the basic support for getting accelerometer data. Changelog v5: - KX022A: styling/print fixes. - KX022A: fix race for requesting IRQ/populating user-space entries. - KX022A: fix few variable types - KX022A: drop unnecessary udelay() - MAINTAINERS: Change myself to be a maintainer. Changelog v4: (More detailed log in individual patches) - KX022A: mostly styling/print fixes. - KX022A: fix return value from IRQ thread handler. Changelog v3: (More detailed log in individual patches) - dt-bindings: fixed as suggested by Krzysztof - KX022A: multiple fixes as suggested by Andy - Fair to mention that couple of suggested changes are not done (Some styling, boilerplate text in KConfig) as there has been no consensus whether the suggested changes improve situation. Ultimately the decision whether these changes are mandatory lay on the shoulders of the maintainers... Sorry for that. - Enable the FIFO without module param now that the "FIFO stuck" issue can be prevented. - Fix potential race with time-stamp calculation when user-space invokes the fifo flush. - Drop the already merged regulator patches. Changelog v2: (More detailed log in individual patches) - dt-bindings: fixed as suggested by Krzysztof - dt-bindings: support both INT1 and INT2 - KX022A: multiple fixes as suggested by Jonathan - fixed SPI driver after some testing --- Matti Vaittinen (3): dt-bindings: iio: Add KX022A accelerometer iio: accel: Support Kionix/ROHM KX022A accelerometer MAINTAINERS: Add KX022A maintainer entry .../bindings/iio/accel/kionix,kx022a.yaml | 65 + MAINTAINERS | 5 + drivers/iio/accel/Kconfig | 21 + drivers/iio/accel/Makefile | 3 + drivers/iio/accel/kionix-kx022a-i2c.c | 51 + drivers/iio/accel/kionix-kx022a-spi.c | 58 + drivers/iio/accel/kionix-kx022a.c | 1142 +++++++++++++++++ drivers/iio/accel/kionix-kx022a.h | 82 ++ 8 files changed, 1427 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/accel/kionix,kx022a.yaml create mode 100644 drivers/iio/accel/kionix-kx022a-i2c.c create mode 100644 drivers/iio/accel/kionix-kx022a-spi.c create mode 100644 drivers/iio/accel/kionix-kx022a.c create mode 100644 drivers/iio/accel/kionix-kx022a.h base-commit: 9abf2313adc1ca1b6180c508c25f22f9395cc780