加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

RK29 Camare移植--内核部分

发布时间:2020-12-15 07:02:36 所属栏目:百科 来源:网络整理
导读:2012-07-26 17:13 1444人阅读 评论(2) 收藏 举报 cam struct flash function io null 1。首先在初始化进程的加载: [cpp] view plain copy static ? struct ?platform_device?*devices[]?__initdata?=?{?? #ifdef?CONFIG_VIDEO_RK29 ?? ????rk29_device_came
1444人阅读 评论(2) 收藏 举报
cam struct flash function io null

1。首先在初始化进程的加载:

[cpp] view plain copy
  1. static?struct?platform_device?*devices[]?__initdata?=?{??
  2. #ifdef?CONFIG_VIDEO_RK29 ??
  3. ????&rk29_device_camera,??????/*?ddl@rock-chips.com?:?camera?support??*/ ??
  4. ????#if?(CONFIG_SENSOR_IIC_ADDR_0?!=?0x00) ??
  5. ????&rk29_soc_camera_pdrv_0,??
  6. ????#endif ??
  7. ????#if?(CONFIG_SENSOR_IIC_ADDR_1?!=?0x00) ??
  8. ????&rk29_soc_camera_pdrv_1,??
  9. ????#endif ??
  10. ????#if?(PMEM_CAM_SIZE?>?0) ??
  11. ????&android_pmem_cam_device,??
  12. ????#endif ??
  13. #endif??
  14. }??

1.1最大支持6个摄像头,其中前置3个,后置3个,后置分别是。00,01,02.前置为1,11,12如下所示:
[cpp] view plain copy
  1. #ifdef?CONFIG_VIDEO_RK29 ??
  2. /*----------------?Camera?Sensor?Macro?Define?Begin??------------------------*/ ??
  3. /*----------------?Camera?Sensor?Configuration?Macro?Begin?------------------------*/ ??
  4. #define?CONFIG_SENSOR_0?RK29_CAM_SENSOR_GC2015??????????????????????/*?back?camera?sensor?*/?//后置0号摄像头 ??
  5. #define?CONFIG_SENSOR_IIC_ADDR_0????????0x60 ??
  6. #define?CONFIG_SENSOR_IIC_ADAPTER_ID_0????1 ??
  7. #define?CONFIG_SENSOR_ORIENTATION_0???????90 ??
  8. #define?CONFIG_SENSOR_POWER_PIN_0?????????RK29_PIN5_PC3 ??
  9. #define?CONFIG_SENSOR_RESET_PIN_0?????????RK29_PIN6_PA5 ??
  10. #define?CONFIG_SENSOR_POWERDN_PIN_0???????RK29_PIN0_PB2 ??
  11. #define?CONFIG_SENSOR_FALSH_PIN_0?????????INVALID_GPIO ??
  12. #define?CONFIG_SENSOR_POWERACTIVE_LEVEL_0?RK29_CAM_POWERACTIVE_H ??
  13. #define?CONFIG_SENSOR_RESETACTIVE_LEVEL_0?RK29_CAM_RESETACTIVE_L ??
  14. #define?CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0?RK29_CAM_POWERDNACTIVE_H ??
  15. #define?CONFIG_SENSOR_FLASHACTIVE_LEVEL_0?RK29_CAM_FLASHACTIVE_L ??
  16. ??
  17. #define?CONFIG_SENSOR_QCIF_FPS_FIXED_0??????15000 ??
  18. #define?CONFIG_SENSOR_240X160_FPS_FIXED_0???15000 ??
  19. #define?CONFIG_SENSOR_QVGA_FPS_FIXED_0??????15000 ??
  20. #define?CONFIG_SENSOR_CIF_FPS_FIXED_0???????15000 ??
  21. #define?CONFIG_SENSOR_VGA_FPS_FIXED_0???????15000 ??
  22. #define?CONFIG_SENSOR_480P_FPS_FIXED_0??????15000 ??
  23. #define?CONFIG_SENSOR_SVGA_FPS_FIXED_0??????15000 ??
  24. #define?CONFIG_SENSOR_720P_FPS_FIXED_0??????30000 ??
  25. ??
  26. #define?CONFIG_SENSOR_01??RK29_CAM_SENSOR_OV5642???????????????????/*?back?camera?sensor?1?*/?//后置1号摄像头 ??
  27. #define?CONFIG_SENSOR_IIC_ADDR_01???????0x00 ??
  28. #define?CONFIG_SENSOR_IIC_ADAPTER_ID_01????1 ??
  29. #define?CONFIG_SENSOR_ORIENTATION_01???????90 ??
  30. #define?CONFIG_SENSOR_POWER_PIN_01?????????INVALID_GPIO ??
  31. #define?CONFIG_SENSOR_RESET_PIN_01?????????INVALID_GPIO ??
  32. #define?CONFIG_SENSOR_POWERDN_PIN_01???????RK29_PIN6_PB7 ??
  33. #define?CONFIG_SENSOR_FALSH_PIN_01?????????INVALID_GPIO ??
  34. #define?CONFIG_SENSOR_POWERACTIVE_LEVEL_01?RK29_CAM_POWERACTIVE_L ??
  35. #define?CONFIG_SENSOR_RESETACTIVE_LEVEL_01?RK29_CAM_RESETACTIVE_L ??
  36. #define?CONFIG_SENSOR_POWERDNACTIVE_LEVEL_01?RK29_CAM_POWERDNACTIVE_H ??
  37. #define?CONFIG_SENSOR_FLASHACTIVE_LEVEL_01?RK29_CAM_FLASHACTIVE_L ??
  38. ??
  39. #define?CONFIG_SENSOR_QCIF_FPS_FIXED_01??????15000 ??
  40. #define?CONFIG_SENSOR_240X160_FPS_FIXED_01???15000 ??
  41. #define?CONFIG_SENSOR_QVGA_FPS_FIXED_01??????15000 ??
  42. #define?CONFIG_SENSOR_CIF_FPS_FIXED_01???????15000 ??
  43. #define?CONFIG_SENSOR_VGA_FPS_FIXED_01???????15000 ??
  44. #define?CONFIG_SENSOR_480P_FPS_FIXED_01??????15000 ??
  45. #define?CONFIG_SENSOR_SVGA_FPS_FIXED_01??????15000 ??
  46. #define?CONFIG_SENSOR_720P_FPS_FIXED_01?????30000 ??
  47. ??
  48. #define?CONFIG_SENSOR_02?RK29_CAM_SENSOR_OV5640??????????????????????/*?back?camera?sensor?2?*/??//后置2号摄像头 ??
  49. #define?CONFIG_SENSOR_IIC_ADDR_02???????0x00 ??
  50. #define?CONFIG_SENSOR_IIC_ADAPTER_ID_02????1 ??
  51. #define?CONFIG_SENSOR_ORIENTATION_02???????90 ??
  52. #define?CONFIG_SENSOR_POWER_PIN_02?????????INVALID_GPIO ??
  53. #define?CONFIG_SENSOR_RESET_PIN_02?????????INVALID_GPIO ??
  54. #define?CONFIG_SENSOR_POWERDN_PIN_02???????RK29_PIN6_PB7 ??
  55. #define?CONFIG_SENSOR_FALSH_PIN_02?????????INVALID_GPIO ??
  56. #define?CONFIG_SENSOR_POWERACTIVE_LEVEL_02?RK29_CAM_POWERACTIVE_L ??
  57. #define?CONFIG_SENSOR_RESETACTIVE_LEVEL_02?RK29_CAM_RESETACTIVE_L ??
  58. #define?CONFIG_SENSOR_POWERDNACTIVE_LEVEL_02?RK29_CAM_POWERDNACTIVE_H ??
  59. #define?CONFIG_SENSOR_FLASHACTIVE_LEVEL_02?RK29_CAM_FLASHACTIVE_L ??
  60. ??
  61. #define?CONFIG_SENSOR_QCIF_FPS_FIXED_02??????15000 ??
  62. #define?CONFIG_SENSOR_240X160_FPS_FIXED_02???15000 ??
  63. #define?CONFIG_SENSOR_QVGA_FPS_FIXED_02??????15000 ??
  64. #define?CONFIG_SENSOR_CIF_FPS_FIXED_02???????15000 ??
  65. #define?CONFIG_SENSOR_VGA_FPS_FIXED_02???????15000 ??
  66. #define?CONFIG_SENSOR_480P_FPS_FIXED_02??????15000 ??
  67. #define?CONFIG_SENSOR_SVGA_FPS_FIXED_02??????15000 ??
  68. #define?CONFIG_SENSOR_720P_FPS_FIXED_02??????30000 ??
  69. ??
  70. ??
  71. #define?CONFIG_SENSOR_1?RK29_CAM_SENSOR_GC0309??????????????????????/*?front?camera?sensor?*/??//前置0号摄像头 ??
  72. #define?CONFIG_SENSOR_IIC_ADDR_1????????????0x42 ??
  73. #define?CONFIG_SENSOR_IIC_ADAPTER_ID_1????1 ??
  74. #define?CONFIG_SENSOR_ORIENTATION_1???????270 ??
  75. #define?CONFIG_SENSOR_POWER_PIN_1?????????RK29_PIN5_PC3?//IOMUX ??
  76. #define?CONFIG_SENSOR_RESET_PIN_1?????????RK29_PIN6_PA5?????//IOMUX ??
  77. #define?CONFIG_SENSOR_POWERDN_PIN_1???????RK29_PIN0_PB4?????//IOMUX ??
  78. #define?CONFIG_SENSOR_FALSH_PIN_1?????????INVALID_GPIO ??
  79. #define?CONFIG_SENSOR_POWERACTIVE_LEVEL_1?RK29_CAM_POWERACTIVE_H ??
  80. #define?CONFIG_SENSOR_RESETACTIVE_LEVEL_1?RK29_CAM_RESETACTIVE_L ??
  81. #define?CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1?RK29_CAM_POWERDNACTIVE_H ??
  82. #define?CONFIG_SENSOR_FLASHACTIVE_LEVEL_1?RK29_CAM_FLASHACTIVE_L ??
  83. ??
  84. #define?CONFIG_SENSOR_QCIF_FPS_FIXED_1??????15000 ??
  85. #define?CONFIG_SENSOR_240X160_FPS_FIXED_1???15000 ??
  86. #define?CONFIG_SENSOR_QVGA_FPS_FIXED_1??????15000 ??
  87. #define?CONFIG_SENSOR_CIF_FPS_FIXED_1???????15000 ??
  88. #define?CONFIG_SENSOR_VGA_FPS_FIXED_1???????15000 ??
  89. #define?CONFIG_SENSOR_480P_FPS_FIXED_1??????15000 ??
  90. #define?CONFIG_SENSOR_SVGA_FPS_FIXED_1??????15000 ??
  91. #define?CONFIG_SENSOR_720P_FPS_FIXED_1??????30000 ??
  92. ??
  93. #define?CONFIG_SENSOR_11?RK29_CAM_SENSOR_OV2659??????????????????????/*?front?camera?sensor?1?*/??//前置1号摄像头 ??
  94. #define?CONFIG_SENSOR_IIC_ADDR_11???????0x00 ??
  95. #define?CONFIG_SENSOR_IIC_ADAPTER_ID_11????1 ??
  96. #define?CONFIG_SENSOR_ORIENTATION_11???????270 ??
  97. #define?CONFIG_SENSOR_POWER_PIN_11?????????INVALID_GPIO ??
  98. #define?CONFIG_SENSOR_RESET_PIN_11?????????INVALID_GPIO ??
  99. #define?CONFIG_SENSOR_POWERDN_PIN_11???????RK29_PIN5_PD7 ??
  100. #define?CONFIG_SENSOR_FALSH_PIN_11?????????INVALID_GPIO ??
  101. #define?CONFIG_SENSOR_POWERACTIVE_LEVEL_11?RK29_CAM_POWERACTIVE_L ??
  102. #define?CONFIG_SENSOR_RESETACTIVE_LEVEL_11?RK29_CAM_RESETACTIVE_L ??
  103. #define?CONFIG_SENSOR_POWERDNACTIVE_LEVEL_11?RK29_CAM_POWERDNACTIVE_H ??
  104. #define?CONFIG_SENSOR_FLASHACTIVE_LEVEL_11?RK29_CAM_FLASHACTIVE_L ??
  105. ??
  106. #define?CONFIG_SENSOR_QCIF_FPS_FIXED_11??????15000 ??
  107. #define?CONFIG_SENSOR_240X160_FPS_FIXED_11???15000 ??
  108. #define?CONFIG_SENSOR_QVGA_FPS_FIXED_11??????15000 ??
  109. #define?CONFIG_SENSOR_CIF_FPS_FIXED_11???????15000 ??
  110. #define?CONFIG_SENSOR_VGA_FPS_FIXED_11???????15000 ??
  111. #define?CONFIG_SENSOR_480P_FPS_FIXED_11??????15000 ??
  112. #define?CONFIG_SENSOR_SVGA_FPS_FIXED_11??????15000 ??
  113. #define?CONFIG_SENSOR_720P_FPS_FIXED_11??????30000 ??
  114. ??
  115. #define?CONFIG_SENSOR_12?RK29_CAM_SENSOR_OV2655??????????????????????/*?front?camera?sensor?2?*/??//前置2号摄像头 ??
  116. #define?CONFIG_SENSOR_IIC_ADDR_12???????0x00 ??
  117. #define?CONFIG_SENSOR_IIC_ADAPTER_ID_12????1 ??
  118. #define?CONFIG_SENSOR_ORIENTATION_12???????270 ??
  119. #define?CONFIG_SENSOR_POWER_PIN_12?????????INVALID_GPIO ??
  120. #define?CONFIG_SENSOR_RESET_PIN_12?????????INVALID_GPIO ??
  121. #define?CONFIG_SENSOR_POWERDN_PIN_12???????RK29_PIN5_PD7 ??
  122. #define?CONFIG_SENSOR_FALSH_PIN_12?????????INVALID_GPIO ??
  123. #define?CONFIG_SENSOR_POWERACTIVE_LEVEL_12?RK29_CAM_POWERACTIVE_L ??
  124. #define?CONFIG_SENSOR_RESETACTIVE_LEVEL_12?RK29_CAM_RESETACTIVE_L ??
  125. #define?CONFIG_SENSOR_POWERDNACTIVE_LEVEL_12?RK29_CAM_POWERDNACTIVE_H ??
  126. #define?CONFIG_SENSOR_FLASHACTIVE_LEVEL_12?RK29_CAM_FLASHACTIVE_L ??
  127. ??
  128. #define?CONFIG_SENSOR_QCIF_FPS_FIXED_12??????15000 ??
  129. #define?CONFIG_SENSOR_240X160_FPS_FIXED_12???15000 ??
  130. #define?CONFIG_SENSOR_QVGA_FPS_FIXED_12??????15000 ??
  131. #define?CONFIG_SENSOR_CIF_FPS_FIXED_12???????15000 ??
  132. #define?CONFIG_SENSOR_VGA_FPS_FIXED_12???????15000 ??
  133. #define?CONFIG_SENSOR_480P_FPS_FIXED_12??????15000 ??
  134. #define?CONFIG_SENSOR_SVGA_FPS_FIXED_12??????15000 ??
  135. #define?CONFIG_SENSOR_720P_FPS_FIXED_12??????30000 ??
  136. ??
  137. #endif???

2,初始化操作:
[cpp] view plain copy
  1. static?int?rk29_sensor_io_init(void); ??
  2. static?int?rk29_sensor_io_deinit(int?sensor); ??
  3. static?int?rk29_sensor_ioctrl(struct?device?*dev,enum?rk29camera_ioctrl_cmd?cmd,int?on); ??
  4. ??
  5. static?struct?rk29camera_platform_data?rk29_camera_platform_data?=?{ ??
  6. ????.io_init?=?rk29_sensor_io_init,??
  7. ????.io_deinit?=?rk29_sensor_io_deinit,??
  8. ????.sensor_ioctrl?=?rk29_sensor_ioctrl,??
  9. ????.gpio_res?=?{ ??
  10. ????????{ ??
  11. ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_0,??
  12. ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_0,??
  13. ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_0,??
  14. ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_0,??
  15. ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_0|CONFIG_SENSOR_RESETACTIVE_LEVEL_0|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0|CONFIG_SENSOR_FLASHACTIVE_LEVEL_0),??
  16. ????????????.gpio_init?=?0,???????????? ??
  17. ????????????.dev_name?=?SENSOR_DEVICE_NAME_0,???????? ??
  18. ????????},?{ ??
  19. ????????#ifdef?CONFIG_SENSOR_01 ??
  20. ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_01,??
  21. ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_01,??
  22. ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_01,??
  23. ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_01,??
  24. ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_01|CONFIG_SENSOR_RESETACTIVE_LEVEL_01|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_01|CONFIG_SENSOR_FLASHACTIVE_LEVEL_01),??
  25. ????????????.gpio_init?=?0,???????????? ??
  26. ????????????.dev_name?=?SENSOR_DEVICE_NAME_01,??
  27. ????????#else ??
  28. ????????????.gpio_reset?=?INVALID_GPIO,??
  29. ????????????.gpio_power?=?INVALID_GPIO,??
  30. ????????????.gpio_powerdown?=?INVALID_GPIO,??
  31. ????????????.gpio_flash?=?INVALID_GPIO,??
  32. ????????????.gpio_flag?=?0,???????????? ??
  33. ????????????.dev_name?=?NULL,??
  34. ????????#endif ??
  35. ????????},?{ ??
  36. ????????#ifdef?CONFIG_SENSOR_02 ??
  37. ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_02,??
  38. ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_02,??
  39. ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_02,??
  40. ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_02,??
  41. ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_02|CONFIG_SENSOR_RESETACTIVE_LEVEL_02|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_02|CONFIG_SENSOR_FLASHACTIVE_LEVEL_02),???????????? ??
  42. ????????????.dev_name?=?SENSOR_DEVICE_NAME_02,? ??
  43. ????????#else ??
  44. ????????????.gpio_reset?=?INVALID_GPIO,?{ ??
  45. ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_1,??
  46. ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_1,??
  47. ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_1,??
  48. ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_1,??
  49. ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_1|CONFIG_SENSOR_RESETACTIVE_LEVEL_1|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1|CONFIG_SENSOR_FLASHACTIVE_LEVEL_1),??
  50. ????????????.dev_name?=?SENSOR_DEVICE_NAME_1,??
  51. ????????},{ ??
  52. ????????#ifdef?CONFIG_SENSOR_11 ??
  53. ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_11,??
  54. ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_11,??
  55. ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_11,??
  56. ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_11,??
  57. ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_11|CONFIG_SENSOR_RESETACTIVE_LEVEL_11|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_11|CONFIG_SENSOR_FLASHACTIVE_LEVEL_11),??
  58. ????????????.dev_name?=?SENSOR_DEVICE_NAME_11,??
  59. ????????#endif???????? ??
  60. ????????},?{ ??
  61. ????????#ifdef?CONFIG_SENSOR_12 ??
  62. ????????????.gpio_reset?=?CONFIG_SENSOR_RESET_PIN_12,??
  63. ????????????.gpio_power?=?CONFIG_SENSOR_POWER_PIN_12,??
  64. ????????????.gpio_powerdown?=?CONFIG_SENSOR_POWERDN_PIN_12,??
  65. ????????????.gpio_flash?=?CONFIG_SENSOR_FALSH_PIN_12,??
  66. ????????????.gpio_flag?=?(CONFIG_SENSOR_POWERACTIVE_LEVEL_12|CONFIG_SENSOR_RESETACTIVE_LEVEL_12|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_12|CONFIG_SENSOR_FLASHACTIVE_LEVEL_12),??
  67. ????????????.dev_name?=?SENSOR_DEVICE_NAME_12,??
  68. ????????#endif ??
  69. ????????} ??
  70. ????},??
  71. ????#ifdef?CONFIG_VIDEO_RK29_WORK_IPP ??
  72. ????.meminfo?=?{ ??
  73. ????????.name??=?"camera_ipp_mem",??
  74. ????????.start?=?MEM_CAMIPP_BASE,??
  75. ????????.size???=?MEM_CAMIPP_SIZE,??
  76. ????},??
  77. ????#endif ??
  78. ????.info?=?{ ??
  79. ????????{ ??
  80. ????????????.dev_name?=?SENSOR_DEVICE_NAME_0,??
  81. ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_0,?? ??
  82. ????????#ifdef?CONFIG_SENSOR_01 ??
  83. ????????},{ ??
  84. ????????????.dev_name?=?SENSOR_DEVICE_NAME_01,??
  85. ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_01,? ??
  86. ????????#else ??
  87. ????????},{ ??
  88. ????????????.dev_name?=?NULL,??
  89. ????????????.orientation?=?0x00,? ??
  90. ????????#endif ??
  91. ????????#ifdef?CONFIG_SENSOR_02 ??
  92. ????????},{ ??
  93. ????????????.dev_name?=?SENSOR_DEVICE_NAME_02,??
  94. ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_02,? ??
  95. ????????#else ??
  96. ????????},{ ??
  97. ????????????.dev_name?=?NULL,??
  98. ????????????.orientation?=?0x00,? ??
  99. ????????#endif ??
  100. ????????},{ ??
  101. ????????????.dev_name?=?SENSOR_DEVICE_NAME_1,??
  102. ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_1,??
  103. ????????#ifdef?CONFIG_SENSOR_11? ??
  104. ????????},{ ??
  105. ????????????.dev_name?=?SENSOR_DEVICE_NAME_11,??
  106. ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_11,? ??
  107. ????????#endif ??
  108. ????????#ifdef?CONFIG_SENSOR_12 ??
  109. ????????},{ ??
  110. ????????????.dev_name?=?SENSOR_DEVICE_NAME_12,??
  111. ????????????.orientation?=?CONFIG_SENSOR_ORIENTATION_12,? ??
  112. ????????#endif ??
  113. ????????} ??
  114. ????} ??
  115. };??
  116. ??
  117. static?u64?rockchip_device_camera_dmamask?=?0xffffffffUL; ??
  118. static?struct?resource?rk29_camera_resource[]?=?{ ??
  119. ????[0]?=?{ ??
  120. ????????.start?=?RK29_VIP_PHYS,??
  121. ????????.end???=?RK29_VIP_PHYS?+?RK29_VIP_SIZE?-?1,??
  122. ????????.flags?=?IORESOURCE_MEM,??
  123. ????},??
  124. ????[1]?=?{ ??
  125. ????????.start?=?IRQ_VIP,??
  126. ????????.end???=?IRQ_VIP,??
  127. ????????.flags?=?IORESOURCE_IRQ,??
  128. ????} ??
  129. }; ??
  130. ??
  131. /*platform_device?:?*/ ??
  132. static?struct?platform_device?rk29_device_camera?=?{ ??
  133. ????.name?????????=?RK29_CAM_DRV_NAME,??
  134. ????.id???????=?RK29_CAM_PLATFORM_DEV_ID,???????????????/*?This?is?used?to?put?cameras?on?this?interface?*/ ??
  135. ????.num_resources????=?ARRAY_SIZE(rk29_camera_resource),??
  136. ????.resource?????=?rk29_camera_resource,??
  137. ????.dev????????????=?{ ??
  138. ????????.dma_mask?=?&rockchip_device_camera_dmamask,??
  139. ????????.coherent_dma_mask?=?0xffffffffUL,??
  140. ????????.platform_data??=?&rk29_camera_platform_data,??
  141. ????} ??
  142. };??

