Commit b5d6ba09 authored by Fawzi Khaber's avatar Fawzi Khaber Committed by Jonathan Cameron
Browse files

iio: imu: inv_icm42600: Fix I2C init possible nack



This register write to REG_INTF_CONFIG6 enables a spike filter that
is impacting the line and can prevent the I2C ACK to be seen by the
controller. So we don't test the return value.

Fixes: 7297ef1e ("iio: imu: inv_icm42600: add I2C driver")
Signed-off-by: default avatarFawzi Khaber <fawzi.khaber@tdk.com>
Signed-off-by: default avatarJean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Link: https://lore.kernel.org/r/20220411111533.5826-1-jmaneyrol@invensense.com


Cc: <Stable@vger.kernel.org>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent e7e51eb0
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -18,12 +18,15 @@ static int inv_icm42600_i2c_bus_setup(struct inv_icm42600_state *st)
	unsigned int mask, val;
	int ret;

	/* setup interface registers */
	ret = regmap_update_bits(st->map, INV_ICM42600_REG_INTF_CONFIG6,
	/*
	 * setup interface registers
	 * This register write to REG_INTF_CONFIG6 enables a spike filter that
	 * is impacting the line and can prevent the I2C ACK to be seen by the
	 * controller. So we don't test the return value.
	 */
	regmap_update_bits(st->map, INV_ICM42600_REG_INTF_CONFIG6,
			   INV_ICM42600_INTF_CONFIG6_MASK,
			   INV_ICM42600_INTF_CONFIG6_I3C_EN);
	if (ret)
		return ret;

	ret = regmap_update_bits(st->map, INV_ICM42600_REG_INTF_CONFIG4,
				 INV_ICM42600_INTF_CONFIG4_I3C_BUS_ONLY, 0);