Lines Matching refs:st

101 	struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
111 mutex_lock(&st->lock);
115 ret = inv_icm42600_set_temp_conf(st, true, &sleep_temp);
124 ret = inv_icm42600_set_accel_conf(st, &conf, &sleep_accel);
132 ret = inv_icm42600_buffer_set_fifo_en(st, fifo_en | st->fifo.en);
135 mutex_unlock(&st->lock);
143 static int inv_icm42600_accel_read_sensor(struct inv_icm42600_state *st,
147 struct device *dev = regmap_get_device(st->map);
171 mutex_lock(&st->lock);
175 ret = inv_icm42600_set_accel_conf(st, &conf, NULL);
180 data = (__be16 *)&st->buffer[0];
181 ret = regmap_bulk_read(st->map, reg, data, sizeof(*data));
189 mutex_unlock(&st->lock);
231 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
235 idx = st->conf.accel.fs;
245 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
247 struct device *dev = regmap_get_device(st->map);
263 mutex_lock(&st->lock);
265 ret = inv_icm42600_set_accel_conf(st, &conf, NULL);
267 mutex_unlock(&st->lock);
305 static int inv_icm42600_accel_read_odr(struct inv_icm42600_state *st,
311 odr = st->conf.accel.odr;
329 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
332 struct device *dev = regmap_get_device(st->map);
348 mutex_lock(&st->lock);
355 ret = inv_icm42600_set_accel_conf(st, &conf, NULL);
358 inv_icm42600_buffer_update_fifo_period(st);
359 inv_icm42600_buffer_update_watermark(st);
362 mutex_unlock(&st->lock);
379 static int inv_icm42600_accel_read_offset(struct inv_icm42600_state *st,
383 struct device *dev = regmap_get_device(st->map);
409 mutex_lock(&st->lock);
411 ret = regmap_bulk_read(st->map, reg, st->buffer, sizeof(data));
412 memcpy(data, st->buffer, sizeof(data));
414 mutex_unlock(&st->lock);
455 static int inv_icm42600_accel_write_offset(struct inv_icm42600_state *st,
459 struct device *dev = regmap_get_device(st->map);
514 mutex_lock(&st->lock);
519 ret = regmap_read(st->map, INV_ICM42600_REG_OFFSET_USER4,
523 st->buffer[0] = ((offset & 0xF00) >> 4) | (regval & 0x0F);
524 st->buffer[1] = offset & 0xFF;
528 ret = regmap_read(st->map, INV_ICM42600_REG_OFFSET_USER7,
532 st->buffer[0] = offset & 0xFF;
533 st->buffer[1] = ((offset & 0xF00) >> 8) | (regval & 0xF0);
537 ret = regmap_read(st->map, INV_ICM42600_REG_OFFSET_USER7,
541 st->buffer[0] = ((offset & 0xF00) >> 4) | (regval & 0x0F);
542 st->buffer[1] = offset & 0xFF;
549 ret = regmap_bulk_write(st->map, reg, st->buffer, 2);
552 mutex_unlock(&st->lock);
562 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
580 ret = inv_icm42600_accel_read_sensor(st, chan, &data);
589 return inv_icm42600_accel_read_odr(st, val, val2);
591 return inv_icm42600_accel_read_offset(st, chan, val, val2);
631 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
651 ret = inv_icm42600_accel_write_offset(st, chan, val, val2);
681 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
684 mutex_lock(&st->lock);
686 st->fifo.watermark.accel = val;
687 ret = inv_icm42600_buffer_update_watermark(st);
689 mutex_unlock(&st->lock);
697 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
703 mutex_lock(&st->lock);
705 ret = inv_icm42600_buffer_hwfifo_flush(st, count);
707 ret = st->fifo.nb.accel;
709 mutex_unlock(&st->lock);
725 struct iio_dev *inv_icm42600_accel_init(struct inv_icm42600_state *st)
727 struct device *dev = regmap_get_device(st->map);
734 name = devm_kasprintf(dev, GFP_KERNEL, "%s-accel", st->name);
743 switch (st->chip) {
760 ts_chip.init_period = inv_icm42600_odr_to_period(st->conf.accel.odr);
763 iio_device_set_drvdata(indio_dev, st);
785 struct inv_icm42600_state *st = iio_device_get_drvdata(indio_dev);
797 for (i = 0, no = 0; i < st->fifo.count; i += size, ++no) {
798 size = inv_icm42600_fifo_decode_packet(&st->fifo.data[i],
810 inv_sensors_timestamp_apply_odr(ts, st->fifo.period,
811 st->fifo.nb.total, no);