Ejemplo n.º 1
0
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "../fimc-is-hw.h"
#include "fimc-is-device-ov5693.h"

#define SENSOR_NAME "OV5693"

static struct fimc_is_sensor_cfg config_ov5693[] = {
	/* 2624x1968@30fps */
	FIMC_IS_SENSOR_CFG(2592, 1944, 30, 17,0),
	/* 2064X1546@30fps */
	FIMC_IS_SENSOR_CFG(2064, 1546, 30, 14,1),
	/* 1936X1090@30fps */
	FIMC_IS_SENSOR_CFG(1936, 1090, 30, 14,2),
	/* 1296X730@120fps */
	FIMC_IS_SENSOR_CFG(1296, 730, 120, 14,3),
	/* 336X250@30fps */
	FIMC_IS_SENSOR_CFG(336, 250, 30, 14,4),
};

static int sensor_ov5693_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	struct fimc_is_module_enum *module;
#include <plat/gpio-cfg.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "fimc-is-device-imx175.h"

#define SENSOR_NAME "IMX175"

static struct fimc_is_sensor_cfg config_imx175[] = {
	/* 3280X2458@30fps */
	FIMC_IS_SENSOR_CFG(3280, 2458, 30, 14, 0),
	/* 3280X1846@30fps */
	FIMC_IS_SENSOR_CFG(3280, 1846, 30, 11, 1),
	/* 3280X1846@15fps, Busrt Panorama */
	FIMC_IS_SENSOR_CFG(3280, 1846, 15, 11, 1),
	/* 3280X2458@24fps */
	FIMC_IS_SENSOR_CFG(3280, 2458, 24, 11, 2),
	/* 3280X1846@24fps */
	FIMC_IS_SENSOR_CFG(3280, 1846, 24, 8, 3),
	/* 1640X924@60fps */
	FIMC_IS_SENSOR_CFG(1640, 924, 60, 11, 4),
	/* 816X460@120fps */
	FIMC_IS_SENSOR_CFG(816, 460, 120, 11, 5),
};

static int sensor_imx175_init(struct v4l2_subdev *subdev, u32 val)
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>

#include <exynos-fimc-is-sensor.h>
#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-module-3h7_sunny.h"

#define SENSOR_NAME "S5K3H7_SUNNY"

static struct fimc_is_sensor_cfg config_3h7_sunny[] = {
	/* 3264x2448@30fps */
	FIMC_IS_SENSOR_CFG(3264, 2448, 30, 15, 0, CSI_DATA_LANES_4),
};

static int sensor_3h7_sunny_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	struct fimc_is_module_enum *module;

	BUG_ON(!subdev);

	module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);

	pr_info("[MOD:D:%d] %s(%d)\n", module->id, __func__, val);

	return ret;
}
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-hw.h"
#include "fimc-is-device-3l2.h"

#define SENSOR_NAME "S5K3L2"

