ov2659{
is_front = <1>;
rockchip,powerdown = <&gpio3 GPIO_D7 GPIO_ACTIVE_HIGH>;
+ #pwdn_active = <>;
#rockchip,power = <>;
+ #pwr_active = <>;
+ #rockchip,reset = <>;
+ #rst_active = <>;
mir = <0>;
flash_attach = <0>;
resolution = <ov2659_FULL_RESOLUTION>;
pwdn_info = <ov2659_PWRDN_ACTIVE>;
powerup_sequence = <ov2659_PWRSEQ>;
+ orientation = <0>;
i2c_add = <ov2659_I2C_ADDR>;
i2c_rata = <100000>;
i2c_chl = <0>;
cif_chl = <0>;
mclk_rate = <24>;
};
+ gc0329{
+ is_front = <1>;
+ rockchip,powerdown = <&gpio3 GPIO_D7 GPIO_ACTIVE_HIGH>;
+ #pwdn_active = <>;
+ #rockchip,power = <>;
+ #pwr_active = <>;
+ #rockchip,reset = <>;
+ #rst_active = <>;
+ mir = <0>;
+ flash_attach = <0>;
+ resolution = <gc0329_FULL_RESOLUTION>;
+ pwdn_info = <gc0329_PWRDN_ACTIVE>;
+ powerup_sequence = <gc0329_PWRSEQ>;
+ orientation = <90>;
+ i2c_add = <gc0329_I2C_ADDR>;
+ i2c_rata = <100000>;
+ i2c_chl = <0>;
+ cif_chl = <0>;
+ mclk_rate = <24>;
+ };
};
};
#ifndef __ASM_ARCH_CAMERA_RK30_H_
#define __ASM_ARCH_CAMERA_RK30_H_
-#define RK29_CAM_DRV_NAME "rk3066b-camera"
+#define RK29_CAM_DRV_NAME "rk312x-camera"
#define RK_SUPPORT_CIF0 1
#define RK_SUPPORT_CIF1 0
-#define RK3288_CIF_NAME "rk3288_cif"
-#define RK3288_SENSOR_NAME "rk3288_sensor"
+#define RK3288_CIF_NAME "rk312x_cif"
+#define RK3288_SENSOR_NAME "rk312x_sensor"
#include "rk_camera.h"
#include <dt-bindings/pinctrl/rockchip-rk3288.h>
#endif
-#define CAMERA_VIDEOBUF_ARM_ACCESS 1
+#define CAMERA_VIDEOBUF_ARM_ACCESS 0
#endif
return -ENODEV;\r
for_each_child_of_node(np, cp) {\r
u32 flash_attach,mir,i2c_rata,i2c_chl,i2c_add,cif_chl,mclk_rate,is_front;\r
- u32 resolution,pwdn_info,powerup_sequence;\r
+ u32 resolution,pwdn_info,powerup_sequence,orientation;\r
\r
u32 powerdown = INVALID_GPIO,power = INVALID_GPIO,reset = INVALID_GPIO;\r
u32 af = INVALID_GPIO,flash = INVALID_GPIO;\r
+\r
+ int pwr_active = INVALID_VALUE, rst_active = INVALID_VALUE, pwdn_active = INVALID_VALUE;\r
struct rkcamera_platform_data *new_camera; \r
new_camera = kzalloc(sizeof(struct rkcamera_platform_data),GFP_KERNEL);\r
if(!sensor_num)\r
new_camera_list = new_camera;\r
\r
if (of_property_read_u32(cp, "flash_attach", &flash_attach)) {\r
- printk("%s flash_attach %d \n", cp->name, flash_attach);\r
+ dprintk("%s:Get %s rockchip,flash_attach failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "mir", &mir)) {\r
- printk("%s mir %d \n", cp->name, mir);\r
+ dprintk("%s:Get %s rockchip,mir failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "i2c_rata", &i2c_rata)) {\r
- printk("%s i2c_rata %d \n", cp->name, i2c_rata);\r
+ dprintk("%s:Get %s rockchip,i2c_rata failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "i2c_chl", &i2c_chl)) {\r
- printk("%s i2c_chl %d \n", cp->name, i2c_chl);\r
+ dprintk("%s:Get %s rockchip,i2c_chl failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "cif_chl", &cif_chl)) {\r
- printk("%s cif_chl %d \n", cp->name, cif_chl);\r
+ dprintk("%s:Get %s rockchip,cif_chl failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "mclk_rate", &mclk_rate)) {\r
- printk("%s mclk_rate %d \n", cp->name, mclk_rate);\r
+ dprintk("%s:Get %s rockchip,mclk_rate failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "is_front", &is_front)) {\r
- printk("%s is_front %d \n", cp->name, is_front);\r
+ dprintk("%s:Get %s rockchip,is_front failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "rockchip,powerdown", &powerdown)) {\r
printk("%s:Get %s rockchip,powerdown failed!\n",__func__, cp->name); \r
}\r
+ if (of_property_read_u32(cp, "pwdn_active", &pwdn_active)) {\r
+ dprintk("%s:Get %s pwdn_active failed!\n",__func__, cp->name); \r
+ }\r
if (of_property_read_u32(cp, "rockchip,power", &power)) {\r
printk("%s:Get %s rockchip,power failed!\n",__func__, cp->name); \r
}\r
+ if (of_property_read_u32(cp, "pwr_active", &pwr_active)) {\r
+ dprintk("%s:Get %s pwr_active failed!\n",__func__, cp->name); \r
+ }\r
if (of_property_read_u32(cp, "rockchip,reset", &reset)) {\r
printk("%s:Get %s rockchip,reset failed!\n",__func__, cp->name); \r
}\r
+ if (of_property_read_u32(cp, "rst_active", &rst_active)) {\r
+ dprintk("%s:Get %s rst_active failed!\n",__func__, cp->name); \r
+ }\r
if (of_property_read_u32(cp, "rockchip,af", &af)) {\r
printk("%s:Get %s rockchip,af failed!\n",__func__, cp->name); \r
}\r
printk("%s:Get %s rockchip,flash failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "i2c_add", &i2c_add)) {\r
- printk("%s i2c_add %d \n", cp->name, i2c_add);\r
+ printk("%s:Get %s rockchip,i2c_add failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "resolution", &resolution)) {\r
- printk("%s resolution %d \n", cp->name, resolution);\r
+ printk("%s:Get %s rockchip,resolution failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "pwdn_info", &pwdn_info)) {\r
- printk("%s pwdn_info %d \n", cp->name, pwdn_info);\r
+ printk("%s:Get %s rockchip,pwdn_info failed!\n",__func__, cp->name); \r
}\r
if (of_property_read_u32(cp, "powerup_sequence", &powerup_sequence)) {\r
- printk("%s powerup_sequence %d \n", cp->name, powerup_sequence);\r
+ printk("%s:Get %s rockchip,powerup_sequence failed!\n",__func__, cp->name); \r
}\r
-\r
+ if (of_property_read_u32(cp, "orientation", &orientation)) {\r
+ printk("%s:Get %s rockchip,orientation failed!\n",__func__, cp->name); \r
+ }\r
+ \r
strcpy(new_camera->dev.i2c_cam_info.type, cp->name);\r
new_camera->dev.i2c_cam_info.addr = i2c_add>>1;\r
new_camera->dev.desc_info.host_desc.bus_id = RK29_CAM_PLATFORM_DEV_ID+cif_chl;/*yzm*/\r
new_camera->io.gpio_power = power;\r
new_camera->io.gpio_af = af;\r
new_camera->io.gpio_flash = flash;\r
- new_camera->io.gpio_flag = ((INVALID_GPIO&0x01)<<RK29_CAM_POWERACTIVE_BITPOS)|((INVALID_GPIO&0x01)<<RK29_CAM_RESETACTIVE_BITPOS)|((pwdn_info&0x01)<<RK29_CAM_POWERDNACTIVE_BITPOS);\r
- new_camera->orientation = INVALID_GPIO;\r
+ new_camera->io.gpio_flag = ((pwr_active&0x01)<<RK29_CAM_POWERACTIVE_BITPOS)|((rst_active&0x01)<<RK29_CAM_RESETACTIVE_BITPOS)|((pwdn_active&0x01)<<RK29_CAM_POWERDNACTIVE_BITPOS);\r
+ new_camera->orientation = orientation;\r
new_camera->resolution = resolution;\r
new_camera->mirror = mir;\r
new_camera->i2c_rate = i2c_rata;\r
int camera_io_init = res->gpio_init; \r
int ret = 0;\r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
\r
\r
if (camera_reset != INVALID_GPIO) {\r
int camera_io_init = res->gpio_init; \r
int ret = 0; \r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
\r
\r
if (camera_powerdown != INVALID_GPIO) {\r
int camera_io_init = res->gpio_init; \r
int ret = 0; \r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
\r
\r
if (camera_flash != INVALID_GPIO) {\r
int ret = 0; \r
int camera_af = res->gpio_af;\r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
\r
\r
if (camera_af != INVALID_GPIO) {\r
unsigned int camera_reset = INVALID_GPIO, camera_power = INVALID_GPIO;\r
unsigned int camera_powerdown = INVALID_GPIO, camera_flash = INVALID_GPIO,camera_af = INVALID_GPIO;\r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
\r
\r
camera_reset = gpio_res->gpio_reset;\r
static bool is_init = false;\r
\r
struct rkcamera_platform_data *new_camera;\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
\r
if(is_init) { \r
return 0;\r
{\r
struct rkcamera_platform_data *new_camera;\r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
\r
new_camera = new_camera_head;\r
while(new_camera != NULL)\r
int ret =0;\r
int i,powerup_type;\r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
\r
\r
for (i=0; i<8; i++) {\r
bool real_pwroff = true;\r
int ret = 0;\r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
\r
new_camera = plat_data->register_dev_new; /*new_camera[]*/\r
\r
static int rk_sensor_powerdown(struct device *dev, int on)\r
{\r
\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);\r
\r
return rk_sensor_ioctrl(dev,Cam_PowerDown,on);\r
}\r
struct rkcamera_platform_data *new_camera; \r
\r
i = 0;\r
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);\r
\r
new_camera = new_camera_head;\r
\r
\r
new_camera->dev.device_info.id = i+6;\r
new_camera->dev.device_info.dev.platform_data = &new_camera->dev.desc_info;\r
- debug_printk("platform_data(desc_info) %p +++++++++++++\n",new_camera->dev.device_info.dev.platform_data);\r
new_camera->dev.desc_info.subdev_desc.drv_priv = &rk_camera_platform_data;\r
\r
platform_device_register(&(new_camera->dev.device_info));\r
- debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__); \r
- debug_printk("new_camera = %p +++++++++++++\n",new_camera);\r
- debug_printk("new_camera->next_camera = %p +++++++++++++\n",new_camera->next_camera);\r
-\r
+ i++;\r
new_camera = new_camera->next_camera;\r
}\r
\r
depends on ROCKCHIP_CAMERA_SENSOR_INTERFACE
default y
+
+ config GC0307
+ tristate "gc0307,support"
+
+ config GC0308
+ tristate "gc0308,support"
+
+ config GC0309
+ tristate "gc0309,support"
+
+ config GC0328
+ tristate "gc0328,support"
+
+ config GC0329
+ tristate "gc0329,support"
+
+ config GC2015
+ tristate "gc2015,support"
+
+ config GC2035
+ tristate "gc2035,support"
+
+ config GT2005
+ tristate "gt2005,support"
+
+ config HM2057
+ tristate "hm2057,support"
+
+ config HM5065
+ tristate "hm5065,support"
+
+ config MT9P111
+ tristate "mt9p111,support"
+
+ config NT99160_2WAY
+ tristate "nt99160_2way,support"
+
+ config NT99240_2WAY
+ tristate "nt99240_2way,support"
+
config OV2659
tristate "ov2659,support"
default y
+
+ config OV5640
+ tristate "ov5640,support"
+
+
+ config SP2518
+ tristate "sp2518,support"
+
endmenu
obj-$(CONFIG_RK30_CAMERA_ONEFRAME) += rk30_camera_oneframe.o generic_sensor.o \r
-obj-$(CONFIG_OV2659) += ov2659.o
\ No newline at end of file
+\r
+obj-$(CONFIG_GC0307) += gc0307.o\r
+obj-$(CONFIG_GC0308) += gc0308.o\r
+obj-$(CONFIG_GC0309) += gc0309.o\r
+obj-$(CONFIG_GC0328) += gc0328.o\r
+obj-$(CONFIG_GC0329) += gc0329.o\r
+obj-$(CONFIG_GC2015) += gc2015.o\r
+obj-$(CONFIG_GC2035) += gc2035.o\r
+\r
+obj-$(CONFIG_GT2005) += gt2005.o\r
+\r
+obj-$(CONFIG_HM2057) += hm2057.o\r
+obj-$(CONFIG_HM5065) += hm5065.o\r
+\r
+obj-$(CONFIG_MT9P111) += mt9p111.o\r
+\r
+obj-$(CONFIG_MT9T111) += mt9t111.o\r
+\r
+obj-$(CONFIG_NT99160_2WAY) += nt99160_2way.o\r
+\r
+obj-$(CONFIG_NT99240_2WAY) += nt99240_2way.o\r
+\r
+\r
+\r
+\r
+obj-$(CONFIG_OV2659) += ov2659.o\r
+obj-$(CONFIG_OV5640) += ov5640.o\r
+\r
+\r
+obj-$(CONFIG_SP2518) += sp2518.o\r
+\r
+\r
#define SENSOR_NAME RK29_CAM_SENSOR_GC0307\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GC0307\r
#define SENSOR_ID 0x99\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 640\r
#define SENSOR_PREVIEW_H 480\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_GC0308\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GC0308\r
#define SENSOR_ID 0x9b\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 640\r
#define SENSOR_PREVIEW_H 480\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_GC0309\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GC0309\r
#define SENSOR_ID 0xa0\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 640\r
#define SENSOR_PREVIEW_H 480\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_GC0328\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GC0328\r
#define SENSOR_ID 0x9d\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 640\r
#define SENSOR_PREVIEW_H 480\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_GC0329\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GC0329\r
#define SENSOR_ID 0xc0\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 640\r
#define SENSOR_PREVIEW_H 480\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+//static struct soc_camera_ops sensor_ops;\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_GC2015\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GC2015\r
#define SENSOR_ID 0x2005\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_GC2035\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GC2035\r
#define SENSOR_ID 0x2035\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_GT2005\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_GT2005\r
#define SENSOR_ID 0x5138\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 640\r
#define SENSOR_PREVIEW_H 480\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_HM2057\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_HM2057\r
#define SENSOR_ID 0x2056\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_HM5065\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_HM5065\r
#define SENSOR_ID 0x039E\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_MT9P111
#define SENSOR_V4L2_IDENT V4L2_IDENT_MT9P111
#define SENSOR_ID 0x00
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)
#define SENSOR_PREVIEW_W 576
#define SENSOR_PREVIEW_H 432
#define SENSOR_PREVIEW_FPS 15000 // 15fps
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG},
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG}
};
-static struct soc_camera_ops sensor_ops;
+/*static struct soc_camera_ops sensor_ops;*/
/*
#define CONFIG_SENSOR_I2C_RDWRCHK 0
-#define SENSOR_BUS_PARAM (SOCAM_MASTER | SOCAM_PCLK_SAMPLE_RISING|\
- SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH|\
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)
#define COLOR_TEMPERATURE_CLOUDY_DN 6500
#define COLOR_TEMPERATURE_CLOUDY_UP 8000
#define SENSOR_NAME RK29_CAM_SENSOR_NT99160\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_NT99160\r
#define SENSOR_ID 0x1600\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER | SOCAM_PCLK_SAMPLE_RISING |\\r
- SOCAM_HSYNC_ACTIVE_HIGH | SOCAM_VSYNC_ACTIVE_HIGH|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG},\r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
/*\r
**********************************************************\r
#define SENSOR_NAME RK29_CAM_SENSOR_NT99240\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_NT99240\r
#define SENSOR_ID 0x2400\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG},\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define SENSOR_NAME RK29_CAM_SENSOR_OV5640\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_OV5640\r
#define SENSOR_ID 0x5640\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_LOW|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_LOW|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_UYVY8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
#define mask_grf_reg(addr, msk, val)
#endif
-#define CAM_WORKQUEUE_IS_EN() (false)/*(true)*/
+#define CAM_WORKQUEUE_IS_EN() (true)
#define CAM_IPPWORK_IS_EN() (false)/*((pcdev->zoominfo.a.c.width != pcdev->icd->user_width) || (pcdev->zoominfo.a.c.height != pcdev->icd->user_height))*/
#define IS_CIF0() (true)/*(pcdev->hostid == RK_CAM_PLATFORM_DEV_ID_0)*/
#define RK_CAM_H_MIN 32
#define RK_CAM_W_MAX 3856 /* ddl@rock-chips.com : 10M Pixel */
#define RK_CAM_H_MAX 2764
-#define RK_CAM_FRAME_INVAL_INIT 3
-#define RK_CAM_FRAME_INVAL_DC 3 /* ddl@rock-chips.com : */
+#define RK_CAM_FRAME_INVAL_INIT 0
+#define RK_CAM_FRAME_INVAL_DC 0 /* ddl@rock-chips.com : */
#define RK30_CAM_FRAME_MEASURE 5
{
int ctrl_reg,inten_reg,crop_reg,set_size_reg,for_reg,vir_line_width_reg,scl_reg,y_reg,uv_reg;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
if (only_rst == true) {
rk3128_cru_set_soft_reset(0, true);
int bytes_per_line_host;
fmt.packing = SOC_MBUS_PACKING_1_5X8;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
bytes_per_line = soc_mbus_bytes_per_line(icd->user_width,
pcdev->vipmem_bsize = PAGE_ALIGN(bytes_per_line_host * pcdev->host_height);
if (CAM_WORKQUEUE_IS_EN()) {
-
+
if (CAM_IPPWORK_IS_EN()) {
BUG_ON(pcdev->vipmem_size<pcdev->vipmem_bsize);
if (*count > pcdev->vipmem_size/pcdev->vipmem_bsize) { /* Buffers must be limited, when this resolution is genered by IPP */
{
struct soc_camera_device *icd = vq->priv_data;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
dev_dbg(icd->control, "%s (vb=0x%p) 0x%08lx %zd\n", __func__,/*yzm*/
int bytes_per_line = soc_mbus_bytes_per_line(icd->user_width,
icd->current_fmt->host_fmt);
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
if ((bytes_per_line < 0) || (vb->boff == 0))
return -EINVAL;
unsigned int y_addr,uv_addr;
struct rk_camera_dev *pcdev = rk_pcdev;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
if (vb) {
- if (CAM_WORKQUEUE_IS_EN()) {
+ if (CAM_WORKQUEUE_IS_EN() & CAM_IPPWORK_IS_EN()) {
y_addr = pcdev->vipmem_phybase + vb->i*pcdev->vipmem_bsize;
uv_addr = y_addr + pcdev->zoominfo.vir_width*pcdev->zoominfo.vir_height;
if (y_addr > (pcdev->vipmem_phybase + pcdev->vipmem_size - pcdev->vipmem_bsize)) {
#endif
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
/*dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %zd\n", __func__,
vb, vb->baddr, vb->bsize); */ /*yzm*/
if (!pcdev->active) {
pcdev->active = vb;
rk_videobuf_capture(vb,pcdev);
- if (atomic_read(&pcdev->stop_cif) == false) { /*ddl@rock-chips.com v0.3.0x13*/
+ if (atomic_read(&pcdev->stop_cif) == false) { //ddl@rock-chips.com v0.3.0x13
write_cif_reg(pcdev->base,CIF_CIF_CTRL, (read_cif_reg(pcdev->base,CIF_CIF_CTRL) | ENABLE_CAPTURE));
}
}
static int rk_pixfmt2rgafmt(unsigned int pixfmt, int *ippfmt)
{
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
switch (pixfmt)
{
unsigned long flags = 0;
int err = 0;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
if (atomic_read(&pcdev->stop_cif)==true) {
struct rk_camera_dev *pcdev = camera_work->pcdev;
unsigned long flags = 0;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
- mdelay(1);
- rk_camera_cif_reset(pcdev,false);
+ mdelay(100);
+ /*rk_camera_cif_reset(pcdev,false);//yzm*/
spin_lock_irqsave(&pcdev->camera_work_lock, flags);
list_add_tail(&camera_work->queue, &pcdev->camera_work_queue);
{
struct rk_camera_dev *pcdev = data;
struct rk_camera_work *wk;
- unsigned int reg_cifctrl,reg_lastpix,reg_lastline;
+ unsigned int reg_cifctrl, reg_lastpix, reg_lastline, reg_intstat;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
write_cif_reg(pcdev->base,CIF_CIF_INTSTAT,0x0200); /* clear vip interrupte single */
reg_cifctrl = read_cif_reg(pcdev->base,CIF_CIF_CTRL);
reg_lastpix = read_cif_reg(pcdev->base,CIF_CIF_LAST_PIX);
reg_lastline = read_cif_reg(pcdev->base,CIF_CIF_LAST_LINE);
+ reg_intstat = read_cif_reg(pcdev->base,CIF_CIF_INTSTAT);/*yzm for rk312x first time capture bus_err*/
pcdev->irqinfo.cifirq_idx++;
if ((reg_lastline != pcdev->host_height) /*|| (reg_lastpix != pcdev->host_width)*/) {
write_cif_reg(pcdev->base,CIF_CIF_CTRL, (reg_cifctrl & ~ENABLE_CAPTURE));
}
+ if(reg_intstat & (0x1 << 6)) {
+ write_cif_reg(pcdev->base,CIF_CIF_INTSTAT, reg_intstat | (0x1 << 6));
+ goto BUS_ERR; //yzm for rk312x first time capture bus_err
+ }
+
if (pcdev->irqinfo.cifirq_abnormal_idx>0) {
if ((pcdev->irqinfo.cifirq_idx - pcdev->irqinfo.cifirq_abnormal_idx) == 1 ) {
+ BUS_ERR:
if (!list_empty(&pcdev->camera_work_queue)) {
RKCAMERA_DG2("Receive cif irq-%ld and queue work to cif reset\n",pcdev->irqinfo.cifirq_idx);
wk = list_entry(pcdev->camera_work_queue.next, struct rk_camera_work, queue);
struct timeval tv;
unsigned long reg_cifctrl;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
reg_cifctrl = read_cif_reg(pcdev->base,CIF_CIF_CTRL);
#ifdef DEBUG
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
dev_dbg(&icd->dev, "%s (vb=0x%p) 0x%08lx %d\n", __func__,
struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/
struct rk_camera_dev *pcdev = ici->priv;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
/* We must pass NULL as dev pointer, then all pci_* dma operations
struct rk_cif_clk *clk;
struct clk *cif_clk_out_div;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
cif = cif_idx - RK29_CAM_PLATFORM_DEV_ID;
}
spin_lock(&clk->lock);
- if (on && !clk->on) {
+ if (on && !clk->on) {
clk_prepare_enable(clk->pd_cif); /*yzm*/
clk_prepare_enable(clk->aclk_cif);
clk_prepare_enable(clk->hclk_cif);
* ddl@rock-chips.com : Cif clk control in rk_sensor_power which in rk_camera.c
*/
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
write_cif_reg(pcdev->base,CIF_CIF_CTRL,AXI_BURST_16|MODE_ONEFRAME|DISABLE_CAPTURE); /* ddl@rock-chips.com : vip ahb burst 16 */
- //write_cif_reg(pcdev->base,CIF_CIF_INTEN, 0x01); //capture complete interrupt enable
+ //write_cif_reg(pcdev->base,CIF_CIF_INTEN, 0x01); //capture complete interrupt enable
return 0;
}
/*
* ddl@rock-chips.com : Cif clk control in rk_sensor_power which in rk_camera.c
*/
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
return;
struct v4l2_mbus_framefmt mf;
const struct soc_camera_format_xlate *xlate = NULL;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
mutex_lock(&camera_lock);
unsigned int i;
#endif
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
mutex_lock(&camera_lock);
/*struct rk_camera_dev *pcdev = ici->priv;*/
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
fmt = soc_mbus_get_fmtdesc(icd->current_fmt->code);
default:
return -EINVAL;
}
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
if (icd->ops->query_bus_param)
camera_flags = icd->ops->query_bus_param(icd);
else
/* unsigned long bus_flags, camera_flags;*/
/* int ret;*/
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
/**********yzm***********
bus_flags = RK_CAM_BUS_PARAM;
const struct soc_mbus_pixelfmt *fmt;
fmt = soc_mbus_get_fmtdesc(icd_code);
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
if((host_pixfmt == V4L2_PIX_FMT_RGB565) || (host_pixfmt == V4L2_PIX_FMT_RGB24)){
enum v4l2_mbus_pixelcode code;
const struct soc_mbus_pixelfmt *fmt;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
ret = v4l2_subdev_call(sd, video, enum_mbus_fmt, idx, &code); /*call generic_sensor_enum_fmt()*/
static void rk_camera_put_formats(struct soc_camera_device *icd)
{
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
return;
}
struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
int ret=0;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
ret = v4l2_subdev_call(sd, video, cropcap, cropcap);
if (ret != 0)
struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/
struct rk_camera_dev *pcdev = ici->priv;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
spin_lock(&pcdev->cropinfo.lock);
struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/
struct rk_camera_dev *pcdev = ici->priv;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
spin_lock(&pcdev->cropinfo.lock);
{
bool ret = false;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
if (f->fmt.pix.priv == 0xfefe5a5a) {
int stream_on = 0;
int ratio, bounds_aspect;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
usr_w = pix->width;
usr_w = pix->width;
usr_h = pix->height;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
xlate = soc_camera_xlate_by_fourcc(icd, pixfmt);
if (!xlate) {
{
int i;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
/* This is for locking debugging only. I removed spinlocks and now I
struct soc_camera_device *icd = file->private_data;
struct rk_camera_buffer *buf;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
buf = list_entry(icd->vb_vidq.stream.next, struct rk_camera_buffer,
char fov[9];
int i;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
strlcpy(cap->card, dev_name(pcdev->icd->pdev), 18);
struct v4l2_subdev *sd;
int ret = 0;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
mutex_lock(&camera_lock);
struct v4l2_subdev *sd;
int ret = 0;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
mutex_lock(&camera_lock);
unsigned long flags = 0;
int ctrl;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
return;
if(pcdev->icd == NULL)
/*struct soc_camera_link *tmp_soc_cam_link;*/ /*yzm*/
/*tmp_soc_cam_link = to_soc_camera_link(pcdev->icd);*/ /*yzm*/
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
RKCAMERA_DG1("rk_camera_fps_func fps:0x%x\n",pcdev->fps);
if ((pcdev->fps < 1) || (pcdev->last_fps == pcdev->fps)) {
int ret;
unsigned long flags;
- debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
WARN_ON(pcdev->icd != icd);
struct v4l2_mbus_framefmt mf;
__u32 pixfmt;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
index = fival->index & 0x00ffffff;
if ((fival->index & 0xff000000) == 0xff000000) { /* ddl@rock-chips.com: detect framerate */
struct soc_camera_host *ici = to_soc_camera_host(icd->parent);/*yzm*/
struct rk_camera_dev *pcdev = ici->priv;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
#if CIF_DO_CROP
static inline struct v4l2_queryctrl const *rk_camera_soc_camera_find_qctrl(
struct soc_camera_host_ops *ops, int id)
{
-/************yzm************
+
int i;
for (i = 0; i < ops->num_controls; i++)
if (ops->controls[i].id == id)
return &ops->controls[i];
-**************yzm*********/
+
return NULL;
}
int ret = 0;
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
qctrl = rk_camera_soc_camera_find_qctrl(ici->ops, sctrl->id);
if (!qctrl) {
int retval = 0;
char state_str[20] = {0};
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
strcpy(state_str,"cif_pin_jpe");
/*__raw_writel(((1<<1)|(1<<(1+16))),RK_GRF_VIRT+0x0380);*/
int err = 0;
struct rk_cif_clk *clk=NULL;
struct device *dev_cif = ((struct rk29camera_platform_data*)pdev->dev.platform_data)->cif_dev;/*yzm*/
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
RKCAMERA_TR("%s version: v%d.%d.%d Zoom by %s",RK29_CAM_DRV_NAME,(RK_CAM_VERSION_CODE&0xff0000)>>16,
(RK_CAM_VERSION_CODE&0xff00)>>8,RK_CAM_VERSION_CODE&0xff,CAMERA_SCALE_CROP_MACHINE);
static int rk_camera_init_async(void *unused)
{
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
platform_driver_register(&rk_camera_driver);
return 0;
static int __init rk_camera_init(void)
{
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()\n", __FILE__, __LINE__,__FUNCTION__);
kthread_run(rk_camera_init_async, NULL, "rk_camera_init");
static void __exit rk_camera_exit(void)
{
-debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
+ debug_printk( "/$$$$$$$$$$$$$$$$$$$$$$//n Here I am: %s:%i-------%s()/n", __FILE__, __LINE__,__FUNCTION__);
platform_driver_unregister(&rk_camera_driver);
}
#define SENSOR_NAME RK29_CAM_SENSOR_SP2518\r
#define SENSOR_V4L2_IDENT V4L2_IDENT_SP2518\r
#define SENSOR_ID 0x53\r
-#define SENSOR_BUS_PARAM (SOCAM_MASTER |\\r
- SOCAM_PCLK_SAMPLE_RISING|SOCAM_HSYNC_ACTIVE_HIGH| SOCAM_VSYNC_ACTIVE_HIGH|\\r
- SOCAM_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
+#define SENSOR_BUS_PARAM (V4L2_MBUS_MASTER |\\r
+ V4L2_MBUS_PCLK_SAMPLE_RISING|V4L2_MBUS_HSYNC_ACTIVE_HIGH| V4L2_MBUS_VSYNC_ACTIVE_HIGH|\\r
+ V4L2_MBUS_DATA_ACTIVE_HIGH | SOCAM_DATAWIDTH_8 |SOCAM_MCLK_24MHZ)\r
#define SENSOR_PREVIEW_W 800\r
#define SENSOR_PREVIEW_H 600\r
#define SENSOR_PREVIEW_FPS 15000 // 15fps \r
static struct rk_sensor_datafmt sensor_colour_fmts[] = {\r
{V4L2_MBUS_FMT_YUYV8_2X8, V4L2_COLORSPACE_JPEG} \r
};\r
-static struct soc_camera_ops sensor_ops;\r
+/*static struct soc_camera_ops sensor_ops;*/\r
\r
\r
/*\r
V4L2_IDENT_OV2640 = 259,
V4L2_IDENT_OV9740 = 260,
V4L2_IDENT_OV5642 = 261,
- V4L2_IDENT_OV2659 = 258,//YZM
+/***********yzm**********/
+ V4L2_IDENT_OV2655 = 262, /* ddl@rock-chips.com : ov2655 support */
+ V4L2_IDENT_OV2659 = 263,
+ V4L2_IDENT_OV3640 = 264,
+ V4L2_IDENT_OV5640 = 265,
+ V4L2_IDENT_OV7675 = 266,
+ V4L2_IDENT_OV7690 = 267,
+ V4L2_IDENT_OV3660 = 268,
+/***********yzm********end*/
/* module saa7146: reserved range 300-309 */
V4L2_IDENT_SAA7146 = 300,
-
+/***********yzm*************/
+ /* Samsung sensors: reserved range 310-319 */
+ V4L2_IDENT_S5K66A = 310, /* ddl@rock-chips.com : s5k66a support */
+ V4L2_IDENT_S5K5CA = 311, /* ddl@rock-chips.com : s5k5ca support */
+
+ V4L2_IDENT_MTK9335ISP = 320, /* ddl@rock-chips.com : MTK9335ISP support */
+ V4L2_IDENT_ICATCH7002_MI1040 = 321,
+ V4L2_IDENT_ICATCH7002_OV5693 =322,
+ V4L2_IDENT_ICATCH7002_OV8825 = 323, //zyt
+ V4L2_IDENT_ICATCH7002_OV2720 = 324, //zyt
+/************yzm************end*/
/* Conexant MPEG encoder/decoders: reserved range 400-420 */
V4L2_IDENT_CX23418_843 = 403, /* Integrated A/V Decoder on the '418 */
V4L2_IDENT_CX23415 = 415,
/* module sn9c20x: just ident 10000 */
V4L2_IDENT_SN9C20X = 10000,
+ /* Siliconfile sensors: reserved range 10100 - 10199 */
+ V4L2_IDENT_NOON010PC30 = 10100,/*yzm*/
/* module cx231xx and cx25840 */
V4L2_IDENT_CX2310X_AV = 23099, /* Integrated A/V decoder; not in '100 */
V4L2_IDENT_CX23100 = 23100,
V4L2_IDENT_MT9M001C12STM = 45005,
V4L2_IDENT_MT9M111 = 45007,
V4L2_IDENT_MT9M112 = 45008,
+ V4L2_IDENT_MT9D112 = 45009, /* ddl@rock-chips.com : MT9D112 support */
V4L2_IDENT_MT9V022IX7ATC = 45010, /* No way to detect "normal" I77ATx */
V4L2_IDENT_MT9V022IX7ATM = 45015, /* and "lead free" IA7ATx chips */
V4L2_IDENT_MT9T031 = 45020,
V4L2_IDENT_MT9V111 = 45031,
V4L2_IDENT_MT9V112 = 45032,
+ V4L2_IDENT_MT9P111 = 45033, /* ddl@rock-chips.com : MT9P111 support */
+ V4L2_IDENT_MT9D113 = 45034, /* ddl@rock-chips.com : MT9D113 support */
+
/* HV7131R CMOS sensor: just ident 46000 */
V4L2_IDENT_HV7131R = 46000,
/* module upd64083: just ident 64083 */
V4L2_IDENT_UPD64083 = 64083,
+/*************yzm************/
+ V4L2_IDENT_NT99250 = 64100, /* ddl@rock-chips.com : nt99250 support */
+ V4L2_IDENT_SID130B = 64101, /* ddl@rock-chips.com : sid130B support */
+
+ V4L2_IDENT_GT2005 = 64110, /* ddl@rock-chips.com : GT2005 support */
+ V4L2_IDENT_GC0307 = 64111, /* ddl@rock-chips.com : GC0308 support */
+ V4L2_IDENT_GC0308 = 64112, /* ddl@rock-chips.com : GC0308 support */
+ V4L2_IDENT_GC0309 = 64113, /* ddl@rock-chips.com : GC0309 support */
+ V4L2_IDENT_GC2015 = 64114, /* ddl@rock-chips.com : gc2015 support */
+ V4L2_IDENT_GC0329 = 64115, /* ddl@rock-chips.com : GC0329 support */
+ V4L2_IDENT_GC2035= 64116, /* ddl@rock-chips.com : GC0329 support */
+ V4L2_IDENT_GC0328 = 64117,
+
+ V4L2_IDENT_SP0838 = 64120, /* ddl@rock-chips.com : SP0838 support */
+ V4L2_IDENT_SP2518 = 64121, /* ddl@rock-chips.com : SP2518 support */
+ V4L2_IDENT_SP0718 = 64122, /* ddl@rock-chips.com : SP0718 support */
+
+ V4L2_IDENT_HI253 = 64130, /* ddl@rock-chips.com : hi253 support */
+ V4L2_IDENT_HI704 = 64131, /* ddl@rock-chips.com : hi704 support */
+
+ V4L2_IDENT_SIV120B = 64140, /* ddl@rock-chips.com : siv120b support */
+ V4L2_IDENT_SIV121D= 64141, /* ddl@rock-chips.com : sid130B support */
+
+
+ V4L2_IDENT_HM2057 = 64150,
+ V4L2_IDENT_HM5065 = 64151,
+
+ V4L2_IDENT_NT99160 = 64161, /* oyyf@rock-chips.com : nt99160 support */
+ V4L2_IDENT_NT99340 = 64162, /* oyyf@rock-chips.com : nt99340 support */
+ V4L2_IDENT_NT99252 = 64163, /* oyyf@rock-chips.com : nt99252 support */
+ V4L2_IDENT_NT99240 = 64164, /* oyyf@rock-chips.com : nt99252 support */
+/***********yzm***********end*/
+
/* Don't just add new IDs at the end: KEEP THIS LIST ORDERED BY ID! */
};