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

kxsd9-i2c.c (1487B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <linux/device.h>
      3#include <linux/kernel.h>
      4#include <linux/module.h>
      5#include <linux/mod_devicetable.h>
      6#include <linux/slab.h>
      7#include <linux/i2c.h>
      8#include <linux/delay.h>
      9#include <linux/regmap.h>
     10
     11#include "kxsd9.h"
     12
     13static int kxsd9_i2c_probe(struct i2c_client *i2c,
     14			   const struct i2c_device_id *id)
     15{
     16	static const struct regmap_config config = {
     17		.reg_bits = 8,
     18		.val_bits = 8,
     19		.max_register = 0x0e,
     20	};
     21	struct regmap *regmap;
     22
     23	regmap = devm_regmap_init_i2c(i2c, &config);
     24	if (IS_ERR(regmap)) {
     25		dev_err(&i2c->dev, "Failed to register i2c regmap: %pe\n",
     26			regmap);
     27		return PTR_ERR(regmap);
     28	}
     29
     30	return kxsd9_common_probe(&i2c->dev,
     31				  regmap,
     32				  i2c->name);
     33}
     34
     35static int kxsd9_i2c_remove(struct i2c_client *client)
     36{
     37	kxsd9_common_remove(&client->dev);
     38
     39	return 0;
     40}
     41
     42static const struct of_device_id kxsd9_of_match[] = {
     43	{ .compatible = "kionix,kxsd9", },
     44	{ },
     45};
     46MODULE_DEVICE_TABLE(of, kxsd9_of_match);
     47
     48static const struct i2c_device_id kxsd9_i2c_id[] = {
     49	{"kxsd9", 0},
     50	{ },
     51};
     52MODULE_DEVICE_TABLE(i2c, kxsd9_i2c_id);
     53
     54static struct i2c_driver kxsd9_i2c_driver = {
     55	.driver = {
     56		.name	= "kxsd9",
     57		.of_match_table = kxsd9_of_match,
     58		.pm = &kxsd9_dev_pm_ops,
     59	},
     60	.probe		= kxsd9_i2c_probe,
     61	.remove		= kxsd9_i2c_remove,
     62	.id_table	= kxsd9_i2c_id,
     63};
     64module_i2c_driver(kxsd9_i2c_driver);
     65
     66MODULE_LICENSE("GPL v2");
     67MODULE_DESCRIPTION("KXSD9 accelerometer I2C interface");
     68MODULE_IMPORT_NS(IIO_KXSD9);