]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: imu: inv_icm45600: fix INT1 drive bit inverted
authorJean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Thu, 5 Feb 2026 16:59:14 +0000 (17:59 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Mar 2026 15:15:30 +0000 (16:15 +0100)
commit 7ef74d961d1ad6ec72b50887ca119d7f98f07717 upstream.

Drive bit must be set for open-drain mode and be cleared for push-pull
mode.

Referring to datasheet DS-000576_ICM-45605.pdf section 17.23
INT1_CONFIG2.

Fixes: 06674a72cf7a ("iio: imu: inv_icm45600: add buffer support in iio devices")
Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/imu/inv_icm45600/inv_icm45600.h
drivers/iio/imu/inv_icm45600/inv_icm45600_core.c

index c5b5446f6c3b43150512bcc4357cee385080b634..1c796d4b2a4038203f734f80d7bf7bad138c3497 100644 (file)
@@ -205,7 +205,7 @@ struct inv_icm45600_sensor_state {
 #define INV_ICM45600_SPI_SLEW_RATE_38NS                        0
 
 #define INV_ICM45600_REG_INT1_CONFIG2                  0x0018
-#define INV_ICM45600_INT1_CONFIG2_PUSH_PULL            BIT(2)
+#define INV_ICM45600_INT1_CONFIG2_OPEN_DRAIN           BIT(2)
 #define INV_ICM45600_INT1_CONFIG2_LATCHED              BIT(1)
 #define INV_ICM45600_INT1_CONFIG2_ACTIVE_HIGH          BIT(0)
 #define INV_ICM45600_INT1_CONFIG2_ACTIVE_LOW           0x00
index 9184f0c297c20a061315a2dc1d2673ecd4df18bd..d49053161a6572667d0c2547ddef6f03da9f33dd 100644 (file)
@@ -637,8 +637,8 @@ static int inv_icm45600_irq_init(struct inv_icm45600_state *st, int irq,
                break;
        }
 
-       if (!open_drain)
-               val |= INV_ICM45600_INT1_CONFIG2_PUSH_PULL;
+       if (open_drain)
+               val |= INV_ICM45600_INT1_CONFIG2_OPEN_DRAIN;
 
        ret = regmap_write(st->map, INV_ICM45600_REG_INT1_CONFIG2, val);
        if (ret)