hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/drivers/iio/imu/inv_icm42600/inv_icm42600_i2c.c
....@@ -18,12 +18,15 @@
1818 unsigned int mask, val;
1919 int ret;
2020
21
- /* setup interface registers */
22
- ret = regmap_update_bits(st->map, INV_ICM42600_REG_INTF_CONFIG6,
23
- INV_ICM42600_INTF_CONFIG6_MASK,
24
- INV_ICM42600_INTF_CONFIG6_I3C_EN);
25
- if (ret)
26
- return ret;
21
+ /*
22
+ * setup interface registers
23
+ * This register write to REG_INTF_CONFIG6 enables a spike filter that
24
+ * is impacting the line and can prevent the I2C ACK to be seen by the
25
+ * controller. So we don't test the return value.
26
+ */
27
+ regmap_update_bits(st->map, INV_ICM42600_REG_INTF_CONFIG6,
28
+ INV_ICM42600_INTF_CONFIG6_MASK,
29
+ INV_ICM42600_INTF_CONFIG6_I3C_EN);
2730
2831 ret = regmap_update_bits(st->map, INV_ICM42600_REG_INTF_CONFIG4,
2932 INV_ICM42600_INTF_CONFIG4_I3C_BUS_ONLY, 0);
....@@ -70,9 +73,6 @@
7073
7174 static const struct of_device_id inv_icm42600_of_matches[] = {
7275 {
73
- .compatible = "invensense,icm40608",
74
- .data = (void *)INV_CHIP_ICM40608,
75
- }, {
7676 .compatible = "invensense,icm42600",
7777 .data = (void *)INV_CHIP_ICM42600,
7878 }, {