From patchwork Mon Apr 7 19:57:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jean-Baptiste Maneyrol X-Patchwork-Id: 14041771 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C14FE221D8B; Mon, 7 Apr 2025 19:57:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744055846; cv=none; b=SzE6Qre1QpP1YPJMhotFh0TLFc+0d1Q4jMPybWzlnEovAwLHnd6HrlhvAvXCCS9MnQza539S9bUCXbv4P3AocPwi9dIuNAP68YY//rY320A3mw0rpUZZrSfw19TMhDXMjmzCxtawKYeP9Hdtu0c4LKifHJuIv4+Y9W0aT3bcy9M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744055846; c=relaxed/simple; bh=v2/siHg09DAwKeiG3+f0sOCRkbEBkCscfOp3SQnO1lQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=moC7XmvvzlfDJFXtuo6p4QmWSqVxddW5bg5KIds3eaTvnV8fuCKNJSU4Q92e88gFqIZD09zkSy3jtbNKZ09sdanE0er9WqAnsVnx8i3sCl9jJYg8Wi8gSR2mhi8UUyAKlnPnc87T3bxviGokjlV12kAC9W2KmvMsjFrgXP5B0R0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bX/D3wCq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bX/D3wCq" Received: by smtp.kernel.org (Postfix) with ESMTPS id 55824C4CEE9; Mon, 7 Apr 2025 19:57:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744055846; bh=v2/siHg09DAwKeiG3+f0sOCRkbEBkCscfOp3SQnO1lQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=bX/D3wCq3syWtbi8PgRt/VPCt4EnMKJTe+WYXPsJ7kryGNQ/66c7pDWQbYcfSxfWs 1zg1q9pm9NmeB5/TtO77Qoa8BWZKkJpgKoC8N49JZ8GLVrQlyy7nqMvBrryKxplEPN ulVOBTlaosXp1yTvCzxnm/fG4ucAWRs+SM8nen70I1g2nDdRguOtRBbkp4bVh+CqXv XjoGEJ3aPpbcjA7j3zFGMtecVfNxWclQ5wGySTNg4M+K4dve4/nJprd1CWHNrifF3S xXs2yUEyunWgJ+bh9sfcEfLpTpiF5Xn3E8k6ntZnStVPuO5JznjFGg6kJ853Sy769O weBSHszpV0x4w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4046FC36018; Mon, 7 Apr 2025 19:57:26 +0000 (UTC) Date: Mon, 07 Apr 2025 21:57:16 +0200 Subject: [PATCH v2 1/2] dt-bindings: iio: imu: icm42600: add interrupt naming support Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-iio-imu-inv-icm42600-rework-interrupt-using-names-v2-1-c278acf587b2@tdk.com> References: <20250407-iio-imu-inv-icm42600-rework-interrupt-using-names-v2-0-c278acf587b2@tdk.com> In-Reply-To: <20250407-iio-imu-inv-icm42600-rework-interrupt-using-names-v2-0-c278acf587b2@tdk.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Jean-Baptiste Maneyrol X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744055845; l=1747; i=jean-baptiste.maneyrol@tdk.com; s=20240923; h=from:subject:message-id; bh=1qQnOijHkXW1Hp6AoL8pvONp5bnvT1kXFXKqEP9j4Mk=; b=rQ4NkV5spC2UdhZNwqF+1M9qINLIg72QUnqO0x/jde1Cheat9cnvpclLdIuncJYC7fuN/SeRn okKLyYxUAiFAQ5dt4TUpcNTVNqGud+ERBZtpPjFEJ6I1YmCiUxXMxT8 X-Developer-Key: i=jean-baptiste.maneyrol@tdk.com; a=ed25519; pk=bRqF1WYk0hR3qrnAithOLXSD0LvSu8DUd+quKLxCicI= X-Endpoint-Received: by B4 Relay for jean-baptiste.maneyrol@tdk.com/20240923 with auth_id=218 X-Original-From: Jean-Baptiste Maneyrol Reply-To: jean-baptiste.maneyrol@tdk.com From: Jean-Baptiste Maneyrol From: Jean-Baptiste Maneyrol Add interrupt-names field for specifying interrupt used. Only INT1 is supported by the driver currently. Add minItems 1 for interrupts since interrupt is mandatory for the driver. Signed-off-by: Jean-Baptiste Maneyrol --- .../devicetree/bindings/iio/imu/invensense,icm42600.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml index 7e4492bbd0278a336587dc5ac04da7153453da29..707f2169ce9a3ca41d81560bed15786fe010109e 100644 --- a/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml +++ b/Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml @@ -41,6 +41,17 @@ properties: interrupts: maxItems: 1 + interrupt-names: + minItems: 1 + maxItems: 1 + items: + enum: + - INT1 + - INT2 + description: | + choose chip interrupt pin to be used as interrupt input, beware that the + only support interrupt pin is INT1 for the moment. + drive-open-drain: type: boolean @@ -76,6 +87,7 @@ examples: reg = <0x68>; interrupt-parent = <&gpio2>; interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + interrupt-names = "INT1"; vdd-supply = <&vdd>; vddio-supply = <&vddio>; }; @@ -95,6 +107,7 @@ examples: spi-cpol; interrupt-parent = <&gpio1>; interrupts = <2 IRQ_TYPE_EDGE_FALLING>; + interrupt-names = "INT1"; vdd-supply = <&vdd>; vddio-supply = <&vddio>; }; From patchwork Mon Apr 7 19:57:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jean-Baptiste Maneyrol X-Patchwork-Id: 14041772 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6CEB1EE032; Mon, 7 Apr 2025 19:57:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744055847; cv=none; b=Y6MnzNKkFg8Uw0c+bO3j2OiuqD/glHEJbm6aF0DHppNVXw2YT0Sp93AxpgIkz0+aCxfK/IGo+WX6ORO/hvbsVdGIVtwg0NQl3KO1UoWqdavqWIzY7HDTGvIzhuRse0xR2qOaL51SlpnLuUS59YVlLUwcPPK/a1axJdu+juCqL4g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744055847; c=relaxed/simple; bh=0w8yAQJiPOZnV0UHv/R8A2XVkSYUyrYq+ByRjE1W+QM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nyjp0CWMofKlK9Agu+g15hJ2WFrXEeNGoy0msrY1Hl1P1Dufk2TizR1y63tFVtq94pVTonIrQuKYKb2dmUY0koS7bpbc7DmkPcqw/3Lg/f5CRDuQ1SMDwtEmkjPXlHlqo9T5D5OE9Xjw1x7k1EbWE/b9VZRQOqjZKylNnmm0ddk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g9n3ckJL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="g9n3ckJL" Received: by smtp.kernel.org (Postfix) with ESMTPS id 6306FC4CEEA; Mon, 7 Apr 2025 19:57:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1744055846; bh=0w8yAQJiPOZnV0UHv/R8A2XVkSYUyrYq+ByRjE1W+QM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=g9n3ckJLHDizLaYQFqISwBpcKh6rPB7Q7FB9LLQuU3K6UXc6/kry4ZI56J1gNXNo7 C+0Gwr9ywQtlSuurppRpdm+NuDA5c6rDv2a6PMUzu7ANmLx1NIhAZ3Cb+udNn0AWdN nRcc8xebQKc7PX37OUdlXFLf9liwkdZkJARAbwPDCQuINe/KvJ6kDNnV7KAeAef975 35INPp8CP0omVOOaM72C64Mp9rdfLWlno+YTj8gDjNAyWwsmcqRumd7zXHI5NUmzWB 1aKQfzDoSsmVFzxd+dLCcduo9f/o1RUd7tsNI/SAVeYsmQ2J5g4cdR2TULDELIWnJy yP5lGHciGc8iw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E645C369A4; Mon, 7 Apr 2025 19:57:26 +0000 (UTC) Date: Mon, 07 Apr 2025 21:57:17 +0200 Subject: [PATCH v2 2/2] iio: imu: inv_icm42600: switch to use generic name irq get Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250407-iio-imu-inv-icm42600-rework-interrupt-using-names-v2-2-c278acf587b2@tdk.com> References: <20250407-iio-imu-inv-icm42600-rework-interrupt-using-names-v2-0-c278acf587b2@tdk.com> In-Reply-To: <20250407-iio-imu-inv-icm42600-rework-interrupt-using-names-v2-0-c278acf587b2@tdk.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Jean-Baptiste Maneyrol X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744055845; l=4065; i=jean-baptiste.maneyrol@tdk.com; s=20240923; h=from:subject:message-id; bh=/VtK2uQ40gbKTy8BClZYWTjqk6A7kwyWnfPM64PZuwk=; b=HTTaFHOjNygAhaaE+ihAi5Ein9GCd0uQOmNqA89j/teBbBEzXxZxrScJRMGNkcl1j6FSwX/E3 WjQwV8y9CUbDoTT2CHNAuo7DVPpKEQak6BwAkXeWW2ujC2Rv4Zu6kfQ X-Developer-Key: i=jean-baptiste.maneyrol@tdk.com; a=ed25519; pk=bRqF1WYk0hR3qrnAithOLXSD0LvSu8DUd+quKLxCicI= X-Endpoint-Received: by B4 Relay for jean-baptiste.maneyrol@tdk.com/20240923 with auth_id=218 X-Original-From: Jean-Baptiste Maneyrol Reply-To: jean-baptiste.maneyrol@tdk.com From: Jean-Baptiste Maneyrol From: Jean-Baptiste Maneyrol Use generic fwnode_irq_get_byname() for getting interrupt pin using interrupt name. Only INT1 is supported by the driver currently. If not found fallback to first defined interrupt to keep compatibility. Signed-off-by: Jean-Baptiste Maneyrol --- drivers/iio/imu/inv_icm42600/inv_icm42600.h | 2 +- drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 17 +++++++++++++++-- drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c | 2 +- drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600.h b/drivers/iio/imu/inv_icm42600/inv_icm42600.h index 18787a43477b89db12caee597ab040af5c8f52d5..f893dbe6996506a33eb5d3be47e6765a923665c9 100644 --- a/drivers/iio/imu/inv_icm42600/inv_icm42600.h +++ b/drivers/iio/imu/inv_icm42600/inv_icm42600.h @@ -426,7 +426,7 @@ int inv_icm42600_set_temp_conf(struct inv_icm42600_state *st, bool enable, int inv_icm42600_debugfs_reg(struct iio_dev *indio_dev, unsigned int reg, unsigned int writeval, unsigned int *readval); -int inv_icm42600_core_probe(struct regmap *regmap, int chip, int irq, +int inv_icm42600_core_probe(struct regmap *regmap, int chip, inv_icm42600_bus_setup bus_setup); struct iio_dev *inv_icm42600_gyro_init(struct inv_icm42600_state *st); diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_core.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_core.c index ef9875d3b79db116f9fb4f6d881a7979292c1792..8ce817a4d5aa78cc8b228ee3064083b336c2c357 100644 --- a/drivers/iio/imu/inv_icm42600/inv_icm42600_core.c +++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_core.c @@ -683,12 +683,13 @@ static void inv_icm42600_disable_pm(void *_data) pm_runtime_disable(dev); } -int inv_icm42600_core_probe(struct regmap *regmap, int chip, int irq, +int inv_icm42600_core_probe(struct regmap *regmap, int chip, inv_icm42600_bus_setup bus_setup) { struct device *dev = regmap_get_device(regmap); struct inv_icm42600_state *st; - int irq_type; + struct fwnode_handle *fwnode; + int irq, irq_type; bool open_drain; int ret; @@ -697,6 +698,18 @@ int inv_icm42600_core_probe(struct regmap *regmap, int chip, int irq, return -ENODEV; } + /* get INT1 only supported interrupt or fallback to first interrupt */ + fwnode = dev_fwnode(dev); + if (!fwnode) + return -ENODEV; + irq = fwnode_irq_get_byname(fwnode, "INT1"); + if (irq < 0 && irq != -EPROBE_DEFER) { + dev_info(dev, "no INT1 interrupt defined, fallback to first interrupt\n"); + irq = fwnode_irq_get(fwnode, 0); + } + if (irq < 0) + return dev_err_probe(dev, irq, "error missing INT1 interrupt\n"); + irq_type = irq_get_trigger_type(irq); if (!irq_type) irq_type = IRQF_TRIGGER_FALLING; diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c index 04e440fe023aa3869529b0f0be003ea0544bfb8d..38cc0d7834fcb96dabc401f29d613cf9fc75b8f5 100644 --- a/drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c +++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c @@ -67,7 +67,7 @@ static int inv_icm42600_probe(struct i2c_client *client) if (IS_ERR(regmap)) return PTR_ERR(regmap); - return inv_icm42600_core_probe(regmap, chip, client->irq, + return inv_icm42600_core_probe(regmap, chip, inv_icm42600_i2c_bus_setup); } diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c index 2bd2c4c8e50c3fe081e882aca6c64736510b474c..f40a09c4cbfc673e76922d13d61a3634785300ec 100644 --- a/drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c +++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_spi.c @@ -64,7 +64,7 @@ static int inv_icm42600_probe(struct spi_device *spi) if (IS_ERR(regmap)) return PTR_ERR(regmap); - return inv_icm42600_core_probe(regmap, chip, spi->irq, + return inv_icm42600_core_probe(regmap, chip, inv_icm42600_spi_bus_setup); }