Re: [PATCH v10 00/10] io: accel: mma8452: Allow open drain interrupt pin configuration
From: Jonathan Cameron
Date: Sun Oct 11 2026 - 09:00:48 EST
On Mon, 28 Sep 2026 10:26:16 +0200
Esben Haabendal <esben@xxxxxxxxxx> wrote:
> Extend the mma8452 driver with support for configuration of the
> interrupt line in open-drain mode, which is needed for hardware designs
> where the interrupt line is shared with other chips.
>
> Adding drive-open-drain property to mma8452 device-tree node for such
> designs to enable switching pin configuration to open-drain mode.
>
> Signed-off-by: Esben Haabendal <esben@xxxxxxxxxx>
Applied patches 1-9 to the testing branch of iio.git.
As mentioned, I think 10 needs a bit more review time.
We may loose sashiko coverage. In theory you can tell it about
dependencies, but I'm not sure how that works with a temporary
testing branch.
There are some notes on using message-id: tags in the cover
letter in https://b4.docs.kernel.org/en/latest/contributor/prep.html
I gather from the LPC session last week that sashiko should work
with those now.
Jonathan
> ---
> Changes in v10:
> - Fix sp3ling mistake in struct mma8452_data kernel-doc block.
> - Swap ordering of pm_runtime and irq setup in mma8452_probe() to match the
> order now used in mma8452_remove().
> - Bail out on -EINVAL in mma8452_interrupt() when CONFIG_PM is enabled.
> - Link to v9: https://patch.msgid.link/20260916-mma8452-open-drain-v9-0-0dd24fa2f3d7@xxxxxxxxxx
>
> Changes in v9:
> - Fix documentation of voltage regulator field(s) in struct mma8452_data
> kernel-doc block.
> - Fix a couple of nitpicks in struct mma8452_data kernel-doc block.
> - Switch to STANDBY mode before writing to CTRL_REG4.
> - Add patch fixing runtime PM bugs in mma8452_read().
> - Add comment about handling of -EINVAL return value from
> pm_runtime_get_if_active() in mma8452_interrupt().
> - Fix for race between mma8452_remove() and mma8452_interrupt(), by calling
> free_irq() before pm_runtime_disable() instead of after.
> - Fix mixing of guards and goto in mma8452_runtime_suspend(). Using guards
> will be re-introduced later on, when mixing can be avoided.
> - Link to v8: https://patch.msgid.link/20260907-mma8452-open-drain-v8-0-c17407e22118@xxxxxxxxxx
>
> Changes in v8:
> - Move patch 7 (with Fixes: ...) to go before the non-fixes patches.
> - Rebased from v7.3-rc1 to current iio/togreg branch.
> - Drop patch 8 (identical patch from Sanjay Chitroda already in togreg
> branch).
> - Add new patch fixing a strangely extra indentation of a comment block.
> - Add new patch adding documentation for struct mma8452_data.
> - Move patch 4 to last in series, and rework the synchronization between
> suspend/resume and interrupt handler.
> - Link to v7: https://patch.msgid.link/20260831-mma8452-open-drain-v7-0-22946812c928@xxxxxxxxxx
>
> Changes in v7:
> - Use dev pointer directly in mma8452_runtime_suspend() also.
> - Move struct i2c_client *client definition to patch 4.
> - Drop patch 7 (Drop unneeded lock acquire on read).
> - Link to v6: https://patch.msgid.link/20260825-mma8452-open-drain-v6-0-9b252804ee80@xxxxxxxxxx
>
> Changes in v6:
> - Prevent interrupt storm if runtime suspend fails to set the device in
> standby mode by not setting suspended flag to true when failing to
> activate standby mode and by ensuring PM counter is not leaked in
> mma8452_interrupt().
> - Don't acquire data->lock in mma8452_read_raw().
> - Add fix for use-after-free in mma8452_probe() error path when CONFIG_PM
> is enabled.
> - Fix (brown paper bug) build error introduced in v5.
> - Renamed label in mma8452_interrupt().
> - Add patch to return -ENODATA when missing device model information.
> - Link to v5: https://patch.msgid.link/20260819-mma8452-open-drain-v5-0-d8aa590d7c36@xxxxxxxxxx
>
> Changes in v5:
> - Squashed dev_err_probe() call to one line.
> - Fixed typo in patch 2 title.
> - Added synchronization between runtime suspend and interrupt handler.
> - Link to v4: https://patch.msgid.link/20260812-mma8452-open-drain-v4-0-bfca15d02b59@xxxxxxxxxx
>
> Changes in v4:
> - Fixed interrupt handler to check runtime PM status before trying to
> access the chip.
> - Split open-drain support and interrupt sharing into separate patches.
> - Added new patch to reuse existing struct device * through mma8452_probe()
> function.
> - Print warning message when irq type is not set by firmware.
> - Link to v3: https://patch.msgid.link/20260805-mma8452-open-drain-v3-0-6149f406a409@xxxxxxxxxx
>
> Changes in v3:
> - Reordered patches, swapping #2 and #3.
> - Always add IRQF_SHARED flag.
> - New patch to change it so IQRF_TRIGGER_LOW flag is only added when no
> trigger type is set by firmware.
> - Link to v2: https://patch.msgid.link/20260715-mma8452-open-drain-v2-0-95be9f5f4795@xxxxxxxxxx
>
> Changes in v2:
> - Commit message of patch 2 updated.
> - Operator precedence bug fixed in flags argument to
> request_threaded_irq().
> - Always check return value of mma8452_set_interrupt_pin_mode(), and just
> check for non-zero value.
> - Added new patch with optimization of struct mma8452_data ordering.
> - Link to v1: https://patch.msgid.link/20260715-mma8452-open-drain-v1-0-b1dd2a440c60@xxxxxxxxxx
>
> To: Jonathan Cameron <jic23@xxxxxxxxxx>
> To: Lars-Peter Clausen <lars@xxxxxxxxxx>
> To: Rob Herring <robh@xxxxxxxxxx>
> To: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
> To: Conor Dooley <conor+dt@xxxxxxxxxx>
> To: Martin Kepplinger <martink@xxxxxxxxx>
> To: Sean Nyekjaer <sean@xxxxxxxxxx>
> To: David Lechner <dlechner@xxxxxxxxxxxx>
> To: Nuno Sá <nuno.sa@xxxxxxxxxx>
> To: Andy Shevchenko <andy@xxxxxxxxxx>
> To: Martin Kepplinger <martin.kepplinger@xxxxxxxxxxxxxxxxxxxxx>
> To: Christoph Muellner <christoph.muellner@xxxxxxxxxxxxxxxxxxxxx>
> Cc: linux-iio@xxxxxxxxxxxxxxx
> Cc: devicetree@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
>
> ---
> Esben Haabendal (10):
> dt-bindings: iio: accel: mma8452: Add drive-open-drain
> iio: accel: mma8452: Fix use-after-free bug in error error path
> iio: accel: mma8452: Fix runtime PM bugs in mma8452_read()
> iio: accel: mma8452: Optimize struct mma8452_data member orders
> iio: accel: mma8452: Only apply trigger type when not set by firmware
> iio: accel: mma8452: Fix unintended comment indent
> iio: accel: mma8452: Add comment block for struct mma8452_data
> iio: accel: mma8452: Allow open drain interrupt pin configuration
> iio: accel: mma8452: Use proper error code when missing device model
> iio: accel: mma8452: Support interrupt sharing
>
> .../devicetree/bindings/iio/accel/fsl,mma8452.yaml | 6 +
> drivers/iio/accel/mma8452.c | 217 ++++++++++++++++-----
> 2 files changed, 177 insertions(+), 46 deletions(-)
> ---
> base-commit: e5b9e42a20392b669097c8c4aa09c3aed82ba10c
> change-id: 20250401-mma8452-open-drain-81577c41375c
>
> Best regards,
> --
> Esben Haabendal <esben@xxxxxxxxxx>
>