Commit 1ca2cfbc authored by Dmitry Rokosov's avatar Dmitry Rokosov Committed by Jonathan Cameron
Browse files

iio: add MEMSensing MSA311 3-axis accelerometer driver

MSA311 is a tri-axial, low-g accelerometer with I2C digital output for
sensitivity consumer applications. It has dynamic user-selectable full
scales range of +-2g/+-4g/+-8g/+-16g and allows acceleration measurements
with output data rates from 1Hz to 1000Hz.

This driver supports following MSA311 features:
    - IIO interface
    - Different power modes: NORMAL and SUSPEND (using pm_runtime)
    - ODR (Output Data Rate) selection
    - Scale and samp_freq selection
    - IIO triggered buffer, IIO reg access
    - NEW_DATA interrupt + trigger

Below features to be done:
    - Motion Events: ACTIVE, TAP, ORIENT, FREEFALL
    - Low Power mode

Datasheet: https://cdn-shop.adafruit.com/product-files/5309/MSA311-V1.1-ENG.pdf


Signed-off-by: default avatarDmitry Rokosov <ddrokosov@sberdevices.ru>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20220822175011.2886-4-ddrokosov@sberdevices.ru


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 49059493
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -13176,6 +13176,12 @@ F: drivers/mtd/
F:	include/linux/mtd/
F:	include/uapi/mtd/
MEMSENSING MICROSYSTEMS MSA311 DRIVER
M:	Dmitry Rokosov <ddrokosov@sberdevices.ru>
L:	linux-iio@vger.kernel.org
S:	Maintained
F:	drivers/iio/accel/msa311.c
MEN A21 WATCHDOG DRIVER
M:	Johannes Thumshirn <morbidrsa@gmail.com>
L:	linux-watchdog@vger.kernel.org
+13 −0
Original line number Diff line number Diff line
@@ -541,6 +541,19 @@ config MMA9553
	  To compile this driver as a module, choose M here: the module
	  will be called mma9553.

config MSA311
	tristate "MEMSensing Digital 3-Axis Accelerometer Driver"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select REGMAP_I2C
	help
	  Say yes here to build support for the MEMSensing MSA311
	  accelerometer driver.

	  To compile this driver as a module, choose M here: the module will be
	  called msa311.

config MXC4005
	tristate "Memsic MXC4005XC 3-Axis Accelerometer Driver"
	depends on I2C
+2 −0
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@ obj-$(CONFIG_MMA9551_CORE) += mma9551_core.o
obj-$(CONFIG_MMA9551)		+= mma9551.o
obj-$(CONFIG_MMA9553)		+= mma9553.o

obj-$(CONFIG_MSA311)		+= msa311.o

obj-$(CONFIG_MXC4005)		+= mxc4005.o
obj-$(CONFIG_MXC6255)		+= mxc6255.o

+1321 −0

File added.

Preview size limit exceeded, changes collapsed.