]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 23 Feb 2026 08:24:37 +0000 (08:24 +0000)
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>
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 25bd9757a594d0180d7f53b49f959a49a50c64a9..e4638926a10cf5bef1ab3268da86affe22d687c8 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)