mirror of
https://github.com/torvalds/linux.git
synced 2024-09-21 07:23:06 +00:00
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:
parent
0e2bf22aed
commit
16ac43a1b1
|
@ -16,6 +16,7 @@ config IIO_ST_LSM6DSX
|
||||||
- asm330lhb
|
- asm330lhb
|
||||||
- asm330lhh
|
- asm330lhh
|
||||||
- asm330lhhx
|
- asm330lhhx
|
||||||
|
- asm330lhhxg1
|
||||||
- ism330dhcx
|
- ism330dhcx
|
||||||
- ism330dlc
|
- ism330dlc
|
||||||
- ism330is
|
- ism330is
|
||||||
|
|
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
* - ASM330LHB
|
* - ASM330LHB
|
||||||
* - ASM330LHH
|
* - ASM330LHH
|
||||||
* - ASM330LHHX
|
* - ASM330LHHX
|
||||||
|
* - ASM330LHHXG1
|
||||||
* - ISM330DHCX
|
* - ISM330DHCX
|
||||||
* - LSM6DSO
|
* - LSM6DSO
|
||||||
* - LSM6DSOP
|
* - LSM6DSOP
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user