[PATCH v6 0/9] io: accel: mma8452: Allow open drain interrupt pin configuration
Esben Haabendal <[email protected]>
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- 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/[email protected] 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/[email protected] 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/[email protected] 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/[email protected] 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/[email protected] To: Jonathan Cameron <[email protected]> To: Lars-Peter Clausen <[email protected]> To: Rob Herring <[email protected]> To: Krzysztof Kozlowski <[email protected]> To: Conor Dooley <[email protected]> To: Martin Kepplinger <[email protected]> To: Sean Nyekjaer <[email protected]> To: David Lechner <[email protected]> To: Nuno Sá <[email protected]> To: Andy Shevchenko <[email protected]> To: Martin Kepplinger <[email protected]> To: Christoph Muellner <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] --- Esben Haabendal (9): dt-bindings: iio: accel: mma8452: Add drive-open-drain iio: accel: mma8452: Optimize struct mma8452_data member orders iio: accel: mma8452: Only apply trigger type when not set by firmware iio: accel: mma8452: Support interrupt sharing iio: accel: mma8452: Allow open drain interrupt pin configuration iio: accel: mma8452: Reuse existing dev pointer in mma8452_probe() iio: accel: mma8452: Drop unneeded lock acquire on read iio: accel: mma8452: Fix use-after-free bug in error error path iio: accel: mma8452: Use proper error code when missing device model .../devicetree/bindings/iio/accel/fsl,mma8452.yaml | 6 ++ drivers/iio/accel/mma8452.c | 117 ++++++++++++++++----- 2 files changed, 94 insertions(+), 29 deletions(-) --- base-commit: db2ddb87143519e20a95aa36c60b36107b736a58 change-id: 20250401-mma8452-open-drain-81577c41375c Best regards, -- Esben Haabendal <[email protected]>