add support for ASM330LHHX
Subsystems (3)
Lorenzo Bianconi
maintainerPATCH v2 2/2 dt-bindings: iio: imu: st_lsm6dsx: add asm330lhhx device bindings
In reply to Lorenzo BianconiAdd device bindings for asm330lhhx IMU sensor.
Use lsm6dsr as fallback device for asm330lhhx since it implements all the features currently supported by asm330lhhx.
--- .../bindings/iio/imu/st,lsm6dsx.yaml | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-)
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml +21 -17
@@ -14,23 +14,27 @@ description: properties: compatible: - enum: - - st,lsm6ds3 - - st,lsm6ds3h - - st,lsm6dsl - - st,lsm6dsm - - st,ism330dlc - - st,lsm6dso - - st,asm330lhh - - st,lsm6dsox - - st,lsm6dsr - - st,lsm6ds3tr-c - - st,ism330dhcx - - st,lsm9ds1-imu - - st,lsm6ds0 - - st,lsm6dsrx - - st,lsm6dst - - st,lsm6dsop + oneOf: + - enum: + - st,lsm6ds3 + - st,lsm6ds3h + - st,lsm6dsl + - st,lsm6dsm + - st,ism330dlc + - st,lsm6dso + - st,asm330lhh + - st,lsm6dsox + - st,lsm6dsr + - st,lsm6ds3tr-c + - st,ism330dhcx + - st,lsm9ds1-imu + - st,lsm6ds0 + - st,lsm6dsrx + - st,lsm6dst + - st,lsm6dsop + - items: + - const: st,asm330lhhx + - const: st,lsm6dsr reg: maxItems: 1
Signature · 1 line
2.35.1
Lorenzo Bianconi
maintainerv2 cover add support for ASM330LHHX
Add support for ASM330LHHX IMU automotive mems sensor
https://www.st.com/resource/en/datasheet/asm330lhhx.pdf
Changes since v1:
- use lsm6dsr as fallback device for asm330lhhx
Lorenzo Bianconi (2):
iio: imu: st_lsm6dsx: add support to ASM330LHHX
dt-bindings: iio: imu: st_lsm6dsx: add asm330lhhx device bindings
.../bindings/iio/imu/st,lsm6dsx.yaml | 38 ++++++++++--------- drivers/iio/imu/st_lsm6dsx/Kconfig | 6 +-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 + .../iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 3 +- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 ++- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++ 7 files changed, 43 insertions(+), 22 deletions(-)
Signature · 1 line
2.35.1
Lorenzo Bianconi
maintainerPATCH v2 1/2 iio: imu: st_lsm6dsx: add support to ASM330LHHX
Add support to STM ASM330LHHX (acc + gyro) automotive Mems sensor. The ASM330LHHX sensor can use LSM6DSR as fallback device since it implements all the ASM330LHHX features currently implemented in st_lsm6dsx.
Datasheet: https://www.st.com/resource/en/datasheet/asm330lhhx.pdf
--- drivers/iio/imu/st_lsm6dsx/Kconfig | 6 +++--- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 ++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 3 ++- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 +++++- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++++ 6 files changed, 22 insertions(+), 5 deletions(-)
drivers/iio/imu/st_lsm6dsx/Kconfig +3 -3
@@ -11,9 +11,9 @@ config IIO_ST_LSM6DSX help Say yes here to build support for STMicroelectronics LSM6DSx imu sensor. Supported devices: lsm6ds3, lsm6ds3h, lsm6dsl, lsm6dsm, - ism330dlc, lsm6dso, lsm6dsox, asm330lhh, lsm6dsr, lsm6ds3tr-c, - ism330dhcx, lsm6dsrx, lsm6ds0, lsm6dsop, the accelerometer/gyroscope - of lsm9ds1 and lsm6dst. + ism330dlc, lsm6dso, lsm6dsox, asm330lhh, asm330lhhx, lsm6dsr, + lsm6ds3tr-c, ism330dhcx, lsm6dsrx, lsm6ds0, lsm6dsop, + the accelerometer/gyroscope of lsm9ds1 and lsm6dst. 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
@@ -31,6 +31,7 @@#define ST_LSM6DSRX_DEV_NAME "lsm6dsrx"#define ST_LSM6DST_DEV_NAME "lsm6dst"#define ST_LSM6DSOP_DEV_NAME "lsm6dsop" +#define ST_ASM330LHHX_DEV_NAME "asm330lhhx"enum st_lsm6dsx_hw_id {ST_LSM6DS3_ID ,
@@ -49,6 +50,7 @@ enum st_lsm6dsx_hw_id {ST_LSM6DSRX_ID ,ST_LSM6DST_ID ,ST_LSM6DSOP_ID , +ST_ASM330LHHX_ID , ST_LSM6DSX_MAX_ID, };
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c +2 -1
@@ -14,7 +14,8 @@* (e.g. Gx, Gy, Gz, Ax, Ay, Az), then data are repeated depending on the * value of the decimation factor and ODR set for each FIFO data set. * -* LSM6DSO/LSM6DSOX/ASM330LHH/LSM6DSR/LSM6DSRX/ISM330DHCX/LSM6DST/LSM6DSOP: +* LSM6DSO/LSM6DSOX/ASM330LHH/ASM330LHHX/LSM6DSR/LSM6DSRX/ISM330DHCX/ +* LSM6DST/LSM6DSOP: * The FIFO buffer can be configured to store data from gyroscope and * accelerometer. Each sample is queued with a tag (1B) indicating data * source (gyroscope, accelerometer, hw timer).
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +5 -1
@@ -26,7 +26,7 @@* - Gyroscope supported full-scale [dps]: +-125/+-245/+-500/+-1000/+-2000 * - FIFO size: 4KB * -* - LSM6DSO/LSM6DSOX/ASM330LHH/LSM6DSR/ISM330DHCX/LSM6DST/LSM6DSOP: +* - LSM6DSO/LSM6DSOX/ASM330LHH/ASM330LHHX/LSM6DSR/ISM330DHCX/LSM6DST/LSM6DSOP: * - Accelerometer/Gyroscope supported ODR [Hz]: 12.5, 26, 52, 104, 208, 416, * 833 * - Accelerometer supported full-scale [g]: +-2/+-4/+-8/+-16
@@ -786,6 +786,10 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = { .hw_id = ST_LSM6DST_ID, .name = ST_LSM6DST_DEV_NAME, .wai = 0x6d, + }, { + .hw_id = ST_ASM330LHHX_ID, + .name = ST_ASM330LHHX_DEV_NAME, + .wai = 0x6b, }, }, .channels = {
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c +5 -0
@@ -101,6 +101,10 @@ static const struct of_device_id st_lsm6dsx_i2c_of_match[] = { .compatible = "st,lsm6dsop", .data = (void *)ST_LSM6DSOP_ID, }, + { + .compatible = "st,asm330lhhx", + .data = (void *)ST_ASM330LHHX_ID, + }, {}, };MODULE_DEVICE_TABLE (of, st_lsm6dsx_i2c_of_match);
@@ -122,6 +126,7 @@ static const struct i2c_device_id st_lsm6dsx_i2c_id_table[] = { { ST_LSM6DSRX_DEV_NAME, ST_LSM6DSRX_ID }, { ST_LSM6DST_DEV_NAME, ST_LSM6DST_ID }, { ST_LSM6DSOP_DEV_NAME, ST_LSM6DSOP_ID }, + { ST_ASM330LHHX_DEV_NAME, ST_ASM330LHHX_ID }, {}, };MODULE_DEVICE_TABLE (i2c, st_lsm6dsx_i2c_id_table);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c +5 -0
@@ -101,6 +101,10 @@ static const struct of_device_id st_lsm6dsx_spi_of_match[] = { .compatible = "st,lsm6dsop", .data = (void *)ST_LSM6DSOP_ID, }, + { + .compatible = "st,asm330lhhx", + .data = (void *)ST_ASM330LHHX_ID, + }, {}, };MODULE_DEVICE_TABLE (of, st_lsm6dsx_spi_of_match);
@@ -122,6 +126,7 @@ static const struct spi_device_id st_lsm6dsx_spi_id_table[] = { { ST_LSM6DSRX_DEV_NAME, ST_LSM6DSRX_ID }, { ST_LSM6DST_DEV_NAME, ST_LSM6DST_ID }, { ST_LSM6DSOP_DEV_NAME, ST_LSM6DSOP_ID }, + { ST_ASM330LHHX_DEV_NAME, ST_ASM330LHHX_ID }, {}, };MODULE_DEVICE_TABLE (spi, st_lsm6dsx_spi_id_table);
Signature · 1 line
2.35.1
Re: [PATCH v2 2/2] dt-bindings: iio: imu: st_lsm6dsx: add asm330lhhx device bindings
In reply to Lorenzo BianconiQuoted 9 lines · Lorenzo Bianconi
Add device bindings for asm330lhhx IMU sensor.
Use lsm6dsr as fallback device for asm330lhhx since it implements all the features currently supported by asm330lhhx.Signed-off-by Lorenzo Bianconi <[email protected]>--- .../bindings/iio/imu/st,lsm6dsx.yaml | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-)
Best regards,
Krzysztof
Jonathan Cameron
maintainerQuoted 5 lines · On Mon, 4 Apr 2022 21:24:42 +0200 Lorenzo Bianconi <[email protected]> wrote:
Add support for ASM330LHHX IMU automotive mems sensor
https://www.st.com/resource/en/datasheet/asm330lhhx.pdfChanges since v1:
- use lsm6dsr as fallback device for asm330lhhx
Series applied to the togreg branch of iio.git and initially pushed out as testing for 0-day to take a first look at it.
Thanks,
Jonathan
Quoted 14 lines
Lorenzo Bianconi (2):
iio: imu:st_lsm6dsx: add support to ASM330LHHX
dt-bindings: iio: imu:st_lsm6dsx: add asm330lhhx device bindings.../bindings/iio/imu/st,lsm6dsx.yaml | 38 ++++++++++--------- drivers/iio/imu/st_lsm6dsx/Kconfig | 6 +-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 + .../iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 3 +- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 6 ++- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++ 7 files changed, 43 insertions(+), 22 deletions(-)