brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 4f63382 Raw
70 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * Driver for NXP Fxas21002c Gyroscope - SPI4 *5 * Copyright (C) 2019 Linaro Ltd.6 */7 8#include <linux/err.h>9#include <linux/mod_devicetable.h>10#include <linux/module.h>11#include <linux/regmap.h>12#include <linux/spi/spi.h>13 14#include "fxas21002c.h"15 16static const struct regmap_config fxas21002c_regmap_spi_conf = {17	.reg_bits = 8,18	.val_bits = 8,19	.max_register = FXAS21002C_REG_CTRL3,20};21 22static int fxas21002c_spi_probe(struct spi_device *spi)23{24	const struct spi_device_id *id = spi_get_device_id(spi);25	struct regmap *regmap;26 27	regmap = devm_regmap_init_spi(spi, &fxas21002c_regmap_spi_conf);28	if (IS_ERR(regmap)) {29		dev_err(&spi->dev, "Failed to register spi regmap: %ld\n",30			PTR_ERR(regmap));31		return PTR_ERR(regmap);32	}33 34	return fxas21002c_core_probe(&spi->dev, regmap, spi->irq, id->name);35}36 37static void fxas21002c_spi_remove(struct spi_device *spi)38{39	fxas21002c_core_remove(&spi->dev);40}41 42static const struct spi_device_id fxas21002c_spi_id[] = {43	{ "fxas21002c", 0 },44	{ }45};46MODULE_DEVICE_TABLE(spi, fxas21002c_spi_id);47 48static const struct of_device_id fxas21002c_spi_of_match[] = {49	{ .compatible = "nxp,fxas21002c", },50	{ }51};52MODULE_DEVICE_TABLE(of, fxas21002c_spi_of_match);53 54static struct spi_driver fxas21002c_spi_driver = {55	.driver = {56		.name = "fxas21002c_spi",57		.pm = pm_ptr(&fxas21002c_pm_ops),58		.of_match_table = fxas21002c_spi_of_match,59	},60	.probe		= fxas21002c_spi_probe,61	.remove		= fxas21002c_spi_remove,62	.id_table	= fxas21002c_spi_id,63};64module_spi_driver(fxas21002c_spi_driver);65 66MODULE_AUTHOR("Rui Miguel Silva <rui.silva@linaro.org>");67MODULE_LICENSE("GPL v2");68MODULE_DESCRIPTION("FXAS21002C SPI Gyro driver");69MODULE_IMPORT_NS(IIO_FXAS21002C);70