Hi, Guennadi The solution you said is right. We could use parameters to distinguish different power managerment, gain, etc. So ov5642_default_regs_init and ov5642_default_regs_finalise in the patch could be removed in the final version, right? Since it's not common for all boards. What I think about is that ov5642.c is a common driver, which could use on almost all platforms. But the setting could be different from different boards from my experience on three boards. And the setting contains lots of registers. OV5642 document should be learnt a lot before merging the patch. Thank you Angela On Mon, Jul 4, 2011 at 3:35 AM, Guennadi Liakhovetski <g.liakhovetski@xxxxxx> wrote: > Hi Angela > > On Sun, 3 Jul 2011, angela wan wrote: > >> Hi, Bastian, >> >> Could the setting in ov5642.c like ov5642_default_regs_init and >> ov5642_default_regs_finalise adapt to different board? From my experience, >> ov5642 may have difference settings for differnt boards. So could we put the >> setting in another file instead of in the common driver? > > No, that's not the solution, that we want. What we want is find the > differences, understand them and learn to calculate them. So, for example, > if you need different power management procedures, or if you feed the > sensor with a different frequency clock, or if you use different lenses > and your WB or gain or any other parameters differ then, we might have to > use or add some platform parameters and verify them in the driver. > > Thanks > Guennadi > >> Best Regards, >> Angela Wan >> >> Application Processor Systems Engineering, >> Marvell Technology Group Ltd. >> >> >> On Tue, Jun 28, 2011 at 5:48 AM, Bastian Hecht <hechtb@xxxxxxxxxxxxxx>wrote: >> >> > 2011/6/27 Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>: >> > > Hi Bastian, >> > > >> > > Thanks for the patch. >> > > >> > > On Friday 24 June 2011 12:57:36 Bastian Hecht wrote: >> > >> This is an initial driver release for the Omnivision 5642 CMOS sensor. >> > >> >> > >> Signed-off-by: Bastian Hecht <hechtb@xxxxxxxxx> >> > >> --- >> > >> >> > >> diff --git a/drivers/media/video/ov5642.c b/drivers/media/video/ov5642.c >> > >> new file mode 100644 >> > >> index 0000000..3cdae97 >> > >> --- /dev/null >> > >> +++ b/drivers/media/video/ov5642.c >> > >> @@ -0,0 +1,1011 @@ >> > >> +/* >> > >> + * Driver for OV5642 CMOS Image Sensor from Omnivision >> > >> + * >> > >> + * Copyright (C) 2011, Bastian Hecht <hechtb@xxxxxxxxx> >> > >> + * >> > >> + * Based on Sony IMX074 Camera Driver >> > >> + * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@xxxxxx> >> > >> + * >> > >> + * Based on Omnivision OV7670 Camera Driver >> > >> + * Copyright (C) 2006-7 Jonathan Corbet <corbet@xxxxxxx> >> > >> + * >> > >> + * 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. >> > >> + */ >> > >> + >> > >> +#include <linux/delay.h> >> > >> +#include <linux/i2c.h> >> > >> +#include <linux/slab.h> >> > >> +#include <linux/videodev2.h> >> > >> + >> > >> +#include <media/soc_camera.h> >> > >> +#include <media/soc_mediabus.h> >> > >> +#include <media/v4l2-chip-ident.h> >> > >> +#include <media/v4l2-subdev.h> >> > >> + >> > >> +/* OV5642 registers */ >> > >> +#define REG_CHIP_ID_HIGH 0x300a >> > >> +#define REG_CHIP_ID_LOW 0x300b >> > >> + >> > >> +#define REG_WINDOW_START_X_HIGH 0x3800 >> > >> +#define REG_WINDOW_START_X_LOW 0x3801 >> > >> +#define REG_WINDOW_START_Y_HIGH 0x3802 >> > >> +#define REG_WINDOW_START_Y_LOW 0x3803 >> > >> +#define REG_WINDOW_WIDTH_HIGH 0x3804 >> > >> +#define REG_WINDOW_WIDTH_LOW 0x3805 >> > >> +#define REG_WINDOW_HEIGHT_HIGH 0x3806 >> > >> +#define REG_WINDOW_HEIGHT_LOW 0x3807 >> > >> +#define REG_OUT_WIDTH_HIGH 0x3808 >> > >> +#define REG_OUT_WIDTH_LOW 0x3809 >> > >> +#define REG_OUT_HEIGHT_HIGH 0x380a >> > >> +#define REG_OUT_HEIGHT_LOW 0x380b >> > >> +#define REG_OUT_TOTAL_WIDTH_HIGH 0x380c >> > >> +#define REG_OUT_TOTAL_WIDTH_LOW 0x380d >> > >> +#define REG_OUT_TOTAL_HEIGHT_HIGH 0x380e >> > >> +#define REG_OUT_TOTAL_HEIGHT_LOW 0x380f >> > >> + >> > >> +/* >> > >> + * define standard resolution. >> > >> + * Works currently only for up to 720 lines >> > >> + * eg. 320x240, 640x480, 800x600, 1280x720, 2048x720 >> > >> + */ >> > >> + >> > >> +#define OV5642_WIDTH 1280 >> > >> +#define OV5642_HEIGHT 720 >> > >> +#define OV5642_TOTAL_WIDTH 3200 >> > >> +#define OV5642_TOTAL_HEIGHT 2000 >> > >> +#define OV5642_SENSOR_SIZE_X 2592 >> > >> +#define OV5642_SENSOR_SIZE_Y 1944 >> > >> + >> > >> +struct regval_list { >> > >> + u16 reg_num; >> > >> + u8 value; >> > >> +}; >> > >> + >> > >> +static struct regval_list ov5642_default_regs_init[] = { >> > >> + { 0x3103, 0x93 }, >> > >> + { 0x3008, 0x82 }, >> > >> + { 0x3017, 0x7f }, >> > >> + { 0x3018, 0xfc }, >> > >> + { 0x3810, 0xc2 }, >> > >> + { 0x3615, 0xf0 }, >> > >> + { 0x3000, 0x0 }, >> > >> + { 0x3001, 0x0 }, >> > >> + { 0x3002, 0x0 }, >> > >> + { 0x3003, 0x0 }, >> > >> + { 0x3004, 0xff }, >> > >> + { 0x3030, 0x2b }, >> > >> + { 0x3011, 0x8 }, >> > >> + { 0x3010, 0x10 }, >> > >> + { 0x3604, 0x60 }, >> > >> + { 0x3622, 0x60 }, >> > >> + { 0x3621, 0x9 }, >> > >> + { 0x3709, 0x0 }, >> > >> + { 0x4000, 0x21 }, >> > >> + { 0x401d, 0x22 }, >> > >> + { 0x3600, 0x54 }, >> > >> + { 0x3605, 0x4 }, >> > >> + { 0x3606, 0x3f }, >> > >> + { 0x3c01, 0x80 }, >> > >> + { 0x300d, 0x22 }, >> > >> + { 0x3623, 0x22 }, >> > >> + { 0x5000, 0x4f }, >> > >> + { 0x5020, 0x4 }, >> > >> + { 0x5181, 0x79 }, >> > >> + { 0x5182, 0x0 }, >> > >> + { 0x5185, 0x22 }, >> > >> + { 0x5197, 0x1 }, >> > >> + { 0x5500, 0xa }, >> > >> + { 0x5504, 0x0 }, >> > >> + { 0x5505, 0x7f }, >> > >> + { 0x5080, 0x8 }, >> > >> + { 0x300e, 0x18 }, >> > >> + { 0x4610, 0x0 }, >> > >> + { 0x471d, 0x5 }, >> > >> + { 0x4708, 0x6 }, >> > >> + { 0x370c, 0xa0 }, >> > >> + { 0x5687, 0x94 }, >> > >> + { 0x501f, 0x0 }, >> > >> + { 0x5000, 0x4f }, >> > >> + { 0x5001, 0xcf }, >> > >> + { 0x4300, 0x30 }, >> > >> + { 0x4300, 0x30 }, >> > >> + { 0x460b, 0x35 }, >> > >> + { 0x471d, 0x0 }, >> > >> + { 0x3002, 0xc }, >> > >> + { 0x3002, 0x0 }, >> > >> + { 0x4713, 0x3 }, >> > >> + { 0x471c, 0x50 }, >> > >> + { 0x4721, 0x2 }, >> > >> + { 0x4402, 0x90 }, >> > >> + { 0x460c, 0x22 }, >> > >> + { 0x3815, 0x44 }, >> > >> + { 0x3503, 0x7 }, >> > >> + { 0x3501, 0x73 }, >> > >> + { 0x3502, 0x80 }, >> > >> + { 0x350b, 0x0 }, >> > >> + { 0x3818, 0xc8 }, >> > >> + { 0x3824, 0x11 }, >> > >> + { 0x3a00, 0x78 }, >> > >> + { 0x3a1a, 0x4 }, >> > >> + { 0x3a13, 0x30 }, >> > >> + { 0x3a18, 0x0 }, >> > >> + { 0x3a19, 0x7c }, >> > >> + { 0x3a08, 0x12 }, >> > >> + { 0x3a09, 0xc0 }, >> > >> + { 0x3a0a, 0xf }, >> > >> + { 0x3a0b, 0xa0 }, >> > >> + { 0x350c, 0x7 }, >> > >> + { 0x350d, 0xd0 }, >> > >> + { 0x3a0d, 0x8 }, >> > >> + { 0x3a0e, 0x6 }, >> > >> + { 0x3500, 0x0 }, >> > >> + { 0x3501, 0x0 }, >> > >> + { 0x3502, 0x0 }, >> > >> + { 0x350a, 0x0 }, >> > >> + { 0x350b, 0x0 }, >> > >> + { 0x3503, 0x0 }, >> > >> + { 0x3a0f, 0x3c }, >> > >> + { 0x3a10, 0x32 }, >> > >> + { 0x3a1b, 0x3c }, >> > >> + { 0x3a1e, 0x32 }, >> > >> + { 0x3a11, 0x80 }, >> > >> + { 0x3a1f, 0x20 }, >> > >> + { 0x3030, 0x2b }, >> > >> + { 0x3a02, 0x0 }, >> > >> + { 0x3a03, 0x7d }, >> > >> + { 0x3a04, 0x0 }, >> > >> + { 0x3a14, 0x0 }, >> > >> + { 0x3a15, 0x7d }, >> > >> + { 0x3a16, 0x0 }, >> > >> + { 0x3a00, 0x78 }, >> > >> + { 0x3a08, 0x9 }, >> > >> + { 0x3a09, 0x60 }, >> > >> + { 0x3a0a, 0x7 }, >> > >> + { 0x3a0b, 0xd0 }, >> > >> + { 0x3a0d, 0x10 }, >> > >> + { 0x3a0e, 0xd }, >> > >> + { 0x4407, 0x4 }, >> > >> + { 0x5193, 0x70 }, >> > >> + { 0x589b, 0x0 }, >> > >> + { 0x589a, 0xc0 }, >> > >> + { 0x401e, 0x20 }, >> > >> + { 0x4001, 0x42 }, >> > >> + { 0x401c, 0x6 }, >> > >> + { 0x3825, 0xac }, >> > >> + { 0x3827, 0xc }, >> > >> + { 0x528a, 0x1 }, >> > >> + { 0x528b, 0x4 }, >> > >> + { 0x528c, 0x8 }, >> > >> + { 0x528d, 0x10 }, >> > >> + { 0x528e, 0x20 }, >> > >> + { 0x528f, 0x28 }, >> > >> + { 0x5290, 0x30 }, >> > >> + { 0x5292, 0x0 }, >> > >> + { 0x5293, 0x1 }, >> > >> + { 0x5294, 0x0 }, >> > >> + { 0x5295, 0x4 }, >> > >> + { 0x5296, 0x0 }, >> > >> + { 0x5297, 0x8 }, >> > >> + { 0x5298, 0x0 }, >> > >> + { 0x5299, 0x10 }, >> > >> + { 0x529a, 0x0 }, >> > >> + { 0x529b, 0x20 }, >> > >> + { 0x529c, 0x0 }, >> > >> + { 0x529d, 0x28 }, >> > >> + { 0x529e, 0x0 }, >> > >> + { 0x529f, 0x30 }, >> > >> + { 0x5282, 0x0 }, >> > >> + { 0x5300, 0x0 }, >> > >> + { 0x5301, 0x20 }, >> > >> + { 0x5302, 0x0 }, >> > >> + { 0x5303, 0x7c }, >> > >> + { 0x530c, 0x0 }, >> > >> + { 0x530d, 0xc }, >> > >> + { 0x530e, 0x20 }, >> > >> + { 0x530f, 0x80 }, >> > >> + { 0x5310, 0x20 }, >> > >> + { 0x5311, 0x80 }, >> > >> + { 0x5308, 0x20 }, >> > >> + { 0x5309, 0x40 }, >> > >> + { 0x5304, 0x0 }, >> > >> + { 0x5305, 0x30 }, >> > >> + { 0x5306, 0x0 }, >> > >> + { 0x5307, 0x80 }, >> > >> + { 0x5314, 0x8 }, >> > >> + { 0x5315, 0x20 }, >> > >> + { 0x5319, 0x30 }, >> > >> + { 0x5316, 0x10 }, >> > >> + { 0x5317, 0x0 }, >> > >> + { 0x5318, 0x2 }, >> > >> + { 0x5380, 0x1 }, >> > >> + { 0x5381, 0x0 }, >> > >> + { 0x5382, 0x0 }, >> > >> + { 0x5383, 0x4e }, >> > >> + { 0x5384, 0x0 }, >> > >> + { 0x5385, 0xf }, >> > >> + { 0x5386, 0x0 }, >> > >> + { 0x5387, 0x0 }, >> > >> + { 0x5388, 0x1 }, >> > >> + { 0x5389, 0x15 }, >> > >> + { 0x538a, 0x0 }, >> > >> + { 0x538b, 0x31 }, >> > >> + { 0x538c, 0x0 }, >> > >> + { 0x538d, 0x0 }, >> > >> + { 0x538e, 0x0 }, >> > >> + { 0x538f, 0xf }, >> > >> + { 0x5390, 0x0 }, >> > >> + { 0x5391, 0xab }, >> > >> + { 0x5392, 0x0 }, >> > >> + { 0x5393, 0xa2 }, >> > >> + { 0x5394, 0x8 }, >> > >> + { 0x5480, 0x14 }, >> > >> + { 0x5481, 0x21 }, >> > >> + { 0x5482, 0x36 }, >> > >> + { 0x5483, 0x57 }, >> > >> + { 0x5484, 0x65 }, >> > >> + { 0x5485, 0x71 }, >> > >> + { 0x5486, 0x7d }, >> > >> + { 0x5487, 0x87 }, >> > >> + { 0x5488, 0x91 }, >> > >> + { 0x5489, 0x9a }, >> > >> + { 0x548a, 0xaa }, >> > >> + { 0x548b, 0xb8 }, >> > >> + { 0x548c, 0xcd }, >> > >> + { 0x548d, 0xdd }, >> > >> + { 0x548e, 0xea }, >> > >> + { 0x548f, 0x1d }, >> > >> + { 0x5490, 0x5 }, >> > >> + { 0x5491, 0x0 }, >> > >> + { 0x5492, 0x4 }, >> > >> + { 0x5493, 0x20 }, >> > >> + { 0x5494, 0x3 }, >> > >> + { 0x5495, 0x60 }, >> > >> + { 0x5496, 0x2 }, >> > >> + { 0x5497, 0xb8 }, >> > >> + { 0x5498, 0x2 }, >> > >> + { 0x5499, 0x86 }, >> > >> + { 0x549a, 0x2 }, >> > >> + { 0x549b, 0x5b }, >> > >> + { 0x549c, 0x2 }, >> > >> + { 0x549d, 0x3b }, >> > >> + { 0x549e, 0x2 }, >> > >> + { 0x549f, 0x1c }, >> > >> + { 0x54a0, 0x2 }, >> > >> + { 0x54a1, 0x4 }, >> > >> + { 0x54a2, 0x1 }, >> > >> + { 0x54a3, 0xed }, >> > >> + { 0x54a4, 0x1 }, >> > >> + { 0x54a5, 0xc5 }, >> > >> + { 0x54a6, 0x1 }, >> > >> + { 0x54a7, 0xa5 }, >> > >> + { 0x54a8, 0x1 }, >> > >> + { 0x54a9, 0x6c }, >> > >> + { 0x54aa, 0x1 }, >> > >> + { 0x54ab, 0x41 }, >> > >> + { 0x54ac, 0x1 }, >> > >> + { 0x54ad, 0x20 }, >> > >> + { 0x54ae, 0x0 }, >> > >> + { 0x54af, 0x16 }, >> > >> + { 0x54b0, 0x1 }, >> > >> + { 0x54b1, 0x20 }, >> > >> + { 0x54b2, 0x0 }, >> > >> + { 0x54b3, 0x10 }, >> > >> + { 0x54b4, 0x0 }, >> > >> + { 0x54b5, 0xf0 }, >> > >> + { 0x54b6, 0x0 }, >> > >> + { 0x54b7, 0xdf }, >> > >> + { 0x5402, 0x3f }, >> > >> + { 0x5403, 0x0 }, >> > >> + { 0x3406, 0x0 }, >> > >> + { 0x5180, 0xff }, >> > >> + { 0x5181, 0x52 }, >> > >> + { 0x5182, 0x11 }, >> > >> + { 0x5183, 0x14 }, >> > >> + { 0x5184, 0x25 }, >> > >> + { 0x5185, 0x24 }, >> > >> + { 0x5186, 0x6 }, >> > >> + { 0x5187, 0x8 }, >> > >> + { 0x5188, 0x8 }, >> > >> + { 0x5189, 0x7c }, >> > >> + { 0x518a, 0x60 }, >> > >> + { 0x518b, 0xb2 }, >> > >> + { 0x518c, 0xb2 }, >> > >> + { 0x518d, 0x44 }, >> > >> + { 0x518e, 0x3d }, >> > >> + { 0x518f, 0x58 }, >> > >> + { 0x5190, 0x46 }, >> > >> + { 0x5191, 0xf8 }, >> > >> + { 0x5192, 0x4 }, >> > >> + { 0x5193, 0x70 }, >> > >> + { 0x5194, 0xf0 }, >> > >> + { 0x5195, 0xf0 }, >> > >> + { 0x5196, 0x3 }, >> > >> + { 0x5197, 0x1 }, >> > >> + { 0x5198, 0x4 }, >> > >> + { 0x5199, 0x12 }, >> > >> + { 0x519a, 0x4 }, >> > >> + { 0x519b, 0x0 }, >> > >> + { 0x519c, 0x6 }, >> > >> + { 0x519d, 0x82 }, >> > >> + { 0x519e, 0x0 }, >> > >> + { 0x5025, 0x80 }, >> > >> + { 0x3a0f, 0x38 }, >> > >> + { 0x3a10, 0x30 }, >> > >> + { 0x3a1b, 0x3a }, >> > >> + { 0x3a1e, 0x2e }, >> > >> + { 0x3a11, 0x60 }, >> > >> + { 0x3a1f, 0x10 }, >> > >> + { 0x5688, 0xa6 }, >> > >> + { 0x5689, 0x6a }, >> > >> + { 0x568a, 0xea }, >> > >> + { 0x568b, 0xae }, >> > >> + { 0x568c, 0xa6 }, >> > >> + { 0x568d, 0x6a }, >> > >> + { 0x568e, 0x62 }, >> > >> + { 0x568f, 0x26 }, >> > >> + { 0x5583, 0x40 }, >> > >> + { 0x5584, 0x40 }, >> > >> + { 0x5580, 0x2 }, >> > >> + { 0x5000, 0xcf }, >> > >> + { 0x5800, 0x27 }, >> > >> + { 0x5801, 0x19 }, >> > >> + { 0x5802, 0x12 }, >> > >> + { 0x5803, 0xf }, >> > >> + { 0x5804, 0x10 }, >> > >> + { 0x5805, 0x15 }, >> > >> + { 0x5806, 0x1e }, >> > >> + { 0x5807, 0x2f }, >> > >> + { 0x5808, 0x15 }, >> > >> + { 0x5809, 0xd }, >> > >> + { 0x580a, 0xa }, >> > >> + { 0x580b, 0x9 }, >> > >> + { 0x580c, 0xa }, >> > >> + { 0x580d, 0xc }, >> > >> + { 0x580e, 0x12 }, >> > >> + { 0x580f, 0x19 }, >> > >> + { 0x5810, 0xb }, >> > >> + { 0x5811, 0x7 }, >> > >> + { 0x5812, 0x4 }, >> > >> + { 0x5813, 0x3 }, >> > >> + { 0x5814, 0x3 }, >> > >> + { 0x5815, 0x6 }, >> > >> + { 0x5816, 0xa }, >> > >> + { 0x5817, 0xf }, >> > >> + { 0x5818, 0xa }, >> > >> + { 0x5819, 0x5 }, >> > >> + { 0x581a, 0x1 }, >> > >> + { 0x581b, 0x0 }, >> > >> + { 0x581c, 0x0 }, >> > >> + { 0x581d, 0x3 }, >> > >> + { 0x581e, 0x8 }, >> > >> + { 0x581f, 0xc }, >> > >> + { 0x5820, 0xa }, >> > >> + { 0x5821, 0x5 }, >> > >> + { 0x5822, 0x1 }, >> > >> + { 0x5823, 0x0 }, >> > >> + { 0x5824, 0x0 }, >> > >> + { 0x5825, 0x3 }, >> > >> + { 0x5826, 0x8 }, >> > >> + { 0x5827, 0xc }, >> > >> + { 0x5828, 0xe }, >> > >> + { 0x5829, 0x8 }, >> > >> + { 0x582a, 0x6 }, >> > >> + { 0x582b, 0x4 }, >> > >> + { 0x582c, 0x5 }, >> > >> + { 0x582d, 0x7 }, >> > >> + { 0x582e, 0xb }, >> > >> + { 0x582f, 0x12 }, >> > >> + { 0x5830, 0x18 }, >> > >> + { 0x5831, 0x10 }, >> > >> + { 0x5832, 0xc }, >> > >> + { 0x5833, 0xa }, >> > >> + { 0x5834, 0xb }, >> > >> + { 0x5835, 0xe }, >> > >> + { 0x5836, 0x15 }, >> > >> + { 0x5837, 0x19 }, >> > >> + { 0x5838, 0x32 }, >> > >> + { 0x5839, 0x1f }, >> > >> + { 0x583a, 0x18 }, >> > >> + { 0x583b, 0x16 }, >> > >> + { 0x583c, 0x17 }, >> > >> + { 0x583d, 0x1e }, >> > >> + { 0x583e, 0x26 }, >> > >> + { 0x583f, 0x53 }, >> > >> + { 0x5840, 0x10 }, >> > >> + { 0x5841, 0xf }, >> > >> + { 0x5842, 0xd }, >> > >> + { 0x5843, 0xc }, >> > >> + { 0x5844, 0xe }, >> > >> + { 0x5845, 0x9 }, >> > >> + { 0x5846, 0x11 }, >> > >> + { 0x5847, 0x10 }, >> > >> + { 0x5848, 0x10 }, >> > >> + { 0x5849, 0x10 }, >> > >> + { 0x584a, 0x10 }, >> > >> + { 0x584b, 0xe }, >> > >> + { 0x584c, 0x10 }, >> > >> + { 0x584d, 0x10 }, >> > >> + { 0x584e, 0x11 }, >> > >> + { 0x584f, 0x10 }, >> > >> + { 0x5850, 0xf }, >> > >> + { 0x5851, 0xc }, >> > >> + { 0x5852, 0xf }, >> > >> + { 0x5853, 0x10 }, >> > >> + { 0x5854, 0x10 }, >> > >> + { 0x5855, 0xf }, >> > >> + { 0x5856, 0xe }, >> > >> + { 0x5857, 0xb }, >> > >> + { 0x5858, 0x10 }, >> > >> + { 0x5859, 0xd }, >> > >> + { 0x585a, 0xd }, >> > >> + { 0x585b, 0xc }, >> > >> + { 0x585c, 0xc }, >> > >> + { 0x585d, 0xc }, >> > >> + { 0x585e, 0xb }, >> > >> + { 0x585f, 0xc }, >> > >> + { 0x5860, 0xc }, >> > >> + { 0x5861, 0xc }, >> > >> + { 0x5862, 0xd }, >> > >> + { 0x5863, 0x8 }, >> > >> + { 0x5864, 0x11 }, >> > >> + { 0x5865, 0x18 }, >> > >> + { 0x5866, 0x18 }, >> > >> + { 0x5867, 0x19 }, >> > >> + { 0x5868, 0x17 }, >> > >> + { 0x5869, 0x19 }, >> > >> + { 0x586a, 0x16 }, >> > >> + { 0x586b, 0x13 }, >> > >> + { 0x586c, 0x13 }, >> > >> + { 0x586d, 0x12 }, >> > >> + { 0x586e, 0x13 }, >> > >> + { 0x586f, 0x16 }, >> > >> + { 0x5870, 0x14 }, >> > >> + { 0x5871, 0x12 }, >> > >> + { 0x5872, 0x10 }, >> > >> + { 0x5873, 0x11 }, >> > >> + { 0x5874, 0x11 }, >> > >> + { 0x5875, 0x16 }, >> > >> + { 0x5876, 0x14 }, >> > >> + { 0x5877, 0x11 }, >> > >> + { 0x5878, 0x10 }, >> > >> + { 0x5879, 0xf }, >> > >> + { 0x587a, 0x10 }, >> > >> + { 0x587b, 0x14 }, >> > >> + { 0x587c, 0x13 }, >> > >> + { 0x587d, 0x12 }, >> > >> + { 0x587e, 0x11 }, >> > >> + { 0x587f, 0x11 }, >> > >> + { 0x5880, 0x12 }, >> > >> + { 0x5881, 0x15 }, >> > >> + { 0x5882, 0x14 }, >> > >> + { 0x5883, 0x15 }, >> > >> + { 0x5884, 0x15 }, >> > >> + { 0x5885, 0x15 }, >> > >> + { 0x5886, 0x13 }, >> > >> + { 0x5887, 0x17 }, >> > >> + { 0x3710, 0x10 }, >> > >> + { 0x3632, 0x51 }, >> > >> + { 0x3702, 0x10 }, >> > >> + { 0x3703, 0xb2 }, >> > >> + { 0x3704, 0x18 }, >> > >> + { 0x370b, 0x40 }, >> > >> + { 0x370d, 0x3 }, >> > >> + { 0x3631, 0x1 }, >> > >> + { 0x3632, 0x52 }, >> > >> + { 0x3606, 0x24 }, >> > >> + { 0x3620, 0x96 }, >> > >> + { 0x5785, 0x7 }, >> > >> + { 0x3a13, 0x30 }, >> > >> + { 0x3600, 0x52 }, >> > >> + { 0x3604, 0x48 }, >> > >> + { 0x3606, 0x1b }, >> > >> + { 0x370d, 0xb }, >> > >> + { 0x370f, 0xc0 }, >> > >> + { 0x3709, 0x1 }, >> > >> + { 0x3823, 0x0 }, >> > >> + { 0x5007, 0x0 }, >> > >> + { 0x5009, 0x0 }, >> > >> + { 0x5011, 0x0 }, >> > >> + { 0x5013, 0x0 }, >> > >> + { 0x519e, 0x0 }, >> > >> + { 0x5086, 0x0 }, >> > >> + { 0x5087, 0x0 }, >> > >> + { 0x5088, 0x0 }, >> > >> + { 0x5089, 0x0 }, >> > >> + { 0x302b, 0x0 }, >> > >> + { 0x3503, 0x7 }, >> > >> + { 0x3011, 0x8 }, >> > >> + { 0x350c, 0x2 }, >> > >> + { 0x350d, 0xe4 }, >> > >> + { 0x3621, 0xc9 }, >> > >> + { 0x370a, 0x81 }, >> > >> + { 0xffff, 0xff }, >> > >> +}; >> > >> + >> > >> +static struct regval_list ov5642_default_regs_finalise[] = { >> > >> + { 0x3810, 0xc2 }, >> > >> + { 0x3818, 0xc9 }, >> > >> + { 0x381c, 0x10 }, >> > >> + { 0x381d, 0xa0 }, >> > >> + { 0x381e, 0x5 }, >> > >> + { 0x381f, 0xb0 }, >> > >> + { 0x3820, 0x0 }, >> > >> + { 0x3821, 0x0 }, >> > >> + { 0x3824, 0x11 }, >> > >> + { 0x3a08, 0x1b }, >> > >> + { 0x3a09, 0xc0 }, >> > >> + { 0x3a0a, 0x17 }, >> > >> + { 0x3a0b, 0x20 }, >> > >> + { 0x3a0d, 0x2 }, >> > >> + { 0x3a0e, 0x1 }, >> > >> + { 0x401c, 0x4 }, >> > >> + { 0x5682, 0x5 }, >> > >> + { 0x5683, 0x0 }, >> > >> + { 0x5686, 0x2 }, >> > >> + { 0x5687, 0xcc }, >> > >> + { 0x5001, 0x4f }, >> > >> + { 0x589b, 0x6 }, >> > >> + { 0x589a, 0xc5 }, >> > >> + { 0x3503, 0x0 }, >> > >> + { 0x460c, 0x20 }, >> > >> + { 0x460b, 0x37 }, >> > >> + { 0x471c, 0xd0 }, >> > >> + { 0x471d, 0x5 }, >> > >> + { 0x3815, 0x1 }, >> > >> + { 0x3818, 0xc1 }, >> > >> + { 0x501f, 0x0 }, >> > >> + { 0x5002, 0xe0 }, >> > >> + { 0x4300, 0x32 }, /* UYVY */ >> > >> + { 0x3002, 0x1c }, >> > >> + { 0x4800, 0x14 }, >> > >> + { 0x4801, 0xf }, >> > >> + { 0x3007, 0x3b }, >> > >> + { 0x300e, 0x4 }, >> > >> + { 0x4803, 0x50 }, >> > >> + { 0x3815, 0x1 }, >> > >> + { 0x4713, 0x2 }, >> > >> + { 0x4842, 0x1 }, >> > >> + { 0x300f, 0xe }, >> > >> + { 0x3003, 0x3 }, >> > >> + { 0x3003, 0x1 }, >> > >> + { 0xffff, 0xff }, >> > > >> > > Any chance to replace hardcoded values by #define's ? >> > >> > Hello Laurent, >> > >> > this was (obviously) derived from a register-value list. As I don't >> > have the documentation for this sensor, I have to ask my source for >> > every entry. For building an advanced driver the first step was to add >> > geometry support. But the upcoming growing feature set will lead to >> > more defines as I learn the meaning of the registers. >> > >> > best regards, >> > >> > Bastian Hecht >> > >> > >> > > >> > > -- >> > > Regards, >> > > >> > > Laurent Pinchart >> > > >> > -- >> > To unsubscribe from this list: send the line "unsubscribe linux-media" in >> > the body of a message to majordomo@xxxxxxxxxxxxxxx >> > More majordomo info at http://vger.kernel.org/majordomo-info.html >> > >> > > --- > Guennadi Liakhovetski, Ph.D. > Freelance Open-Source Software Developer > http://www.open-technology.de/ > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html