Lines Matching refs:ak7375_dev

120 static void ak7375_subdev_cleanup(struct ak7375_device *ak7375_dev)
122 v4l2_async_unregister_subdev(&ak7375_dev->sd);
123 v4l2_ctrl_handler_free(&ak7375_dev->ctrls_vcm);
124 media_entity_cleanup(&ak7375_dev->sd.entity);
147 struct ak7375_device *ak7375_dev;
151 ak7375_dev = devm_kzalloc(&client->dev, sizeof(*ak7375_dev),
153 if (!ak7375_dev)
157 ak7375_dev->supplies[i].supply = ak7375_supply_names[i];
161 ak7375_dev->supplies);
167 v4l2_i2c_subdev_init(&ak7375_dev->sd, client, &ak7375_ops);
168 ak7375_dev->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
169 ak7375_dev->sd.internal_ops = &ak7375_int_ops;
170 ak7375_dev->sd.entity.function = MEDIA_ENT_F_LENS;
172 ret = ak7375_init_controls(ak7375_dev);
176 ret = media_entity_pads_init(&ak7375_dev->sd.entity, 0, NULL);
180 ret = v4l2_async_register_subdev(&ak7375_dev->sd);
191 v4l2_ctrl_handler_free(&ak7375_dev->ctrls_vcm);
192 media_entity_cleanup(&ak7375_dev->sd.entity);
200 struct ak7375_device *ak7375_dev = sd_to_ak7375_vcm(sd);
202 ak7375_subdev_cleanup(ak7375_dev);
215 struct ak7375_device *ak7375_dev = sd_to_ak7375_vcm(sd);
218 if (!ak7375_dev->active)
221 for (val = ak7375_dev->focus->val & ~(AK7375_CTRL_STEPS - 1);
223 ret = ak7375_i2c_write(ak7375_dev, AK7375_REG_POSITION,
231 ret = ak7375_i2c_write(ak7375_dev, AK7375_REG_CONT,
237 ak7375_dev->supplies);
241 ak7375_dev->active = false;
255 struct ak7375_device *ak7375_dev = sd_to_ak7375_vcm(sd);
258 if (ak7375_dev->active)
262 ak7375_dev->supplies);
269 ret = ak7375_i2c_write(ak7375_dev, AK7375_REG_CONT,
276 for (val = ak7375_dev->focus->val % AK7375_CTRL_STEPS;
277 val <= ak7375_dev->focus->val;
279 ret = ak7375_i2c_write(ak7375_dev, AK7375_REG_POSITION,
287 ak7375_dev->active = true;