static struct fimc_is_sensor_cfg config_3l2[] = {
	/* 4144x3106@30fps */
	FIMC_IS_SENSOR_CFG(4144, 3106, 30, 23, 0),
	/* 4144x2332@30fps */
	FIMC_IS_SENSOR_CFG(4144, 2332, 30, 18, 1),
	/* 2072x1554@24fps */
	FIMC_IS_SENSOR_CFG(2072, 1554, 24, 4, 2),
	/* 2072x1166@24fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 24, 4, 3),
	/* 2072x1554@15fps */
	FIMC_IS_SENSOR_CFG(2072, 1554, 15, 11, 4),
	/* 2072x1166@15fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 15, 11, 5),
	/* 1040x584@120fps */
	FIMC_IS_SENSOR_CFG(1040, 584, 120, 8, 6),
	/* 2072x1166@60fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 60, 11, 7),
};
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-hw.h"
#include "fimc-is-device-2p2_12m.h"

#define SENSOR_NAME "S5K2P2_12M"

static struct fimc_is_sensor_cfg config_2p2_12m[] = {
	/* 4624x2604@30fps */
	FIMC_IS_SENSOR_CFG(4624, 2604, 30, 22, 0),
	/* 4624x2604@24fps */
	FIMC_IS_SENSOR_CFG(4624, 2604, 24, 21, 1),
	/* 3472X2604@30fps */
	FIMC_IS_SENSOR_CFG(3472, 2604, 30, 17, 2),
	/* 3472X2604@24fps */
	FIMC_IS_SENSOR_CFG(3472, 2604, 24, 17, 3),
	/* 2608X2604@30fps */
	FIMC_IS_SENSOR_CFG(2608, 2604, 30, 17, 4),
	/* 2608X2604@24fps */
	FIMC_IS_SENSOR_CFG(2608, 2604, 24, 17, 5),
	/* 2312X1300@60fps */
	FIMC_IS_SENSOR_CFG(2312, 1300, 60, 13, 6),
	/* 2312X1300@30fps */
	FIMC_IS_SENSOR_CFG(2312, 1300, 30, 13, 7),
	/* 1156X650@120fps */
Ejemplo n.º 6
0
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>

#include <exynos-fimc-is-sensor.h>
#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-dt.h"
#include "fimc-is-module-3m2.h"

#define SENSOR_NAME "S5K3M2"

static struct fimc_is_sensor_cfg config_3m2[] = {
	/* 4144x3106@30fps */
	FIMC_IS_SENSOR_CFG(4144, 3106, 30, 23, 0, CSI_DATA_LANES_4),
	/* 2072x1166@60fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 60, 23, 1, CSI_DATA_LANES_4),
	/* 2072x1166@30fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 30, 23, 2, CSI_DATA_LANES_4),
	/* 3112x3106@30fps */
	FIMC_IS_SENSOR_CFG(3112, 3106, 30, 23, 3, CSI_DATA_LANES_4),
	/* 1296x732@120fps */
	FIMC_IS_SENSOR_CFG(1296, 732, 120, 23, 4, CSI_DATA_LANES_4),
	/* 1040x584@30fps */
	FIMC_IS_SENSOR_CFG(1040, 584, 120, 23, 5, CSI_DATA_LANES_4),
};

static struct fimc_is_vci vci_3m2[] = {
	{
		.pixelformat = V4L2_PIX_FMT_SBGGR10,
Ejemplo n.º 7
0
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-dt.h"
#include "fimc-is-device-2t2.h"

#define SENSOR_NAME "S5K2T2"

static struct fimc_is_sensor_cfg config_2t2[] = {
	/* 5968x3368@30fps */
	FIMC_IS_SENSOR_CFG(5968, 3368, 30, 36, 0),
	/* 5968x3368@24fps */
	FIMC_IS_SENSOR_CFG(5968, 3368, 24, 29, 1),
	/* 4480x3368@30fps */
	FIMC_IS_SENSOR_CFG(4480, 3368, 30, 27, 2),
	/* 4480x3368@24fps */
	FIMC_IS_SENSOR_CFG(4480, 3368, 24, 21, 3),
	/* 3360x3368@30fps */
	FIMC_IS_SENSOR_CFG(3360, 3368, 30, 20, 4),
	/* 3360x3368@24fps */
	FIMC_IS_SENSOR_CFG(3360, 3368, 24, 16, 5),
	/* 2984x1680@60fps */
	FIMC_IS_SENSOR_CFG(2984, 1680, 60, 20, 6),
	/* 2984x1680@30fps */
	FIMC_IS_SENSOR_CFG(2984, 1680, 30, 12, 7),
	/* 1480x832@120fps */
Ejemplo n.º 8
0
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-device-2p3.h"

#define SENSOR_NAME "S5K2P3"

static struct fimc_is_sensor_cfg config_2p3[] = {
	/* 5328x3000@30fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 30, 30, 0),
	/* 5328x3000@24fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 24, 24, 1),
	/* 4000X3000@30fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 30, 23, 2),
	/* 4000X3000@24fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 24, 19, 3),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 30, 19, 4),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 24, 14, 5),
	/* 2664X1500@60fps */
	FIMC_IS_SENSOR_CFG(2664, 1500, 60, 19, 6),
	/* 1328X748@120fps */
	FIMC_IS_SENSOR_CFG(1328, 748, 120, 13, 7),
	/* 824X496@300fps */
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-device-imx134.h"

#define SENSOR_NAME "IMX134"

static struct fimc_is_sensor_cfg config_imx134[] = {
	/* 3280X2458@30fps */
	FIMC_IS_SENSOR_CFG(3280, 2458, 30, 15, 0),
	/* 3280X1846@30fps */
	FIMC_IS_SENSOR_CFG(3280, 1846, 30, 11, 1),
	/* 3280X2458@24fps */
	FIMC_IS_SENSOR_CFG(3280, 2458, 24, 12, 2),
	/* 3280X1846@24fps */
	FIMC_IS_SENSOR_CFG(3280, 1846, 24, 9, 3),
	/* 1936X1450@24fps */
	FIMC_IS_SENSOR_CFG(1936, 1450, 24, 12, 4),
	/* 1936X1090@24fps */
	FIMC_IS_SENSOR_CFG(1936, 1090, 24, 9, 5),
	/* 816X460@120fps */
	FIMC_IS_SENSOR_CFG(816, 460, 120, 7, 6),
	/* 1640X924@60fps */
	FIMC_IS_SENSOR_CFG(1640, 924, 60, 6, 7),
};
	{0x746D, 0x09},
	{0x746E, 0xFF},
	{0x746F, 0x01},
	{0x7472, 0x00},
	{0x7473, 0x02},
	{0x7474, 0xC1},
	{0x7475, 0x00},
	{0x7476, 0x00},
	{0x7477, 0x00},
	{0x7478, 0x00},
	{0x4100, 0x01},
};

static struct fimc_is_sensor_cfg config_imx219[] = {
	/* 3280X2458@20fps */
	FIMC_IS_SENSOR_CFG(3280, 2458, 20, 19, 0),
	/* 3280X1846@20fps */
	FIMC_IS_SENSOR_CFG(3280, 1846, 20, 15, 1),
	/* 1640X1228@24fps */
	FIMC_IS_SENSOR_CFG(1640, 1228, 24, 12, 2),
	/* 3280X1846@24fps */
	FIMC_IS_SENSOR_CFG(3280, 1846, 24, 17, 3),
};

static int sensor_imx219_open(struct v4l2_subdev *sd,
	struct v4l2_subdev_fh *fh)
{
	pr_info("%s\n", __func__);
	return 0;
}
static int sensor_imx219_close(struct v4l2_subdev *sd,
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "../fimc-is-hw.h"
#include "fimc-is-device-imx240.h"

#define SENSOR_NAME "IMX240"

static struct fimc_is_sensor_cfg config_imx240[] = {
	/* 5328x3000@30fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 30, 29, 0),
	/* 5328x3000@24fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 24, 25, 1),
	/* 4000X3000@30fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 30, 25, 2),
	/* 4000X3000@24fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 24, 21, 3),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 30, 25, 4),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 24, 21, 5),
	/* 2664X1500@60fps */
	FIMC_IS_SENSOR_CFG(2664, 1500, 60, 25, 6),
	/* 2664X1500@30fps */
	FIMC_IS_SENSOR_CFG(2664, 1500, 30, 13, 7),
	/* 1328X748@120fps */
#include <plat/gpio-cfg.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "fimc-is-device-6a3.h"

#define SENSOR_NAME "S5K6A3"

static struct fimc_is_sensor_cfg config_6a3[] = {
	/* 1936x1090@30fps */
	FIMC_IS_SENSOR_CFG(1936, 1090, 30, 16, 0),
};

static int sensor_6a3_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	struct fimc_is_module_enum *module;

	BUG_ON(!subdev);

	module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);

	pr_info("[MOD:D:%d] %s(%d)\n", module->id, __func__, val);

	return ret;
}
Ejemplo n.º 13
0
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>

#include <exynos-fimc-is-sensor.h>
#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-dt.h"
#include "fimc-is-module-2p8.h"

#define SENSOR_NAME "S5K2P8"

static struct fimc_is_sensor_cfg config_2p8[] = {
	/* 5328x3000@30fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 30, 31, 0, CSI_DATA_LANES_4),
	/* 5328x3000@24fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 24, 24, 1, CSI_DATA_LANES_4),
	/* 4000X3000@30fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 30, 24, 2, CSI_DATA_LANES_4),
	/* 4000X3000@24fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 24, 22, 3, CSI_DATA_LANES_4),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 30, 22, 4, CSI_DATA_LANES_4),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 24, 15, 5, CSI_DATA_LANES_4),
	/* 2664X1500@30fps */
	FIMC_IS_SENSOR_CFG(2664, 1500, 30, 15, 6, CSI_DATA_LANES_4),
	/* 2664X1500@60fps */
	FIMC_IS_SENSOR_CFG(2664, 1500, 60, 15, 7, CSI_DATA_LANES_4),
	/* 1328X748@120fps */
Ejemplo n.º 14
0
	.brightness_default	= SENSOR_REGISTER_REGSET(sr200_brightness_default),

