add support for ASM330LHB
Subsystems (3)
Lorenzo Bianconi
maintainercover add support for ASM330LHB
Add support for ASM330LHB IMU automotive mems sensor
https://www.st.com/resource/en/datasheet/asm330lhb.pdf
Lorenzo Bianconi (2):
iio: imu: st_lsm6dsx: add support to ASM330LHB
dt-bindings: iio: imu: st_lsm6dsx: add asm330lhb
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_buffer.c | 2 +- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 4 ++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++++ 7 files changed, 22 insertions(+), 3 deletions(-)
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 1/2 iio: imu: st_lsm6dsx: add support to ASM330LHB
Add support to STM ASM330LHB (acc + gyro) automotive Mems sensor. The ASM330LHB sensor can use ASM330LHH as fallback device since it implements all the ASM330LHB features currently implemented in st_lsm6dsx.
Datasheet: https://www.st.com/resource/en/datasheet/asm330lhb.pdf
--- drivers/iio/imu/st_lsm6dsx/Kconfig | 4 ++-- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 ++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c | 2 +- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 4 ++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c | 5 +++++ drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c | 5 +++++ 6 files changed, 19 insertions(+), 3 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, ism330is, lsm6dst and the - accelerometer/gyroscope of lsm9ds1. + lsm6dsv, lsm6dsv16x, lsm6dso16is, ism330is, asm330lhb, 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
@@ -37,6 +37,7 @@#define ST_LSM6DSV16X_DEV_NAME "lsm6dsv16x"#define ST_LSM6DSO16IS_DEV_NAME "lsm6dso16is"#define ST_ISM330IS_DEV_NAME "ism330is" +#define ST_ASM330LHB_DEV_NAME "asm330lhb"enum st_lsm6dsx_hw_id {ST_LSM6DS3_ID ,
@@ -61,6 +62,7 @@ enum st_lsm6dsx_hw_id {ST_LSM6DSV16X_ID ,ST_LSM6DSO16IS_ID ,ST_ISM330IS_ID , +ST_ASM330LHB_ID , ST_LSM6DSX_MAX_ID, };
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c +1 -1
@@ -15,7 +15,7 @@* value of the decimation factor and ODR set for each FIFO data set. * * LSM6DSO/LSM6DSOX/ASM330LHH/ASM330LHHX/LSM6DSR/LSM6DSRX/ISM330DHCX/ -* LSM6DST/LSM6DSOP/LSM6DSTX/LSM6DSV: +* LSM6DST/LSM6DSOP/LSM6DSTX/LSM6DSV/ASM330LHB: * 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 +4 -0
@@ -1032,6 +1032,10 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = { .hw_id = ST_LSM6DSOP_ID, .name = ST_LSM6DSOP_DEV_NAME, .wai = 0x6c, + }, { + .hw_id = ST_ASM330LHB_ID, + .name = ST_ASM330LHB_DEV_NAME, + .wai = 0x6b, }, }, .channels = {
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c +5 -0
@@ -125,6 +125,10 @@ static const struct of_device_id st_lsm6dsx_i2c_of_match[] = { .compatible = "st,ism330is", .data = (void *)ST_ISM330IS_ID, }, + { + .compatible = "st,asm330lhb", + .data = (void *)ST_ASM330LHB_ID, + }, {}, };MODULE_DEVICE_TABLE (of, st_lsm6dsx_i2c_of_match);
@@ -152,6 +156,7 @@ static const struct i2c_device_id st_lsm6dsx_i2c_id_table[] = { { ST_LSM6DSV16X_DEV_NAME, ST_LSM6DSV16X_ID }, { ST_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID }, { ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID }, + { ST_ASM330LHB_DEV_NAME, ST_ASM330LHB_ID }, {}, };MODULE_DEVICE_TABLE (i2c, st_lsm6dsx_i2c_id_table);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.c +5 -0
@@ -125,6 +125,10 @@ static const struct of_device_id st_lsm6dsx_spi_of_match[] = { .compatible = "st,ism330is", .data = (void *)ST_ISM330IS_ID, }, + { + .compatible = "st,asm330lhb", + .data = (void *)ST_ASM330LHB_ID, + }, {}, };MODULE_DEVICE_TABLE (of, st_lsm6dsx_spi_of_match);
@@ -152,6 +156,7 @@ static const struct spi_device_id st_lsm6dsx_spi_id_table[] = { { ST_LSM6DSV16X_DEV_NAME, ST_LSM6DSV16X_ID }, { ST_LSM6DSO16IS_DEV_NAME, ST_LSM6DSO16IS_ID }, { ST_ISM330IS_DEV_NAME, ST_ISM330IS_ID }, + { ST_ASM330LHB_DEV_NAME, ST_ASM330LHB_ID }, {}, };MODULE_DEVICE_TABLE (spi, st_lsm6dsx_spi_id_table);
Signature · 1 line
2.39.2
Lorenzo Bianconi
maintainerPATCH 2/2 dt-bindings: iio: imu: st_lsm6dsx: add asm330lhb
In reply to Lorenzo BianconiAdd device bindings for asm330lhb IMU sensor.
Use asm330lhh as fallback device for asm330lhb since it implements all the features currently supported by asm330lhb.
--- Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 3 +++ 1 file changed, 3 insertions(+)
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml +3 -0
@@ -46,6 +46,9 @@ properties: - items: - const: st,ism330is - const: st,lsm6dso16is + - items: + - const: st,asm330lhb + - const: st,asm330lhh reg: maxItems: 1
Signature · 1 line
2.39.2
Re: [PATCH 2/2] dt-bindings: iio: imu: st_lsm6dsx: add asm330lhb
Quoted 14 lines · Lorenzo Bianconi
Add device bindings for asm330lhb IMU sensor.
Use asm330lhh as fallback device for asm330lhb since it implements all the features currently supported by asm330lhb.Signed-off-by Lorenzo Bianconi <[email protected]>--- Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 3 +++ 1 file changed, 3 insertions(+)Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml +0
-0
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml properties: · line 51
Quoted 6 lines
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml +3
-0@@ -46,6 +46,9 @@ properties: - items: - const: st,ism330is - const: st,lsm6dso16is + - items: + - const: st,asm330lhb + - const: st,asm330lhh
You added it to the end of the list, but aren't there any ordering already? If so, it should be put rather in correct place.
Best regards,
Krzysztof
Lorenzo Bianconi
maintainerRe: [PATCH 2/2] dt-bindings: iio: imu: st_lsm6dsx: add asm330lhb
Quoted 10 lines · Krzysztof Kozlowski
Quoted 9 lines · Lorenzo Bianconi
Add device bindings for asm330lhb IMU sensor.
Use asm330lhh as fallback device for asm330lhb since it implements all the features currently supported by asm330lhb.Signed-off-by Lorenzo Bianconi <[email protected]>--- Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 3 +++ 1 file changed, 3 insertions(+)
Quoted 14 lines
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml properties: · line 51
Quoted 11 lines
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml +3
-0@@ -46,6 +46,9 @@ properties: - items: - const: st,ism330is - const: st,lsm6dso16is + - items: + - const: st,asm330lhb + - const: st,asm330lhhYou added it to the end of the list, but aren't there any ordering already? If so, it should be put rather in correct place.
Hi Krzysztof,
I do not think there is any ordering issue there.
Regards,
Lorenzo
Quoted 7 lines
Best regards,
Krzysztof
Jonathan Cameron
maintainerRe: [PATCH 2/2] dt-bindings: iio: imu: st_lsm6dsx: add asm330lhb
Quoted 26 lines · On Thu, 9 Mar 2023 10:57:00 +0100 Lorenzo Bianconi <[email protected]> wrote:
Quoted 10 lines · Krzysztof Kozlowski
Quoted 9 lines · Lorenzo Bianconi
Add device bindings for asm330lhb IMU sensor.
Use asm330lhh as fallback device for asm330lhb since it implements all the features currently supported by asm330lhb.Signed-off-by Lorenzo Bianconi <[email protected]>--- Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml | 3 +++ 1 file changed, 3 insertions(+)Quoted 14 lines
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml properties: · line 51
Quoted 11 lines
Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml +3
-0@@ -46,6 +46,9 @@ properties: - items: - const: st,ism330is - const: st,lsm6dso16is + - items: + - const: st,asm330lhb + - const: st,asm330lhhYou added it to the end of the list, but aren't there any ordering already? If so, it should be put rather in correct place.
Quoted 3 lines
Hi Krzysztof,
I do not think there is any ordering issue there.
As of today, they aren't in any particular order that I can see. However, it might be nice to go for some sort of order as a follow up patch (very low priority though!).
The same applies in the driver, where some of the entries could be organized by name or maybe wai value. Perhaps it's just not worth bothering and this series doesn't make things worse, so I've applied the series to the togreg branch of iio.git and pushed out initially as testing to let 0-day see what it can find.
Thanks,
Jonathan
Quoted 11 lines
Regards,
LorenzoQuoted 7 lines
Best regards,
Krzysztof