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: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://lore.kernel.org/r/e3dbe4720cdf407d0152e93b1331306a8c7f5df3.1706961432.git.lorenzo@kernel.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Lorenzo Bianconi 2024-02-03 13:01:37 +01:00 committed by Jonathan Cameron
parent 0e2bf22aed
commit 16ac43a1b1
6 changed files with 19 additions and 0 deletions

View File

@ -16,6 +16,7 @@ config IIO_ST_LSM6DSX
- asm330lhb - asm330lhb
- asm330lhh - asm330lhh
- asm330lhhx - asm330lhhx
- asm330lhhxg1
- ism330dhcx - ism330dhcx
- ism330dlc - ism330dlc
- ism330is - ism330is

View File

@ -38,6 +38,7 @@
#define ST_LSM6DSO16IS_DEV_NAME "lsm6dso16is" #define ST_LSM6DSO16IS_DEV_NAME "lsm6dso16is"
#define ST_ISM330IS_DEV_NAME "ism330is" #define ST_ISM330IS_DEV_NAME "ism330is"
#define ST_ASM330LHB_DEV_NAME "asm330lhb" #define ST_ASM330LHB_DEV_NAME "asm330lhb"
#define ST_ASM330LHHXG1_DEV_NAME "asm330lhhxg1"
enum st_lsm6dsx_hw_id { enum st_lsm6dsx_hw_id {
ST_LSM6DS3_ID = 1, ST_LSM6DS3_ID = 1,
@ -63,6 +64,7 @@ enum st_lsm6dsx_hw_id {
ST_LSM6DSO16IS_ID, ST_LSM6DSO16IS_ID,
ST_ISM330IS_ID, ST_ISM330IS_ID,
ST_ASM330LHB_ID, ST_ASM330LHB_ID,
ST_ASM330LHHXG1_ID,
ST_LSM6DSX_MAX_ID, ST_LSM6DSX_MAX_ID,
}; };

View File

@ -31,6 +31,7 @@
* - ASM330LHB * - ASM330LHB
* - ASM330LHH * - ASM330LHH
* - ASM330LHHX * - ASM330LHHX
* - ASM330LHHXG1
* - ISM330DHCX * - ISM330DHCX
* - LSM6DSO * - LSM6DSO
* - LSM6DSOP * - LSM6DSOP

View File

@ -33,6 +33,7 @@
* *
* - ASM330LHH * - ASM330LHH
* - ASM330LHHX * - ASM330LHHX
* - ASM330LHHXG1
* - ISM330DHCX * - ISM330DHCX
* - ISM330IS * - ISM330IS
* - LSM6DSO * - LSM6DSO
@ -836,6 +837,10 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
.hw_id = ST_ASM330LHHX_ID, .hw_id = ST_ASM330LHHX_ID,
.name = ST_ASM330LHHX_DEV_NAME, .name = ST_ASM330LHHX_DEV_NAME,
.wai = 0x6b, .wai = 0x6b,
}, {
.hw_id = ST_ASM330LHHXG1_ID,
.name = ST_ASM330LHHXG1_DEV_NAME,
.wai = 0x6b,
}, { }, {
.hw_id = ST_LSM6DSTX_ID, .hw_id = ST_LSM6DSTX_ID,
.name = ST_LSM6DSTX_DEV_NAME, .name = ST_LSM6DSTX_DEV_NAME,

View File

@ -134,6 +134,10 @@ static const struct of_device_id st_lsm6dsx_i2c_of_match[] = {
.compatible = "st,asm330lhb", .compatible = "st,asm330lhb",
.data = (void *)ST_ASM330LHB_ID, .data = (void *)ST_ASM330LHB_ID,
}, },
{
.compatible = "st,asm330lhhxg1",
.data = (void *)ST_ASM330LHHXG1_ID,
},
{}, {},
}; };
MODULE_DEVICE_TABLE(of, st_lsm6dsx_i2c_of_match); 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_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID },
{ ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID }, { ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID },
{ ST_ASM330LHB_DEV_NAME, ST_ASM330LHB_ID }, { ST_ASM330LHB_DEV_NAME, ST_ASM330LHB_ID },
{ ST_ASM330LHHXG1_DEV_NAME, ST_ASM330LHHXG1_ID },
{}, {},
}; };
MODULE_DEVICE_TABLE(i2c, st_lsm6dsx_i2c_id_table); MODULE_DEVICE_TABLE(i2c, st_lsm6dsx_i2c_id_table);

View File

@ -129,6 +129,10 @@ static const struct of_device_id st_lsm6dsx_spi_of_match[] = {
.compatible = "st,asm330lhb", .compatible = "st,asm330lhb",
.data = (void *)ST_ASM330LHB_ID, .data = (void *)ST_ASM330LHB_ID,
}, },
{
.compatible = "st,asm330lhhxg1",
.data = (void *)ST_ASM330LHHXG1_ID,
},
{}, {},
}; };
MODULE_DEVICE_TABLE(of, st_lsm6dsx_spi_of_match); MODULE_DEVICE_TABLE(of, st_lsm6dsx_spi_of_match);
@ -157,6 +161,7 @@ static const struct spi_device_id st_lsm6dsx_spi_id_table[] = {
{ ST_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID }, { ST_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID },
{ ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID }, { ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID },
{ ST_ASM330LHB_DEV_NAME, ST_ASM330LHB_ID }, { ST_ASM330LHB_DEV_NAME, ST_ASM330LHB_ID },
{ ST_ASM330LHHXG1_DEV_NAME, ST_ASM330LHHXG1_ID },
{}, {},
}; };
MODULE_DEVICE_TABLE(spi, st_lsm6dsx_spi_id_table); MODULE_DEVICE_TABLE(spi, st_lsm6dsx_spi_id_table);