	/*.preview	= SENSOR_REGISTER_REGSET(sr200_preview),*/
	.stop_stream		= SENSOR_REGISTER_REGSET(sr200_stop_stream),
	.start_stream		= SENSOR_REGISTER_REGSET(sr200_start_stream),

	.resol_352_288		= SENSOR_REGISTER_REGSET(sr200_resol_352_288),
	.resol_640_480		= SENSOR_REGISTER_REGSET(sr200_resol_640_480),
	.resol_800_600		= SENSOR_REGISTER_REGSET(sr200_resol_800_600),
	.resol_1280_960		= SENSOR_REGISTER_REGSET(sr200_resol_1280_960),
	.resol_1600_1200	= SENSOR_REGISTER_REGSET(sr200_resol_1600_1200),
	/*.capture_mode = SENSOR_REGISTER_REGSET(sr200_resol_1600_1200)*/
};

static struct fimc_is_sensor_cfg settle_sr200[] = {
	FIMC_IS_SENSOR_CFG(1600, 1200, 15, 17, 0),
	FIMC_IS_SENSOR_CFG(1280, 960, 15, 17, 1),
	FIMC_IS_SENSOR_CFG(800, 600, 30, 17, 2),
	FIMC_IS_SENSOR_CFG(640, 480, 30, 17, 2),
	FIMC_IS_SENSOR_CFG(352, 288, 15, 17, 3),
};

static const struct sr200_fps sr200_framerates[] = {
	{ I_FPS_0,	FRAME_RATE_AUTO },
	{ I_FPS_7,	FRAME_RATE_7},
	{ I_FPS_15,	FRAME_RATE_15},
	{ I_FPS_25,	FRAME_RATE_25 },
};

static const struct sr200_framesize sr200_preview_frmsizes[] = {
	{ PREVIEW_SZ_CIF,	352,  288 },
Ejemplo n.º 15
0
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>

#include <exynos-fimc-is-sensor.h>
#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-module-4h5.h"

#define SENSOR_NAME "S5K4H5"

static struct fimc_is_sensor_cfg config_4h5[] = {
	/* 3280x2458@30fps */
	FIMC_IS_SENSOR_CFG(3280, 2458, 30, 14, 0, CSI_DATA_LANES_4),
	/* 3280x1846@30fps */
	FIMC_IS_SENSOR_CFG(3280, 1846, 30, 11, 1, CSI_DATA_LANES_4),
	/* 1640x924@60fps */
	FIMC_IS_SENSOR_CFG(1640, 924, 60, 14, 2, CSI_DATA_LANES_4),
	/* 816x460@120fps */
	FIMC_IS_SENSOR_CFG(816, 460, 120, 14, 3, CSI_DATA_LANES_4),
};

static int sensor_4h5_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	struct fimc_is_module_enum *module;

	BUG_ON(!subdev);
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "../fimc-is-hw.h"
#include "fimc-is-device-imx135.h"

#define SENSOR_NAME "IMX135"

static struct fimc_is_sensor_cfg config_imx135[] = {
	/* 4144x3106@30fps */
	FIMC_IS_SENSOR_CFG(4144, 3106, 30, 23, 0),
	/* 4144x2332@30fps */
	FIMC_IS_SENSOR_CFG(4144, 2332, 30, 18, 1),
	/* 1936x1450@24fps */
	FIMC_IS_SENSOR_CFG(1936, 1450, 24, 9, 2),
	/* 1936x1090@24fps */
	FIMC_IS_SENSOR_CFG(1936, 1090, 24, 7, 3),
	/* 1024x576@120fps */
	FIMC_IS_SENSOR_CFG(1024, 576, 120, 9, 4),
	/* 2072x1166@60fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 60, 18, 5),
};

static int sensor_imx135_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
#include <plat/gpio-cfg.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "fimc-is-device-6a3.h"

#define SENSOR_NAME "S5K6A3"

static struct fimc_is_sensor_cfg config_6a3[] = {
	/* 1412x796@30fps */
	FIMC_IS_SENSOR_CFG(1412, 796, 30, 16, 0),
};

static int sensor_6a3_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	struct fimc_is_module_enum *module;

	BUG_ON(!subdev);

	module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);

