.. | .. |
---|
18 | 18 | unsigned int mask, val; |
---|
19 | 19 | int ret; |
---|
20 | 20 | |
---|
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); |
---|
27 | 30 | |
---|
28 | 31 | ret = regmap_update_bits(st->map, INV_ICM42600_REG_INTF_CONFIG4, |
---|
29 | 32 | INV_ICM42600_INTF_CONFIG4_I3C_BUS_ONLY, 0); |
---|
.. | .. |
---|
70 | 73 | |
---|
71 | 74 | static const struct of_device_id inv_icm42600_of_matches[] = { |
---|
72 | 75 | { |
---|
73 | | - .compatible = "invensense,icm40608", |
---|
74 | | - .data = (void *)INV_CHIP_ICM40608, |
---|
75 | | - }, { |
---|
76 | 76 | .compatible = "invensense,icm42600", |
---|
77 | 77 | .data = (void *)INV_CHIP_ICM42600, |
---|
78 | 78 | }, { |
---|