add support for ISM330IS
Subsystems (3)
Lorenzo Bianconi
maintainercover add support for ISM330IS
Add support for ISM330IS IMU mems sensor
https://www.st.com/resource/en/datasheet/ism330is.pdf
Lorenzo Bianconi (2):
iio: imu: st_lsm6dsx: add support to ISM330IS
dt-bindings: iio: imu: st_lsm6dsx: add ism330is
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 3 +++ drivers/iio/imu/st_lsm6dsx/Kconfig | 4 ++-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 ++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 8 ++++++-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++++ 6 files changed, 23 insertions(+), 4 deletions(-)
Signature · 1 line
2.38.1
Lorenzo Bianconi
maintainerPATCH 1/2 iio: imu: st_lsm6dsx: add support to ISM330IS
Add support to STM ISM330IS (accelerometer and gyroscope) Mems sensor. The ISM330IS sensor can use LSM6DSO16IS as fallback device since it implements all the ISM330IS features currently implemented in st_lsm6dsx.
Datasheet: https://www.st.com/resource/en/datasheet/ism330is.pdf
--- drivers/iio/imu/st_lsm6dsx/Kconfig | 4 ++-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 ++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 8 ++++++-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++++ 5 files changed, 20 insertions(+), 4 deletions(-)
drivers/iio/imu/st_lsm6dsx/Kconfig +2 -2
@@ -13,8 +13,8 @@ config IIO_ST_LSM6DSX sensor. Supported devices: lsm6ds3, lsm6ds3h, lsm6dsl, lsm6dsm, ism330dlc, lsm6dso, lsm6dsox, asm330lhh, asm330lhhx, lsm6dsr, lsm6ds3tr-c, ism330dhcx, lsm6dsrx, lsm6ds0, lsm6dsop, lsm6dstx, - lsm6dsv, lsm6dsv16x, lsm6dso16is, the accelerometer/gyroscope - of lsm9ds1 and lsm6dst. + lsm6dsv, lsm6dsv16x, lsm6dso16is, ism330is, lsm6dst and the + accelerometer/gyroscope of lsm9ds1. To compile this driver as a module, choose M here: the module will be called st_lsm6dsx.
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h +2 -0
@@ -36,6 +36,7 @@#define ST_LSM6DSV_DEV_NAME "lsm6dsv"#define ST_LSM6DSV16X_DEV_NAME "lsm6dsv16x"#define ST_LSM6DSO16IS_DEV_NAME "lsm6dso16is" +#define ST_ISM330IS_DEV_NAME "ism330is"enum st_lsm6dsx_hw_id {ST_LSM6DS3_ID ,
@@ -59,6 +60,7 @@ enum st_lsm6dsx_hw_id {ST_LSM6DSV_ID ,ST_LSM6DSV16X_ID ,ST_LSM6DSO16IS_ID , +ST_ISM330IS_ID , ST_LSM6DSX_MAX_ID, };
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +6 -2
@@ -27,7 +27,7 @@* - FIFO size: 4KB * * - LSM6DSO/LSM6DSOX/ASM330LHH/ASM330LHHX/LSM6DSR/ISM330DHCX/LSM6DST/LSM6DSOP/ -* LSM6DSTX/LSM6DSO16IS: +* LSM6DSTX/LSM6DSO16IS/ISM330IS: * - Accelerometer/Gyroscope supported ODR [Hz]: 12.5, 26, 52, 104, 208, 416, * 833 * - Accelerometer supported full-scale [g]: +-2/+-4/+-8/+-16
@@ -1393,7 +1393,11 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = { .hw_id = ST_LSM6DSO16IS_ID, .name = ST_LSM6DSO16IS_DEV_NAME, .wai = 0x22, - }, + }, { + .hw_id = ST_ISM330IS_ID, + .name = ST_ISM330IS_DEV_NAME, + .wai = 0x22, + } }, .channels = { [ST_LSM6DSX_ID_ACC] = {
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c +5 -0
@@ -121,6 +121,10 @@ static const struct of_device_id st_lsm6dsx_i2c_of_match[] = { .compatible = "st,lsm6dso16is", .data = (void *)ST_LSM6DSO16IS_ID, }, + { + .compatible = "st,ism330is", + .data = (void *)ST_ISM330IS_ID, + }, {}, };MODULE_DEVICE_TABLE (of, st_lsm6dsx_i2c_of_match);
@@ -147,6 +151,7 @@ static const struct i2c_device_id st_lsm6dsx_i2c_id_table[] = { { ST_LSM6DSV_DEV_NAME, ST_LSM6DSV_ID }, { ST_LSM6DSV16X_DEV_NAME, ST_LSM6DSV16X_ID }, { ST_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID }, + { ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID }, {}, };MODULE_DEVICE_TABLE (i2c, st_lsm6dsx_i2c_id_table);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c +5 -0
@@ -121,6 +121,10 @@ static const struct of_device_id st_lsm6dsx_spi_of_match[] = { .compatible = "st,lsm6dso16is", .data = (void *)ST_LSM6DSO16IS_ID, }, + { + .compatible = "st,ism330is", + .data = (void *)ST_ISM330IS_ID, + }, {}, };MODULE_DEVICE_TABLE (of, st_lsm6dsx_spi_of_match);
@@ -147,6 +151,7 @@ static const struct spi_device_id st_lsm6dsx_spi_id_table[] = { { ST_LSM6DSV_DEV_NAME, ST_LSM6DSV_ID }, { ST_LSM6DSV16X_DEV_NAME, ST_LSM6DSV16X_ID }, { ST_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID }, + { ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID }, {}, };MODULE_DEVICE_TABLE (spi, st_lsm6dsx_spi_id_table);
Signature · 1 line
2.38.1
Lorenzo Bianconi
maintainerPATCH 2/2 dt-bindings: iio: imu: st_lsm6dsx: add ism330is
In reply to Lorenzo BianconiAdd device bindings for ism330is IMU sensor.
Use lsm6dso16is as fallback device for ism330is since it implements all the features currently supported by ism330is.
--- Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 3 +++ 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml +3 -0
@@ -43,6 +43,9 @@ properties: - items: - const: st,lsm6dsv16x - const: st,lsm6dsv + - items: + - const: st,ism330is + - const: st,lsm6dso16is reg: maxItems: 1
Signature · 1 line
2.38.1
Re: [PATCH 2/2] dt-bindings: iio: imu: st_lsm6dsx: add ism330is
Quoted 5 lines · Lorenzo Bianconi
Add device bindings for ism330is IMU sensor.
Use lsm6dso16is as fallback device for ism330is since it implements all the features currently supported by ism330is.Signed-off-by Lorenzo Bianconi <[email protected]>
There were few changes to this binding (new compatibles) and the names are similar, so I hope the end result is correct... Briefly it looks fine:
Best regards,
Krzysztof
Jonathan Cameron
maintainerQuoted 2 lines · On Thu, 24 Nov 2022 09:49:26 +0100 Lorenzo Bianconi <[email protected]> wrote:
Add support for ISM330IS IMU mems sensor
https://www.st.com/resource/en/datasheet/ism330is.pdf
Looks safe enough for a very late application in the cycle as it'll get only a day or so in next before I send the final pull request. Applied
Quoted 13 lines
Lorenzo Bianconi (2):
iio: imu:st_lsm6dsx: add support to ISM330IS
dt-bindings: iio: imu:st_lsm6dsx: add ism330isDocumentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 3 +++ drivers/iio/imu/st_lsm6dsx/Kconfig | 4 ++-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 ++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 8 ++++++-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++++ 6 files changed, 23 insertions(+), 4 deletions(-)