2012-07-26 17:13
1444人阅读
收藏
举报
cam
struct
flash
function
io
null
1。首先在初始化进程的加载:
- static?struct?platform_device?*devices[]?__initdata?=?{??
- #ifdef?CONFIG_VIDEO_RK29 ??
- ????&rk29_device_camera,?????? ??
- ????#if?(CONFIG_SENSOR_IIC_ADDR_0?!=?0x00) ??
- ????&rk29_soc_camera_pdrv_0,??
- ????#endif ??
- ????#if?(CONFIG_SENSOR_IIC_ADDR_1?!=?0x00) ??
- ????&rk29_soc_camera_pdrv_1,??
- ????#endif ??
- ????#if?(PMEM_CAM_SIZE?>?0) ??
- ????&android_pmem_cam_device,??
- ????#endif ??
- #endif??
- }??
1.1最大支持6个摄像头,其中前置3个,后置3个,后置分别是。00,01,02.前置为1,11,12如下所示:
2,初始化操作:
- static?int?rk29_sensor_io_init(void); ??
- static?int?rk29_sensor_io_deinit(int?sensor); ??
- static?int?rk29_sensor_ioctrl(struct?device?*dev,enum?rk29camera_ioctrl_cmd?cmd,int?on); ??
- ??
- static?struct?rk29camera_platform_data?rk29_camera_platform_data?=?{ ??
- ????.io_init?=?rk29_sensor_io_init,??
- ????.io_deinit?=?rk29_sensor_io_deinit,??
- ????.sensor_ioctrl?=?rk29_sensor_ioctrl,??
- ????.gpio_res?=?{ ??
- ????????{ ??
- ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_0,??
- ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_0,??
- ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_0,??
- ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_0,??
- ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_0|CONFIG_SENSOR_RESETACTIVE_LEVEL_0|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0|CONFIG_SENSOR_FLASHACTIVE_LEVEL_0),??
- ????????????.gpio_init?=?0,???????????? ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_0,???????? ??
- ????????},?{ ??
- ????????#ifdef?CONFIG_SENSOR_01 ??
- ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_01,??
- ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_01,??
- ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_01,??
- ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_01,??
- ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_01|CONFIG_SENSOR_RESETACTIVE_LEVEL_01|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_01|CONFIG_SENSOR_FLASHACTIVE_LEVEL_01),??
- ????????????.gpio_init?=?0,???????????? ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_01,??
- ????????#else ??
- ????????????.gpio_reset?=?INVALID_GPIO,??
- ????????????.gpio_power?=?INVALID_GPIO,??
- ????????????.gpio_powerdown?=?INVALID_GPIO,??
- ????????????.gpio_flash?=?INVALID_GPIO,??
- ????????????.gpio_flag?=?0,???????????? ??
- ????????????.dev_name?=?NULL,??
- ????????#endif ??
- ????????},?{ ??
- ????????#ifdef?CONFIG_SENSOR_02 ??
- ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_02,??
- ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_02,??
- ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_02,??
- ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_02,??
- ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_02|CONFIG_SENSOR_RESETACTIVE_LEVEL_02|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_02|CONFIG_SENSOR_FLASHACTIVE_LEVEL_02),???????????? ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_02,? ??
- ????????#else ??
- ????????????.gpio_reset?=?INVALID_GPIO,?{ ??
- ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_1,??
- ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_1,??
- ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_1,??
- ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_1,??
- ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_1|CONFIG_SENSOR_RESETACTIVE_LEVEL_1|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1|CONFIG_SENSOR_FLASHACTIVE_LEVEL_1),??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_1,??
- ????????},{ ??
- ????????#ifdef?CONFIG_SENSOR_11 ??
- ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_11,??
- ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_11,??
- ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_11,??
- ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_11,??
- ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_11|CONFIG_SENSOR_RESETACTIVE_LEVEL_11|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_11|CONFIG_SENSOR_FLASHACTIVE_LEVEL_11),??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_11,??
- ????????#endif???????? ??
- ????????},?{ ??
- ????????#ifdef?CONFIG_SENSOR_12 ??
- ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_12,??
- ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_12,??
- ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_12,??
- ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_12,??
- ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_12|CONFIG_SENSOR_RESETACTIVE_LEVEL_12|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_12|CONFIG_SENSOR_FLASHACTIVE_LEVEL_12),??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_12,??
- ????????#endif ??
- ????????} ??
- ????},??
- ????#ifdef?CONFIG_VIDEO_RK29_WORK_IPP ??
- ????.meminfo?=?{ ??
- ????????.name??=?"camera_ipp_mem",??
- ????????.start?=?MEM_CAMIPP_BASE,??
- ????????.size???=?MEM_CAMIPP_SIZE,??
- ????},??
- ????#endif ??
- ????.info?=?{ ??
- ????????{ ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_0,??
- ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_0,?? ??
- ????????#ifdef?CONFIG_SENSOR_01 ??
- ????????},{ ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_01,??
- ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_01,? ??
- ????????#else ??
- ????????},{ ??
- ????????????.dev_name?=?NULL,??
- ????????????.orientation?=?0x00,? ??
- ????????#endif ??
- ????????#ifdef?CONFIG_SENSOR_02 ??
- ????????},{ ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_02,??
- ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_02,? ??
- ????????#else ??
- ????????},{ ??
- ????????????.dev_name?=?NULL,??
- ????????????.orientation?=?0x00,? ??
- ????????#endif ??
- ????????},{ ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_1,??
- ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_1,??
- ????????#ifdef?CONFIG_SENSOR_11? ??
- ????????},{ ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_11,??
- ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_11,? ??
- ????????#endif ??
- ????????#ifdef?CONFIG_SENSOR_12 ??
- ????????},{ ??
- ????????????.dev_name?=?SENSOR_DEVICE_NAME_12,??
- ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_12,? ??
- ????????#endif ??
- ????????} ??
- ????} ??
- };??
- ??
- static?u64?rockchip_device_camera_dmamask?=?0xffffffffUL; ??
- static?struct?resource?rk29_camera_resource[]?=?{ ??
- ????[0]?=?{ ??
- ????????.start?=?RK29_VIP_PHYS,??
- ????????.end???=?RK29_VIP_PHYS?+?RK29_VIP_SIZE?-?1,??
- ????????.flags?=?IORESOURCE_MEM,??
- ????},??
- ????[1]?=?{ ??
- ????????.start?=?IRQ_VIP,??
- ????????.end???=?IRQ_VIP,??
- ????????.flags?=?IORESOURCE_IRQ,??
- ????} ??
- }; ??
- ??
- ??
- static?struct?platform_device?rk29_device_camera?=?{ ??
- ????.name?????????=?RK29_CAM_DRV_NAME,??
- ????.id???????=?RK29_CAM_PLATFORM_DEV_ID,??????????????? ??
- ????.num_resources????=?ARRAY_SIZE(rk29_camera_resource),??
- ????.resource?????=?rk29_camera_resource,??
- ????.dev????????????=?{ ??
- ????????.dma_mask?=?&rockchip_device_camera_dmamask,??
- ????????.coherent_dma_mask?=?0xffffffffUL,??
- ????????.platform_data??=?&rk29_camera_platform_data,??
- ????} ??
- };??
后置摄像头加载参数:
- static?int?rk29_sensor_powerdown(struct?device?*dev,?int?on) ??
- { ??
- ????return?rk29_sensor_ioctrl(dev,Cam_PowerDown,on); ??
- } ??
- static?int?rk29_sensor_power(struct?device?*dev,?int?on) ??
- { ??
- ????if?(!on)???????????????????????? ??
- ????????rk29_sensor_powerdown(dev,1); ??
- ????rk29_sensor_ioctrl(dev,Cam_Power,on);???? ??
- ????return?0; ??
- } ??
- static?int?rk29_sensor_reset(struct?device?*dev) ??
- { ??
- ????rk29_sensor_ioctrl(dev,Cam_Reset,1); ??
- ????msleep(2); ??
- ????rk29_sensor_ioctrl(dev,0); ??
- ????return?0; ??
- } ??
- ??
- #if?(CONFIG_SENSOR_IIC_ADDR_0?!=?0x00) ??
- static?struct?i2c_board_info?rk29_i2c_cam_info_0[]?=?{ ??
- ????{ ??
- ????????I2C_BOARD_INFO(SENSOR_NAME_0,?CONFIG_SENSOR_IIC_ADDR_0>>1) ??
- ????},??
- }; ??
- ??
- static?struct?soc_camera_link?rk29_iclink_0?=?{ ??
- ????.bus_id?????=?RK29_CAM_PLATFORM_DEV_ID,??
- ????.power??????=?rk29_sensor_power,??
- #if?(CONFIG_SENSOR_RESET_PIN_0?!=?INVALID_GPIO) ??
- ????.reset??????=?rk29_sensor_reset,??
- #endif???? ??
- ????.powerdown??=?rk29_sensor_powerdown,??
- ????.board_info?=?&rk29_i2c_cam_info_0[0],??
- ????.i2c_adapter_id?=?CONFIG_SENSOR_IIC_ADAPTER_ID_0,??
- ????.module_name????=?SENSOR_NAME_0,??
- }; ??
- ??
- ??
- static?struct?platform_device?rk29_soc_camera_pdrv_0?=?{ ??
- ????.name???=?"soc-camera-pdrv",??
- ????.id?=?0,??
- ????.dev????=?{ ??
- ????????.init_name?=?SENSOR_DEVICE_NAME_0,??
- ????????.platform_data?=?&rk29_iclink_0,??
- };??
前置加载:
- #if?(CONFIG_SENSOR_IIC_ADDR_1?!=?0x00) ??
- static?struct?i2c_board_info?rk29_i2c_cam_info_1[]?=?{ ??
- ????{ ??
- ????????I2C_BOARD_INFO(SENSOR_NAME_1,?CONFIG_SENSOR_IIC_ADDR_1>>1) ??
- ????},??
- }; ??
- ??
- static?struct?soc_camera_link?rk29_iclink_1?=?{ ??
- ????.bus_id?????=?RK29_CAM_PLATFORM_DEV_ID,??
- ????.power??????=?rk29_sensor_power,??
- #if?(CONFIG_SENSOR_RESET_PIN_1?!=?INVALID_GPIO) ??
- ????.reset??????=?rk29_sensor_reset,??
- #endif?????? ??
- ????.powerdown??=?rk29_sensor_powerdown,??
- ????.board_info?=?&rk29_i2c_cam_info_1[0],??
- ????.i2c_adapter_id?=?CONFIG_SENSOR_IIC_ADAPTER_ID_1,??
- ????.module_name????=?SENSOR_NAME_1,??
- }; ??
- ??
- ??
- static?struct?platform_device?rk29_soc_camera_pdrv_1?=?{ ??
- ????.name???=?"soc-camera-pdrv",??
- ????.id?=?1,??
- ????.dev????=?{ ??
- ????????.init_name?=?SENSOR_DEVICE_NAME_1,??
- ????????.platform_data?=?&rk29_iclink_1,??
- }; ??
- #endif??
至于真正的引脚初始化操作,可以根据实际需求来操作引脚:
- static?int?rk29_sensor_io_init(void); ??
- static?int?rk29_sensor_io_deinit(int?sensor); ??
- static?int?rk29_sensor_ioctrl(struct?device?*dev,int?on); ??
3.摄像头相关的默认参数配置:
- ??
- static?int?sensor_power_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
- { ??
- ????int?camera_power?=?res->gpio_power; ??
- ????int?camera_ioflag?=?res->gpio_flag; ??
- ????int?camera_io_init?=?res->gpio_init; ??
- ????int?ret?=?0; ??
- ???? ??
- ????if?(camera_power?!=?INVALID_GPIO)??{ ??
- ????????if?(camera_io_init?&?RK29_CAM_POWERACTIVE_MASK)?{ ??
- ????????????if?(on)?{ ??
- ????????????????gpio_set_value(camera_power,?((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
- ????????????????dprintk("%s..%s..PowerPin=%d?..PinLevel?=?%x???n",__FUNCTION__,res->dev_name,?camera_power,?((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
- ????????????????msleep(10); ??
- ????????????}?else?{ ??
- ????????????????gpio_set_value(camera_power,?(((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
- ????????????????dprintk("%s..%s..PowerPin=%d?..PinLevel?=?%x???n",?(((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
- ????????????} ??
- ????????}?else?{ ??
- ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
- ????????????printk("%s..%s..PowerPin=%d?request?failed!n",camera_power); ??
- ????????}???????? ??
- ????}?else?{ ??
- ????????ret?=?RK29_CAM_EIO_INVALID; ??
- ????}? ??
- ??
- ????return?ret; ??
- } ??
- ??
- static?int?sensor_reset_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
- { ??
- ????int?camera_reset?=?res->gpio_reset; ??
- ????int?camera_ioflag?=?res->gpio_flag; ??
- ????int?camera_io_init?=?res->gpio_init;?? ??
- ????int?ret?=?0; ??
- ???? ??
- ????if?(camera_reset?!=?INVALID_GPIO)?{ ??
- ????????if?(camera_io_init?&?RK29_CAM_RESETACTIVE_MASK)?{ ??
- ????????????if?(on)?{ ??
- ????????????????gpio_set_value(camera_reset,?((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
- ????????????????dprintk("%s..%s..ResetPin=%d?..PinLevel?=?%x?n",camera_reset,?((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
- ????????????}?else?{ ??
- ????????????????gpio_set_value(camera_reset,(((~camera_ioflag)&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
- ????????????????dprintk("%s..%s..ResetPin=?%d..PinLevel?=?%x???n",?camera_reset,?(((~camera_ioflag)&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
- ????????????} ??
- ????????}?else?{ ??
- ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
- ????????????printk("%s..%s..ResetPin=%d?request?failed!n",camera_reset); ??
- ????????} ??
- ????}?else?{ ??
- ????????ret?=?RK29_CAM_EIO_INVALID; ??
- ????} ??
- ??
- ????return?ret; ??
- } ??
- ??
- static?int?sensor_powerdown_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
- { ??
- ????int?camera_powerdown?=?res->gpio_powerdown; ??
- ????int?camera_ioflag?=?res->gpio_flag; ??
- ????int?camera_io_init?=?res->gpio_init;?? ??
- ????int?ret?=?0;???? ??
- ??
- ????if?(camera_powerdown?!=?INVALID_GPIO)?{ ??
- ????????if?(camera_io_init?&?RK29_CAM_POWERDNACTIVE_MASK)?{ ??
- ????????????if?(on)?{ ??
- ????????????????gpio_set_value(camera_powerdown,?((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
- ????????????????dprintk("%s..%s..PowerDownPin=%d?..PinLevel?=?%x?n",camera_powerdown,?((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
- ????????????}?else?{ ??
- ????????????????gpio_set_value(camera_powerdown,(((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
- ????????????????dprintk("%s..%s..PowerDownPin=?%d..PinLevel?=?%x???n",?camera_powerdown,?(((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
- ????????????} ??
- ????????}?else?{ ??
- ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
- ????????????dprintk("%s..%s..PowerDownPin=%d?request?failed!n",camera_powerdown); ??
- ????????} ??
- ????}?else?{ ??
- ????????ret?=?RK29_CAM_EIO_INVALID; ??
- ????} ??
- ????return?ret; ??
- } ??
- ??
- ??
- static?int?sensor_flash_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
- { ??
- ????int?camera_flash?=?res->gpio_flash; ??
- ????int?camera_ioflag?=?res->gpio_flag; ??
- ????int?camera_io_init?=?res->gpio_init;?? ??
- ????int?ret?=?0;???? ??
- ??
- ????if?(camera_flash?!=?INVALID_GPIO)?{ ??
- ????????if?(camera_io_init?&?RK29_CAM_FLASHACTIVE_MASK)?{ ??
- ????????????switch?(on) ??
- ????????????{ ??
- ????????????????case?Flash_Off: ??
- ????????????????{ ??
- ????????????????????gpio_set_value(camera_flash,(((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
- ????????????????????dprintk("n%s..%s..FlashPin=?%d..PinLevel?=?%x???n",?camera_flash,?(((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));? ??
- ????????????????????break; ??
- ????????????????} ??
- ??
- ????????????????case?Flash_On: ??
- ????????????????{ ??
- ????????????????????gpio_set_value(camera_flash,?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
- ????????????????????dprintk("%s..%s..FlashPin=%d?..PinLevel?=?%x?n",camera_flash,?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
- ????????????????????break; ??
- ????????????????} ??
- ??
- ????????????????case?Flash_Torch: ??
- ????????????????{ ??
- ????????????????????gpio_set_value(camera_flash,?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
- ????????????????????dprintk("%s..%s..FlashPin=%d?..PinLevel?=?%x?n",?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
- ????????????????????break; ??
- ????????????????} ??
- ??
- ????????????????default: ??
- ????????????????{ ??
- ????????????????????printk("%s..%s..Flash?command(%d)?is?invalidate?n",on); ??
- ????????????????????break; ??
- ????????????????} ??
- ????????????} ??
- ????????}?else?{ ??
- ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
- ????????????printk("%s..%s..FlashPin=%d?request?failed!n",camera_flash); ??
- ????????} ??
- ????}?else?{ ??
- ????????ret?=?RK29_CAM_EIO_INVALID; ??
- ????} ??
- ????return?ret; ??
- } ??
- ??
- static?void?rk29_sensor_fps_get(int?idx,?unsigned?int?*val,?int?w,?int?h) ??
- { ??
- ????switch?(idx) ??
- ????{ ??
- ????????case?0: ??
- ????????{ ??
- ????????????if?((w==176)?&&?(h==144))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_0; ??
- ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_0 ??
- ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_0; ??
- ????????????#endif ??
- ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_0; ??
- ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_0; ??
- ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_0; ??
- ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_0; ??
- ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_0; ??
- ????????????} ??
- ????????????break; ??
- ????????} ??
- ????????#ifdef?CONFIG_SENSOR_01 ??
- ????????case?1: ??
- ????????{ ??
- ????????????if?((w==176)?&&?(h==144))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_01; ??
- ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_01 ??
- ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_01; ??
- ????????????#endif ??
- ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_01; ??
- ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_01; ??
- ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_01; ??
- ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_01; ??
- ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_01; ??
- ????????????} ??
- ????????????break; ??
- ????????} ??
- ????????#endif ??
- ????????#ifdef?CONFIG_SENSOR_02 ??
- ????????case?2: ??
- ????????{ ??
- ????????????if?((w==176)?&&?(h==144))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_02; ??
- ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_02 ??
- ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_02; ??
- ????????????#endif ??
- ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_02; ??
- ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_02; ??
- ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_02; ??
- ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_02; ??
- ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_02; ??
- ????????????} ??
- ????????????break; ??
- ????????} ??
- ????????#endif ??
- ???????? ??
- ????????case?3: ??
- ????????{ ??
- ????????????if?((w==176)?&&?(h==144))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_1; ??
- ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_1 ??
- ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_1; ??
- ????????????#endif ??
- ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_1; ??
- ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_1; ??
- ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_1; ??
- ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_1; ??
- ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_1; ??
- ????????????} ??
- ????????????break; ??
- ????????} ??
- ????????#ifdef?CONFIG_SENSOR_11 ??
- ????????case?4: ??
- ????????{ ??
- ????????????if?((w==176)?&&?(h==144))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_11; ??
- ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_11 ??
- ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_11; ??
- ????????????#endif ??
- ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_11; ??
- ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_11; ??
- ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_11; ??
- ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_11; ??
- ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_11; ??
- ????????????} ??
- ????????????break; ??
- ????????} ??
- ????????#endif ??
- ????????#ifdef?CONFIG_SENSOR_12 ??
- ????????case?5: ??
- ????????{ ??
- ????????????if?((w==176)?&&?(h==144))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_12; ??
- ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_12 ??
- ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_12; ??
- ????????????#endif ??
- ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_12; ??
- ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_12; ??
- ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_12; ??
- ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_12; ??
- ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
- ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_12; ??
- ????????????} ??
- ????????????break; ??
- ????????} ??
- ????????#endif ??
- ????????default: ??
- ????????????printk(KERN_ERR"rk29_cam_io:?sensor-%d?have?not?been?define?in?board?file!",idx); ??
- ????} ??
- }??
这里面包括图片尺寸大小,分辨率等设置。
4.具体摄像头的寄存器配置:
首先:make menuconfig
? ? ? ? ? ?Device Drivers------>
Multimedia support ----->
Video capture adapters ----->
选择相应的Camera驱动,比如GC0309
然后根据具体的需求到gc0309.c里面去按照手册配置寄存器。
主要是修改1.1里面前置和后置摄像头的引脚,地址,名字,以及一些参数。
及2和3里面初始化的配置
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|