Lines Matching refs:dw9714_dev
641 struct dw9714_device *dw9714_dev = sd_to_dw9714_vcm(sd); in dw9714_init() local
645 if (dw9714_dev->adcanced_mode) { in dw9714_init()
664 (dw9714_dev->nrc_infl & 0x3) << 5 | in dw9714_init()
665 (dw9714_dev->nrc_time & 0x1) << 4 | in dw9714_init()
666 (dw9714_dev->sac_mode & 0xF); in dw9714_init()
671 ret = dw9714_write_msg(client, DW9714_ADVMODE_PRESC, dw9714_dev->sac_prescl); in dw9714_init()
675 ret = dw9714_write_msg(client, DW9714_ADVMODE_SAC_TIME, dw9714_dev->sac_time); in dw9714_init()
679 ret = dw9714_write_msg(client, DW9714_ADVMODE_PRESET, dw9714_dev->nrc_preset); in dw9714_init()
683 data = (dw9714_dev->nrc_en & 0x1) << 1 | in dw9714_init()
684 (dw9714_dev->nrc_mode & 0x1); in dw9714_init()
696 data = (dw9714_dev->mclk & 0x3) | 0x04 | in dw9714_init()
697 ((dw9714_dev->dlc_enable << 0x3) & 0x08); in dw9714_init()
702 data = (dw9714_dev->t_src << 0x3) & 0xf8; in dw9714_init()
939 static void dw9714_subdev_cleanup(struct dw9714_device *dw9714_dev) in dw9714_subdev_cleanup() argument
941 v4l2_device_unregister_subdev(&dw9714_dev->sd); in dw9714_subdev_cleanup()
942 v4l2_device_unregister(&dw9714_dev->vdev); in dw9714_subdev_cleanup()
943 v4l2_ctrl_handler_free(&dw9714_dev->ctrls_vcm); in dw9714_subdev_cleanup()
944 media_entity_cleanup(&dw9714_dev->sd.entity); in dw9714_subdev_cleanup()
1290 struct dw9714_device *dw9714_dev; in dw9714_probe() local
1296 dw9714_dev = devm_kzalloc(&client->dev, sizeof(*dw9714_dev), in dw9714_probe()
1298 if (dw9714_dev == NULL) in dw9714_probe()
1301 ret = dw9714_parse_dt_property(client, dw9714_dev); in dw9714_probe()
1304 v4l2_i2c_subdev_init(&dw9714_dev->sd, client, &dw9714_ops); in dw9714_probe()
1305 dw9714_dev->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; in dw9714_probe()
1306 dw9714_dev->sd.internal_ops = &dw9714_int_ops; in dw9714_probe()
1308 dw9714_dev->max_logicalpos = VCMDRV_MAX_LOG; in dw9714_probe()
1309 ret = dw9714_init_controls(dw9714_dev); in dw9714_probe()
1313 ret = media_entity_pads_init(&dw9714_dev->sd.entity, 0, NULL); in dw9714_probe()
1317 ret = dw9714_set_power(dw9714_dev, true); in dw9714_probe()
1321 ret = dw9714_check_i2c(dw9714_dev, client); in dw9714_probe()
1325 sd = &dw9714_dev->sd; in dw9714_probe()
1329 if (strcmp(dw9714_dev->module_facing, "back") == 0) in dw9714_probe()
1335 dw9714_dev->module_index, facing, in dw9714_probe()
1341 dw9714_update_vcm_cfg(dw9714_dev); in dw9714_probe()
1342 dw9714_dev->move_ms = 0; in dw9714_probe()
1343 dw9714_dev->current_related_pos = dw9714_dev->max_logicalpos; in dw9714_probe()
1344 dw9714_dev->current_lens_pos = dw9714_dev->start_current; in dw9714_probe()
1345 dw9714_dev->start_move_tv = ns_to_kernel_old_timeval(ktime_get_ns()); in dw9714_probe()
1346 dw9714_dev->end_move_tv = ns_to_kernel_old_timeval(ktime_get_ns()); in dw9714_probe()
1347 dw9714_dev->vcm_movefull_t = in dw9714_probe()
1348 dw9714_move_time(dw9714_dev, DW9714_MAX_REG); in dw9714_probe()
1357 dw9714_set_power(dw9714_dev, false); in dw9714_probe()
1359 dw9714_subdev_cleanup(dw9714_dev); in dw9714_probe()
1367 struct dw9714_device *dw9714_dev = sd_to_dw9714_vcm(sd); in dw9714_remove() local
1371 dw9714_subdev_cleanup(dw9714_dev); in dw9714_remove()