Lines Matching refs:sensor

95 	struct st_lsm6dsx_sensor *sensor;  in st_lsm6dsx_shub_wait_complete()  local
98 sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]); in st_lsm6dsx_shub_wait_complete()
99 odr = (hw->enable_mask & BIT(ST_LSM6DSX_ID_ACC)) ? sensor->odr : 13; in st_lsm6dsx_shub_wait_complete()
172 static int st_lsm6dsx_shub_master_enable(struct st_lsm6dsx_sensor *sensor, in st_lsm6dsx_shub_master_enable() argument
176 struct st_lsm6dsx_hw *hw = sensor->hw; in st_lsm6dsx_shub_master_enable()
181 err = st_lsm6dsx_sensor_set_enable(sensor, enable); in st_lsm6dsx_shub_master_enable()
210 st_lsm6dsx_shub_read(struct st_lsm6dsx_sensor *sensor, u8 addr, in st_lsm6dsx_shub_read() argument
214 struct st_lsm6dsx_hw *hw = sensor->hw; in st_lsm6dsx_shub_read()
221 config[0] = (sensor->ext_info.addr << 1) | 1; in st_lsm6dsx_shub_read()
230 err = st_lsm6dsx_shub_master_enable(sensor, true); in st_lsm6dsx_shub_read()
239 st_lsm6dsx_shub_master_enable(sensor, false); in st_lsm6dsx_shub_read()
253 st_lsm6dsx_shub_write(struct st_lsm6dsx_sensor *sensor, u8 addr, in st_lsm6dsx_shub_write() argument
257 struct st_lsm6dsx_hw *hw = sensor->hw; in st_lsm6dsx_shub_write()
275 config[0] = sensor->ext_info.addr << 1; in st_lsm6dsx_shub_write()
289 err = st_lsm6dsx_shub_master_enable(sensor, true); in st_lsm6dsx_shub_write()
295 st_lsm6dsx_shub_master_enable(sensor, false); in st_lsm6dsx_shub_write()
303 st_lsm6dsx_shub_write_with_mask(struct st_lsm6dsx_sensor *sensor, in st_lsm6dsx_shub_write_with_mask() argument
309 err = st_lsm6dsx_shub_read(sensor, addr, &data, sizeof(data)); in st_lsm6dsx_shub_write_with_mask()
315 return st_lsm6dsx_shub_write(sensor, addr, &data, sizeof(data)); in st_lsm6dsx_shub_write_with_mask()
319 st_lsm6dsx_shub_get_odr_val(struct st_lsm6dsx_sensor *sensor, in st_lsm6dsx_shub_get_odr_val() argument
325 settings = sensor->ext_info.settings; in st_lsm6dsx_shub_get_odr_val()
338 st_lsm6dsx_shub_set_odr(struct st_lsm6dsx_sensor *sensor, u16 odr) in st_lsm6dsx_shub_set_odr() argument
344 err = st_lsm6dsx_shub_get_odr_val(sensor, odr, &val); in st_lsm6dsx_shub_set_odr()
348 settings = sensor->ext_info.settings; in st_lsm6dsx_shub_set_odr()
349 return st_lsm6dsx_shub_write_with_mask(sensor, in st_lsm6dsx_shub_set_odr()
357 st_lsm6dsx_shub_config_channels(struct st_lsm6dsx_sensor *sensor, in st_lsm6dsx_shub_config_channels() argument
363 struct st_lsm6dsx_hw *hw = sensor->hw; in st_lsm6dsx_shub_config_channels()
369 enable_mask = hw->enable_mask | BIT(sensor->id); in st_lsm6dsx_shub_config_channels()
371 enable_mask = hw->enable_mask & ~BIT(sensor->id); in st_lsm6dsx_shub_config_channels()
382 config[j] = (sensor->ext_info.addr << 1) | 1; in st_lsm6dsx_shub_config_channels()
394 int st_lsm6dsx_shub_set_enable(struct st_lsm6dsx_sensor *sensor, bool enable) in st_lsm6dsx_shub_set_enable() argument
399 err = st_lsm6dsx_shub_config_channels(sensor, enable); in st_lsm6dsx_shub_set_enable()
403 settings = sensor->ext_info.settings; in st_lsm6dsx_shub_set_enable()
405 err = st_lsm6dsx_shub_set_odr(sensor, sensor->odr); in st_lsm6dsx_shub_set_enable()
409 err = st_lsm6dsx_shub_write_with_mask(sensor, in st_lsm6dsx_shub_set_enable()
421 err = st_lsm6dsx_shub_write_with_mask(sensor, in st_lsm6dsx_shub_set_enable()
428 return st_lsm6dsx_shub_master_enable(sensor, enable); in st_lsm6dsx_shub_set_enable()
432 st_lsm6dsx_shub_read_oneshot(struct st_lsm6dsx_sensor *sensor, in st_lsm6dsx_shub_read_oneshot() argument
439 err = st_lsm6dsx_shub_set_enable(sensor, true); in st_lsm6dsx_shub_read_oneshot()
443 delay = 1000000 / sensor->odr; in st_lsm6dsx_shub_read_oneshot()
447 err = st_lsm6dsx_shub_read(sensor, ch->address, data, len); in st_lsm6dsx_shub_read_oneshot()
449 st_lsm6dsx_shub_set_enable(sensor, false); in st_lsm6dsx_shub_read_oneshot()
470 struct st_lsm6dsx_sensor *sensor = iio_priv(iio_dev); in st_lsm6dsx_shub_read_raw() local
479 ret = st_lsm6dsx_shub_read_oneshot(sensor, ch, val); in st_lsm6dsx_shub_read_raw()
483 *val = sensor->odr; in st_lsm6dsx_shub_read_raw()
488 *val2 = sensor->gain; in st_lsm6dsx_shub_read_raw()
504 struct st_lsm6dsx_sensor *sensor = iio_priv(iio_dev); in st_lsm6dsx_shub_write_raw() local
515 err = st_lsm6dsx_shub_get_odr_val(sensor, val, &data); in st_lsm6dsx_shub_write_raw()
517 sensor->odr = val; in st_lsm6dsx_shub_write_raw()
535 struct st_lsm6dsx_sensor *sensor = iio_priv(dev_get_drvdata(dev)); in st_lsm6dsx_shub_sampling_freq_avail() local
539 settings = sensor->ext_info.settings; in st_lsm6dsx_shub_sampling_freq_avail()
556 struct st_lsm6dsx_sensor *sensor = iio_priv(dev_get_drvdata(dev)); in st_lsm6dsx_shub_scale_avail() local
560 settings = sensor->ext_info.settings; in st_lsm6dsx_shub_scale_avail()
596 struct st_lsm6dsx_sensor *sensor; in st_lsm6dsx_shub_alloc_iiodev() local
599 iio_dev = devm_iio_device_alloc(hw->dev, sizeof(*sensor)); in st_lsm6dsx_shub_alloc_iiodev()
607 sensor = iio_priv(iio_dev); in st_lsm6dsx_shub_alloc_iiodev()
608 sensor->id = id; in st_lsm6dsx_shub_alloc_iiodev()
609 sensor->hw = hw; in st_lsm6dsx_shub_alloc_iiodev()
610 sensor->odr = info->odr_table.odr_avl[0].hz; in st_lsm6dsx_shub_alloc_iiodev()
611 sensor->gain = info->fs_table.fs_avl[0].gain; in st_lsm6dsx_shub_alloc_iiodev()
612 sensor->ext_info.settings = info; in st_lsm6dsx_shub_alloc_iiodev()
613 sensor->ext_info.addr = i2c_addr; in st_lsm6dsx_shub_alloc_iiodev()
614 sensor->watermark = 1; in st_lsm6dsx_shub_alloc_iiodev()
638 scnprintf(sensor->name, sizeof(sensor->name), "%s_magn", in st_lsm6dsx_shub_alloc_iiodev()
645 iio_dev->name = sensor->name; in st_lsm6dsx_shub_alloc_iiodev()
650 static int st_lsm6dsx_shub_init_device(struct st_lsm6dsx_sensor *sensor) in st_lsm6dsx_shub_init_device() argument
655 settings = sensor->ext_info.settings; in st_lsm6dsx_shub_init_device()
657 err = st_lsm6dsx_shub_write_with_mask(sensor, in st_lsm6dsx_shub_init_device()
665 err = st_lsm6dsx_shub_write_with_mask(sensor, in st_lsm6dsx_shub_init_device()
673 err = st_lsm6dsx_shub_write_with_mask(sensor, in st_lsm6dsx_shub_init_device()
688 struct st_lsm6dsx_sensor *sensor; in st_lsm6dsx_shub_check_wai() local
695 sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]); in st_lsm6dsx_shub_check_wai()
711 err = st_lsm6dsx_shub_master_enable(sensor, true); in st_lsm6dsx_shub_check_wai()
721 st_lsm6dsx_shub_master_enable(sensor, false); in st_lsm6dsx_shub_check_wai()
747 struct st_lsm6dsx_sensor *sensor; in st_lsm6dsx_shub_probe() local
765 sensor = iio_priv(hw->iio_devs[id]); in st_lsm6dsx_shub_probe()
766 err = st_lsm6dsx_shub_init_device(sensor); in st_lsm6dsx_shub_probe()