13ea51548SAlex Lanzano // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 23ea51548SAlex Lanzano 33ea51548SAlex Lanzano #include <linux/module.h> 43ea51548SAlex Lanzano #include <linux/i2c.h> 53ea51548SAlex Lanzano #include <linux/iio/iio.h> 63ea51548SAlex Lanzano #include <linux/module.h> 73ea51548SAlex Lanzano #include <linux/mod_devicetable.h> 83ea51548SAlex Lanzano #include <linux/regmap.h> 93ea51548SAlex Lanzano 103ea51548SAlex Lanzano #include "bmi270.h" 113ea51548SAlex Lanzano 12*92cc50a0SAlex Lanzano static const struct regmap_config bmi270_i2c_regmap_config = { 13*92cc50a0SAlex Lanzano .reg_bits = 8, 14*92cc50a0SAlex Lanzano .val_bits = 8, 15*92cc50a0SAlex Lanzano }; 16*92cc50a0SAlex Lanzano 173ea51548SAlex Lanzano static int bmi270_i2c_probe(struct i2c_client *client) 183ea51548SAlex Lanzano { 193ea51548SAlex Lanzano struct regmap *regmap; 203ea51548SAlex Lanzano struct device *dev = &client->dev; 213ea51548SAlex Lanzano 22*92cc50a0SAlex Lanzano regmap = devm_regmap_init_i2c(client, &bmi270_i2c_regmap_config); 233ea51548SAlex Lanzano if (IS_ERR(regmap)) 243ea51548SAlex Lanzano return dev_err_probe(dev, PTR_ERR(regmap), 253ea51548SAlex Lanzano "Failed to init i2c regmap"); 263ea51548SAlex Lanzano 273ea51548SAlex Lanzano return bmi270_core_probe(dev, regmap); 283ea51548SAlex Lanzano } 293ea51548SAlex Lanzano 303ea51548SAlex Lanzano static const struct i2c_device_id bmi270_i2c_id[] = { 313ea51548SAlex Lanzano { "bmi270", 0 }, 323ea51548SAlex Lanzano { } 333ea51548SAlex Lanzano }; 343ea51548SAlex Lanzano 353ea51548SAlex Lanzano static const struct of_device_id bmi270_of_match[] = { 363ea51548SAlex Lanzano { .compatible = "bosch,bmi270" }, 373ea51548SAlex Lanzano { } 383ea51548SAlex Lanzano }; 393ea51548SAlex Lanzano 403ea51548SAlex Lanzano static struct i2c_driver bmi270_i2c_driver = { 413ea51548SAlex Lanzano .driver = { 423ea51548SAlex Lanzano .name = "bmi270_i2c", 433ea51548SAlex Lanzano .of_match_table = bmi270_of_match, 443ea51548SAlex Lanzano }, 453ea51548SAlex Lanzano .probe = bmi270_i2c_probe, 463ea51548SAlex Lanzano .id_table = bmi270_i2c_id, 473ea51548SAlex Lanzano }; 483ea51548SAlex Lanzano module_i2c_driver(bmi270_i2c_driver); 493ea51548SAlex Lanzano 503ea51548SAlex Lanzano MODULE_AUTHOR("Alex Lanzano"); 513ea51548SAlex Lanzano MODULE_DESCRIPTION("BMI270 driver"); 523ea51548SAlex Lanzano MODULE_LICENSE("GPL"); 533ea51548SAlex Lanzano MODULE_IMPORT_NS(IIO_BMI270); 54