Lines Matching full:ov5647
2 * A V4L2 driver for OmniVision OV5647 cameras.
36 #define SENSOR_NAME "ov5647"
80 struct ov5647 { struct
91 static inline struct ov5647 *to_state(struct v4l2_subdev *sd) in to_state() argument
93 return container_of(sd, struct ov5647, sd); in to_state()
350 struct ov5647 *ov5647 = to_state(sd); in ov5647_sensor_power() local
353 mutex_lock(&ov5647->lock); in ov5647_sensor_power()
355 if (on && !ov5647->power_count) { in ov5647_sensor_power()
356 dev_dbg(&client->dev, "OV5647 power on\n"); in ov5647_sensor_power()
358 ret = clk_prepare_enable(ov5647->xclk); in ov5647_sensor_power()
367 clk_disable_unprepare(ov5647->xclk); in ov5647_sensor_power()
375 clk_disable_unprepare(ov5647->xclk); in ov5647_sensor_power()
380 } else if (!on && ov5647->power_count == 1) { in ov5647_sensor_power()
381 dev_dbg(&client->dev, "OV5647 power off\n"); in ov5647_sensor_power()
394 clk_disable_unprepare(ov5647->xclk); in ov5647_sensor_power()
398 ov5647->power_count += on ? 1 : -1; in ov5647_sensor_power()
399 WARN_ON(ov5647->power_count < 0); in ov5647_sensor_power()
402 mutex_unlock(&ov5647->lock); in ov5647_sensor_power()
553 struct ov5647 *sensor; in ov5647_probe()
605 dev_dbg(dev, "OmniVision OV5647 camera driver probed\n"); in ov5647_probe()
617 struct ov5647 *ov5647 = to_state(sd); in ov5647_remove() local
619 v4l2_async_unregister_subdev(&ov5647->sd); in ov5647_remove()
620 media_entity_cleanup(&ov5647->sd.entity); in ov5647_remove()
622 mutex_destroy(&ov5647->lock); in ov5647_remove()
628 { "ov5647", 0 },
635 { .compatible = "ovti,ov5647" },
654 MODULE_DESCRIPTION("A low-level driver for OmniVision ov5647 sensors");