2019-05-19 13:08:20 +01:00
// SPDX-License-Identifier: GPL-2.0-only
2016-09-01 11:44:38 +02:00
# include <linux/device.h>
# include <linux/kernel.h>
2019-04-23 23:40:59 +02:00
# include <linux/of.h>
# include <linux/of_device.h>
2016-09-01 11:44:38 +02:00
# include <linux/spi/spi.h>
# include <linux/module.h>
# include <linux/slab.h>
2016-09-01 11:44:40 +02:00
# include <linux/regmap.h>
2016-09-01 11:44:38 +02:00
# include "kxsd9.h"
static int kxsd9_spi_probe ( struct spi_device * spi )
{
2016-09-01 11:44:40 +02:00
static const struct regmap_config config = {
. reg_bits = 8 ,
. val_bits = 8 ,
. max_register = 0x0e ,
} ;
struct regmap * regmap ;
2016-09-01 11:44:38 +02:00
spi - > mode = SPI_MODE_0 ;
2016-09-01 11:44:40 +02:00
regmap = devm_regmap_init_spi ( spi , & config ) ;
if ( IS_ERR ( regmap ) ) {
dev_err ( & spi - > dev , " %s: regmap allocation failed: %ld \n " ,
__func__ , PTR_ERR ( regmap ) ) ;
return PTR_ERR ( regmap ) ;
}
return kxsd9_common_probe ( & spi - > dev ,
regmap ,
spi_get_device_id ( spi ) - > name ) ;
2016-09-01 11:44:38 +02:00
}
2022-01-23 18:52:01 +01:00
static void kxsd9_spi_remove ( struct spi_device * spi )
2016-09-01 11:44:38 +02:00
{
2021-10-13 22:32:12 +02:00
kxsd9_common_remove ( & spi - > dev ) ;
2016-09-01 11:44:38 +02:00
}
static const struct spi_device_id kxsd9_spi_id [ ] = {
{ " kxsd9 " , 0 } ,
{ } ,
} ;
MODULE_DEVICE_TABLE ( spi , kxsd9_spi_id ) ;
2019-04-23 23:40:59 +02:00
static const struct of_device_id kxsd9_of_match [ ] = {
2022-03-28 16:23:03 -05:00
{ . compatible = " kionix,kxsd9 " } ,
{ }
2019-04-23 23:40:59 +02:00
} ;
MODULE_DEVICE_TABLE ( of , kxsd9_of_match ) ;
2016-09-01 11:44:38 +02:00
static struct spi_driver kxsd9_spi_driver = {
. driver = {
. name = " kxsd9 " ,
2022-06-04 17:12:19 +01:00
. pm = pm_ptr ( & kxsd9_dev_pm_ops ) ,
2019-04-23 23:40:59 +02:00
. of_match_table = kxsd9_of_match ,
2016-09-01 11:44:38 +02:00
} ,
. probe = kxsd9_spi_probe ,
. remove = kxsd9_spi_remove ,
. id_table = kxsd9_spi_id ,
} ;
module_spi_driver ( kxsd9_spi_driver ) ;
MODULE_AUTHOR ( " Jonathan Cameron <jic23@kernel.org> " ) ;
MODULE_DESCRIPTION ( " Kionix KXSD9 SPI driver " ) ;
MODULE_LICENSE ( " GPL v2 " ) ;
2022-01-16 18:05:25 +00:00
MODULE_IMPORT_NS ( IIO_KXSD9 ) ;