[PATCH V11 4/9] iio: imu: inv_icm42607: Add I2C and SPI For icm42607
Andy Shevchenko
andriy.shevchenko at intel.com
Thu Jun 11 00:49:41 PDT 2026
On Wed, Jun 10, 2026 at 12:54:48PM -0500, Chris Morgan wrote:
> Add I2C and SPI driver support for InvenSense ICM-42607 devices.
> Add necessary Kconfig and Makefile to allow building of (incomplete)
> driver.
...
> drivers/iio/imu/Kconfig | 1 +
> drivers/iio/imu/Makefile | 1 +
> drivers/iio/imu/inv_icm42607/Kconfig | 30 +++++
> drivers/iio/imu/inv_icm42607/Makefile | 10 ++
These should be part of the previous patch.
...
> +config INV_ICM42607
> + tristate
To make it compilable w.o. SPI/I2C make this as
tristate "Inven... Core driver" if COMPILE_TEST
> + select IIO_BUFFER
> + select IIO_INV_SENSORS_TIMESTAMP
...
> +obj-$(CONFIG_INV_ICM42607_I2C) += inv-icm42607-i2c.o
> +inv-icm42607-i2c-y += inv_icm42607_i2c.o
> +
> +obj-$(CONFIG_INV_ICM42607_SPI) += inv-icm42607-spi.o
> +inv-icm42607-spi-y += inv_icm42607_spi.o
Add each of them in a separate patch.
...
> +#include <linux/device.h>
Why?
And a lot of missing headers (bitfield.h, dev_printk.h, mod_devicetable.h, err.h)
> +#include <linux/i2c.h>
> +#include <linux/module.h>
> +#include <linux/regmap.h>
...
> +static int inv_icm42607_probe(struct i2c_client *client)
> +{
> + const struct inv_icm42607_hw *hw;
> + struct regmap *regmap;
> +
> + hw = i2c_get_match_data(client);
> + if (!hw)
> + return dev_err_probe(&client->dev, -ENODEV,
> + "Failed to get i2c data\n");
Add
struct device *dev = &client->dev;
and modify this and other eligible pieces accordingly.
return dev_err_probe(dev, -ENODEV, "Failed to get i2c data\n");
> + regmap = devm_regmap_init_i2c(client, &inv_icm42607_regmap_config);
> + if (IS_ERR(regmap))
> + return dev_err_probe(&client->dev, PTR_ERR(regmap),
> + "Failed to register i2c regmap %ld\n",
Do not duplicate a printing of an error code.
> + PTR_ERR(regmap));
return dev_err_probe(dev, PTR_ERR(regmap),
"Failed to register i2c regmap\n");
> + return inv_icm42607_core_probe(regmap, hw, inv_icm42607_i2c_bus_setup);
> +}
> +
...
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_spi.c
As per above.
--
With Best Regards,
Andy Shevchenko
More information about the Linux-rockchip
mailing list