	pr_info("[MOD:D:%d] %s(%d)\n", module->id, __func__, val);

	return ret;
}
#define SENSOR_REG_VIS_AE_WINDOW_WEIGHT_2x3_4		(0x6003)
#define SENSOR_REG_VIS_AE_WINDOW_WEIGHT_3x1_2		(0x6004)
#define SENSOR_REG_VIS_AE_WINDOW_WEIGHT_3x3_4		(0x6005)
#define SENSOR_REG_VIS_AE_WINDOW_WEIGHT_4x1_2		(0x6006)
#define SENSOR_REG_VIS_AE_WINDOW_WEIGHT_4x3_4		(0x6007)
#define SENSOR_REG_VIS_AE_MANUAL_EXP_MSB		(0x5039)
#define SENSOR_REG_VIS_AE_MANUAL_EXP_LSB		(0x503A)
#define SENSOR_REG_VIS_AE_MANUAL_ANG_MSB		(0x503B)
#define SENSOR_REG_VIS_AE_MANUAL_ANG_LSB		(0x503C)
#define SENSOR_REG_VIS_BIT_CONVERTING_MSB		(0x602B)
#define SENSOR_REG_VIS_BIT_CONVERTING_LSB		(0x7203)
#define SENSOR_REG_VIS_AE_OFF				(0x5000)

static struct fimc_is_sensor_cfg config_8b1[] = {
	/* 1936x1090@30fps */
	FIMC_IS_SENSOR_CFG(1936, 1090, 30, 16, 0),
	/* 1924x1082@30fps */
	FIMC_IS_SENSOR_CFG(1924, 1082, 30, 16, 1),
	/* 1444x1082@30fps */
	FIMC_IS_SENSOR_CFG(1444, 1082, 30, 16, 2),
	/* 1084x1082@30fps */
	FIMC_IS_SENSOR_CFG(1084, 1082, 30, 16, 3),
	/* 964x542@30fps */
	FIMC_IS_SENSOR_CFG(964, 542, 30, 16, 4),
	/* 724x542@30fps */
	FIMC_IS_SENSOR_CFG(724, 542, 30, 16, 5),
	/* 544x542@30fps */
	FIMC_IS_SENSOR_CFG(544, 542, 30, 16, 6),
	/* 320x180@10fps : only for vision(settle) */
	FIMC_IS_SENSOR_CFG(320, 180, 10, 4, 6),
	/* 1936x1090@24fps */
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "../fimc-is-hw.h"
#include "fimc-is-device-3h7_sunny.h"

#define SENSOR_NAME "S5K3H7_SUNNY"

static struct fimc_is_sensor_cfg config_3h7_sunny[] = {
	/* 3264x2448@30fps */
	FIMC_IS_SENSOR_CFG(3264, 2448, 30, 15, 0),
};

static int sensor_3h7_sunny_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	struct fimc_is_module_enum *module;