后置摄像头加载参数:
[cpp] view plain copy
  1. static?int?rk29_sensor_powerdown(struct?device?*dev,?int?on) ??
  2. { ??
  3. ????return?rk29_sensor_ioctrl(dev,Cam_PowerDown,on); ??
  4. } ??
  5. static?int?rk29_sensor_power(struct?device?*dev,?int?on) ??
  6. { ??
  7. ????if?(!on)????????????????????????/*?ddl@rock-chips.com?:?Ensure?sensor?enter?standby?or?power?off?*/ ??
  8. ????????rk29_sensor_powerdown(dev,1); ??
  9. ????rk29_sensor_ioctrl(dev,Cam_Power,on);???? ??
  10. ????return?0; ??
  11. } ??
  12. static?int?rk29_sensor_reset(struct?device?*dev) ??
  13. { ??
  14. ????rk29_sensor_ioctrl(dev,Cam_Reset,1); ??
  15. ????msleep(2); ??
  16. ????rk29_sensor_ioctrl(dev,0); ??
  17. ????return?0; ??
  18. } ??
  19. ??
  20. #if?(CONFIG_SENSOR_IIC_ADDR_0?!=?0x00) ??
  21. static?struct?i2c_board_info?rk29_i2c_cam_info_0[]?=?{ ??
  22. ????{ ??
  23. ????????I2C_BOARD_INFO(SENSOR_NAME_0,?CONFIG_SENSOR_IIC_ADDR_0>>1) ??
  24. ????},??
  25. }; ??
  26. ??
  27. static?struct?soc_camera_link?rk29_iclink_0?=?{ ??
  28. ????.bus_id?????=?RK29_CAM_PLATFORM_DEV_ID,??
  29. ????.power??????=?rk29_sensor_power,??
  30. #if?(CONFIG_SENSOR_RESET_PIN_0?!=?INVALID_GPIO) ??
  31. ????.reset??????=?rk29_sensor_reset,??
  32. #endif???? ??
  33. ????.powerdown??=?rk29_sensor_powerdown,??
  34. ????.board_info?=?&rk29_i2c_cam_info_0[0],??
  35. ????.i2c_adapter_id?=?CONFIG_SENSOR_IIC_ADAPTER_ID_0,??
  36. ????.module_name????=?SENSOR_NAME_0,??
  37. }; ??
  38. ??
  39. /*platform_device?:?soc-camera?need??*/ ??
  40. static?struct?platform_device?rk29_soc_camera_pdrv_0?=?{ ??
  41. ????.name???=?"soc-camera-pdrv",??
  42. ????.id?=?0,??
  43. ????.dev????=?{ ??
  44. ????????.init_name?=?SENSOR_DEVICE_NAME_0,??
  45. ????????.platform_data?=?&rk29_iclink_0,??
  46. };??

前置加载:
[cpp] view plain copy
  1. #if?(CONFIG_SENSOR_IIC_ADDR_1?!=?0x00) ??
  2. static?struct?i2c_board_info?rk29_i2c_cam_info_1[]?=?{ ??
  3. ????{ ??
  4. ????????I2C_BOARD_INFO(SENSOR_NAME_1,?CONFIG_SENSOR_IIC_ADDR_1>>1) ??
  5. ????},??
  6. }; ??
  7. ??
  8. static?struct?soc_camera_link?rk29_iclink_1?=?{ ??
  9. ????.bus_id?????=?RK29_CAM_PLATFORM_DEV_ID,??
  10. ????.power??????=?rk29_sensor_power,??
  11. #if?(CONFIG_SENSOR_RESET_PIN_1?!=?INVALID_GPIO) ??
  12. ????.reset??????=?rk29_sensor_reset,??
  13. #endif?????? ??
  14. ????.powerdown??=?rk29_sensor_powerdown,??
  15. ????.board_info?=?&rk29_i2c_cam_info_1[0],??
  16. ????.i2c_adapter_id?=?CONFIG_SENSOR_IIC_ADAPTER_ID_1,??
  17. ????.module_name????=?SENSOR_NAME_1,??
  18. }; ??
  19. ??
  20. /*platform_device?:?soc-camera?need??*/ ??
  21. static?struct?platform_device?rk29_soc_camera_pdrv_1?=?{ ??
  22. ????.name???=?"soc-camera-pdrv",??
  23. ????.id?=?1,??
  24. ????.dev????=?{ ??
  25. ????????.init_name?=?SENSOR_DEVICE_NAME_1,??
  26. ????????.platform_data?=?&rk29_iclink_1,??
  27. }; ??
  28. #endif??

至于真正的引脚初始化操作,可以根据实际需求来操作引脚:
[cpp] view plain copy
  1. static?int?rk29_sensor_io_init(void); ??
  2. static?int?rk29_sensor_io_deinit(int?sensor); ??
  3. static?int?rk29_sensor_ioctrl(struct?device?*dev,int?on); ??
3.摄像头相关的默认参数配置:
[cpp] view plain copy
  1. ??
  2. static?int?sensor_power_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
  3. { ??
  4. ????int?camera_power?=?res->gpio_power; ??
  5. ????int?camera_ioflag?=?res->gpio_flag; ??
  6. ????int?camera_io_init?=?res->gpio_init; ??
  7. ????int?ret?=?0; ??
  8. ???? ??
  9. ????if?(camera_power?!=?INVALID_GPIO)??{ ??
  10. ????????if?(camera_io_init?&?RK29_CAM_POWERACTIVE_MASK)?{ ??
  11. ????????????if?(on)?{ ??
  12. ????????????????gpio_set_value(camera_power,?((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
  13. ????????????????dprintk("%s..%s..PowerPin=%d?..PinLevel?=?%x???n",__FUNCTION__,res->dev_name,?camera_power,?((camera_ioflag&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
  14. ????????????????msleep(10); ??
  15. ????????????}?else?{ ??
  16. ????????????????gpio_set_value(camera_power,?(((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
  17. ????????????????dprintk("%s..%s..PowerPin=%d?..PinLevel?=?%x???n",?(((~camera_ioflag)&RK29_CAM_POWERACTIVE_MASK)>>RK29_CAM_POWERACTIVE_BITPOS)); ??
  18. ????????????} ??
  19. ????????}?else?{ ??
  20. ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
  21. ????????????printk("%s..%s..PowerPin=%d?request?failed!n",camera_power); ??
  22. ????????}???????? ??
  23. ????}?else?{ ??
  24. ????????ret?=?RK29_CAM_EIO_INVALID; ??
  25. ????}? ??
  26. ??
  27. ????return?ret; ??
  28. } ??
  29. ??
  30. static?int?sensor_reset_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
  31. { ??
  32. ????int?camera_reset?=?res->gpio_reset; ??
  33. ????int?camera_ioflag?=?res->gpio_flag; ??
  34. ????int?camera_io_init?=?res->gpio_init;?? ??
  35. ????int?ret?=?0; ??
  36. ???? ??
  37. ????if?(camera_reset?!=?INVALID_GPIO)?{ ??
  38. ????????if?(camera_io_init?&?RK29_CAM_RESETACTIVE_MASK)?{ ??
  39. ????????????if?(on)?{ ??
  40. ????????????????gpio_set_value(camera_reset,?((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
  41. ????????????????dprintk("%s..%s..ResetPin=%d?..PinLevel?=?%x?n",camera_reset,?((camera_ioflag&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
  42. ????????????}?else?{ ??
  43. ????????????????gpio_set_value(camera_reset,(((~camera_ioflag)&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
  44. ????????????????dprintk("%s..%s..ResetPin=?%d..PinLevel?=?%x???n",?camera_reset,?(((~camera_ioflag)&RK29_CAM_RESETACTIVE_MASK)>>RK29_CAM_RESETACTIVE_BITPOS)); ??
  45. ????????????} ??
  46. ????????}?else?{ ??
  47. ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
  48. ????????????printk("%s..%s..ResetPin=%d?request?failed!n",camera_reset); ??
  49. ????????} ??
  50. ????}?else?{ ??
  51. ????????ret?=?RK29_CAM_EIO_INVALID; ??
  52. ????} ??
  53. ??
  54. ????return?ret; ??
  55. } ??
  56. ??
  57. static?int?sensor_powerdown_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
  58. { ??
  59. ????int?camera_powerdown?=?res->gpio_powerdown; ??
  60. ????int?camera_ioflag?=?res->gpio_flag; ??
  61. ????int?camera_io_init?=?res->gpio_init;?? ??
  62. ????int?ret?=?0;???? ??
  63. ??
  64. ????if?(camera_powerdown?!=?INVALID_GPIO)?{ ??
  65. ????????if?(camera_io_init?&?RK29_CAM_POWERDNACTIVE_MASK)?{ ??
  66. ????????????if?(on)?{ ??
  67. ????????????????gpio_set_value(camera_powerdown,?((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
  68. ????????????????dprintk("%s..%s..PowerDownPin=%d?..PinLevel?=?%x?n",camera_powerdown,?((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
  69. ????????????}?else?{ ??
  70. ????????????????gpio_set_value(camera_powerdown,(((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
  71. ????????????????dprintk("%s..%s..PowerDownPin=?%d..PinLevel?=?%x???n",?camera_powerdown,?(((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS)); ??
  72. ????????????} ??
  73. ????????}?else?{ ??
  74. ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
  75. ????????????dprintk("%s..%s..PowerDownPin=%d?request?failed!n",camera_powerdown); ??
  76. ????????} ??
  77. ????}?else?{ ??
  78. ????????ret?=?RK29_CAM_EIO_INVALID; ??
  79. ????} ??
  80. ????return?ret; ??
  81. } ??
  82. ??
  83. ??
  84. static?int?sensor_flash_default_cb?(struct?rk29camera_gpio_res?*res,?int?on) ??
  85. { ??
  86. ????int?camera_flash?=?res->gpio_flash; ??
  87. ????int?camera_ioflag?=?res->gpio_flag; ??
  88. ????int?camera_io_init?=?res->gpio_init;?? ??
  89. ????int?ret?=?0;???? ??
  90. ??
  91. ????if?(camera_flash?!=?INVALID_GPIO)?{ ??
  92. ????????if?(camera_io_init?&?RK29_CAM_FLASHACTIVE_MASK)?{ ??
  93. ????????????switch?(on) ??
  94. ????????????{ ??
  95. ????????????????case?Flash_Off: ??
  96. ????????????????{ ??
  97. ????????????????????gpio_set_value(camera_flash,(((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
  98. ????????????????????dprintk("n%s..%s..FlashPin=?%d..PinLevel?=?%x???n",?camera_flash,?(((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));? ??
  99. ????????????????????break; ??
  100. ????????????????} ??
  101. ??
  102. ????????????????case?Flash_On: ??
  103. ????????????????{ ??
  104. ????????????????????gpio_set_value(camera_flash,?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
  105. ????????????????????dprintk("%s..%s..FlashPin=%d?..PinLevel?=?%x?n",camera_flash,?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
  106. ????????????????????break; ??
  107. ????????????????} ??
  108. ??
  109. ????????????????case?Flash_Torch: ??
  110. ????????????????{ ??
  111. ????????????????????gpio_set_value(camera_flash,?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
  112. ????????????????????dprintk("%s..%s..FlashPin=%d?..PinLevel?=?%x?n",?((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); ??
  113. ????????????????????break; ??
  114. ????????????????} ??
  115. ??
  116. ????????????????default: ??
  117. ????????????????{ ??
  118. ????????????????????printk("%s..%s..Flash?command(%d)?is?invalidate?n",on); ??
  119. ????????????????????break; ??
  120. ????????????????} ??
  121. ????????????} ??
  122. ????????}?else?{ ??
  123. ????????????ret?=?RK29_CAM_EIO_REQUESTFAIL; ??
  124. ????????????printk("%s..%s..FlashPin=%d?request?failed!n",camera_flash); ??
  125. ????????} ??
  126. ????}?else?{ ??
  127. ????????ret?=?RK29_CAM_EIO_INVALID; ??
  128. ????} ??
  129. ????return?ret; ??
  130. } ??
  131. ??
  132. static?void?rk29_sensor_fps_get(int?idx,?unsigned?int?*val,?int?w,?int?h) ??
  133. { ??
  134. ????switch?(idx) ??
  135. ????{ ??
  136. ????????case?0: ??
  137. ????????{ ??
  138. ????????????if?((w==176)?&&?(h==144))?{ ??
  139. ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_0; ??
  140. ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_0 ??
  141. ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
  142. ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_0; ??
  143. ????????????#endif ??
  144. ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
  145. ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_0; ??
  146. ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
  147. ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_0; ??
  148. ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
  149. ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_0; ??
  150. ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
  151. ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_0; ??
  152. ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
  153. ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_0; ??
  154. ????????????} ??
  155. ????????????break; ??
  156. ????????} ??
  157. ????????#ifdef?CONFIG_SENSOR_01 ??
  158. ????????case?1: ??
  159. ????????{ ??
  160. ????????????if?((w==176)?&&?(h==144))?{ ??
  161. ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_01; ??
  162. ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_01 ??
  163. ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
  164. ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_01; ??
  165. ????????????#endif ??
  166. ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
  167. ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_01; ??
  168. ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
  169. ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_01; ??
  170. ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
  171. ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_01; ??
  172. ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
  173. ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_01; ??
  174. ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
  175. ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_01; ??
  176. ????????????} ??
  177. ????????????break; ??
  178. ????????} ??
  179. ????????#endif ??
  180. ????????#ifdef?CONFIG_SENSOR_02 ??
  181. ????????case?2: ??
  182. ????????{ ??
  183. ????????????if?((w==176)?&&?(h==144))?{ ??
  184. ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_02; ??
  185. ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_02 ??
  186. ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
  187. ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_02; ??
  188. ????????????#endif ??
  189. ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
  190. ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_02; ??
  191. ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
  192. ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_02; ??
  193. ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
  194. ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_02; ??
  195. ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
  196. ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_02; ??
  197. ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
  198. ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_02; ??
  199. ????????????} ??
  200. ????????????break; ??
  201. ????????} ??
  202. ????????#endif ??
  203. ???????? ??
  204. ????????case?3: ??
  205. ????????{ ??
  206. ????????????if?((w==176)?&&?(h==144))?{ ??
  207. ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_1; ??
  208. ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_1 ??
  209. ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
  210. ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_1; ??
  211. ????????????#endif ??
  212. ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
  213. ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_1; ??
  214. ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
  215. ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_1; ??
  216. ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
  217. ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_1; ??
  218. ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
  219. ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_1; ??
  220. ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
  221. ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_1; ??
  222. ????????????} ??
  223. ????????????break; ??
  224. ????????} ??
  225. ????????#ifdef?CONFIG_SENSOR_11 ??
  226. ????????case?4: ??
  227. ????????{ ??
  228. ????????????if?((w==176)?&&?(h==144))?{ ??
  229. ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_11; ??
  230. ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_11 ??
  231. ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
  232. ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_11; ??
  233. ????????????#endif ??
  234. ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
  235. ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_11; ??
  236. ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
  237. ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_11; ??
  238. ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
  239. ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_11; ??
  240. ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
  241. ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_11; ??
  242. ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
  243. ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_11; ??
  244. ????????????} ??
  245. ????????????break; ??
  246. ????????} ??
  247. ????????#endif ??
  248. ????????#ifdef?CONFIG_SENSOR_12 ??
  249. ????????case?5: ??
  250. ????????{ ??
  251. ????????????if?((w==176)?&&?(h==144))?{ ??
  252. ????????????????*val?=?CONFIG_SENSOR_QCIF_FPS_FIXED_12; ??
  253. ????????????#ifdef?CONFIG_SENSOR_240X160_FPS_FIXED_12 ??
  254. ????????????}?else?if?((w==240)?&&?(h==160))?{ ??
  255. ????????????????*val?=?CONFIG_SENSOR_240X160_FPS_FIXED_12; ??
  256. ????????????#endif ??
  257. ????????????}?else?if?((w==320)?&&?(h==240))?{ ??
  258. ????????????????*val?=?CONFIG_SENSOR_QVGA_FPS_FIXED_12; ??
  259. ????????????}?else?if?((w==352)?&&?(h==288))?{ ??
  260. ????????????????*val?=?CONFIG_SENSOR_CIF_FPS_FIXED_12; ??
  261. ????????????}?else?if?((w==640)?&&?(h==480))?{ ??
  262. ????????????????*val?=?CONFIG_SENSOR_VGA_FPS_FIXED_12; ??
  263. ????????????}?else?if?((w==720)?&&?(h==480))?{ ??
  264. ????????????????*val?=?CONFIG_SENSOR_480P_FPS_FIXED_12; ??
  265. ????????????}?else?if?((w==1280)?&&?(h==720))?{ ??
  266. ????????????????*val?=?CONFIG_SENSOR_720P_FPS_FIXED_12; ??
  267. ????????????} ??
  268. ????????????break; ??
  269. ????????} ??
  270. ????????#endif ??
  271. ????????default: ??
  272. ????????????printk(KERN_ERR"rk29_cam_io:?sensor-%d?have?not?been?define?in?board?file!",idx); ??
  273. ????} ??
  274. }??
这里面包括图片尺寸大小,分辨率等设置。
4.具体摄像头的寄存器配置:
首先:make menuconfig

? ? ? ? ? ?Device Drivers------>

Multimedia support ----->

Video capture adapters ----->

选择相应的Camera驱动,比如GC0309

然后根据具体的需求到gc0309.c里面去按照手册配置寄存器。


主要是修改1.1里面前置和后置摄像头的引脚,地址,名字,以及一些参数。

及2和3里面初始化的配置

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读