forked from Minki/linux
iio: imu: st_lsm6dsx: export max num of slave devices in st_lsm6dsx_shub_settings
Export max number of slave devices supported by the i2c master controller in st_lsm6dsx_shub_settings data structure. This is a preliminary patch to support i2c master controller on lsm6dsm sensors Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
4dae3d6147
commit
ee978bb86d
@ -176,6 +176,7 @@ struct st_lsm6dsx_hw_ts_settings {
|
||||
* @pullup_en: i2c controller pull-up register info (addr + mask).
|
||||
* @aux_sens: aux sensor register info (addr + mask).
|
||||
* @wr_once: write_once register info (addr + mask).
|
||||
* @num_ext_dev: max number of slave devices.
|
||||
* @shub_out: sensor hub first output register info.
|
||||
* @slv0_addr: slave0 address in secondary page.
|
||||
* @dw_slv0_addr: slave0 write register address in secondary page.
|
||||
@ -187,6 +188,7 @@ struct st_lsm6dsx_shub_settings {
|
||||
struct st_lsm6dsx_reg pullup_en;
|
||||
struct st_lsm6dsx_reg aux_sens;
|
||||
struct st_lsm6dsx_reg wr_once;
|
||||
u8 num_ext_dev;
|
||||
u8 shub_out;
|
||||
u8 slv0_addr;
|
||||
u8 dw_slv0_addr;
|
||||
|
@ -883,6 +883,7 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
|
||||
.addr = 0x14,
|
||||
.mask = BIT(6),
|
||||
},
|
||||
.num_ext_dev = 3,
|
||||
.shub_out = 0x02,
|
||||
.slv0_addr = 0x15,
|
||||
.dw_slv0_addr = 0x21,
|
||||
@ -1257,6 +1258,7 @@ static const struct st_lsm6dsx_settings st_lsm6dsx_sensor_settings[] = {
|
||||
.addr = 0x14,
|
||||
.mask = BIT(6),
|
||||
},
|
||||
.num_ext_dev = 3,
|
||||
.shub_out = 0x02,
|
||||
.slv0_addr = 0x15,
|
||||
.dw_slv0_addr = 0x21,
|
||||
|
@ -30,7 +30,6 @@
|
||||
|
||||
#include "st_lsm6dsx.h"
|
||||
|
||||
#define ST_LSM6DSX_MAX_SLV_NUM 3
|
||||
#define ST_LSM6DSX_SLV_ADDR(n, base) ((base) + (n) * 3)
|
||||
#define ST_LSM6DSX_SLV_SUB_ADDR(n, base) ((base) + 1 + (n) * 3)
|
||||
#define ST_LSM6DSX_SLV_CONFIG(n, base) ((base) + 2 + (n) * 3)
|
||||
@ -770,7 +769,7 @@ int st_lsm6dsx_shub_probe(struct st_lsm6dsx_hw *hw, const char *name)
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if (++num_ext_dev >= ST_LSM6DSX_MAX_SLV_NUM)
|
||||
if (++num_ext_dev >= hw->settings->shub_settings.num_ext_dev)
|
||||
break;
|
||||
id++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user