	BUG_ON(!subdev);

	module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);

	pr_info("[MOD:D:%d] %s(%d)\n", module->id, __func__, val);

	return ret;
}
Ejemplo n.º 20
0
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>

#include <exynos-fimc-is-sensor.h>
#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-dt.h"
#include "fimc-is-module-2l1.h"

#define SENSOR_NAME "S5K2L1"

static struct fimc_is_sensor_cfg config_2l1[] = {
	/* 4032x3024@30fps */
	FIMC_IS_SENSOR_CFG(4032, 3024,  30, 30, 0, CSI_DATA_LANES_4),
	/* 4032x2268@30fps */
	FIMC_IS_SENSOR_CFG(4032, 2268,  30, 30, 1, CSI_DATA_LANES_4),
	/* 3024x3024@30fps */
	FIMC_IS_SENSOR_CFG(3024, 3024,  30, 30, 2, CSI_DATA_LANES_4),
	/* 4032x2268@60fps */
	FIMC_IS_SENSOR_CFG_EXT(4032, 2268,  60, 45, 3, CSI_DATA_LANES_4, 2145),
	/* 2016x1134@120fps */
	FIMC_IS_SENSOR_CFG_EXT(2016, 1134, 120, 24, 4, CSI_DATA_LANES_4, 2145),
	/* 2016x1134@240fps */
	FIMC_IS_SENSOR_CFG_EXT(2016, 1134, 240, 39, 5, CSI_DATA_LANES_4, 2145),
	/* 1008x 756@120fps */
	FIMC_IS_SENSOR_CFG_EXT(1008,  756, 120, 39, 6, CSI_DATA_LANES_4, 2145),
	/* 2016x 1512@30fps */
	FIMC_IS_SENSOR_CFG(2016, 1512,  30, 24, 7, CSI_DATA_LANES_4),
	/* 1504x 1504@30fps */
#include <plat/gpio-cfg.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "fimc-is-device-3h7.h"

#define SENSOR_NAME "S5K3H7"

static struct fimc_is_sensor_cfg config_3h7[] = {
	/* 3280x2458@30fps */
	FIMC_IS_SENSOR_CFG(3280, 2458, 30, 15, 0),
};

static int sensor_3h7_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
	struct fimc_is_module_enum *module;

