Lines Matching refs:dev_vcm
147 struct vm149c_device *dev_vcm, in vm149c_get_pos() argument
150 struct i2c_client *client = v4l2_get_subdevdata(&dev_vcm->sd); in vm149c_get_pos()
162 if (abs_step <= dev_vcm->start_current) in vm149c_get_pos()
164 else if ((abs_step > dev_vcm->start_current) && in vm149c_get_pos()
165 (abs_step <= dev_vcm->rated_current)) in vm149c_get_pos()
166 abs_step = (dev_vcm->rated_current - abs_step) / dev_vcm->step; in vm149c_get_pos()
181 struct vm149c_device *dev_vcm, in vm149c_set_pos() argument
188 struct i2c_client *client = v4l2_get_subdevdata(&dev_vcm->sd); in vm149c_set_pos()
191 position = dev_vcm->start_current; in vm149c_set_pos()
193 position = dev_vcm->start_current + in vm149c_set_pos()
194 (dev_vcm->step * (VCMDRV_MAX_LOG - dest_pos)); in vm149c_set_pos()
199 dev_vcm->current_lens_pos = position; in vm149c_set_pos()
200 dev_vcm->current_related_pos = dest_pos; in vm149c_set_pos()
201 msb = (0x00U | ((dev_vcm->current_lens_pos & 0x3F0U) >> 4U)); in vm149c_set_pos()
202 lsb = (((dev_vcm->current_lens_pos & 0x0FU) << 4U) | in vm149c_set_pos()
203 dev_vcm->step_mode); in vm149c_set_pos()
217 struct vm149c_device *dev_vcm = to_vm149c_vcm(ctrl); in vm149c_get_ctrl() local
220 return vm149c_get_pos(dev_vcm, &ctrl->val); in vm149c_get_ctrl()
227 struct vm149c_device *dev_vcm = to_vm149c_vcm(ctrl); in vm149c_set_ctrl() local
228 struct i2c_client *client = v4l2_get_subdevdata(&dev_vcm->sd); in vm149c_set_ctrl()
242 move_pos = dev_vcm->current_related_pos - dest_pos; in vm149c_set_ctrl()
246 ret = vm149c_set_pos(dev_vcm, dest_pos); in vm149c_set_ctrl()
248 dev_vcm->move_ms = in vm149c_set_ctrl()
249 ((dev_vcm->vcm_movefull_t * in vm149c_set_ctrl()
253 dest_pos, dev_vcm->move_ms); in vm149c_set_ctrl()
255 dev_vcm->start_move_tv = ns_to_kernel_old_timeval(ktime_get_ns()); in vm149c_set_ctrl()
256 mv_us = dev_vcm->start_move_tv.tv_usec + in vm149c_set_ctrl()
257 dev_vcm->move_ms * 1000; in vm149c_set_ctrl()
259 dev_vcm->end_move_tv.tv_sec = in vm149c_set_ctrl()
260 dev_vcm->start_move_tv.tv_sec + 1; in vm149c_set_ctrl()
261 dev_vcm->end_move_tv.tv_usec = mv_us - 1000000; in vm149c_set_ctrl()
263 dev_vcm->end_move_tv.tv_sec = in vm149c_set_ctrl()
264 dev_vcm->start_move_tv.tv_sec; in vm149c_set_ctrl()
265 dev_vcm->end_move_tv.tv_usec = mv_us; in vm149c_set_ctrl()
302 static void vm149c_update_vcm_cfg(struct vm149c_device *dev_vcm) in vm149c_update_vcm_cfg() argument
304 struct i2c_client *client = v4l2_get_subdevdata(&dev_vcm->sd); in vm149c_update_vcm_cfg()
307 if (dev_vcm->max_ma == 0) { in vm149c_update_vcm_cfg()
312 cur_dist = dev_vcm->vcm_cfg.rated_ma - dev_vcm->vcm_cfg.start_ma; in vm149c_update_vcm_cfg()
313 cur_dist = cur_dist * VM149C_MAX_REG / dev_vcm->max_ma; in vm149c_update_vcm_cfg()
314 dev_vcm->step = (cur_dist + (VCMDRV_MAX_LOG - 1)) / VCMDRV_MAX_LOG; in vm149c_update_vcm_cfg()
315 dev_vcm->start_current = dev_vcm->vcm_cfg.start_ma * in vm149c_update_vcm_cfg()
316 VM149C_MAX_REG / dev_vcm->max_ma; in vm149c_update_vcm_cfg()
317 dev_vcm->rated_current = dev_vcm->start_current + in vm149c_update_vcm_cfg()
318 VCMDRV_MAX_LOG * dev_vcm->step; in vm149c_update_vcm_cfg()
319 dev_vcm->step_mode = dev_vcm->vcm_cfg.step_mode; in vm149c_update_vcm_cfg()
323 dev_vcm->vcm_cfg.start_ma, in vm149c_update_vcm_cfg()
324 dev_vcm->vcm_cfg.rated_ma, in vm149c_update_vcm_cfg()
325 dev_vcm->vcm_cfg.step_mode, in vm149c_update_vcm_cfg()
326 dev_vcm->max_ma); in vm149c_update_vcm_cfg()
428 static int vm149c_init_controls(struct vm149c_device *dev_vcm) in vm149c_init_controls() argument
430 struct v4l2_ctrl_handler *hdl = &dev_vcm->ctrls_vcm; in vm149c_init_controls()
439 dev_err(dev_vcm->sd.dev, "%s fail error: 0x%x\n", in vm149c_init_controls()
441 dev_vcm->sd.ctrl_handler = hdl; in vm149c_init_controls()