Commit 16ac43a1 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Jonathan Cameron
Browse files

iio: imu: st_lsm6dsx: add support to ASM330LHHXG1

Add support to STM ASM330LHHXG1 (accelerometer and gyroscope) Mems
sensor.
The ASM330LHHXG1 sensor can use LSM6DSR as fallback device since LSM6DSR
implements all the ASM330LHHXG1 features currently implemented in
st_lsm6dsx.

Link: https://www.st.com/resource/en/datasheet/asm330lhhxg1.pdf


Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Link: https://lore.kernel.org/r/e3dbe4720cdf407d0152e93b1331306a8c7f5df3.1706961432.git.lorenzo@kernel.org


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 0e2bf22a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ config IIO_ST_LSM6DSX
	  - asm330lhb
	  - asm330lhh
	  - asm330lhhx
	  - asm330lhhxg1
	  - ism330dhcx
	  - ism330dlc
	  - ism330is
+2 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@
#define ST_LSM6DSO16IS_DEV_NAME	"lsm6dso16is"
#define ST_ISM330IS_DEV_NAME	"ism330is"
#define ST_ASM330LHB_DEV_NAME	"asm330lhb"
#define ST_ASM330LHHXG1_DEV_NAME	"asm330lhhxg1"

enum st_lsm6dsx_hw_id {
	ST_LSM6DS3_ID = 1,
@@ -63,6 +64,7 @@ enum st_lsm6dsx_hw_id {
	ST_LSM6DSO16IS_ID,
	ST_ISM330IS_ID,
	ST_ASM330LHB_ID,
	ST_ASM330LHHXG1_ID,
	ST_LSM6DSX_MAX_ID,
};

+1 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
 * - ASM330LHB
 * - ASM330LHH
 * - ASM330LHHX
 * - ASM330LHHXG1
 * - ISM330DHCX
 * - LSM6DSO
 * - LSM6DSOP
+5 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
 *
 * - ASM330LHH
 * - ASM330LHHX
 * - ASM330LHHXG1
 * - ISM330DHCX
 * - ISM330IS
 * - LSM6DSO
@@ -836,6 +837,10 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
				.hw_id = ST_ASM330LHHX_ID,
				.name = ST_ASM330LHHX_DEV_NAME,
				.wai = 0x6b,
			}, {
				.hw_id = ST_ASM330LHHXG1_ID,
				.name = ST_ASM330LHHXG1_DEV_NAME,
				.wai = 0x6b,
			}, {
				.hw_id = ST_LSM6DSTX_ID,
				.name = ST_LSM6DSTX_DEV_NAME,
+5 −0
Original line number Diff line number Diff line
@@ -134,6 +134,10 @@ static const struct of_device_id st_lsm6dsx_i2c_of_match[] = {
		.compatible = "st,asm330lhb",
		.data = (void *)ST_ASM330LHB_ID,
	},
	{
		.compatible = "st,asm330lhhxg1",
		.data = (void *)ST_ASM330LHHXG1_ID,
	},
	{},
};
MODULE_DEVICE_TABLE(of, st_lsm6dsx_i2c_of_match);
@@ -168,6 +172,7 @@ static const struct i2c_device_id st_lsm6dsx_i2c_id_table[] = {
	{ ST_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID },
	{ ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID },
	{ ST_ASM330LHB_DEV_NAME, ST_ASM330LHB_ID },
	{ ST_ASM330LHHXG1_DEV_NAME, ST_ASM330LHHXG1_ID },
	{},
};
MODULE_DEVICE_TABLE(i2c, st_lsm6dsx_i2c_id_table);
Loading