	BUG_ON(!subdev);

	module = (struct fimc_is_module_enum *)v4l2_get_subdevdata(subdev);

	pr_info("[MOD:D:%d] %s(%d)\n", module->id, __func__, val);

	return ret;
}
Ejemplo n.º 22
0
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "../fimc-is-core.h"
#include "../fimc-is-device-sensor.h"
#include "../fimc-is-resourcemgr.h"
#include "../fimc-is-hw.h"
#include "fimc-is-device-3l2.h"

#define SENSOR_NAME "S5K3L2"

static struct fimc_is_sensor_cfg config_3l2[] = {
	/* 4144x3106@30fps */
	FIMC_IS_SENSOR_CFG(4144, 3106, 30, 25, 0),
	/* 4144x2332@30fps */
	FIMC_IS_SENSOR_CFG(4144, 2332, 30, 25, 1),
	/* 2072x1554@24fps */
	FIMC_IS_SENSOR_CFG(2072, 1554, 24, 25, 2),
	/* 2072x1166@24fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 24, 25, 3),
	/* 1040x584@120fps */
	FIMC_IS_SENSOR_CFG(1040, 584, 120, 17, 4),
	/* 2072x1166@60fps */
	FIMC_IS_SENSOR_CFG(2072, 1166, 60, 19, 5),
};

static int sensor_3l2_init(struct v4l2_subdev *subdev, u32 val)
{
	int ret = 0;
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-dt.h"
#include "fimc-is-device-2p2.h"

#define SENSOR_NAME "S5K2P2"

static struct fimc_is_sensor_cfg config_2p2[] = {
	/* 5328x3000@30fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 30, 31, 0),
	/* 5328x3000@24fps */
	FIMC_IS_SENSOR_CFG(5328, 3000, 24, 24, 1),
	/* 4000X3000@30fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 30, 24, 2),
	/* 4000X3000@24fps */
	FIMC_IS_SENSOR_CFG(4000, 3000, 24, 22, 3),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 30, 22, 4),
	/* 3008X3000@30fps */
	FIMC_IS_SENSOR_CFG(3008, 3000, 24, 15, 5),
	/* 2664X1500@60fps */
	FIMC_IS_SENSOR_CFG(2664, 1500, 60, 15, 6),
	/* 1328X748@120fps */
	FIMC_IS_SENSOR_CFG(1328, 748, 120, 15, 7),
	/* 824X496@300fps */
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
#include <mach/exynos-fimc-is-sensor.h>

#include "fimc-is-hw.h"
#include "fimc-is-core.h"
#include "fimc-is-device-sensor.h"
#include "fimc-is-resourcemgr.h"
#include "fimc-is-device-imx228.h"
#include "fimc-is-dt.h"

#define SENSOR_NAME "IMX228"

static struct fimc_is_sensor_cfg config_imx228[] = {
	/* 5968x3368@30fps */
	FIMC_IS_SENSOR_CFG(5968, 3368, 30, 36, 0),
	/* 5968x3368@24fps */
	FIMC_IS_SENSOR_CFG(5968, 3368, 24, 29, 1),
	/* 4480x3368@30fps */
	FIMC_IS_SENSOR_CFG(4480, 3368, 30, 28, 2),
	/* 4480x3368@24fps */
	FIMC_IS_SENSOR_CFG(4480, 3368, 24, 22, 3),
	/* 3360x3368@30fps */
	FIMC_IS_SENSOR_CFG(3360, 3368, 30, 44, 4),
	/* 3360x3368@24fps */
	FIMC_IS_SENSOR_CFG(3360, 3368, 24, 36, 5),
	/* 2984x1680@60fps */
	FIMC_IS_SENSOR_CFG(2984, 1680, 60, 44, 6),
	/* 2984x1680@30fps */
	FIMC_IS_SENSOR_CFG(2984, 1680, 30, 25, 7),
	/* 1480x832@120fps */