Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84a15ded authored by Sylwester Nawrocki's avatar Sylwester Nawrocki Committed by Mauro Carvalho Chehab
Browse files

[media] V4L: Add driver for OV9650/52 image sensors



This patch adds V4L2 sub-device driver for OV9650/OV9652 image sensors.
The driver exposes following V4L2 controls:
- auto/manual exposure,
- auto/manual white balance,
- auto/manual gain,
- brightness, saturation, sharpness,
- horizontal/vertical flip,
- color bar test pattern,
- banding filter (power line frequency).
Frame rate can be configured with g/s_frame_interval pad level ops.
Supported resolution are only: SXGA, VGA, QVGA.

Signed-off-by: default avatarSylwester Nawrocki <sylvester.nawrocki@gmail.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent ffa9b9f0
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -421,6 +421,13 @@ config VIDEO_OV7670
	  OV7670 VGA camera.  It currently only works with the M88ALP01
	  controller.

config VIDEO_OV9650
	tristate "OmniVision OV9650/OV9652 sensor support"
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	---help---
	  This is a V4L2 sensor-level driver for the Omnivision
	  OV9650 and OV9652 camera sensors.

config VIDEO_VS6624
	tristate "ST VS6624 sensor support"
	depends on VIDEO_V4L2 && I2C
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ obj-$(CONFIG_VIDEO_VP27SMPX) += vp27smpx.o
obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o
obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o
obj-$(CONFIG_VIDEO_OV7670) 	+= ov7670.o
obj-$(CONFIG_VIDEO_OV9650) += ov9650.o
obj-$(CONFIG_VIDEO_TCM825X) += tcm825x.o
obj-$(CONFIG_VIDEO_TVEEPROM) += tveeprom.o
obj-$(CONFIG_VIDEO_MT9M032) += mt9m032.o
+1562 −0

File added.

Preview size limit exceeded, changes collapsed.

include/media/ov9650.h

0 → 100644
+27 −0
Original line number Diff line number Diff line
/*
 * OV9650/OV9652 camera sensors driver
 *
 * Copyright (C) 2013 Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#ifndef OV9650_H_
#define OV9650_H_

/**
 * struct ov9650_platform_data - ov9650 driver platform data
 * @mclk_frequency: the sensor's master clock frequency in Hz
 * @gpio_pwdn:	    number of a GPIO connected to OV965X PWDN pin
 * @gpio_reset:     number of a GPIO connected to OV965X RESET pin
 *
 * If any of @gpio_pwdn or @gpio_reset are unused then they should be
 * set to a negative value. @mclk_frequency must always be specified.
 */
struct ov9650_platform_data {
	unsigned long mclk_frequency;
	int gpio_pwdn;
	int gpio_reset;
};
#endif /* OV9650_H_ */