Commit df36de13 authored by Antoniu Miclaus's avatar Antoniu Miclaus Committed by Jonathan Cameron
Browse files

iio: accel: add ADXL380 driver



The ADXL380/ADXL382 is a low noise density, low power, 3-axis
accelerometer with selectable measurement ranges. The ADXL380 supports
the +/-4 g, +/-8 g, and +/-16 g ranges, and the ADXL382 supports
+/-15 g, +/-30 g and +/-60 g ranges.
The ADXL380/ADXL382 offers industry leading noise, enabling precision
applications with minimal calibration. The low noise, and low power
ADXL380/ADXL382 enables accurate measurement in an environment with
high vibration, heart sounds and audio.

In addition to its low power consumption, the ADXL380/ADXL382 has many
features to enable true system level performance. These include a
built-in micropower temperature sensor, single / double / triple tap
detection and a state machine to prevent a false triggering. In
addition, the ADXL380/ADXL382 has provisions for external control of
the sampling time and/or an external clock.

Signed-off-by: default avatarRamona Gradinariu <ramona.gradinariu@analog.com>
Signed-off-by: default avatarAntoniu Miclaus <antoniu.miclaus@analog.com>
Link: https://patch.msgid.link/20240708104114.29894-2-antoniu.miclaus@analog.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent f1022193
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -625,6 +625,10 @@ M: Antoniu Miclaus <antoniu.miclaus@analog.com>
S:	Supported
W:	https://ez.analog.com/linux-software-drivers
F:	Documentation/devicetree/bindings/iio/accel/adi,adxl380.yaml
F:	drivers/iio/accel/adxl380.c
F:	drivers/iio/accel/adxl380.h
F:	drivers/iio/accel/adxl380_i2c.c
F:	drivers/iio/accel/adxl380_spi.c
AF8133J THREE-AXIS MAGNETOMETER DRIVER
M:	Ondřej Jirman <megi@xff.cz>
+27 −0
Original line number Diff line number Diff line
@@ -177,6 +177,33 @@ config ADXL372_I2C
	  To compile this driver as a module, choose M here: the
	  module will be called adxl372_i2c.

config ADXL380
	tristate
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER

config ADXL380_SPI
	tristate "Analog Devices ADXL380 3-Axis Accelerometer SPI Driver"
	depends on SPI
	select ADXL380
	select REGMAP_SPI
	help
	  Say yes here to add support for the Analog Devices ADXL380 triaxial
	  acceleration sensor.
	  To compile this driver as a module, choose M here: the
	  module will be called adxl380_spi.

config ADXL380_I2C
	tristate "Analog Devices ADXL380 3-Axis Accelerometer I2C Driver"
	depends on I2C
	select ADXL380
	select REGMAP_I2C
	help
	  Say yes here to add support for the Analog Devices ADXL380 triaxial
	  acceleration sensor.
	  To compile this driver as a module, choose M here: the
	  module will be called adxl380_i2c.

config BMA180
	tristate "Bosch BMA023/BMA1x0/BMA250 3-Axis Accelerometer Driver"
	depends on I2C && INPUT_BMA150=n
+3 −0
Original line number Diff line number Diff line
@@ -21,6 +21,9 @@ obj-$(CONFIG_ADXL367_SPI) += adxl367_spi.o
obj-$(CONFIG_ADXL372) += adxl372.o
obj-$(CONFIG_ADXL372_I2C) += adxl372_i2c.o
obj-$(CONFIG_ADXL372_SPI) += adxl372_spi.o
obj-$(CONFIG_ADXL380) += adxl380.o
obj-$(CONFIG_ADXL380_I2C) += adxl380_i2c.o
obj-$(CONFIG_ADXL380_SPI) += adxl380_spi.o
obj-$(CONFIG_BMA180) += bma180.o
obj-$(CONFIG_BMA220) += bma220_spi.o
obj-$(CONFIG_BMA400) += bma400_core.o
+1905 −0

File added.

Preview size limit exceeded, changes collapsed.

+26 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * ADXL380 3-Axis Digital Accelerometer
 *
 * Copyright 2024 Analog Devices Inc.
 */

#ifndef _ADXL380_H_
#define _ADXL380_H_

struct adxl380_chip_info {
	const char *name;
	const int scale_tbl[3][2];
	const int samp_freq_tbl[3];
	const int temp_offset;
	const u16 chip_id;
};

extern const struct adxl380_chip_info adxl380_chip_info;
extern const struct adxl380_chip_info adxl382_chip_info;

int adxl380_probe(struct device *dev, struct regmap *regmap,
		  const struct adxl380_chip_info *chip_info);
bool adxl380_readable_noinc_reg(struct device *dev, unsigned int reg);

#endif /* _ADXL380_H_ */
Loading