Lines Matching refs:st

40 	struct cros_ec_sensors_state *st = iio_priv(indio_dev);  in cros_ec_sensors_read()  local
47 mutex_lock(&st->core.cmd_lock); in cros_ec_sensors_read()
51 ret = st->core.read_ec_sensors_data(indio_dev, 1 << idx, &data); in cros_ec_sensors_read()
58 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_OFFSET; in cros_ec_sensors_read()
59 st->core.param.sensor_offset.flags = 0; in cros_ec_sensors_read()
61 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_sensors_read()
67 st->core.calib[i].offset = in cros_ec_sensors_read()
68 st->core.resp->sensor_offset.offset[i]; in cros_ec_sensors_read()
70 *val = st->core.calib[idx].offset; in cros_ec_sensors_read()
73 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_SCALE; in cros_ec_sensors_read()
74 st->core.param.sensor_offset.flags = 0; in cros_ec_sensors_read()
76 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_sensors_read()
89 st->core.calib[i].scale = in cros_ec_sensors_read()
90 st->core.resp->sensor_scale.scale[i]; in cros_ec_sensors_read()
92 *val = st->core.calib[idx].scale >> 15; in cros_ec_sensors_read()
93 *val2 = ((st->core.calib[idx].scale & 0x7FFF) * 1000000LL) / in cros_ec_sensors_read()
98 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_RANGE; in cros_ec_sensors_read()
99 st->core.param.sensor_range.data = EC_MOTION_SENSE_NO_VALUE; in cros_ec_sensors_read()
101 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_sensors_read()
105 val64 = st->core.resp->sensor_range.ret; in cros_ec_sensors_read()
106 switch (st->core.type) { in cros_ec_sensors_read()
141 ret = cros_ec_sensors_core_read(&st->core, chan, val, val2, in cros_ec_sensors_read()
145 mutex_unlock(&st->core.cmd_lock); in cros_ec_sensors_read()
154 struct cros_ec_sensors_state *st = iio_priv(indio_dev); in cros_ec_sensors_write() local
159 mutex_lock(&st->core.cmd_lock); in cros_ec_sensors_write()
163 st->core.calib[idx].offset = val; in cros_ec_sensors_write()
166 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_OFFSET; in cros_ec_sensors_write()
167 st->core.param.sensor_offset.flags = in cros_ec_sensors_write()
170 st->core.param.sensor_offset.offset[i] = in cros_ec_sensors_write()
171 st->core.calib[i].offset; in cros_ec_sensors_write()
172 st->core.param.sensor_offset.temp = in cros_ec_sensors_write()
175 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_sensors_write()
178 st->core.calib[idx].scale = val; in cros_ec_sensors_write()
181 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_SCALE; in cros_ec_sensors_write()
182 st->core.param.sensor_offset.flags = in cros_ec_sensors_write()
185 st->core.param.sensor_scale.scale[i] = in cros_ec_sensors_write()
186 st->core.calib[i].scale; in cros_ec_sensors_write()
187 st->core.param.sensor_scale.temp = in cros_ec_sensors_write()
190 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_sensors_write()
193 if (st->core.type == MOTIONSENSE_TYPE_MAG) { in cros_ec_sensors_write()
197 st->core.param.cmd = MOTIONSENSE_CMD_SENSOR_RANGE; in cros_ec_sensors_write()
198 st->core.param.sensor_range.data = val; in cros_ec_sensors_write()
201 st->core.param.sensor_range.roundup = 1; in cros_ec_sensors_write()
203 ret = cros_ec_motion_send_host_cmd(&st->core, 0); in cros_ec_sensors_write()
205 st->core.range_updated = true; in cros_ec_sensors_write()
206 st->core.curr_range = val; in cros_ec_sensors_write()
211 &st->core, chan, val, val2, mask); in cros_ec_sensors_write()
215 mutex_unlock(&st->core.cmd_lock); in cros_ec_sensors_write()