From nobody Mon Sep 28 17:50:00 2026 Received: from mail-43170.protonmail.ch (mail-43170.protonmail.ch [185.70.43.170]) (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 D0E5239792C; Wed, 19 Aug 2026 08:15:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127369; cv=none; b=sxYTJAFbXVKNg7Y63g3AdMI4tZidKZhhwfYU6R6UCwbA09vV1TS/KQ+vD9eoKnBaQp1b9wb4GZumqLl7StuSN2EMzLbR4hZOKOXkGAAmTGeqy1PP9/6g/V6cDTgeVAJ3E1Nl2ka9hTR7EMNyboDiIl8c3PrhByLBFE0KcKVAdtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127369; c=relaxed/simple; bh=Vy2kFGWf40LZZu/OrRKxOp27EqZPY3iYxkaZKLnSAbQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SPneYcuYFu0iC4MVyds9vRgxjKjTXESzGneZwdhPT0JOLmXOQmujh6MBZEzz3GMNdDVoIvxR3EumvOlO5oqk3HBNzf0cMnJR9C1sjFJyXh4I5aaLszxC5D7qj/2tQIQG4LqnLXDUOsh2h672Pnsf3jf0k65Mhwx0wKl+4X7r4zQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com; spf=pass smtp.mailfrom=geanix.com; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b=6grltua2; arc=none smtp.client-ip=185.70.43.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=geanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b="6grltua2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=geanix.com; s=protonmail; t=1787127346; x=1787386546; bh=sNcmNScEhpmF/4cOJIi/n2ntDi0iE/3WYicZo1sq86I=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=6grltua2VaNOoOvZHjyYhEXdSojfpY9QogKpu/0DHu6g3PWcBx4xPLZDPKwSvdqxX e1qR+rQMHXFh+BQnqH61uym9C1XQjZMOZ2BBhEWy91aXOSzBeNoshbgsZn9IKVlY53 OveiFsIfUj0pb4mZw4MyOps7IbIK5IGsgb9pGQ1hobTJkEdazZO/NATQ8KlD5oki/t Y6oLolwOZQjgnsOYiCdO98fpecXRA7kLStCN+1KVgM1bhvETuwSp6XM/pzbHwwZYfy HCOgSAUCe+6Er7G63yaD7o0ij804hZgDe2PsK8UI2YhS1e6qUoBaF0Zrm6xbQbGW4V 2+nTnZ8EONgKw== X-Pm-Submission-Id: 4hPzsY31DQz2Sd3L From: Esben Haabendal Date: Wed, 19 Aug 2026 10:15:28 +0200 Subject: [PATCH RESEND v5 1/6] dt-bindings: iio: accel: mma8452: Add drive-open-drain Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260819-mma8452-open-drain-v5-1-d8aa590d7c36@geanix.com> References: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> In-Reply-To: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Martin Kepplinger , Sean Nyekjaer , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Martin Kepplinger Cc: Esben Haabendal , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787127340; l=1037; i=esben@geanix.com; s=20240523; h=from:subject:message-id; bh=Vy2kFGWf40LZZu/OrRKxOp27EqZPY3iYxkaZKLnSAbQ=; b=Gy0zaNMyPDxrgLMRdLT/GkkvUbfVO4dK7CNbSTnBEQWpYRqGNiua8eGzqVWXmmts9P62jy/2L 4qcfjPc3BdhATmflgtmB3iou1bZtLKvfcNI3RrnUv49n5ohY+EkU/H9 X-Developer-Key: i=esben@geanix.com; a=ed25519; pk=PbXoezm+CERhtgVeF/QAgXtEzSkDIahcWfC7RIXNdEk= Add new boolean to configure selected interrupt pin to open drain instead of the default push-pull mode. Acked-by: Rob Herring (Arm) Signed-off-by: Esben Haabendal --- Documentation/devicetree/bindings/iio/accel/fsl,mma8452.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/accel/fsl,mma8452.yaml b= /Documentation/devicetree/bindings/iio/accel/fsl,mma8452.yaml index b0dd2b4e116a..20701aa725d0 100644 --- a/Documentation/devicetree/bindings/iio/accel/fsl,mma8452.yaml +++ b/Documentation/devicetree/bindings/iio/accel/fsl,mma8452.yaml @@ -39,6 +39,12 @@ properties: minItems: 1 maxItems: 2 =20 + drive-open-drain: + $ref: /schemas/types.yaml#/definitions/flag + description: the interrupt line will be configured as open drain, whic= h is + useful if several sensors share the same interrupt line. (This bindi= ng is + taken from pinctrl.) + vdd-supply: true vddio-supply: true =20 --=20 2.55.0 From nobody Mon Sep 28 17:50:00 2026 Received: from mail-43172.protonmail.ch (mail-43172.protonmail.ch [185.70.43.172]) (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 BC1913C279D; Wed, 19 Aug 2026 08:15:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127365; cv=none; b=NevLC6bT3ilDLlu/gzAKQL1pc91/ndEThgZeE51mpTkNAHPnKbwjiDRfdp0LWHHlxvon/iVW54JOjFQKYrtf3oQqseSF4ZD2aQgHEvPBOHyP/erjyD0o7Z+/ba0snO5LeI2wk0SAR8O/H67mAqsZfJtacK9VOVcuenyngD7DfHU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127365; c=relaxed/simple; bh=tzfxlXisttEhbwqNjklxdIHoQtWVVaaErftAi88NK6M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dtNLArLw80U0DnHgznuhFVMw2UiKa1Qb5GA46DPM6/oTS0wi2CcAdHlMQU0Zsk7k/c81M9SEJ0fhp8VIXQLTfEbc+I/kkKMEEjqIjyhZHTsKNHdRMARb2/PQEdrunY/vGabCXBQcHhD3YFBlyq3c+y85Q0/ruRep+XE506/mhnI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com; spf=pass smtp.mailfrom=geanix.com; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b=v02DpV0G; arc=none smtp.client-ip=185.70.43.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=geanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b="v02DpV0G" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=geanix.com; s=protonmail; t=1787127348; x=1787386548; bh=XJ9dsEYOltvcV8dNsiIVCzLj7uR8oL/YLG98qkFwY0A=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=v02DpV0GqhNg/imemKMn6a5vk7MHa/ZklJbBDimVfISWuzREBFMe22FSbv5fb3pI0 lxpctJAlR0lnSPzU+ZJoiEXpURA8jfC4ZI9YsUgfO61rsDMi6/s3DAhQmt73QSw75K 10SQPBp77m8c8oSTaf2Brn9L/MGImBuwFenjxVOshBf97Y5SvtkfjB1vlYglfKX2by ax//2bLLajoKvTVWSaGVEberhigHfJ8KbcSPco/h+AJoMPw4cI1U51Z2fsTprDjP++ 672/ABIvLcRmyOuqGc267ZsQVL5CUUMYB2paHvJZK38UWgLcgmC9eCKGE64b7Ptp02 W7oJJGnWKk3sQ== X-Pm-Submission-Id: 4hPzsb4BJJz1DDs3 From: Esben Haabendal Date: Wed, 19 Aug 2026 10:15:29 +0200 Subject: [PATCH RESEND v5 2/6] iio: accel: mma8452: Optimize struct mma8452_data member orders Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260819-mma8452-open-drain-v5-2-d8aa590d7c36@geanix.com> References: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> In-Reply-To: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Martin Kepplinger , Sean Nyekjaer , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Martin Kepplinger Cc: Esben Haabendal , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787127340; l=982; i=esben@geanix.com; s=20240523; h=from:subject:message-id; bh=tzfxlXisttEhbwqNjklxdIHoQtWVVaaErftAi88NK6M=; b=3wdjDbaECj7qwSx5YqQUQ7Wu/8sblcFKkDzK9/pPnaquhxOvI0yNsjZ7aYFJO4pZNQpyoyIqM ZA1Yy8v83fcDIsJOb0vkQY8W3nGfEsGk4kNlYpJiGXSYpZBLmr1/CHC X-Developer-Key: i=esben@geanix.com; a=ed25519; pk=PbXoezm+CERhtgVeF/QAgXtEzSkDIahcWfC7RIXNdEk= Reorder struct mma8452_data members to avoid holes. Reviewed-by: Joshua Crofts Reviewed-by: Andy Shevchenko Signed-off-by: Esben Haabendal --- drivers/iio/accel/mma8452.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 7d683686dd9d..f645a5c6fd1c 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -106,10 +106,7 @@ struct mma8452_data { struct i2c_client *client; struct mutex lock; struct iio_mount_matrix orientation; - u8 ctrl_reg1; - u8 data_cfg; const struct mma_chip_info *chip_info; - int sleep_val; struct regulator *vdd_reg; struct regulator *vddio_reg; =20 @@ -118,6 +115,10 @@ struct mma8452_data { __be16 channels[3]; aligned_s64 ts; } buffer; + + int sleep_val; + u8 ctrl_reg1; + u8 data_cfg; }; =20 /** --=20 2.55.0 From nobody Mon Sep 28 17:50:00 2026 Received: from mail-106113.protonmail.ch (mail-106113.protonmail.ch [79.135.106.113]) (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 D213241DE15 for ; Wed, 19 Aug 2026 08:16:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=79.135.106.113 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127379; cv=none; b=ce2z81M0/SGac0IUKKXIs3xxC2Ou4kinruWEJTkrHlWsbzdnevfkmo/DSC0b/v2JsFkOHylOucc81EviLTn/+PZgsCJn+d6widKepQmwWukCcS1+BDUTBBPGHBUsq2oGQiGdAwJdHBPGsrhs/+VDd44NarfDbU1mS0ap/ai8msc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127379; c=relaxed/simple; bh=aD1+TxIcp78KfszYueEmzVsPlop8UEkQflASuNmtvRA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G6QSriXAg20lk9Xn3sQ5z4vgOfHMFC8lMmqE9PonrZew0OFvBjeCyclI70OHeN2aIUqqpPfVS8idZRW6pQLV0Oh32epcvU2G/vQSR8IfH12WIrrf6r/EeWCGnnXESCljr3aZgUExpX1kWbwfZ2FIxPWyOwY3KnKxsGGbrEUJ9hg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com; spf=pass smtp.mailfrom=geanix.com; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b=sGJq7oCA; arc=none smtp.client-ip=79.135.106.113 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=geanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b="sGJq7oCA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=geanix.com; s=protonmail; t=1787127351; x=1787386551; bh=xweKzoAR9wLr7rzqBzvxfCqFwEihx3bUT7MsiLoLTp4=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=sGJq7oCAWq9jhAFRjEl/ovTzWOK4OZp1fMmrOAE11O/SRSCJsPjlTfyELq6t+2qQO ljPLAooT+6TEuaHFSU51Ts2VWzQ1r4KtPRU6LEg5HguLX6U+JR6JecJLhhBD6t6uuN 87xan5MVIhMnETnVh/n+8CmqWkeSCsVhinnP5Vm+VrytjQNqaht3gJzahTzrfaxtMe SfHmUXVdMkYmTK4YR8ZyNIhSHosu9bMt6vkhQGvK0Bz1IMTDgUB8fJx0n9XuyUHHb2 17FxOCaNt8SMRzTWdeBIapqdBx/qUwqc2F8bvD710rHl5XMelXMadyn+TCk6WFGrYu x7jiYuDYYEMlA== X-Pm-Submission-Id: 4hPzsd2zKlz1DFFG From: Esben Haabendal Date: Wed, 19 Aug 2026 10:15:30 +0200 Subject: [PATCH RESEND v5 3/6] iio: accel: mma8452: Only apply trigger type when not set by firmware Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260819-mma8452-open-drain-v5-3-d8aa590d7c36@geanix.com> References: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> In-Reply-To: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Martin Kepplinger , Sean Nyekjaer , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Martin Kepplinger Cc: Esben Haabendal , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787127340; l=1389; i=esben@geanix.com; s=20240523; h=from:subject:message-id; bh=aD1+TxIcp78KfszYueEmzVsPlop8UEkQflASuNmtvRA=; b=2XeXuJmtJmlrCNU2j1MdwNb0aN2tp0Ika+vEiUeDyvvwMraAEwLZgzCYMqTDmjiGUIEAZbntm 5FS7GPltJwtCr06uh7YbJUIrFprsvx7DkcksCXczOQ6KBOz7xrdXc8F X-Developer-Key: i=esben@geanix.com; a=ed25519; pk=PbXoezm+CERhtgVeF/QAgXtEzSkDIahcWfC7RIXNdEk= Instead of unconditionally overriding the trigger type, it is better to only apply a default when no trigger type is set by firmware. This should be reasonably backward compatible, and should only potentially cause problems if systems exist where firmware specifies an incorrect trigger type. With a bit of luck, there are no such systems. Reviewed-by: Andy Shevchenko Signed-off-by: Esben Haabendal --- drivers/iio/accel/mma8452.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index f645a5c6fd1c..1fb43c5b0b72 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -1683,9 +1683,16 @@ static int mma8452_probe(struct i2c_client *client) goto trigger_cleanup; =20 if (client->irq) { + unsigned long irq_flags; + + irq_flags =3D irq_get_trigger_type(client->irq); + if (irq_flags =3D=3D IRQ_TYPE_NONE) { + dev_info(dev, "invalid irq type, setting default active low\n"); + irq_flags =3D IRQF_TRIGGER_LOW; + } + irq_flags |=3D IRQF_ONESHOT; ret =3D request_threaded_irq(client->irq, NULL, mma8452_interrupt, - IRQF_TRIGGER_LOW | IRQF_ONESHOT, - client->name, indio_dev); + irq_flags, client->name, indio_dev); if (ret) goto buffer_cleanup; } --=20 2.55.0 From nobody Mon Sep 28 17:50:00 2026 Received: from mail-106111.protonmail.ch (mail-106111.protonmail.ch [79.135.106.111]) (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 5524D40DB48; Wed, 19 Aug 2026 08:16:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=79.135.106.111 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127378; cv=none; b=Lj5QIdyF7xZ4VM/T+DymwwpPKkOfxhS8otXN3iE4AszblMgUmylKcozM3tvGZX7bjqPpyIv6oSxs5xVfeCq8S2sOZLIHjTXCWqdEPm2qdavNW6uHn0aCgZyWvtAd1h5ZjhMPOALh2Q+4QsjpeIMuBs0Daihg+IdYJLEQtbkl4v8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127378; c=relaxed/simple; bh=nMLfdHo2+bmwQSymkxRA6MzUlYzZpGlSxhKENNElDTk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iSxgrL6ayYnJ+HP8sVm3V+Vm7fPGbjC8IrhbC6uNi7CmzGAD7R47RtEjZHEgoIjD+4rH0LSh3P2hYUeFzoNqexJOEQJys0X1Nq14DXbBMlHZwhZgU3F6IbeIPu4yjTz3uU3q+tmrQPqO7ik7n1Eu9Slq020IDAmmCWhyWIzLAg0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com; spf=pass smtp.mailfrom=geanix.com; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b=WNPbD4TQ; arc=none smtp.client-ip=79.135.106.111 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=geanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b="WNPbD4TQ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=geanix.com; s=protonmail; t=1787127352; x=1787386552; bh=PUSA5IYkrvimmepbi76NuJ2FrwYXhIK9pgJ9RQpwu5U=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=WNPbD4TQlfrEpqsKtsc4c0RHnvuPgla5oK1j1W79Bj34/mDotn69hY5dIJhg6Xp9w rWR261+zVx/PUEN4UN4hJTwlYY+5QJop6vnbXMW6jOL3OSI1NUmqh3gT6wWGxoQPhB jz7OVLYejGNNt59hYFC8m6gJOZp0C9DNUE6lEmW7pLcSsCtJo8Tr3dq3RiHMbHsWSx VeJT6hEziOKmLcT08kHIycAww+GUOnVeGqQqtwgE3wQd5yfukqvZX7deyIrfwnlcCI e7Z9OP1Vh7COEQI4CLIMrQJfJXvXZkNIwT5745hLk1i1yHq7eFFzai0BeMKuBvGgyE 1Wx6hk2faOr7w== X-Pm-Submission-Id: 4hPzsg3vYfz2ScNq From: Esben Haabendal Date: Wed, 19 Aug 2026 10:15:31 +0200 Subject: [PATCH RESEND v5 4/6] iio: accel: mma8452: Support interrupt sharing Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260819-mma8452-open-drain-v5-4-d8aa590d7c36@geanix.com> References: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> In-Reply-To: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Martin Kepplinger , Sean Nyekjaer , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Martin Kepplinger Cc: Esben Haabendal , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787127340; l=3286; i=esben@geanix.com; s=20240523; h=from:subject:message-id; bh=nMLfdHo2+bmwQSymkxRA6MzUlYzZpGlSxhKENNElDTk=; b=KKn6sMAsnNZiFLPHHYvTf+Rt/E2Qeyj4TvNA7DYFcseOOUdj5Cr0tZOnl8v9t4P0Ur7b1i4FQ MAIH3uhEse4B8h+HChloHc6gewBFCLkHRYbeJobz0NlRGHsq0a2kCZZ X-Developer-Key: i=esben@geanix.com; a=ed25519; pk=PbXoezm+CERhtgVeF/QAgXtEzSkDIahcWfC7RIXNdEk= Adding handling of rutnime PM suspension in the interrupt handler allows sharing interrupt with other devices. Keep in mind that the device by default is using push-pull for the irq pin, which might require additional hardware design to allow interrupt sharing. The suspended flag is added together with synchronize_irq() in order to protect against race conditions when doing runtime suspend and device removal. This way we ensure that interrupt handler does not try to access the device while regulators are disabled. Signed-off-by: Esben Haabendal --- drivers/iio/accel/mma8452.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 1fb43c5b0b72..25bb2dd69381 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -119,6 +119,7 @@ struct mma8452_data { int sleep_val; u8 ctrl_reg1; u8 data_cfg; + bool suspended; }; =20 /** @@ -1056,14 +1057,19 @@ static irqreturn_t mma8452_interrupt(int irq, void = *p) struct iio_dev *indio_dev =3D p; struct mma8452_data *data =3D iio_priv(indio_dev); irqreturn_t ret =3D IRQ_NONE; + int pm_status; int src; =20 + pm_status =3D pm_runtime_get_if_active(&data->client->dev); + if (pm_status =3D=3D 0 || READ_ONCE(data->suspended)) + return IRQ_NONE; /* device is powered down or being removed */ + src =3D i2c_smbus_read_byte_data(data->client, MMA8452_INT_SRC); if (src < 0) - return IRQ_NONE; + goto out; =20 if (!(src & (data->chip_info->enabled_events | MMA8452_INT_DRDY))) - return IRQ_NONE; + goto out; =20 if (src & MMA8452_INT_DRDY) { iio_trigger_poll_nested(indio_dev->trig); @@ -1089,6 +1095,10 @@ static irqreturn_t mma8452_interrupt(int irq, void *= p) ret =3D IRQ_HANDLED; } =20 +out: + if (pm_status > 0) + pm_runtime_put_autosuspend(&data->client->dev); + return ret; } =20 @@ -1690,7 +1700,7 @@ static int mma8452_probe(struct i2c_client *client) dev_info(dev, "invalid irq type, setting default active low\n"); irq_flags =3D IRQF_TRIGGER_LOW; } - irq_flags |=3D IRQF_ONESHOT; + irq_flags |=3D IRQF_ONESHOT | IRQF_SHARED; ret =3D request_threaded_irq(client->irq, NULL, mma8452_interrupt, irq_flags, client->name, indio_dev); if (ret) @@ -1768,12 +1778,15 @@ static int mma8452_runtime_suspend(struct device *d= ev) =20 mutex_lock(&data->lock); ret =3D mma8452_standby(data); + WRITE_ONCE(data->suspended, true); mutex_unlock(&data->lock); if (ret < 0) { dev_err(&data->client->dev, "powering off device failed\n"); return -EAGAIN; } =20 + synchronize_irq(client->irq); + ret =3D regulator_disable(data->vddio_reg); if (ret) { dev_err(dev, "failed to disable VDDIO regulator\n"); @@ -1808,6 +1821,8 @@ static int mma8452_runtime_resume(struct device *dev) return ret; } =20 + WRITE_ONCE(data->suspended, false); + ret =3D mma8452_active(data); if (ret < 0) goto runtime_resume_failed; @@ -1822,6 +1837,7 @@ static int mma8452_runtime_resume(struct device *dev) return 0; =20 runtime_resume_failed: + WRITE_ONCE(data->suspended, true); regulator_disable(data->vddio_reg); regulator_disable(data->vdd_reg); =20 --=20 2.55.0 From nobody Mon Sep 28 17:50:00 2026 Received: from mail-244107.protonmail.ch (mail-244107.protonmail.ch [109.224.244.107]) (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 120C83D5228 for ; Wed, 19 Aug 2026 08:16:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=109.224.244.107 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127375; cv=none; b=k/A3e8AysBgKaqG56q/lWfVvjCG4JjLFAzsltW7MJ9fgmBRTMW8YL+gxG2OEbYbSMTZwh6hErCEqMhJkCezUeU8biN0oF7lzSLe01WqkqM5MWuoflMg/4DDDzrnOGSl4+fqK1T1azYDYraKclbR29dJj6+2GtEdYfi+ditGfmnQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127375; c=relaxed/simple; bh=7FBiSGrViYBfg253JXpmcZWNyNFqcljW5o8HQkqXk00=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=le9/yZeHx4dxkm9FtyKivjvurDh1/uqJUVt9d3iV00Rj5FxmVUoyI7Q2FDEqsYqoWCvRGvH3fZ4D32IN+qsFcPE2oqxddyqHqcnUT00twgn1/qm4Z2ssPk1JN8uCjbBrfGFbdOYqe/hP7i+6kqvi4R6p8WySWxMeKl6MRbCxC6s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com; spf=pass smtp.mailfrom=geanix.com; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b=fH0ZW6/Z; arc=none smtp.client-ip=109.224.244.107 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=geanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b="fH0ZW6/Z" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=geanix.com; s=protonmail; t=1787127355; x=1787386555; bh=ppP+6k9G9smIUBkAdhOcgQ4QxUe2Cw2pt3Di47DoRaY=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=fH0ZW6/ZQdV4u5VXqgT7nrYmZA8bZaVYumRS6LlhiaueYuLFSBDmzly4FP/80x+6s FAhF72hiDB/pWQePshbqusqxgPTttGwH92XyHuVf+f3uODBb9CRC1lMmdeNwyxhCA/ KmOVLMeNr+CemtsRK09SqYekkDBN3KYxeesNdcPT5W2rJxwV20j6fG48D5EtttwTn0 LxAnGxRS634i4ZqF2AgwkAyDbHATAyJuAA3C9JwGNl0qzJpZghRGV01iQD82sL1wGu iG8SFoxlSEJmunRqO2Gi07h9d/xlC1/T+uokwocvPSYY8kN7DE/ZE/jl+Miw3H+WPZ /jBxSZwEblkyg== X-Pm-Submission-Id: 4hPzsj5xZnz2ScNq From: Esben Haabendal Date: Wed, 19 Aug 2026 10:15:32 +0200 Subject: [PATCH RESEND v5 5/6] iio: accel: mma8452: Allow open drain interrupt pin configuration Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260819-mma8452-open-drain-v5-5-d8aa590d7c36@geanix.com> References: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> In-Reply-To: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Martin Kepplinger , Sean Nyekjaer , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Martin Kepplinger Cc: Esben Haabendal , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787127340; l=2409; i=esben@geanix.com; s=20240523; h=from:subject:message-id; bh=7FBiSGrViYBfg253JXpmcZWNyNFqcljW5o8HQkqXk00=; b=6JeZgOohBWFcCXlasVNFo3zWzQXjqgxWuBDIOlc8zXfjtmkbq6+jj23lRza3GDT7F6zxVvYVC q8ZjS1+at2CApT+bMHxYWrTjTGoG2QuVnwJPoreqXPHiXDwTURLA3p2 X-Developer-Key: i=esben@geanix.com; a=ed25519; pk=PbXoezm+CERhtgVeF/QAgXtEzSkDIahcWfC7RIXNdEk= When designing systems sharing the interrupt for mma8452 chips, it is helpful to be able to configure the irq pin in open-drain mode (default is push-pull). Reviewed-by: Andy Shevchenko Signed-off-by: Esben Haabendal --- drivers/iio/accel/mma8452.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 25bb2dd69381..060a6207e52d 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -81,6 +81,8 @@ #define MMA8452_CTRL_REG2_RST BIT(6) #define MMA8452_CTRL_REG2_MODS_SHIFT 3 #define MMA8452_CTRL_REG2_MODS_MASK 0x1b +#define MMA8452_CTRL_REG3 0x2c +#define MMA8452_CTRL_REG3_PP_OD BIT(0) #define MMA8452_CTRL_REG4 0x2d #define MMA8452_CTRL_REG5 0x2e #define MMA8452_OFF_X 0x2f @@ -120,6 +122,7 @@ struct mma8452_data { u8 ctrl_reg1; u8 data_cfg; bool suspended; + bool open_drain; }; =20 /** @@ -648,6 +651,22 @@ static int mma8452_set_power_mode(struct mma8452_data = *data, u8 mode) return mma8452_change_config(data, MMA8452_CTRL_REG2, reg); } =20 +static int mma8452_set_interrupt_pin_mode(struct mma8452_data *data) +{ + int reg; + + reg =3D i2c_smbus_read_byte_data(data->client, MMA8452_CTRL_REG3); + if (reg < 0) + return reg; + + if (data->open_drain) + reg |=3D MMA8452_CTRL_REG3_PP_OD; + else + reg &=3D ~MMA8452_CTRL_REG3_PP_OD; + + return i2c_smbus_write_byte_data(data->client, MMA8452_CTRL_REG3, reg); +} + /* returns >0 if in freefall mode, 0 if not or <0 if an error occurred */ static int mma8452_freefall_mode_enabled(struct mma8452_data *data) { @@ -1677,6 +1696,11 @@ static int mma8452_probe(struct i2c_client *client) goto disable_regulators; } =20 + data->open_drain =3D device_property_read_bool(dev, "drive-open-drain"); + ret =3D mma8452_set_interrupt_pin_mode(data); + if (ret) + goto trigger_cleanup; + data->ctrl_reg1 =3D MMA8452_CTRL_ACTIVE | (MMA8452_CTRL_DR_DEFAULT << MMA8452_CTRL_DR_SHIFT); =20 @@ -1823,6 +1847,10 @@ static int mma8452_runtime_resume(struct device *dev) =20 WRITE_ONCE(data->suspended, false); =20 + ret =3D mma8452_set_interrupt_pin_mode(data); + if (ret) + goto runtime_resume_failed; + ret =3D mma8452_active(data); if (ret < 0) goto runtime_resume_failed; --=20 2.55.0 From nobody Mon Sep 28 17:50:00 2026 Received: from mail-43172.protonmail.ch (mail-43172.protonmail.ch [185.70.43.172]) (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 3429040D574; Wed, 19 Aug 2026 08:15:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127391; cv=none; b=mTj9RbEayT+wJXvv6oPxbzCOMIvKWdpXhrgJJGpehuAuTZUW6C8b/ShfpuSBmiMD4glbvH3d17PytJbUBAbERRr7mP3TFJ9DPt+gPQrpZFR+Jh4dvqT6zmkLbsexFCcyA8oiRqUkPB8uiE+FkXEFPxolvVpKwXXiVu2w9+cjx9g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787127391; c=relaxed/simple; bh=zS8pidQ1mEadcEjjYN01ocB65EC9PKhbCuWuE5NGL5Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gb+cRTVE7EhwnUQVvpuHVhl/hV+FZhp48alJcQXzZbRJqugzlbL/BKrpRGtcZ+czmfFAYf+CoNjicfUP4KObOKazYnRVM/267RlT6RkyAaIgVM/V7SRx9V9IRqeSBJ4TGEWG+yYPf2uvg9vT+xX0BPDSRv5dp4TRTgV0L4t1v2Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com; spf=pass smtp.mailfrom=geanix.com; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b=IJiLK5cY; arc=none smtp.client-ip=185.70.43.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=geanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=geanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=geanix.com header.i=@geanix.com header.b="IJiLK5cY" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=geanix.com; s=protonmail; t=1787127356; x=1787386556; bh=6nHoTnGTwSgjLBaedsdqQuiT9UNbLckAf+tplzrcQG8=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=IJiLK5cYvC/30gtNQl4f+0xyq5sO1SU7/mMAmM2HqZC6eJzJ0scBeGX4chRlc02iH N2oV02+55hWkxKKpq0LAB9K1pMj7oIBVuvrX855YVg1iLL8TGaSKD5R1BaulNOA7TQ mdy0LPCjcLT81vsVFHjrh+P3SibaXNcGD9MJVeY2pkc4VHdmyImd8Vyi1V3dij9j5X UBVF0muu1NtPvVxrHevf0G00+sDb8uxfrc869P8+0GbxFvQDrkfOTbCJj9u0/EoEoy N7s9WEj2p80fuGPiex9GCAEUoMEblfxK/2jvy/r973P2lWzIDr5PxoM/AwdCS298hW Lv6tfonBpPGsg== X-Pm-Submission-Id: 4hPzsl489mz1DDs3 From: Esben Haabendal Date: Wed, 19 Aug 2026 10:15:33 +0200 Subject: [PATCH RESEND v5 6/6] iio: accel: mma8452: Reuse existing dev pointer in mma8452_probe() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260819-mma8452-open-drain-v5-6-d8aa590d7c36@geanix.com> References: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> In-Reply-To: <20260819-mma8452-open-drain-v5-0-d8aa590d7c36@geanix.com> To: Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Martin Kepplinger , Sean Nyekjaer , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Martin Kepplinger Cc: Esben Haabendal , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787127340; l=3727; i=esben@geanix.com; s=20240523; h=from:subject:message-id; bh=zS8pidQ1mEadcEjjYN01ocB65EC9PKhbCuWuE5NGL5Y=; b=XNmUX0dG9EsrmrUQz2RniNJs7D1U3dsFk6bDbnmbIAmK6IlNQGLJfFXb30WHEBrAUUV9Rp7Ts SOnEyYum1O9AGIVvWrOeXTaRbDq+5wpodLifyPlfNxIxbEBi77QcEbY X-Developer-Key: i=esben@geanix.com; a=ed25519; pk=PbXoezm+CERhtgVeF/QAgXtEzSkDIahcWfC7RIXNdEk= In commit 32a5c04d4575 ("iio: accel: mma8452: Use dev_err_probe()") the struct device * pointer was assigned to local variable dev, so we can just as well reuse that throughout the function for sligthly more readable code. Signed-off-by: Esben Haabendal Reviewed-by: Joshua Crofts --- drivers/iio/accel/mma8452.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c index 060a6207e52d..bf5cb1c4425a 100644 --- a/drivers/iio/accel/mma8452.c +++ b/drivers/iio/accel/mma8452.c @@ -1582,7 +1582,7 @@ static int mma8452_probe(struct i2c_client *client) struct iio_dev *indio_dev; int ret; =20 - indio_dev =3D devm_iio_device_alloc(&client->dev, sizeof(*data)); + indio_dev =3D devm_iio_device_alloc(dev, sizeof(*data)); if (!indio_dev) return -ENOMEM; =20 @@ -1592,21 +1592,20 @@ static int mma8452_probe(struct i2c_client *client) =20 data->chip_info =3D i2c_get_match_data(client); if (!data->chip_info) - return dev_err_probe(&client->dev, -ENODEV, - "unknown device model\n"); + return dev_err_probe(dev, -ENODEV, "unknown device model\n"); =20 - ret =3D iio_read_mount_matrix(&client->dev, &data->orientation); + ret =3D iio_read_mount_matrix(dev, &data->orientation); if (ret) return ret; =20 - data->vdd_reg =3D devm_regulator_get(&client->dev, "vdd"); + data->vdd_reg =3D devm_regulator_get(dev, "vdd"); if (IS_ERR(data->vdd_reg)) - return dev_err_probe(&client->dev, PTR_ERR(data->vdd_reg), + return dev_err_probe(dev, PTR_ERR(data->vdd_reg), "failed to get VDD regulator!\n"); =20 - data->vddio_reg =3D devm_regulator_get(&client->dev, "vddio"); + data->vddio_reg =3D devm_regulator_get(dev, "vddio"); if (IS_ERR(data->vddio_reg)) - return dev_err_probe(&client->dev, PTR_ERR(data->vddio_reg), + return dev_err_probe(dev, PTR_ERR(data->vddio_reg), "failed to get VDDIO regulator!\n"); =20 ret =3D regulator_enable(data->vdd_reg); @@ -1638,7 +1637,7 @@ static int mma8452_probe(struct i2c_client *client) goto disable_regulators; } =20 - dev_info(&client->dev, "registering %s accelerometer; ID 0x%x\n", + dev_info(dev, "registering %s accelerometer; ID 0x%x\n", data->chip_info->name, data->chip_info->chip_id); =20 i2c_set_clientdata(client, indio_dev); @@ -1671,10 +1670,10 @@ static int mma8452_probe(struct i2c_client *client) if (client->irq) { int irq2; =20 - irq2 =3D fwnode_irq_get_byname(dev_fwnode(&client->dev), "INT2"); + irq2 =3D fwnode_irq_get_byname(dev_fwnode(dev), "INT2"); =20 if (irq2 =3D=3D client->irq) { - dev_dbg(&client->dev, "using interrupt line INT2\n"); + dev_dbg(dev, "using interrupt line INT2\n"); } else { ret =3D i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG5, @@ -1682,7 +1681,7 @@ static int mma8452_probe(struct i2c_client *client) if (ret < 0) goto disable_regulators; =20 - dev_dbg(&client->dev, "using interrupt line INT1\n"); + dev_dbg(dev, "using interrupt line INT1\n"); } =20 ret =3D i2c_smbus_write_byte_data(client, @@ -1731,14 +1730,13 @@ static int mma8452_probe(struct i2c_client *client) goto buffer_cleanup; } =20 - ret =3D pm_runtime_set_active(&client->dev); + ret =3D pm_runtime_set_active(dev); if (ret < 0) goto free_irq; =20 - pm_runtime_enable(&client->dev); - pm_runtime_set_autosuspend_delay(&client->dev, - MMA8452_AUTO_SUSPEND_DELAY_MS); - pm_runtime_use_autosuspend(&client->dev); + pm_runtime_enable(dev); + pm_runtime_set_autosuspend_delay(dev, MMA8452_AUTO_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(dev); =20 ret =3D iio_device_register(indio_dev); if (ret < 0) --=20 2.55.0