Gem_isp_sys.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. // =============================================================================
  2. // File : Gem_isp_sys.h
  3. // Version : v1.0
  4. // Author : Honglei Zhu
  5. // Date : 2014.12.5
  6. // -----------------------------------------------------------------------------
  7. // Description :
  8. //
  9. // -----------------------------------------------------------------------------
  10. #ifndef _GEM_ISP_SYS_H_
  11. #define _GEM_ISP_SYS_H_
  12. #include "Gem_isp.h"
  13. #define USE_ISR_TO_SWITCH_MODE
  14. #define GEM_SYS_BASE (0x000)
  15. #define GEM_MSK_BASE (0x05c)
  16. // �µ�ERISֱ��ͼ�汾
  17. #define GEM_STS_BASE (0x1a8 + 0x0c + 0x0c) // ����3���Ĵ���
  18. #define GEM_VIFRASE_BASE (0x6d * 4) // ���֡��
  19. typedef struct isp_sys_
  20. {
  21. unsigned char ispenbale; // 1 bit
  22. unsigned char ckpolar; // 1 bit
  23. unsigned char vcpolar; // 1 bit
  24. unsigned char hcpolar; // 1 bit
  25. unsigned char vmskenable; // 1 bit, ����, ��������Ϊ0
  26. unsigned char frameratei; // 8 bit
  27. unsigned char framerateo; // 8 bit, ����, ��������Ϊ0
  28. unsigned int vifrasel0; // 32bit, ���֡���п���, ���ɶ���64֡
  29. unsigned int vifrasel1;
  30. unsigned char resizebit; // bit16-bit17, Raw data resize (0:normal 1:cut 1bit 2: cut 2 bit 3: cut 3 bit)
  31. unsigned char sensorbit; // 2 bit
  32. unsigned char bayermode; // 2 bit
  33. unsigned char sonyif;
  34. unsigned int sonysac1;
  35. unsigned int sonysac2;
  36. unsigned int sonysac3;
  37. unsigned int sonysac4;
  38. unsigned int imagewidth; // 16 bit
  39. unsigned int imageheight; // 16 bit
  40. unsigned int imagehblank; // 16 bit
  41. unsigned int zonestridex; // 16 bit
  42. unsigned int zonestridey; // 16 bit
  43. unsigned char vmanSftenable;
  44. unsigned char vchkIntenable;
  45. unsigned char pabtIntenable;
  46. unsigned char fendIntenable;
  47. unsigned char fabtIntenable;
  48. unsigned char babtIntenable;
  49. unsigned char ffiqIntenable;
  50. unsigned char pendIntenable;
  51. unsigned char infoIntenable; // "�ع�״̬��Ϣ�����(��ʾ���Զ�ȡAE״̬��Ϣ)"�ж�����λ,
  52. // ISP�ڲ����ع�ͳ�������, �ⲿ�����ʱ������ȷ��ȡAE��Ϣ, ִ����һ���ع⴦��
  53. unsigned char vmanSftset;
  54. unsigned char vchkIntclr;
  55. unsigned char pabtIntclr;
  56. unsigned char fendIntset;
  57. unsigned char fendIntclr;
  58. unsigned char fabtIntclr;
  59. unsigned char babtIntclr;
  60. unsigned char ffiqIntclr;
  61. unsigned char pendIntclr;
  62. unsigned char infoStaclr; // ���ISP���ع�ͳ����ɱ�ʶ
  63. unsigned char vchkIntraw;
  64. unsigned char pabtIntraw;
  65. unsigned char fendIntraw;
  66. unsigned char fabtIntraw;
  67. unsigned char babtIntraw;
  68. unsigned char ffiqIntraw;
  69. unsigned char pendIntraw;
  70. unsigned char infoIntraw;
  71. unsigned char vchkIntmsk;
  72. unsigned char pabtIntmsk;
  73. unsigned char fendIntmsk;
  74. unsigned char fabtIntmsk;
  75. unsigned char babtIntmsk;
  76. unsigned char ffiqIntmsk;
  77. unsigned char pendIntmsk;
  78. unsigned char infoIntmsk;
  79. unsigned char preserve0;
  80. unsigned char preserve1;
  81. unsigned char fendIntid[4];
  82. unsigned int ffiqIntdelay;
  83. unsigned char fendStaid;
  84. unsigned char infoStadone;
  85. unsigned char debugmode; // 1 bit, 0 �رյ���ģʽ, 1 �������ģʽ
  86. unsigned char testenable; // 1 bit, 0 �ر�dram����ģʽ, 1 ����dram����ģʽ
  87. unsigned char rawmenable; // 1 bit, 0: �ر�RAW������� 1: ����RAW�������
  88. unsigned char yuvenable; // 1 bit, 0: �ر�YUV������� 1: ����YUV�������
  89. unsigned char refenable; // 1 bit���ر�3D����ʱ��Ӧͬʱdisable�ο�֡�� ����ISP�������д�ο�֡��
  90. unsigned char yuvformat; // 2 bit
  91. unsigned char dmalock; // 2 bit, �����ᵼ��H264 codecʱ������
  92. // 2: ʹ��, ��ȡЧ�ʸ�
  93. // ������ֵ: �ر�
  94. unsigned int hstride; // 16 bit
  95. unsigned int refaddr; // 32 bit
  96. unsigned int rawaddr0; // 32 bit
  97. unsigned int rawaddr1; // 32 bit
  98. unsigned int rawaddr2; // 32 bit
  99. unsigned int rawaddr3; // 32 bit
  100. unsigned int yaddr0; // 32 bit
  101. unsigned int yaddr1; // 32 bit
  102. unsigned int yaddr2; // 32 bit
  103. unsigned int yaddr3; // 32 bit
  104. unsigned int uaddr0; // 32 bit
  105. unsigned int uaddr1; // 32 bit
  106. unsigned int uaddr2; // 32 bit
  107. unsigned int uaddr3; // 32 bit
  108. unsigned int vaddr0; // 32 bit
  109. unsigned int vaddr1; // 32 bit
  110. unsigned int vaddr2; // 32 bit
  111. unsigned int vaddr3; // 32 bit
  112. unsigned int frameno; // 32 bit
  113. unsigned int isp_reset_request; // ISP�쳣����Ҫ��λ����
  114. } isp_sys_t;
  115. typedef struct isp_sys_ *isp_sys_ptr_t;
  116. void isp_sys_init (isp_sys_ptr_t p_sys, isp_param_ptr_t p_isp);
  117. void isp_sys_init_io (isp_sys_ptr_t p_sys);
  118. unsigned int isp_sys_status_read(isp_sys_ptr_t p_sys);
  119. unsigned int get_isp_framebufferno(void);
  120. unsigned int return_isp_frame(void);
  121. void Reset_isp_frame(void);
  122. void isp_sys_infomask_clr (void);
  123. void isp_disable (void);
  124. void isp_enable (void);
  125. void isp_dump_sys_register (void);
  126. void isp_sys_set_frame_ready (unsigned int frame_id);
  127. #endif