Message ID | 20200328184519.2302703-1-jimmyassarsson@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
On Sat, 28 Mar 2020 19:45:19 +0100 Jimmy Assarsson <jimmyassarsson@gmail.com> wrote: > Add LIS3MDL register map to sensor hub device table. > Tested with LSM6DSM. > > Signed-off-by: Jimmy Assarsson <jimmyassarsson@gmail.com> Please always repost the entire series. On this occasion I can find patch 1 but sometimes it's not so easy :) Looks fine to me, but lets' leave it on list for a while longer to see if others wish to comment. > --- > Changes in v2: > - Use ST_SENSORS_DEFAULT_WAI_ADDRESS > > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 64 ++++++++++++++++++++ > 1 file changed, 64 insertions(+) > > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > index 95ddd19d1aa7..3b983e0cc5ce 100644 > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > @@ -28,6 +28,7 @@ > #include <linux/iio/sysfs.h> > #include <linux/bitfield.h> > > +#include <linux/iio/common/st_sensors.h> > #include "st_lsm6dsx.h" > > #define ST_LSM6DSX_SLV_ADDR(n, base) ((base) + (n) * 3) > @@ -88,6 +89,69 @@ static const struct st_lsm6dsx_ext_dev_settings st_lsm6dsx_ext_dev_table[] = { > .len = 6, > }, > }, > + /* LIS3MDL */ > + { > + .i2c_addr = { 0x1e }, > + .wai = { > + .addr = ST_SENSORS_DEFAULT_WAI_ADDRESS, > + .val = 0x3d, > + }, > + .id = ST_LSM6DSX_ID_MAGN, > + .odr_table = { > + .reg = { > + .addr = 0x20, > + .mask = GENMASK(4, 2), > + }, > + .odr_avl[0] = { 1000, 0x0 }, > + .odr_avl[1] = { 2000, 0x1 }, > + .odr_avl[2] = { 3000, 0x2 }, > + .odr_avl[3] = { 5000, 0x3 }, > + .odr_avl[4] = { 10000, 0x4 }, > + .odr_avl[5] = { 20000, 0x5 }, > + .odr_avl[6] = { 40000, 0x6 }, > + .odr_avl[7] = { 80000, 0x7 }, > + .odr_len = 8, > + }, > + .fs_table = { > + .reg = { > + .addr = 0x21, > + .mask = GENMASK(6, 5), > + }, > + .fs_avl[0] = { > + .gain = 146, > + .val = 0x00, > + }, /* 4000 uG/LSB */ > + .fs_avl[1] = { > + .gain = 292, > + .val = 0x01, > + }, /* 8000 uG/LSB */ > + .fs_avl[2] = { > + .gain = 438, > + .val = 0x02, > + }, /* 12000 uG/LSB */ > + .fs_avl[3] = { > + .gain = 584, > + .val = 0x03, > + }, /* 16000 uG/LSB */ > + .fs_len = 4, > + }, > + .pwr_table = { > + .reg = { > + .addr = 0x22, > + .mask = GENMASK(1, 0), > + }, > + .off_val = 0x2, > + .on_val = 0x0, > + }, > + .bdu = { > + .addr = 0x24, > + .mask = BIT(6), > + }, > + .out = { > + .addr = 0x28, > + .len = 6, > + }, > + }, > }; > > static void st_lsm6dsx_shub_wait_complete(struct st_lsm6dsx_hw *hw)
On Sun, 29 Mar 2020 10:42:40 +0100 Jonathan Cameron <jic23@jic23.retrosnub.co.uk> wrote: > On Sat, 28 Mar 2020 19:45:19 +0100 > Jimmy Assarsson <jimmyassarsson@gmail.com> wrote: > > > Add LIS3MDL register map to sensor hub device table. > > Tested with LSM6DSM. > > > > Signed-off-by: Jimmy Assarsson <jimmyassarsson@gmail.com> > > Please always repost the entire series. On this occasion I can find > patch 1 but sometimes it's not so easy :) > > Looks fine to me, but lets' leave it on list for a while longer to > see if others wish to comment. > Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > > --- > > Changes in v2: > > - Use ST_SENSORS_DEFAULT_WAI_ADDRESS > > > > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 64 ++++++++++++++++++++ > > 1 file changed, 64 insertions(+) > > > > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > > index 95ddd19d1aa7..3b983e0cc5ce 100644 > > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > > @@ -28,6 +28,7 @@ > > #include <linux/iio/sysfs.h> > > #include <linux/bitfield.h> > > > > +#include <linux/iio/common/st_sensors.h> > > #include "st_lsm6dsx.h" > > > > #define ST_LSM6DSX_SLV_ADDR(n, base) ((base) + (n) * 3) > > @@ -88,6 +89,69 @@ static const struct st_lsm6dsx_ext_dev_settings st_lsm6dsx_ext_dev_table[] = { > > .len = 6, > > }, > > }, > > + /* LIS3MDL */ > > + { > > + .i2c_addr = { 0x1e }, > > + .wai = { > > + .addr = ST_SENSORS_DEFAULT_WAI_ADDRESS, > > + .val = 0x3d, > > + }, > > + .id = ST_LSM6DSX_ID_MAGN, > > + .odr_table = { > > + .reg = { > > + .addr = 0x20, > > + .mask = GENMASK(4, 2), > > + }, > > + .odr_avl[0] = { 1000, 0x0 }, > > + .odr_avl[1] = { 2000, 0x1 }, > > + .odr_avl[2] = { 3000, 0x2 }, > > + .odr_avl[3] = { 5000, 0x3 }, > > + .odr_avl[4] = { 10000, 0x4 }, > > + .odr_avl[5] = { 20000, 0x5 }, > > + .odr_avl[6] = { 40000, 0x6 }, > > + .odr_avl[7] = { 80000, 0x7 }, > > + .odr_len = 8, > > + }, > > + .fs_table = { > > + .reg = { > > + .addr = 0x21, > > + .mask = GENMASK(6, 5), > > + }, > > + .fs_avl[0] = { > > + .gain = 146, > > + .val = 0x00, > > + }, /* 4000 uG/LSB */ > > + .fs_avl[1] = { > > + .gain = 292, > > + .val = 0x01, > > + }, /* 8000 uG/LSB */ > > + .fs_avl[2] = { > > + .gain = 438, > > + .val = 0x02, > > + }, /* 12000 uG/LSB */ > > + .fs_avl[3] = { > > + .gain = 584, > > + .val = 0x03, > > + }, /* 16000 uG/LSB */ > > + .fs_len = 4, > > + }, > > + .pwr_table = { > > + .reg = { > > + .addr = 0x22, > > + .mask = GENMASK(1, 0), > > + }, > > + .off_val = 0x2, > > + .on_val = 0x0, > > + }, > > + .bdu = { > > + .addr = 0x24, > > + .mask = BIT(6), > > + }, > > + .out = { > > + .addr = 0x28, > > + .len = 6, > > + }, > > + }, > > }; > > > > static void st_lsm6dsx_shub_wait_complete(struct st_lsm6dsx_hw *hw) >
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c index 95ddd19d1aa7..3b983e0cc5ce 100644 --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c @@ -28,6 +28,7 @@ #include <linux/iio/sysfs.h> #include <linux/bitfield.h> +#include <linux/iio/common/st_sensors.h> #include "st_lsm6dsx.h" #define ST_LSM6DSX_SLV_ADDR(n, base) ((base) + (n) * 3) @@ -88,6 +89,69 @@ static const struct st_lsm6dsx_ext_dev_settings st_lsm6dsx_ext_dev_table[] = { .len = 6, }, }, + /* LIS3MDL */ + { + .i2c_addr = { 0x1e }, + .wai = { + .addr = ST_SENSORS_DEFAULT_WAI_ADDRESS, + .val = 0x3d, + }, + .id = ST_LSM6DSX_ID_MAGN, + .odr_table = { + .reg = { + .addr = 0x20, + .mask = GENMASK(4, 2), + }, + .odr_avl[0] = { 1000, 0x0 }, + .odr_avl[1] = { 2000, 0x1 }, + .odr_avl[2] = { 3000, 0x2 }, + .odr_avl[3] = { 5000, 0x3 }, + .odr_avl[4] = { 10000, 0x4 }, + .odr_avl[5] = { 20000, 0x5 }, + .odr_avl[6] = { 40000, 0x6 }, + .odr_avl[7] = { 80000, 0x7 }, + .odr_len = 8, + }, + .fs_table = { + .reg = { + .addr = 0x21, + .mask = GENMASK(6, 5), + }, + .fs_avl[0] = { + .gain = 146, + .val = 0x00, + }, /* 4000 uG/LSB */ + .fs_avl[1] = { + .gain = 292, + .val = 0x01, + }, /* 8000 uG/LSB */ + .fs_avl[2] = { + .gain = 438, + .val = 0x02, + }, /* 12000 uG/LSB */ + .fs_avl[3] = { + .gain = 584, + .val = 0x03, + }, /* 16000 uG/LSB */ + .fs_len = 4, + }, + .pwr_table = { + .reg = { + .addr = 0x22, + .mask = GENMASK(1, 0), + }, + .off_val = 0x2, + .on_val = 0x0, + }, + .bdu = { + .addr = 0x24, + .mask = BIT(6), + }, + .out = { + .addr = 0x28, + .len = 6, + }, + }, }; static void st_lsm6dsx_shub_wait_complete(struct st_lsm6dsx_hw *hw)
Add LIS3MDL register map to sensor hub device table. Tested with LSM6DSM. Signed-off-by: Jimmy Assarsson <jimmyassarsson@gmail.com> --- Changes in v2: - Use ST_SENSORS_DEFAULT_WAI_ADDRESS drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 64 ++++++++++++++++++++ 1 file changed, 64 insertions(+)