cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

bme680_i2c.c (1513B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * BME680 - I2C Driver
      4 *
      5 * Copyright (C) 2018 Himanshu Jha <himanshujha199640@gmail.com>
      6 *
      7 * 7-Bit I2C slave address is:
      8 *	- 0x76 if SDO is pulled to GND
      9 *	- 0x77 if SDO is pulled to VDDIO
     10 *
     11 * Note: SDO pin cannot be left floating otherwise I2C address
     12 *	 will be undefined.
     13 */
     14#include <linux/i2c.h>
     15#include <linux/module.h>
     16#include <linux/regmap.h>
     17
     18#include "bme680.h"
     19
     20static int bme680_i2c_probe(struct i2c_client *client,
     21			    const struct i2c_device_id *id)
     22{
     23	struct regmap *regmap;
     24	const char *name = NULL;
     25
     26	regmap = devm_regmap_init_i2c(client, &bme680_regmap_config);
     27	if (IS_ERR(regmap)) {
     28		dev_err(&client->dev, "Failed to register i2c regmap %ld\n", PTR_ERR(regmap));
     29		return PTR_ERR(regmap);
     30	}
     31
     32	if (id)
     33		name = id->name;
     34
     35	return bme680_core_probe(&client->dev, regmap, name);
     36}
     37
     38static const struct i2c_device_id bme680_i2c_id[] = {
     39	{"bme680", 0},
     40	{},
     41};
     42MODULE_DEVICE_TABLE(i2c, bme680_i2c_id);
     43
     44static const struct of_device_id bme680_of_i2c_match[] = {
     45	{ .compatible = "bosch,bme680", },
     46	{},
     47};
     48MODULE_DEVICE_TABLE(of, bme680_of_i2c_match);
     49
     50static struct i2c_driver bme680_i2c_driver = {
     51	.driver = {
     52		.name			= "bme680_i2c",
     53		.of_match_table		= bme680_of_i2c_match,
     54	},
     55	.probe = bme680_i2c_probe,
     56	.id_table = bme680_i2c_id,
     57};
     58module_i2c_driver(bme680_i2c_driver);
     59
     60MODULE_AUTHOR("Himanshu Jha <himanshujha199640@gmail.com>");
     61MODULE_DESCRIPTION("BME680 I2C driver");
     62MODULE_LICENSE("GPL v2");
     63MODULE_IMPORT_NS(IIO_BME680);