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-spi.c (1534B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2#include <linux/device.h>
      3#include <linux/kernel.h>
      4#include <linux/of.h>
      5#include <linux/of_device.h>
      6#include <linux/spi/spi.h>
      7#include <linux/module.h>
      8#include <linux/slab.h>
      9#include <linux/regmap.h>
     10
     11#include "kxsd9.h"
     12
     13static int kxsd9_spi_probe(struct spi_device *spi)
     14{
     15	static const struct regmap_config config = {
     16		.reg_bits = 8,
     17		.val_bits = 8,
     18		.max_register = 0x0e,
     19	};
     20	struct regmap *regmap;
     21
     22	spi->mode = SPI_MODE_0;
     23	regmap = devm_regmap_init_spi(spi, &config);
     24	if (IS_ERR(regmap)) {
     25		dev_err(&spi->dev, "%s: regmap allocation failed: %ld\n",
     26			__func__, PTR_ERR(regmap));
     27		return PTR_ERR(regmap);
     28	}
     29
     30	return kxsd9_common_probe(&spi->dev,
     31				  regmap,
     32				  spi_get_device_id(spi)->name);
     33}
     34
     35static void kxsd9_spi_remove(struct spi_device *spi)
     36{
     37	kxsd9_common_remove(&spi->dev);
     38}
     39
     40static const struct spi_device_id kxsd9_spi_id[] = {
     41	{"kxsd9", 0},
     42	{ },
     43};
     44MODULE_DEVICE_TABLE(spi, kxsd9_spi_id);
     45
     46static const struct of_device_id kxsd9_of_match[] = {
     47	{ .compatible = "kionix,kxsd9" },
     48	{ }
     49};
     50MODULE_DEVICE_TABLE(of, kxsd9_of_match);
     51
     52static struct spi_driver kxsd9_spi_driver = {
     53	.driver = {
     54		.name = "kxsd9",
     55		.pm = &kxsd9_dev_pm_ops,
     56		.of_match_table = kxsd9_of_match,
     57	},
     58	.probe = kxsd9_spi_probe,
     59	.remove = kxsd9_spi_remove,
     60	.id_table = kxsd9_spi_id,
     61};
     62module_spi_driver(kxsd9_spi_driver);
     63
     64MODULE_AUTHOR("Jonathan Cameron <jic23@kernel.org>");
     65MODULE_DESCRIPTION("Kionix KXSD9 SPI driver");
     66MODULE_LICENSE("GPL v2");
     67MODULE_IMPORT_NS(IIO_KXSD9);