Gem_isp.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // =============================================================================
  2. // File : Gem_isp.h
  3. // Version : v1.0
  4. // Author : Honglei Zhu
  5. // Date : 2014.12.5
  6. // -----------------------------------------------------------------------------
  7. // Description :
  8. //
  9. // -----------------------------------------------------------------------------
  10. #ifndef _GEM_ISP_H_
  11. #define _GEM_ISP_H_
  12. #if defined (__cplusplus)
  13. extern "C"{
  14. #endif
  15. #define DEBUG_PRINT printk
  16. #define MAX_YUV_BUF_N 4
  17. #define INFO_STA_USE_INTR // "曝光状态信息完成"使用中断方式
  18. //ISP 时钟 相位:0 :正沿采样, 1:下沿采样
  19. #define SENSOR_OUTPUT_CLKPOLAY 0
  20. #define SENSOR_INPUT_CLKPOLAY 0
  21. typedef struct isp_param_
  22. {
  23. unsigned int image_width;
  24. unsigned int image_height;
  25. unsigned int image_stride;
  26. unsigned int ref_addr;
  27. unsigned int raw_addr[4];
  28. unsigned int y_addr[4];
  29. unsigned int u_addr[4];
  30. unsigned int v_addr[4];
  31. unsigned int yuv_id[4];
  32. } isp_param_t;
  33. typedef struct isp_param_ *isp_param_ptr_t;
  34. int isp_videobuf_alloc (isp_param_ptr_t p_isp);
  35. void get_isp_dispaddr(unsigned int order,unsigned int *Yaddr, unsigned int *Uaddr , unsigned int *Vaddr );
  36. void get_isp_rawaddr(unsigned int order,unsigned int *Yaddr );
  37. #define ISP_EVENT_INFO_DONE 0x01 // 曝光统计信息已准备
  38. #define ISP_EVENT_AE_STOP 0x02 // 自动曝光结束
  39. #define ISP_EVENT_ABNORMAL 0x04 // ISP异常
  40. #define ISP_EVENT_MODE_CHANGE 0x08 // 工作模式修改
  41. #define ISP_EVENT_TICKET 0x10 // ISP定时器事件
  42. void isp_ae_done_event_set (void);
  43. enum {
  44. ISP_WORK_MODE_NORMAL = 0x00,
  45. ISP_WORK_MODE_RAW,
  46. ISP_WORK_MODE_AUTOTEST,
  47. ISP_WORK_MODE_COUNT
  48. };
  49. unsigned int isp_get_work_mode (void);
  50. int isp_set_work_mode (unsigned work_mode);
  51. extern void isp_sensor_set_reset_pin_low (void);
  52. extern void isp_sensor_set_reset_pin_high (void);
  53. extern void isp_sensor_set_standby_pin_low (void);
  54. extern void isp_sensor_set_standby_pin_high (void);
  55. #if defined (__cplusplus)
  56. }
  57. #endif /* end of __cplusplus */
  58. #endif // _GEM_ISP_H_