42#define CHIP_NAME "OmniVision OV2640"
43#define MANUFACTURER_NAME "OmniVision"
44#define SUPPLY_VOLTAGE_MIN 2.5f
45#define SUPPLY_VOLTAGE_MAX 3.0f
46#define MAX_CURRENT 40.0f
47#define TEMPERATURE_MIN -30.0f
48#define TEMPERATURE_MAX 70.0f
49#define DRIVER_VERSION 1000
54#define OV2640_ADDRESS 0x60
59#define OV2640_REG_DSP_BANK_R_BYPASS 0x05
60#define OV2640_REG_DSP_BANK_QS 0x44
61#define OV2640_REG_DSP_BANK_CTRLI 0x50
62#define OV2640_REG_DSP_BANK_HSIZE 0x51
63#define OV2640_REG_DSP_BANK_VSIZE 0x52
64#define OV2640_REG_DSP_BANK_XOFFL 0x53
65#define OV2640_REG_DSP_BANK_YOFFL 0x54
66#define OV2640_REG_DSP_BANK_VHYX 0x55
67#define OV2640_REG_DSP_BANK_DPRP 0x56
68#define OV2640_REG_DSP_BANK_TEST 0x57
69#define OV2640_REG_DSP_BANK_ZMOW 0x5A
70#define OV2640_REG_DSP_BANK_ZMOH 0x5B
71#define OV2640_REG_DSP_BANK_ZMHH 0x5C
72#define OV2640_REG_DSP_BANK_BPADDR 0x7C
73#define OV2640_REG_DSP_BANK_BPDATA 0x7D
74#define OV2640_REG_DSP_BANK_CTRL2 0x86
75#define OV2640_REG_DSP_BANK_CTRL3 0x87
76#define OV2640_REG_DSP_BANK_SIZEL 0x8C
77#define OV2640_REG_DSP_BANK_HSIZE8 0xC0
78#define OV2640_REG_DSP_BANK_VSIZE8 0xC1
79#define OV2640_REG_DSP_BANK_CTRL0 0xC2
80#define OV2640_REG_DSP_BANK_CTRL1 0xC3
81#define OV2640_REG_DSP_BANK_R_DVP_SP 0xD3
82#define OV2640_REG_DSP_BANK_IMAGE_MODE 0xDA
83#define OV2640_REG_DSP_BANK_RESET 0xE0
84#define OV2640_REG_DSP_BANK_MS_SP 0xF0
85#define OV2640_REG_DSP_BANK_SS_ID 0xF7
86#define OV2640_REG_DSP_BANK_SS_CTRL 0xF8
87#define OV2640_REG_DSP_BANK_MC_BIST 0xF9
88#define OV2640_REG_DSP_BANK_MC_AL 0xFA
89#define OV2640_REG_DSP_BANK_MC_AH 0xFB
90#define OV2640_REG_DSP_BANK_MC_D 0xFC
91#define OV2640_REG_DSP_BANK_P_CMD 0xFD
92#define OV2640_REG_DSP_BANK_P_STATUS 0xFE
93#define OV2640_REG_DSP_BANK_RA_DLMT 0xFF
98#define OV2640_REG_SENSOR_BANK_GAIN 0x00
99#define OV2640_REG_SENSOR_BANK_COM1 0x03
100#define OV2640_REG_SENSOR_BANK_REG04 0x04
101#define OV2640_REG_SENSOR_BANK_REG08 0x08
102#define OV2640_REG_SENSOR_BANK_COM2 0x09
103#define OV2640_REG_SENSOR_BANK_PIDH 0x0A
104#define OV2640_REG_SENSOR_BANK_PIDL 0x0B
105#define OV2640_REG_SENSOR_BANK_COM3 0x0C
106#define OV2640_REG_SENSOR_BANK_COM4 0x0D
107#define OV2640_REG_SENSOR_BANK_AEC 0x10
108#define OV2640_REG_SENSOR_BANK_CLKRC 0x11
109#define OV2640_REG_SENSOR_BANK_COM7 0x12
110#define OV2640_REG_SENSOR_BANK_COM8 0x13
111#define OV2640_REG_SENSOR_BANK_COM9 0x14
112#define OV2640_REG_SENSOR_BANK_COM10 0x15
113#define OV2640_REG_SENSOR_BANK_HREFST 0x17
114#define OV2640_REG_SENSOR_BANK_HREFEND 0x18
115#define OV2640_REG_SENSOR_BANK_VSTRT 0x19
116#define OV2640_REG_SENSOR_BANK_VEND 0x1A
117#define OV2640_REG_SENSOR_BANK_MIDH 0x1C
118#define OV2640_REG_SENSOR_BANK_MIDL 0x1D
119#define OV2640_REG_SENSOR_BANK_AEW 0x24
120#define OV2640_REG_SENSOR_BANK_AEB 0x25
121#define OV2640_REG_SENSOR_BANK_VV 0x26
122#define OV2640_REG_SENSOR_BANK_REG2A 0x2A
123#define OV2640_REG_SENSOR_BANK_FRARL 0x2B
124#define OV2640_REG_SENSOR_BANK_ADDVSL 0x2D
125#define OV2640_REG_SENSOR_BANK_ADDVSH 0x2E
126#define OV2640_REG_SENSOR_BANK_YAVG 0x2F
127#define OV2640_REG_SENSOR_BANK_HSDY 0x30
128#define OV2640_REG_SENSOR_BANK_HEDY 0x31
129#define OV2640_REG_SENSOR_BANK_REG32 0x32
130#define OV2640_REG_SENSOR_BANK_ARCOM2 0x34
131#define OV2640_REG_SENSOR_BANK_REG45 0x45
132#define OV2640_REG_SENSOR_BANK_FLL 0x46
133#define OV2640_REG_SENSOR_BANK_FLH 0x47
134#define OV2640_REG_SENSOR_BANK_COM19 0x48
135#define OV2640_REG_SENSOR_BANK_ZOOMS 0x49
136#define OV2640_REG_SENSOR_BANK_COM22 0x4B
137#define OV2640_REG_SENSOR_BANK_COM25 0x4E
138#define OV2640_REG_SENSOR_BANK_BD50 0x4F
139#define OV2640_REG_SENSOR_BANK_BD60 0x50
140#define OV2640_REG_SENSOR_BANK_REG5D 0x5D
141#define OV2640_REG_SENSOR_BANK_REG5E 0x5E
142#define OV2640_REG_SENSOR_BANK_REG5F 0x5F
143#define OV2640_REG_SENSOR_BANK_REG60 0x60
144#define OV2640_REG_SENSOR_BANK_HISTO_LOW 0x61
145#define OV2640_REG_SENSOR_BANK_HISTO_HIGH 0x62
392static uint8_t a_ov2640_dsp_read(
ov2640_handle_t *handle, uint8_t reg, uint8_t *data)
400 if ((config & 0x01) != 0)
427static uint8_t a_ov2640_dsp_write(
ov2640_handle_t *handle, uint8_t reg, uint8_t data)
435 if ((config & 0x01) != 0)
462static uint8_t a_ov2640_sensor_read(
ov2640_handle_t *handle, uint8_t reg, uint8_t *data)
470 if ((config & 0x01) == 0)
497static uint8_t a_ov2640_sensor_write(
ov2640_handle_t *handle, uint8_t reg, uint8_t data)
505 if ((config & 0x01) == 0)
553 handle->
debug_print(
"ov2640: sccb_init is null.\n");
559 handle->
debug_print(
"ov2640: sccb_deinit is null.\n");
565 handle->
debug_print(
"ov2640: sccb_read is null.\n");
571 handle->
debug_print(
"ov2640: sccb_write is null.\n");
577 handle->
debug_print(
"ov2640: power_down_init is null.\n");
583 handle->
debug_print(
"ov2640: power_down_deinit is null.\n");
589 handle->
debug_print(
"ov2640: power_down_write is null.\n");
595 handle->
debug_print(
"ov2640: reset_init is null.\n");
601 handle->
debug_print(
"ov2640: reset_deinit is null.\n");
607 handle->
debug_print(
"ov2640: reset_write is null.\n");
613 handle->
debug_print(
"ov2640: delay_ms is null.\n");
620 handle->
debug_print(
"ov2640: power down init failed.\n");
626 handle->
debug_print(
"ov2640: reset init failed.\n");
633 handle->
debug_print(
"ov2640: sccb init failed.\n");
642 handle->
debug_print(
"ov2640: power down write failed.\n");
653 handle->
debug_print(
"ov2640: reset write failed.\n");
663 handle->
debug_print(
"ov2640: reset write failed.\n");
675 handle->
debug_print(
"ov2640: sensor read failed.\n");
686 handle->
debug_print(
"ov2640: sensor write failed.\n");
698 handle->
debug_print(
"ov2640: sensor read failed.\n");
705 id = (uint16_t)reg << 8;
709 handle->
debug_print(
"ov2640: sensor read failed.\n");
719 handle->
debug_print(
"ov2640: manufacturer id is invalid.\n");
729 handle->
debug_print(
"ov2640: sensor read failed.\n");
736 id = (uint16_t)reg << 8;
740 handle->
debug_print(
"ov2640: sensor read failed.\n");
750 handle->
debug_print(
"ov2640: product id is invalid.\n");
791 handle->
debug_print(
"ov2640: sensor read failed.\n");
799 handle->
debug_print(
"ov2640: sensor write failed.\n");
807 handle->
debug_print(
"ov2640: power down write failed.\n");
815 handle->
debug_print(
"ov2640: reset deinit failed.\n");
821 handle->
debug_print(
"ov2640: power down deinit failed.\n");
827 handle->
debug_print(
"ov2640: sccb deinit failed.\n");
869 handle->
debug_print(
"ov2640: sccb write failed.\n");
911 handle->
debug_print(
"ov2640: sccb write failed.\n");
953 handle->
debug_print(
"ov2640: sccb write failed.\n");
998 handle->
debug_print(
"ov2640: sensor write failed.\n");
1005 handle->
debug_print(
"ov2640: sensor read failed.\n");
1010 prev |= ((gain >> 8) & 0x03) << 6;
1014 handle->
debug_print(
"ov2640: sensor write failed.\n");
1050 handle->
debug_print(
"ov2640: sensor read failed.\n");
1058 handle->
debug_print(
"ov2640: sensor read failed.\n");
1062 *gain |= (uint16_t)((prev >> 6) & 0x03) << 8;
1095 handle->
debug_print(
"ov2640: sensor read failed.\n");
1100 prev |= (frame << 6);
1104 handle->
debug_print(
"ov2640: sensor write failed.\n");
1140 handle->
debug_print(
"ov2640: sensor read failed.\n");
1184 handle->
debug_print(
"ov2640: sensor read failed.\n");
1189 prev |= ((start & 0x03) << 0);
1193 handle->
debug_print(
"ov2640: sensor write failed.\n");
1197 prev = (start >> 2) & 0xFF;
1201 handle->
debug_print(
"ov2640: sensor write failed.\n");
1237 handle->
debug_print(
"ov2640: sensor read failed.\n");
1241 *start = prev & 0x03;
1245 handle->
debug_print(
"ov2640: sensor read failed.\n");
1249 *start |= (prev << 2);
1289 handle->
debug_print(
"ov2640: sensor read failed.\n");
1294 prev |= ((end & 0x03) << 2);
1298 handle->
debug_print(
"ov2640: sensor write failed.\n");
1302 prev = (end >> 2) & 0xFF;
1306 handle->
debug_print(
"ov2640: sensor write failed.\n");
1342 handle->
debug_print(
"ov2640: sensor read failed.\n");
1346 *end = (prev >> 2) & 0x03;
1350 handle->
debug_print(
"ov2640: sensor read failed.\n");
1354 *end |= (prev << 2);
1387 handle->
debug_print(
"ov2640: sensor read failed.\n");
1392 prev |= enable << 7;
1396 handle->
debug_print(
"ov2640: sensor write failed.\n");
1432 handle->
debug_print(
"ov2640: sensor read failed.\n");
1469 handle->
debug_print(
"ov2640: sensor read failed.\n");
1474 prev |= enable << 6;
1478 handle->
debug_print(
"ov2640: sensor write failed.\n");
1514 handle->
debug_print(
"ov2640: sensor read failed.\n");
1551 handle->
debug_print(
"ov2640: sensor read failed.\n");
1556 prev |= (aec & 0x03) << 0;
1560 handle->
debug_print(
"ov2640: sensor write failed.\n");
1564 prev = (aec >> 2) & 0xFF;
1568 handle->
debug_print(
"ov2640: sensor write failed.\n");
1575 handle->
debug_print(
"ov2640: sensor read failed.\n");
1579 prev &= ~(0x3F << 0);
1580 prev |= ((aec >> 10) & 0x3F) << 0;
1584 handle->
debug_print(
"ov2640: sensor write failed.\n");
1621 handle->
debug_print(
"ov2640: sensor read failed.\n");
1625 *aec |= prev & 0x03;
1629 handle->
debug_print(
"ov2640: sensor read failed.\n");
1633 *aec |= (prev << 2);
1637 handle->
debug_print(
"ov2640: sensor read failed.\n");
1641 *aec |= ((prev & 0x3F) << 10);
1675 handle->
debug_print(
"ov2640: sensor write failed.\n");
1710 handle->
debug_print(
"ov2640: sensor read failed.\n");
1746 handle->
debug_print(
"ov2640: sensor read failed.\n");
1755 handle->
debug_print(
"ov2640: sensor write failed.\n");
1791 handle->
debug_print(
"ov2640: sensor read failed.\n");
1828 handle->
debug_print(
"ov2640: sensor read failed.\n");
1833 prev |= enable << 2;
1837 handle->
debug_print(
"ov2640: sensor write failed.\n");
1873 handle->
debug_print(
"ov2640: sensor read failed.\n");
1910 handle->
debug_print(
"ov2640: sensor read failed.\n");
1915 prev |= select << 0;
1919 handle->
debug_print(
"ov2640: sensor write failed.\n");
1955 handle->
debug_print(
"ov2640: sensor read failed.\n");
1992 handle->
debug_print(
"ov2640: sensor read failed.\n");
2001 handle->
debug_print(
"ov2640: sensor write failed.\n");
2037 handle->
debug_print(
"ov2640: sensor read failed.\n");
2074 handle->
debug_print(
"ov2640: sensor read failed.\n");
2079 prev |= enable << 1;
2083 handle->
debug_print(
"ov2640: sensor write failed.\n");
2119 handle->
debug_print(
"ov2640: sensor read failed.\n");
2156 handle->
debug_print(
"ov2640: sensor read failed.\n");
2161 prev |= enable << 0;
2165 handle->
debug_print(
"ov2640: sensor write failed.\n");
2201 handle->
debug_print(
"ov2640: sensor read failed.\n");
2238 handle->
debug_print(
"ov2640: sensor read failed.\n");
2243 prev |= status << 2;
2247 handle->
debug_print(
"ov2640: sensor write failed.\n");
2283 handle->
debug_print(
"ov2640: sensor read failed.\n");
2320 handle->
debug_print(
"ov2640: sensor read failed.\n");
2325 prev |= enable << 7;
2329 handle->
debug_print(
"ov2640: sensor write failed.\n");
2365 handle->
debug_print(
"ov2640: sensor read failed.\n");
2409 handle->
debug_print(
"ov2640: sensor read failed.\n");
2413 prev &= ~(0x3F << 0);
2414 prev |= divider << 0;
2418 handle->
debug_print(
"ov2640: sensor write failed.\n");
2454 handle->
debug_print(
"ov2640: sensor read failed.\n");
2458 *divider = (prev & 0x3F);
2490 handle->
debug_print(
"ov2640: sensor read failed.\n");
2499 handle->
debug_print(
"ov2640: sensor write failed.\n");
2536 handle->
debug_print(
"ov2640: sensor read failed.\n");
2541 prev |= resolution << 4;
2545 handle->
debug_print(
"ov2640: sensor write failed.\n");
2581 handle->
debug_print(
"ov2640: sensor read failed.\n");
2618 handle->
debug_print(
"ov2640: sensor read failed.\n");
2623 prev |= enable << 2;
2627 handle->
debug_print(
"ov2640: sensor write failed.\n");
2663 handle->
debug_print(
"ov2640: sensor read failed.\n");
2700 handle->
debug_print(
"ov2640: sensor read failed.\n");
2705 prev |= enable << 1;
2709 handle->
debug_print(
"ov2640: sensor write failed.\n");
2745 handle->
debug_print(
"ov2640: sensor read failed.\n");
2782 handle->
debug_print(
"ov2640: sensor read failed.\n");
2787 prev |= enable << 5;
2791 handle->
debug_print(
"ov2640: sensor write failed.\n");
2827 handle->
debug_print(
"ov2640: sensor read failed.\n");
2864 handle->
debug_print(
"ov2640: sensor read failed.\n");
2869 prev |= control << 2;
2873 handle->
debug_print(
"ov2640: sensor write failed.\n");
2909 handle->
debug_print(
"ov2640: sensor read failed.\n");
2946 handle->
debug_print(
"ov2640: sensor read failed.\n");
2951 prev |= control << 0;
2955 handle->
debug_print(
"ov2640: sensor write failed.\n");
2991 handle->
debug_print(
"ov2640: sensor read failed.\n");
3028 handle->
debug_print(
"ov2640: sensor read failed.\n");
3037 handle->
debug_print(
"ov2640: sensor write failed.\n");
3073 handle->
debug_print(
"ov2640: sensor read failed.\n");
3110 handle->
debug_print(
"ov2640: sensor read failed.\n");
3115 prev |= enable << 7;
3119 handle->
debug_print(
"ov2640: sensor write failed.\n");
3155 handle->
debug_print(
"ov2640: sensor read failed.\n");
3192 handle->
debug_print(
"ov2640: sensor read failed.\n");
3197 prev |= enable << 6;
3201 handle->
debug_print(
"ov2640: sensor write failed.\n");
3237 handle->
debug_print(
"ov2640: sensor read failed.\n");
3274 handle->
debug_print(
"ov2640: sensor read failed.\n");
3279 prev |= enable << 5;
3283 handle->
debug_print(
"ov2640: sensor write failed.\n");
3319 handle->
debug_print(
"ov2640: sensor read failed.\n");
3356 handle->
debug_print(
"ov2640: sensor read failed.\n");
3365 handle->
debug_print(
"ov2640: sensor write failed.\n");
3401 handle->
debug_print(
"ov2640: sensor read failed.\n");
3438 handle->
debug_print(
"ov2640: sensor read failed.\n");
3443 prev |= polarity << 3;
3447 handle->
debug_print(
"ov2640: sensor write failed.\n");
3483 handle->
debug_print(
"ov2640: sensor read failed.\n");
3520 handle->
debug_print(
"ov2640: sensor read failed.\n");
3525 prev |= polarity << 1;
3529 handle->
debug_print(
"ov2640: sensor write failed.\n");
3565 handle->
debug_print(
"ov2640: sensor read failed.\n");
3602 handle->
debug_print(
"ov2640: sensor read failed.\n");
3607 prev |= polarity << 0;
3611 handle->
debug_print(
"ov2640: sensor write failed.\n");
3647 handle->
debug_print(
"ov2640: sensor read failed.\n");
3685 handle->
debug_print(
"ov2640: sensor write failed.\n");
3720 handle->
debug_print(
"ov2640: sensor read failed.\n");
3757 handle->
debug_print(
"ov2640: sensor write failed.\n");
3792 handle->
debug_print(
"ov2640: sensor read failed.\n");
3827 if (high_threshold > 0xF)
3829 handle->
debug_print(
"ov2640: high_threshold > 0xF.\n");
3833 if (low_threshold > 0xF)
3835 handle->
debug_print(
"ov2640: low_threshold > 0xF.\n");
3840 prev = (high_threshold & 0xF) << 4 | (low_threshold & 0xF);
3844 handle->
debug_print(
"ov2640: sensor write failed.\n");
3881 handle->
debug_print(
"ov2640: sensor read failed.\n");
3885 *high_threshold = (prev >> 4) & 0x0F;
3886 *low_threshold = (prev >> 0) & 0x0F;
3926 handle->
debug_print(
"ov2640: sensor read failed.\n");
3930 prev &= ~(0xF << 4);
3931 prev |= ((adjust >> 8) & 0xF) << 4;
3935 handle->
debug_print(
"ov2640: sensor write failed.\n");
3939 prev = adjust & 0xFF;
3943 handle->
debug_print(
"ov2640: sensor write failed.\n");
3979 handle->
debug_print(
"ov2640: sensor read failed.\n");
3983 *adjust = (uint16_t)((prev >> 4) & 0xFF) << 8;
3987 handle->
debug_print(
"ov2640: sensor read failed.\n");
4021 if (position > 0x3FF)
4023 handle->
debug_print(
"ov2640: position > 0x3FF.\n");
4031 handle->
debug_print(
"ov2640: sensor read failed.\n");
4035 prev &= ~(0x3 << 2);
4036 prev |= ((position >> 8) & 0x3) << 2;
4040 handle->
debug_print(
"ov2640: sensor write failed.\n");
4044 prev = position & 0xFF;
4048 handle->
debug_print(
"ov2640: sensor write failed.\n");
4084 handle->
debug_print(
"ov2640: sensor read failed.\n");
4088 *position = (uint16_t)((prev >> 2) & 0x03) << 8;
4092 handle->
debug_print(
"ov2640: sensor read failed.\n");
4126 if (position > 0x3FF)
4128 handle->
debug_print(
"ov2640: position > 0x3FF.\n");
4136 handle->
debug_print(
"ov2640: sensor read failed.\n");
4140 prev &= ~(0x3 << 0);
4141 prev |= ((position >> 8) & 0x3) << 0;
4145 handle->
debug_print(
"ov2640: sensor write failed.\n");
4149 prev = position & 0xFF;
4153 handle->
debug_print(
"ov2640: sensor write failed.\n");
4189 handle->
debug_print(
"ov2640: sensor read failed.\n");
4193 *position = (uint16_t)((prev >> 0) & 0x03) << 8;
4197 handle->
debug_print(
"ov2640: sensor read failed.\n");
4231 prev = width & 0xFF;
4235 handle->
debug_print(
"ov2640: sensor write failed.\n");
4239 prev = (width >> 8) & 0xFF;
4243 handle->
debug_print(
"ov2640: sensor write failed.\n");
4279 handle->
debug_print(
"ov2640: sensor write failed.\n");
4283 *width = (uint16_t)prev;
4287 handle->
debug_print(
"ov2640: sensor read failed.\n");
4291 *width |= (uint16_t)prev << 8;
4325 handle->
debug_print(
"ov2640: sensor write failed.\n");
4361 handle->
debug_print(
"ov2640: sensor read failed.\n");
4405 handle->
debug_print(
"ov2640: sensor read failed.\n");
4410 prev |= ((start & 0x07) << 0);
4414 handle->
debug_print(
"ov2640: sensor write failed.\n");
4418 prev = (start >> 3) & 0xFF;
4422 handle->
debug_print(
"ov2640: sensor write failed.\n");
4458 handle->
debug_print(
"ov2640: sensor read failed.\n");
4462 *start = prev & 0x07;
4466 handle->
debug_print(
"ov2640: sensor read failed.\n");
4470 *start |= (prev << 3);
4510 handle->
debug_print(
"ov2640: sensor read failed.\n");
4515 prev |= ((end & 0x07) << 3);
4519 handle->
debug_print(
"ov2640: sensor write failed.\n");
4523 prev = (end >> 3) & 0xFF;
4527 handle->
debug_print(
"ov2640: sensor write failed.\n");
4563 handle->
debug_print(
"ov2640: sensor read failed.\n");
4567 *end = (prev >> 3) & 0x07;
4571 handle->
debug_print(
"ov2640: sensor read failed.\n");
4575 *end |= (prev << 3);
4608 handle->
debug_print(
"ov2640: sensor read failed.\n");
4613 prev |= (pclk << 6);
4617 handle->
debug_print(
"ov2640: sensor write failed.\n");
4653 handle->
debug_print(
"ov2640: sensor read failed.\n");
4690 handle->
debug_print(
"ov2640: sensor read failed.\n");
4695 prev |= (enable << 2);
4699 handle->
debug_print(
"ov2640: sensor write failed.\n");
4735 handle->
debug_print(
"ov2640: sensor read failed.\n");
4776 prev = frame & 0xFF;
4780 handle->
debug_print(
"ov2640: sensor write failed.\n");
4784 prev = (frame >> 8) & 0xFF;
4788 handle->
debug_print(
"ov2640: sensor write failed.\n");
4824 handle->
debug_print(
"ov2640: sensor read failed.\n");
4828 *frame = (uint16_t)prev;
4832 handle->
debug_print(
"ov2640: sensor read failed.\n");
4836 *frame |= (uint16_t)prev << 8;
4876 handle->
debug_print(
"ov2640: sensor read failed.\n");
4881 prev |= point & 0x03;
4885 handle->
debug_print(
"ov2640: sensor write failed.\n");
4889 prev = (point >> 2) & 0xFF;
4893 handle->
debug_print(
"ov2640: sensor write failed.\n");
4929 handle->
debug_print(
"ov2640: sensor read failed.\n");
4933 *point = prev & 0x03;
4937 handle->
debug_print(
"ov2640: sensor read failed.\n");
4941 *point |= prev << 2;
4975 handle->
debug_print(
"ov2640: sensor write failed.\n");
5011 handle->
debug_print(
"ov2640: sensor read failed.\n");
5055 handle->
debug_print(
"ov2640: sensor read failed.\n");
5060 prev |= ((aec >> 8) & 0x03) << 6;
5064 handle->
debug_print(
"ov2640: sensor write failed.\n");
5072 handle->
debug_print(
"ov2640: sensor write failed.\n");
5108 handle->
debug_print(
"ov2640: sensor read failed.\n");
5112 *aec = (uint16_t)((prev >> 6) & 0x03) << 8;
5116 handle->
debug_print(
"ov2640: sensor read failed.\n");
5160 handle->
debug_print(
"ov2640: sensor read failed.\n");
5165 prev |= ((aec >> 8) & 0x03) << 4;
5169 handle->
debug_print(
"ov2640: sensor write failed.\n");
5177 handle->
debug_print(
"ov2640: sensor write failed.\n");
5213 handle->
debug_print(
"ov2640: sensor read failed.\n");
5217 *aec = (uint16_t)((prev >> 4) & 0x03) << 8;
5221 handle->
debug_print(
"ov2640: sensor read failed.\n");
5255 prev = (avg >> 0) & 0xFF;
5259 handle->
debug_print(
"ov2640: sensor write failed.\n");
5263 prev = (avg >> 8) & 0xFF;
5267 handle->
debug_print(
"ov2640: sensor write failed.\n");
5271 prev = (avg >> 16) & 0xFF;
5275 handle->
debug_print(
"ov2640: sensor write failed.\n");
5279 prev = (avg >> 24) & 0xFF;
5283 handle->
debug_print(
"ov2640: sensor write failed.\n");
5319 handle->
debug_print(
"ov2640: sensor read failed.\n");
5323 *avg = (uint32_t)prev;
5327 handle->
debug_print(
"ov2640: sensor read failed.\n");
5331 *avg |= (uint32_t)prev << 8;
5335 handle->
debug_print(
"ov2640: sensor read failed.\n");
5339 *avg |= (uint32_t)prev << 16;
5343 handle->
debug_print(
"ov2640: sensor read failed.\n");
5347 *avg |= (uint32_t)prev << 24;
5381 handle->
debug_print(
"ov2640: sensor write failed.\n");
5417 handle->
debug_print(
"ov2640: sensor read failed.\n");
5455 handle->
debug_print(
"ov2640: sensor write failed.\n");
5491 handle->
debug_print(
"ov2640: sensor read failed.\n");
5528 handle->
debug_print(
"ov2640: dsp read failed.\n");
5533 prev |= enable << 0;
5537 handle->
debug_print(
"ov2640: dsp write failed.\n");
5573 handle->
debug_print(
"ov2640: dsp read failed.\n");
5610 handle->
debug_print(
"ov2640: dsp read failed.\n");
5615 prev |= enable << 7;
5619 handle->
debug_print(
"ov2640: dsp write failed.\n");
5655 handle->
debug_print(
"ov2640: dsp read failed.\n");
5699 handle->
debug_print(
"ov2640: dsp read failed.\n");
5703 prev &= ~(0x7F << 0);
5708 handle->
debug_print(
"ov2640: dsp write failed.\n");
5744 handle->
debug_print(
"ov2640: dsp read failed.\n");
5748 *pclk = prev & 0x7F;
5781 handle->
debug_print(
"ov2640: dsp read failed.\n");
5786 prev |= enable << 6;
5790 handle->
debug_print(
"ov2640: dsp write failed.\n");
5826 handle->
debug_print(
"ov2640: dsp read failed.\n");
5863 handle->
debug_print(
"ov2640: dsp read failed.\n");
5868 prev |= enable << 4;
5872 handle->
debug_print(
"ov2640: dsp write failed.\n");
5908 handle->
debug_print(
"ov2640: dsp read failed.\n");
5945 handle->
debug_print(
"ov2640: dsp read failed.\n");
5950 prev |= format << 2;
5954 handle->
debug_print(
"ov2640: dsp write failed.\n");
5990 handle->
debug_print(
"ov2640: dsp read failed.\n");
6027 handle->
debug_print(
"ov2640: dsp read failed.\n");
6032 prev |= timing << 1;
6036 handle->
debug_print(
"ov2640: dsp write failed.\n");
6072 handle->
debug_print(
"ov2640: dsp read failed.\n");
6109 handle->
debug_print(
"ov2640: dsp read failed.\n");
6114 prev |= byte_swap << 0;
6118 handle->
debug_print(
"ov2640: dsp write failed.\n");
6154 handle->
debug_print(
"ov2640: dsp read failed.\n");
6192 handle->
debug_print(
"ov2640: dsp read failed.\n");
6196 prev &= ~(1 << type);
6197 prev |= enable << type;
6201 handle->
debug_print(
"ov2640: dsp write failed.\n");
6239 handle->
debug_print(
"ov2640: dsp read failed.\n");
6277 handle->
debug_print(
"ov2640: dsp write failed.\n");
6313 handle->
debug_print(
"ov2640: dsp read failed.\n");
6351 handle->
debug_print(
"ov2640: dsp write failed.\n");
6387 handle->
debug_print(
"ov2640: dsp read failed.\n");
6424 handle->
debug_print(
"ov2640: dsp read failed.\n");
6429 prev |= enable << 5;
6433 handle->
debug_print(
"ov2640: dsp write failed.\n");
6469 handle->
debug_print(
"ov2640: dsp read failed.\n");
6506 handle->
debug_print(
"ov2640: dsp read failed.\n");
6511 prev |= enable << 3;
6515 handle->
debug_print(
"ov2640: dsp write failed.\n");
6551 handle->
debug_print(
"ov2640: dsp read failed.\n");
6588 handle->
debug_print(
"ov2640: dsp read failed.\n");
6593 prev |= enable << 2;
6597 handle->
debug_print(
"ov2640: dsp write failed.\n");
6633 handle->
debug_print(
"ov2640: dsp read failed.\n");
6670 handle->
debug_print(
"ov2640: dsp read failed.\n");
6675 prev |= enable << 1;
6679 handle->
debug_print(
"ov2640: dsp write failed.\n");
6715 handle->
debug_print(
"ov2640: dsp read failed.\n");
6752 handle->
debug_print(
"ov2640: dsp read failed.\n");
6757 prev |= enable << 0;
6761 handle->
debug_print(
"ov2640: dsp write failed.\n");
6797 handle->
debug_print(
"ov2640: dsp read failed.\n");
6835 handle->
debug_print(
"ov2640: dsp read failed.\n");
6839 prev &= ~(1 << bist);
6840 prev |= enable << bist;
6844 handle->
debug_print(
"ov2640: dsp write failed.\n");
6881 handle->
debug_print(
"ov2640: dsp read failed.\n");
6919 handle->
debug_print(
"ov2640: dsp write failed.\n");
6923 prev = (addr >> 8) & 0xFF;
6927 handle->
debug_print(
"ov2640: dsp write failed.\n");
6963 handle->
debug_print(
"ov2640: dsp read failed.\n");
6967 *addr = (uint16_t)prev;
6971 handle->
debug_print(
"ov2640: dsp read failed.\n");
6975 *addr |= (uint16_t)((uint16_t)prev << 8);
7009 handle->
debug_print(
"ov2640: dsp write failed.\n");
7045 handle->
debug_print(
"ov2640: dsp read failed.\n");
7083 handle->
debug_print(
"ov2640: dsp write failed.\n");
7119 handle->
debug_print(
"ov2640: dsp read failed.\n");
7157 handle->
debug_print(
"ov2640: dsp write failed.\n");
7193 handle->
debug_print(
"ov2640: dsp read failed.\n");
7230 handle->
debug_print(
"ov2640: dsp read failed.\n");
7235 prev |= enable << 7;
7239 handle->
debug_print(
"ov2640: dsp write failed.\n");
7275 handle->
debug_print(
"ov2640: dsp read failed.\n");
7312 handle->
debug_print(
"ov2640: dsp read failed.\n");
7317 prev |= enable << 6;
7321 handle->
debug_print(
"ov2640: dsp write failed.\n");
7357 handle->
debug_print(
"ov2640: dsp read failed.\n");
7394 handle->
debug_print(
"ov2640: dsp read failed.\n");
7399 prev |= enable << 5;
7403 handle->
debug_print(
"ov2640: dsp write failed.\n");
7439 handle->
debug_print(
"ov2640: dsp read failed.\n");
7476 handle->
debug_print(
"ov2640: dsp read failed.\n");
7481 prev |= enable << 4;
7485 handle->
debug_print(
"ov2640: dsp write failed.\n");
7521 handle->
debug_print(
"ov2640: dsp read failed.\n");
7558 handle->
debug_print(
"ov2640: dsp read failed.\n");
7563 prev |= enable << 3;
7567 handle->
debug_print(
"ov2640: dsp write failed.\n");
7603 handle->
debug_print(
"ov2640: dsp read failed.\n");
7640 handle->
debug_print(
"ov2640: dsp read failed.\n");
7645 prev |= enable << 2;
7649 handle->
debug_print(
"ov2640: dsp write failed.\n");
7685 handle->
debug_print(
"ov2640: dsp read failed.\n");
7722 handle->
debug_print(
"ov2640: dsp read failed.\n");
7727 prev |= enable << 1;
7731 handle->
debug_print(
"ov2640: dsp write failed.\n");
7767 handle->
debug_print(
"ov2640: dsp read failed.\n");
7804 handle->
debug_print(
"ov2640: dsp read failed.\n");
7809 prev |= enable << 0;
7813 handle->
debug_print(
"ov2640: dsp write failed.\n");
7849 handle->
debug_print(
"ov2640: dsp read failed.\n");
7886 handle->
debug_print(
"ov2640: dsp read failed.\n");
7891 prev |= enable << 7;
7895 handle->
debug_print(
"ov2640: dsp write failed.\n");
7931 handle->
debug_print(
"ov2640: dsp read failed.\n");
7968 handle->
debug_print(
"ov2640: dsp read failed.\n");
7973 prev |= enable << 6;
7977 handle->
debug_print(
"ov2640: dsp write failed.\n");
8013 handle->
debug_print(
"ov2640: dsp read failed.\n");
8050 handle->
debug_print(
"ov2640: dsp read failed.\n");
8055 prev |= enable << 5;
8059 handle->
debug_print(
"ov2640: dsp write failed.\n");
8095 handle->
debug_print(
"ov2640: dsp read failed.\n");
8132 handle->
debug_print(
"ov2640: dsp read failed.\n");
8137 prev |= enable << 4;
8141 handle->
debug_print(
"ov2640: dsp write failed.\n");
8177 handle->
debug_print(
"ov2640: dsp read failed.\n");
8214 handle->
debug_print(
"ov2640: dsp read failed.\n");
8219 prev |= enable << 3;
8223 handle->
debug_print(
"ov2640: dsp write failed.\n");
8259 handle->
debug_print(
"ov2640: dsp read failed.\n");
8296 handle->
debug_print(
"ov2640: dsp read failed.\n");
8301 prev |= enable << 2;
8305 handle->
debug_print(
"ov2640: dsp write failed.\n");
8341 handle->
debug_print(
"ov2640: dsp read failed.\n");
8378 handle->
debug_print(
"ov2640: dsp read failed.\n");
8383 prev |= enable << 1;
8387 handle->
debug_print(
"ov2640: dsp write failed.\n");
8423 handle->
debug_print(
"ov2640: dsp read failed.\n");
8460 handle->
debug_print(
"ov2640: dsp read failed.\n");
8465 prev |= enable << 0;
8469 handle->
debug_print(
"ov2640: dsp write failed.\n");
8505 handle->
debug_print(
"ov2640: dsp read failed.\n");
8542 handle->
debug_print(
"ov2640: dsp read failed.\n");
8547 prev |= enable << 5;
8551 handle->
debug_print(
"ov2640: dsp write failed.\n");
8587 handle->
debug_print(
"ov2640: dsp read failed.\n");
8624 handle->
debug_print(
"ov2640: dsp read failed.\n");
8629 prev |= enable << 4;
8633 handle->
debug_print(
"ov2640: dsp write failed.\n");
8669 handle->
debug_print(
"ov2640: dsp read failed.\n");
8706 handle->
debug_print(
"ov2640: dsp read failed.\n");
8711 prev |= enable << 3;
8715 handle->
debug_print(
"ov2640: dsp write failed.\n");
8751 handle->
debug_print(
"ov2640: dsp read failed.\n");
8788 handle->
debug_print(
"ov2640: dsp read failed.\n");
8793 prev |= enable << 2;
8797 handle->
debug_print(
"ov2640: dsp write failed.\n");
8833 handle->
debug_print(
"ov2640: dsp read failed.\n");
8870 handle->
debug_print(
"ov2640: dsp read failed.\n");
8875 prev |= enable << 0;
8879 handle->
debug_print(
"ov2640: dsp write failed.\n");
8915 handle->
debug_print(
"ov2640: dsp read failed.\n");
8952 handle->
debug_print(
"ov2640: dsp read failed.\n");
8957 prev |= enable << 7;
8961 handle->
debug_print(
"ov2640: dsp write failed.\n");
8997 handle->
debug_print(
"ov2640: dsp read failed.\n");
9034 handle->
debug_print(
"ov2640: dsp read failed.\n");
9039 prev |= enable << 6;
9043 handle->
debug_print(
"ov2640: dsp write failed.\n");
9079 handle->
debug_print(
"ov2640: dsp read failed.\n");
9117 handle->
debug_print(
"ov2640: dsp write failed.\n");
9153 handle->
debug_print(
"ov2640: dsp read failed.\n");
9191 handle->
debug_print(
"ov2640: dsp write failed.\n");
9227 handle->
debug_print(
"ov2640: dsp read failed.\n");
9271 handle->
debug_print(
"ov2640: dsp read failed.\n");
9277 prev |= ((size >> 11) & 0x01) << 6;
9278 prev |= ((size >> 0) & 0x07) << 3;
9282 handle->
debug_print(
"ov2640: dsp write failed.\n");
9286 prev = (size >> 3) & 0xFF;
9290 handle->
debug_print(
"ov2640: dsp write failed.\n");
9326 handle->
debug_print(
"ov2640: dsp read failed.\n");
9330 *size = (uint16_t)((prev >> 6) & 0x01) << 11;
9331 *size |= ((prev >> 3) & 0x07) << 0;
9335 handle->
debug_print(
"ov2640: dsp read failed.\n");
9379 handle->
debug_print(
"ov2640: dsp read failed.\n");
9384 prev |= ((size >> 0) & 0x07) << 0;
9388 handle->
debug_print(
"ov2640: dsp write failed.\n");
9392 prev = (size >> 3) & 0xFF;
9396 handle->
debug_print(
"ov2640: dsp write failed.\n");
9432 handle->
debug_print(
"ov2640: dsp read failed.\n");
9436 *size = ((prev >> 0) & 0x07) << 0;
9440 handle->
debug_print(
"ov2640: dsp read failed.\n");
9478 handle->
debug_print(
"ov2640: dsp write failed.\n");
9514 handle->
debug_print(
"ov2640: dsp read failed.\n");
9551 handle->
debug_print(
"ov2640: dsp read failed.\n");
9556 prev |= enable << 7;
9560 handle->
debug_print(
"ov2640: dsp write failed.\n");
9596 handle->
debug_print(
"ov2640: dsp read failed.\n");
9633 handle->
debug_print(
"ov2640: dsp read failed.\n");
9638 prev |= enable << 6;
9642 handle->
debug_print(
"ov2640: dsp write failed.\n");
9678 handle->
debug_print(
"ov2640: dsp read failed.\n");
9722 handle->
debug_print(
"ov2640: dsp read failed.\n");
9727 prev |= divider << 3;
9731 handle->
debug_print(
"ov2640: dsp write failed.\n");
9767 handle->
debug_print(
"ov2640: dsp read failed.\n");
9771 *divider = (prev >> 3) & 0x7;
9811 handle->
debug_print(
"ov2640: dsp read failed.\n");
9816 prev |= divider << 0;
9820 handle->
debug_print(
"ov2640: dsp write failed.\n");
9856 handle->
debug_print(
"ov2640: dsp read failed.\n");
9860 *divider = (prev >> 0) & 0x7;
9900 handle->
debug_print(
"ov2640: dsp read failed.\n");
9905 prev |= ((size >> 9) & 0x01) << 7;
9909 handle->
debug_print(
"ov2640: dsp write failed.\n");
9916 handle->
debug_print(
"ov2640: dsp read failed.\n");
9921 prev |= ((size >> 8) & 0x01) << 3;
9925 handle->
debug_print(
"ov2640: dsp write failed.\n");
9929 prev = (size >> 0) & 0xFF;
9933 handle->
debug_print(
"ov2640: dsp write failed.\n");
9969 handle->
debug_print(
"ov2640: dsp read failed.\n");
9973 *size = (uint16_t)((prev >> 7) & 0x01) << 9;
9977 handle->
debug_print(
"ov2640: dsp read failed.\n");
9981 *size |= (uint16_t)((prev >> 3) & 0x01) << 8;
9985 handle->
debug_print(
"ov2640: dsp read failed.\n");
10011 if (handle == NULL)
10015 if (handle->
inited != 1)
10029 handle->
debug_print(
"ov2640: dsp read failed.\n");
10034 prev |= ((size >> 8) & 0x01) << 7;
10038 handle->
debug_print(
"ov2640: dsp write failed.\n");
10042 prev = (size >> 0) & 0xFF;
10046 handle->
debug_print(
"ov2640: dsp write failed.\n");
10070 if (handle == NULL)
10074 if (handle->
inited != 1)
10082 handle->
debug_print(
"ov2640: dsp read failed.\n");
10086 *size = (uint16_t)((prev >> 7) & 0x01) << 8;
10090 handle->
debug_print(
"ov2640: dsp read failed.\n");
10116 if (handle == NULL)
10120 if (handle->
inited != 1)
10134 handle->
debug_print(
"ov2640: dsp read failed.\n");
10139 prev |= ((size >> 8) & 0x07) << 0;
10143 handle->
debug_print(
"ov2640: dsp write failed.\n");
10147 prev = (size >> 0) & 0xFF;
10151 handle->
debug_print(
"ov2640: dsp write failed.\n");
10175 if (handle == NULL)
10179 if (handle->
inited != 1)
10187 handle->
debug_print(
"ov2640: dsp read failed.\n");
10191 *size = (uint16_t)((prev >> 0) & 0x07) << 8;
10195 handle->
debug_print(
"ov2640: dsp read failed.\n");
10221 if (handle == NULL)
10225 if (handle->
inited != 1)
10239 handle->
debug_print(
"ov2640: dsp read failed.\n");
10244 prev |= ((size >> 8) & 0x07) << 4;
10248 handle->
debug_print(
"ov2640: dsp write failed.\n");
10252 prev = (size >> 0) & 0xFF;
10256 handle->
debug_print(
"ov2640: dsp write failed.\n");
10280 if (handle == NULL)
10284 if (handle->
inited != 1)
10292 handle->
debug_print(
"ov2640: dsp read failed.\n");
10296 *size = (uint16_t)((prev >> 4) & 0x07) << 8;
10300 handle->
debug_print(
"ov2640: dsp read failed.\n");
10326 if (handle == NULL)
10330 if (handle->
inited != 1)
10344 handle->
debug_print(
"ov2640: dsp read failed.\n");
10348 prev &= ~(0xF << 0);
10353 handle->
debug_print(
"ov2640: dsp write failed.\n");
10377 if (handle == NULL)
10381 if (handle->
inited != 1)
10389 handle->
debug_print(
"ov2640: dsp read failed.\n");
10393 *size = prev & 0xF;
10415 if (handle == NULL)
10419 if (handle->
inited != 1)
10433 handle->
debug_print(
"ov2640: dsp read failed.\n");
10437 prev &= ~(0xF << 4);
10442 handle->
debug_print(
"ov2640: dsp write failed.\n");
10466 if (handle == NULL)
10470 if (handle->
inited != 1)
10478 handle->
debug_print(
"ov2640: dsp read failed.\n");
10482 *size = (prev >> 4) & 0xF;
10504 if (handle == NULL)
10508 if (handle->
inited != 1)
10522 handle->
debug_print(
"ov2640: dsp read failed.\n");
10526 prev &= ~(0x3 << 0);
10527 prev |= ((size >> 8) & 0x3) << 0;
10531 handle->
debug_print(
"ov2640: dsp write failed.\n");
10535 prev = size & 0xFF;
10539 handle->
debug_print(
"ov2640: dsp write failed.\n");
10563 if (handle == NULL)
10567 if (handle->
inited != 1)
10575 handle->
debug_print(
"ov2640: dsp read failed.\n");
10579 *size = (uint16_t)(prev & 0x03) << 8;
10583 handle->
debug_print(
"ov2640: dsp read failed.\n");
10609 if (handle == NULL)
10613 if (handle->
inited != 1)
10627 handle->
debug_print(
"ov2640: dsp read failed.\n");
10631 prev &= ~(0x1 << 2);
10632 prev |= ((size >> 8) & 0x1) << 2;
10636 handle->
debug_print(
"ov2640: dsp write failed.\n");
10640 prev = size & 0xFF;
10644 handle->
debug_print(
"ov2640: dsp write failed.\n");
10668 if (handle == NULL)
10672 if (handle->
inited != 1)
10680 handle->
debug_print(
"ov2640: dsp read failed.\n");
10684 *size = (uint16_t)((prev >> 2) & 0x01) << 8;
10688 handle->
debug_print(
"ov2640: dsp read failed.\n");
10714 if (handle == NULL)
10718 if (handle->
inited != 1)
10732 handle->
debug_print(
"ov2640: dsp read failed.\n");
10736 prev &= ~(0xF << 4);
10737 prev |= speed << 4;
10741 handle->
debug_print(
"ov2640: dsp write failed.\n");
10765 if (handle == NULL)
10769 if (handle->
inited != 1)
10777 handle->
debug_print(
"ov2640: dsp read failed.\n");
10781 *speed = (prev >> 4) & 0xFF;
10802 if (handle == NULL)
10806 if (handle->
inited != 1)
10816 res = a_ov2640_dsp_write(handle, 0xC7, prev);
10819 handle->
debug_print(
"ov2640: dsp write failed.\n");
10829 res = a_ov2640_dsp_write(handle, 0xC7, prev);
10832 handle->
debug_print(
"ov2640: dsp write failed.\n");
10837 res = a_ov2640_dsp_write(handle, 0xCC, prev);
10840 handle->
debug_print(
"ov2640: dsp write failed.\n");
10845 res = a_ov2640_dsp_write(handle, 0xCD, prev);
10848 handle->
debug_print(
"ov2640: dsp write failed.\n");
10853 res = a_ov2640_dsp_write(handle, 0xCE, prev);
10856 handle->
debug_print(
"ov2640: dsp write failed.\n");
10866 res = a_ov2640_dsp_write(handle, 0xC7, prev);
10869 handle->
debug_print(
"ov2640: dsp write failed.\n");
10874 res = a_ov2640_dsp_write(handle, 0xCC, prev);
10877 handle->
debug_print(
"ov2640: dsp write failed.\n");
10882 res = a_ov2640_dsp_write(handle, 0xCD, prev);
10885 handle->
debug_print(
"ov2640: dsp write failed.\n");
10890 res = a_ov2640_dsp_write(handle, 0xCE, prev);
10893 handle->
debug_print(
"ov2640: dsp write failed.\n");
10903 res = a_ov2640_dsp_write(handle, 0xC7, prev);
10906 handle->
debug_print(
"ov2640: dsp write failed.\n");
10911 res = a_ov2640_dsp_write(handle, 0xCC, prev);
10914 handle->
debug_print(
"ov2640: dsp write failed.\n");
10919 res = a_ov2640_dsp_write(handle, 0xCD, prev);
10922 handle->
debug_print(
"ov2640: dsp write failed.\n");
10927 res = a_ov2640_dsp_write(handle, 0xCE, prev);
10930 handle->
debug_print(
"ov2640: dsp write failed.\n");
10940 res = a_ov2640_dsp_write(handle, 0xC7, prev);
10943 handle->
debug_print(
"ov2640: dsp write failed.\n");
10948 res = a_ov2640_dsp_write(handle, 0xCC, prev);
10951 handle->
debug_print(
"ov2640: dsp write failed.\n");
10956 res = a_ov2640_dsp_write(handle, 0xCD, prev);
10959 handle->
debug_print(
"ov2640: dsp write failed.\n");
10964 res = a_ov2640_dsp_write(handle, 0xCE, prev);
10967 handle->
debug_print(
"ov2640: dsp write failed.\n");
11001 if (handle == NULL)
11005 if (handle->
inited != 1)
11015 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11018 handle->
debug_print(
"ov2640: dsp write failed.\n");
11023 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11026 handle->
debug_print(
"ov2640: dsp write failed.\n");
11031 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11034 handle->
debug_print(
"ov2640: dsp write failed.\n");
11039 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11042 handle->
debug_print(
"ov2640: dsp write failed.\n");
11047 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11050 handle->
debug_print(
"ov2640: dsp write failed.\n");
11060 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11063 handle->
debug_print(
"ov2640: dsp write failed.\n");
11068 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11071 handle->
debug_print(
"ov2640: dsp write failed.\n");
11076 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11079 handle->
debug_print(
"ov2640: dsp write failed.\n");
11084 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11087 handle->
debug_print(
"ov2640: dsp write failed.\n");
11092 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11095 handle->
debug_print(
"ov2640: dsp write failed.\n");
11105 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11108 handle->
debug_print(
"ov2640: dsp write failed.\n");
11113 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11116 handle->
debug_print(
"ov2640: dsp write failed.\n");
11121 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11124 handle->
debug_print(
"ov2640: dsp write failed.\n");
11129 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11132 handle->
debug_print(
"ov2640: dsp write failed.\n");
11137 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11140 handle->
debug_print(
"ov2640: dsp write failed.\n");
11150 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11153 handle->
debug_print(
"ov2640: dsp write failed.\n");
11158 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11161 handle->
debug_print(
"ov2640: dsp write failed.\n");
11166 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11169 handle->
debug_print(
"ov2640: dsp write failed.\n");
11174 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11177 handle->
debug_print(
"ov2640: dsp write failed.\n");
11182 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11185 handle->
debug_print(
"ov2640: dsp write failed.\n");
11195 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11198 handle->
debug_print(
"ov2640: dsp write failed.\n");
11203 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11206 handle->
debug_print(
"ov2640: dsp write failed.\n");
11211 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11214 handle->
debug_print(
"ov2640: dsp write failed.\n");
11219 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11222 handle->
debug_print(
"ov2640: dsp write failed.\n");
11227 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11230 handle->
debug_print(
"ov2640: dsp write failed.\n");
11264 if (handle == NULL)
11268 if (handle->
inited != 1)
11273 switch (brightness)
11278 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11281 handle->
debug_print(
"ov2640: dsp write failed.\n");
11286 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11289 handle->
debug_print(
"ov2640: dsp write failed.\n");
11294 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11297 handle->
debug_print(
"ov2640: dsp write failed.\n");
11302 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11305 handle->
debug_print(
"ov2640: dsp write failed.\n");
11310 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11313 handle->
debug_print(
"ov2640: dsp write failed.\n");
11323 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11326 handle->
debug_print(
"ov2640: dsp write failed.\n");
11331 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11334 handle->
debug_print(
"ov2640: dsp write failed.\n");
11339 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11342 handle->
debug_print(
"ov2640: dsp write failed.\n");
11347 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11350 handle->
debug_print(
"ov2640: dsp write failed.\n");
11355 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11358 handle->
debug_print(
"ov2640: dsp write failed.\n");
11368 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11371 handle->
debug_print(
"ov2640: dsp write failed.\n");
11376 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11379 handle->
debug_print(
"ov2640: dsp write failed.\n");
11384 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11387 handle->
debug_print(
"ov2640: dsp write failed.\n");
11392 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11395 handle->
debug_print(
"ov2640: dsp write failed.\n");
11400 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11403 handle->
debug_print(
"ov2640: dsp write failed.\n");
11413 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11416 handle->
debug_print(
"ov2640: dsp write failed.\n");
11421 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11424 handle->
debug_print(
"ov2640: dsp write failed.\n");
11429 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11432 handle->
debug_print(
"ov2640: dsp write failed.\n");
11437 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11440 handle->
debug_print(
"ov2640: dsp write failed.\n");
11445 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11448 handle->
debug_print(
"ov2640: dsp write failed.\n");
11458 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11461 handle->
debug_print(
"ov2640: dsp write failed.\n");
11466 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11469 handle->
debug_print(
"ov2640: dsp write failed.\n");
11474 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11477 handle->
debug_print(
"ov2640: dsp write failed.\n");
11482 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11485 handle->
debug_print(
"ov2640: dsp write failed.\n");
11490 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11493 handle->
debug_print(
"ov2640: dsp write failed.\n");
11527 if (handle == NULL)
11531 if (handle->
inited != 1)
11541 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11544 handle->
debug_print(
"ov2640: dsp write failed.\n");
11549 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11552 handle->
debug_print(
"ov2640: dsp write failed.\n");
11557 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11560 handle->
debug_print(
"ov2640: dsp write failed.\n");
11565 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11568 handle->
debug_print(
"ov2640: dsp write failed.\n");
11573 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11576 handle->
debug_print(
"ov2640: dsp write failed.\n");
11581 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11584 handle->
debug_print(
"ov2640: dsp write failed.\n");
11589 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11592 handle->
debug_print(
"ov2640: dsp write failed.\n");
11602 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11605 handle->
debug_print(
"ov2640: dsp write failed.\n");
11610 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11613 handle->
debug_print(
"ov2640: dsp write failed.\n");
11618 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11621 handle->
debug_print(
"ov2640: dsp write failed.\n");
11626 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11629 handle->
debug_print(
"ov2640: dsp write failed.\n");
11634 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11637 handle->
debug_print(
"ov2640: dsp write failed.\n");
11642 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11645 handle->
debug_print(
"ov2640: dsp write failed.\n");
11650 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11653 handle->
debug_print(
"ov2640: dsp write failed.\n");
11663 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11666 handle->
debug_print(
"ov2640: dsp write failed.\n");
11671 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11674 handle->
debug_print(
"ov2640: dsp write failed.\n");
11679 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11682 handle->
debug_print(
"ov2640: dsp write failed.\n");
11687 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11690 handle->
debug_print(
"ov2640: dsp write failed.\n");
11695 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11698 handle->
debug_print(
"ov2640: dsp write failed.\n");
11703 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11706 handle->
debug_print(
"ov2640: dsp write failed.\n");
11711 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11714 handle->
debug_print(
"ov2640: dsp write failed.\n");
11724 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11727 handle->
debug_print(
"ov2640: dsp write failed.\n");
11732 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11735 handle->
debug_print(
"ov2640: dsp write failed.\n");
11740 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11743 handle->
debug_print(
"ov2640: dsp write failed.\n");
11748 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11751 handle->
debug_print(
"ov2640: dsp write failed.\n");
11756 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11759 handle->
debug_print(
"ov2640: dsp write failed.\n");
11764 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11767 handle->
debug_print(
"ov2640: dsp write failed.\n");
11772 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11775 handle->
debug_print(
"ov2640: dsp write failed.\n");
11785 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11788 handle->
debug_print(
"ov2640: dsp write failed.\n");
11793 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11796 handle->
debug_print(
"ov2640: dsp write failed.\n");
11801 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11804 handle->
debug_print(
"ov2640: dsp write failed.\n");
11809 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11812 handle->
debug_print(
"ov2640: dsp write failed.\n");
11817 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11820 handle->
debug_print(
"ov2640: dsp write failed.\n");
11825 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11828 handle->
debug_print(
"ov2640: dsp write failed.\n");
11833 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11836 handle->
debug_print(
"ov2640: dsp write failed.\n");
11870 if (handle == NULL)
11874 if (handle->
inited != 1)
11884 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11887 handle->
debug_print(
"ov2640: dsp write failed.\n");
11892 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11895 handle->
debug_print(
"ov2640: dsp write failed.\n");
11900 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11903 handle->
debug_print(
"ov2640: dsp write failed.\n");
11908 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11911 handle->
debug_print(
"ov2640: dsp write failed.\n");
11916 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11919 handle->
debug_print(
"ov2640: dsp write failed.\n");
11929 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11932 handle->
debug_print(
"ov2640: dsp write failed.\n");
11937 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11940 handle->
debug_print(
"ov2640: dsp write failed.\n");
11945 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11948 handle->
debug_print(
"ov2640: dsp write failed.\n");
11953 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11956 handle->
debug_print(
"ov2640: dsp write failed.\n");
11961 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11964 handle->
debug_print(
"ov2640: dsp write failed.\n");
11974 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11977 handle->
debug_print(
"ov2640: dsp write failed.\n");
11982 res = a_ov2640_dsp_write(handle, 0x7D, prev);
11985 handle->
debug_print(
"ov2640: dsp write failed.\n");
11990 res = a_ov2640_dsp_write(handle, 0x7C, prev);
11993 handle->
debug_print(
"ov2640: dsp write failed.\n");
11998 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12001 handle->
debug_print(
"ov2640: dsp write failed.\n");
12006 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12009 handle->
debug_print(
"ov2640: dsp write failed.\n");
12019 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12022 handle->
debug_print(
"ov2640: dsp write failed.\n");
12027 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12030 handle->
debug_print(
"ov2640: dsp write failed.\n");
12035 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12038 handle->
debug_print(
"ov2640: dsp write failed.\n");
12043 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12046 handle->
debug_print(
"ov2640: dsp write failed.\n");
12051 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12054 handle->
debug_print(
"ov2640: dsp write failed.\n");
12064 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12067 handle->
debug_print(
"ov2640: dsp write failed.\n");
12072 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12075 handle->
debug_print(
"ov2640: dsp write failed.\n");
12080 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12083 handle->
debug_print(
"ov2640: dsp write failed.\n");
12088 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12091 handle->
debug_print(
"ov2640: dsp write failed.\n");
12096 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12099 handle->
debug_print(
"ov2640: dsp write failed.\n");
12109 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12112 handle->
debug_print(
"ov2640: dsp write failed.\n");
12117 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12120 handle->
debug_print(
"ov2640: dsp write failed.\n");
12125 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12128 handle->
debug_print(
"ov2640: dsp write failed.\n");
12133 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12136 handle->
debug_print(
"ov2640: dsp write failed.\n");
12141 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12144 handle->
debug_print(
"ov2640: dsp write failed.\n");
12154 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12157 handle->
debug_print(
"ov2640: dsp write failed.\n");
12162 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12165 handle->
debug_print(
"ov2640: dsp write failed.\n");
12170 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12173 handle->
debug_print(
"ov2640: dsp write failed.\n");
12178 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12181 handle->
debug_print(
"ov2640: dsp write failed.\n");
12186 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12189 handle->
debug_print(
"ov2640: dsp write failed.\n");
12199 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12202 handle->
debug_print(
"ov2640: dsp write failed.\n");
12207 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12210 handle->
debug_print(
"ov2640: dsp write failed.\n");
12215 res = a_ov2640_dsp_write(handle, 0x7C, prev);
12218 handle->
debug_print(
"ov2640: dsp write failed.\n");
12223 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12226 handle->
debug_print(
"ov2640: dsp write failed.\n");
12231 res = a_ov2640_dsp_write(handle, 0x7D, prev);
12234 handle->
debug_print(
"ov2640: dsp write failed.\n");
12266 if (handle == NULL)
12270 if (handle->
inited != 1)
12275 return a_ov2640_dsp_read(handle, reg, data);
12292 if (handle == NULL)
12296 if (handle->
inited != 1)
12301 return a_ov2640_dsp_write(handle, reg, data);
12318 if (handle == NULL)
12322 if (handle->
inited != 1)
12327 return a_ov2640_sensor_read(handle, reg, data);
12344 if (handle == NULL)
12348 if (handle->
inited != 1)
12353 return a_ov2640_sensor_write(handle, reg, data);
12374 strncpy(info->
interface,
"SCCB DVP", 16);
#define OV2640_REG_SENSOR_BANK_COM1
#define OV2640_REG_SENSOR_BANK_GAIN
chip sensor bank register definition
#define OV2640_REG_DSP_BANK_CTRL1
#define OV2640_REG_DSP_BANK_RESET
#define OV2640_REG_DSP_BANK_VHYX
#define OV2640_REG_DSP_BANK_CTRLI
#define OV2640_REG_SENSOR_BANK_COM25
#define OV2640_REG_SENSOR_BANK_VSTRT
#define OV2640_REG_DSP_BANK_HSIZE8
#define OV2640_REG_SENSOR_BANK_YAVG
#define OV2640_REG_DSP_BANK_P_CMD
#define OV2640_REG_SENSOR_BANK_AEW
#define OV2640_REG_SENSOR_BANK_MIDH
#define OV2640_REG_SENSOR_BANK_ADDVSL
#define OV2640_REG_SENSOR_BANK_FRARL
#define OV2640_REG_SENSOR_BANK_REG5E
#define OV2640_REG_SENSOR_BANK_REG2A
#define OV2640_REG_SENSOR_BANK_FLH
#define OV2640_REG_DSP_BANK_CTRL0
#define OV2640_REG_SENSOR_BANK_COM8
#define OV2640_REG_SENSOR_BANK_HSDY
#define OV2640_REG_DSP_BANK_MC_D
#define OV2640_REG_SENSOR_BANK_AEB
#define OV2640_ADDRESS
iic address definition
#define OV2640_REG_DSP_BANK_CTRL2
#define OV2640_REG_SENSOR_BANK_REG45
#define OV2640_REG_SENSOR_BANK_REG5F
#define OV2640_REG_SENSOR_BANK_HREFST
const uint8_t gsc_ov2640_jpeg_init_table[][2]
jpeg init table definition
#define OV2640_REG_SENSOR_BANK_PIDH
#define OV2640_REG_DSP_BANK_HSIZE
#define OV2640_REG_DSP_BANK_MS_SP
#define OV2640_REG_SENSOR_BANK_REG04
#define OV2640_REG_DSP_BANK_ZMOH
#define OV2640_REG_SENSOR_BANK_ZOOMS
const uint8_t gsc_ov2640_init_table[][2]
innter table globle definition
#define OV2640_REG_DSP_BANK_VSIZE
#define OV2640_REG_SENSOR_BANK_CLKRC
#define OV2640_REG_DSP_BANK_TEST
#define OV2640_REG_DSP_BANK_R_DVP_SP
#define OV2640_REG_DSP_BANK_IMAGE_MODE
#define SUPPLY_VOLTAGE_MAX
#define OV2640_REG_SENSOR_BANK_COM2
#define OV2640_REG_SENSOR_BANK_HREFEND
#define OV2640_REG_DSP_BANK_RA_DLMT
#define OV2640_REG_DSP_BANK_XOFFL
#define OV2640_REG_SENSOR_BANK_COM7
#define OV2640_REG_DSP_BANK_SS_CTRL
#define OV2640_REG_SENSOR_BANK_MIDL
#define OV2640_REG_SENSOR_BANK_BD60
#define OV2640_REG_SENSOR_BANK_REG5D
#define OV2640_REG_DSP_BANK_R_BYPASS
chip dsp bank register definition
#define OV2640_REG_SENSOR_BANK_COM3
#define OV2640_REG_DSP_BANK_SIZEL
#define OV2640_REG_SENSOR_BANK_HISTO_LOW
#define OV2640_REG_SENSOR_BANK_VEND
#define OV2640_REG_SENSOR_BANK_COM22
#define OV2640_REG_SENSOR_BANK_COM4
#define OV2640_REG_DSP_BANK_VSIZE8
#define OV2640_REG_SENSOR_BANK_HISTO_HIGH
#define OV2640_REG_SENSOR_BANK_REG08
#define OV2640_REG_SENSOR_BANK_PIDL
#define OV2640_REG_DSP_BANK_YOFFL
#define OV2640_REG_SENSOR_BANK_COM19
#define MANUFACTURER_NAME
#define SUPPLY_VOLTAGE_MIN
#define OV2640_REG_DSP_BANK_BPADDR
#define OV2640_REG_DSP_BANK_ZMOW
#define OV2640_REG_SENSOR_BANK_COM10
#define OV2640_REG_DSP_BANK_SS_ID
#define OV2640_REG_DSP_BANK_CTRL3
#define OV2640_REG_SENSOR_BANK_HEDY
#define OV2640_REG_SENSOR_BANK_AEC
#define OV2640_REG_DSP_BANK_BPDATA
#define OV2640_REG_SENSOR_BANK_FLL
#define OV2640_REG_SENSOR_BANK_ADDVSH
#define OV2640_REG_SENSOR_BANK_VV
#define OV2640_REG_DSP_BANK_MC_BIST
#define OV2640_REG_SENSOR_BANK_REG32
#define OV2640_REG_DSP_BANK_DPRP
#define CHIP_NAME
chip information definition
#define OV2640_REG_DSP_BANK_P_STATUS
#define OV2640_REG_SENSOR_BANK_ARCOM2
#define OV2640_REG_DSP_BANK_MC_AL
#define OV2640_REG_SENSOR_BANK_REG60
#define OV2640_REG_DSP_BANK_QS
#define OV2640_REG_SENSOR_BANK_BD50
#define OV2640_REG_DSP_BANK_MC_AH
#define OV2640_REG_SENSOR_BANK_COM9
#define OV2640_REG_DSP_BANK_ZMHH
const uint8_t gsc_ov2640_rgb565_init_table[][2]
rgb565 init table definition
driver ov2640 header file
uint8_t ov2640_get_awb(ov2640_handle_t *handle, ov2640_bool_t *enable)
get awb status
uint8_t ov2640_set_offset_y(ov2640_handle_t *handle, uint16_t size)
set offset y
uint8_t ov2640_set_aec_enable(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable aec enable
uint8_t ov2640_set_vertical_size(ov2640_handle_t *handle, uint16_t size)
set vertical size
uint8_t ov2640_set_awb_gain(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable awb gain
uint8_t ov2640_get_byte_swap(ov2640_handle_t *handle, ov2640_byte_swap_t *byte_swap)
get byte swap
uint8_t ov2640_set_cip(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable cip
uint8_t ov2640_set_vfirst(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable vfirst
uint8_t ov2640_set_output_width(ov2640_handle_t *handle, uint16_t size)
set output width
ov2640_dvp_output_format_t
ov2640 dvp output format enumeration definition
uint8_t ov2640_get_sde(ov2640_handle_t *handle, ov2640_bool_t *enable)
get sde status
uint8_t ov2640_set_rgb(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable rgb
uint8_t ov2640_set_pre(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable pre
uint8_t ov2640_get_quantization_scale_factor(ov2640_handle_t *handle, uint8_t *factor)
get quantization scale factor
uint8_t ov2640_set_sccb_protocol_command(ov2640_handle_t *handle, uint8_t cmd)
set sccb protocol command
uint8_t ov2640_get_wpc(ov2640_handle_t *handle, ov2640_bool_t *enable)
get wpc status
uint8_t ov2640_get_yuv(ov2640_handle_t *handle, ov2640_bool_t *enable)
get yuv status
uint8_t ov2640_set_dg(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable dg
uint8_t ov2640_get_image_vertical(ov2640_handle_t *handle, uint16_t *size)
get image vertical
uint8_t ov2640_get_offset_x(ov2640_handle_t *handle, uint16_t *size)
get offset x
uint8_t ov2640_set_uv_avg(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable uv avg
uint8_t ov2640_get_aec_sel(ov2640_handle_t *handle, ov2640_bool_t *enable)
get aec sel status
uint8_t ov2640_get_sensor_pass_through_access(ov2640_handle_t *handle, ov2640_bool_t *enable)
get sensor pass through access status
uint8_t ov2640_get_dmy(ov2640_handle_t *handle, ov2640_bool_t *enable)
get dmy status
uint8_t ov2640_set_dvp_y8(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable dvp y8
uint8_t ov2640_set_sde(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable sde
uint8_t ov2640_set_sccb_master_access(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable sccb master access
uint8_t ov2640_get_cmx(ov2640_handle_t *handle, ov2640_bool_t *enable)
get cmx status
uint8_t ov2640_get_dvp_y8(ov2640_handle_t *handle, ov2640_bool_t *enable)
get dvp y8 status
uint8_t ov2640_set_address_auto_increase(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable address auto increase
uint8_t ov2640_set_round(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable round
uint8_t ov2640_get_dsp_bypass(ov2640_handle_t *handle, ov2640_bool_t *enable)
get dsp bypass status
uint8_t ov2640_get_dg(ov2640_handle_t *handle, ov2640_bool_t *enable)
get dg status
uint8_t ov2640_set_sccb_master_clock_delay(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable sccb master clock delay
uint8_t ov2640_set_sccb(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable sccb
uint8_t ov2640_get_sccb_master_clock_delay(ov2640_handle_t *handle, ov2640_bool_t *enable)
get sccb master clock delay status
uint8_t ov2640_get_stat_sel(ov2640_handle_t *handle, ov2640_bool_t *enable)
get stat sel status
uint8_t ov2640_set_lp_dp(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable lp dp
uint8_t ov2640_set_horizontal_divider(ov2640_handle_t *handle, uint8_t divider)
set horizontal divider
uint8_t ov2640_get_raw_gma(ov2640_handle_t *handle, ov2640_bool_t *enable)
get raw gma status
uint8_t ov2640_set_dvp_pclk(ov2640_handle_t *handle, uint8_t pclk)
set dvp pclk
uint8_t ov2640_get_lp_dp(ov2640_handle_t *handle, ov2640_bool_t *enable)
get lp dp status
uint8_t ov2640_set_bist(ov2640_handle_t *handle, ov2640_bist_t bist, ov2640_bool_t enable)
enable or disable bist
uint8_t ov2640_get_sde_indirect_register_address(ov2640_handle_t *handle, uint8_t *addr)
get sde indirect register address
uint8_t ov2640_get_vertical_divider(ov2640_handle_t *handle, uint8_t *divider)
get vertical divider
uint8_t ov2640_get_output_width(ov2640_handle_t *handle, uint16_t *size)
get output width
uint8_t ov2640_get_sccb_master_access(ov2640_handle_t *handle, ov2640_bool_t *enable)
get sccb master access status
uint8_t ov2640_set_program_memory_pointer_address(ov2640_handle_t *handle, uint16_t addr)
set program memory pointer address
uint8_t ov2640_set_raw(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable raw
uint8_t ov2640_set_yuv422(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable yuv422
uint8_t ov2640_set_uv_adj(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable uv adj
uint8_t ov2640_set_dp_selx(ov2640_handle_t *handle, uint8_t size)
set dp selx
uint8_t ov2640_get_sccb_protocol_command(ov2640_handle_t *handle, uint8_t *cmd)
get sccb protocol command
uint8_t ov2640_get_jpeg_output(ov2640_handle_t *handle, ov2640_bool_t *enable)
get jpeg output status
uint8_t ov2640_set_quantization_scale_factor(ov2640_handle_t *handle, uint8_t factor)
set quantization scale factor
uint8_t ov2640_set_horizontal_size(ov2640_handle_t *handle, uint16_t size)
set horizontal size
uint8_t ov2640_get_uv_avg(ov2640_handle_t *handle, ov2640_bool_t *enable)
get uv avg status
uint8_t ov2640_set_vertical_divider(ov2640_handle_t *handle, uint8_t divider)
set vertical divider
uint8_t ov2640_set_raw_gma(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable raw gma
uint8_t ov2640_set_stat_sel(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable stat sel
uint8_t ov2640_set_sensor_pass_through_access(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable sensor pass through access
uint8_t ov2640_get_output_height(ov2640_handle_t *handle, uint16_t *size)
get output height
ov2640_byte_swap_t
ov2640 byte sawp enumeration definition
uint8_t ov2640_set_output_height(ov2640_handle_t *handle, uint16_t size)
set output height
ov2640_bist_t
ov2640 bist enumeration definition
uint8_t ov2640_get_sccb_protocol_status(ov2640_handle_t *handle, uint8_t *status)
get sccb protocol status
uint8_t ov2640_get_vertical_size(ov2640_handle_t *handle, uint16_t *size)
get vertical size
uint8_t ov2640_set_reset(ov2640_handle_t *handle, ov2640_reset_t type, ov2640_bool_t enable)
enable or disable reset
uint8_t ov2640_set_image_horizontal(ov2640_handle_t *handle, uint16_t size)
set image horizontal
uint8_t ov2640_set_cmx(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable cmx
uint8_t ov2640_get_raw(ov2640_handle_t *handle, ov2640_bool_t *enable)
get raw status
uint8_t ov2640_get_image_horizontal(ov2640_handle_t *handle, uint16_t *size)
get image horizontal
uint8_t ov2640_set_bpc(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable bpc
uint8_t ov2640_get_sccb(ov2640_handle_t *handle, ov2640_bool_t *enable)
get sccb status
ov2640_reset_t
ov2640 reset enumeration definition
uint8_t ov2640_get_program_memory_pointer_access_address(ov2640_handle_t *handle, uint8_t *addr)
get program memory pointer access address
uint8_t ov2640_get_address_auto_increase(ov2640_handle_t *handle, ov2640_bool_t *enable)
get address auto increase status
uint8_t ov2640_set_byte_swap(ov2640_handle_t *handle, ov2640_byte_swap_t byte_swap)
set byte swap
uint8_t ov2640_get_zoom_speed(ov2640_handle_t *handle, uint8_t *speed)
get zoom speed
uint8_t ov2640_get_dcw(ov2640_handle_t *handle, ov2640_bool_t *enable)
get dcw status
uint8_t ov2640_get_round(ov2640_handle_t *handle, ov2640_bool_t *enable)
get round status
uint8_t ov2640_get_lenc(ov2640_handle_t *handle, ov2640_bool_t *enable)
get lenc status
uint8_t ov2640_set_zoom_speed(ov2640_handle_t *handle, uint8_t speed)
set zoom speed
ov2640_href_timing_t
ov2640 href timing enumeration definition
uint8_t ov2640_get_rgb(ov2640_handle_t *handle, ov2640_bool_t *enable)
get rgb status
uint8_t ov2640_set_dvp_jpeg_output_href_timing(ov2640_handle_t *handle, ov2640_href_timing_t timing)
set dvp jpeg output href timing
uint8_t ov2640_get_reset(ov2640_handle_t *handle, ov2640_reset_t type, ov2640_bool_t *enable)
get reset status
uint8_t ov2640_set_aec_sel(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable aec sel
uint8_t ov2640_set_awb(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable awb
uint8_t ov2640_set_offset_x(ov2640_handle_t *handle, uint16_t size)
set offset x
uint8_t ov2640_get_pre(ov2640_handle_t *handle, ov2640_bool_t *enable)
get pre status
uint8_t ov2640_set_sde_indirect_register_data(ov2640_handle_t *handle, uint8_t data)
set sde indirect register data
uint8_t ov2640_set_jpeg_output(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable jpeg output
uint8_t ov2640_get_sde_indirect_register_data(ov2640_handle_t *handle, uint8_t *data)
get sde indirect register data
uint8_t ov2640_set_sde_indirect_register_address(ov2640_handle_t *handle, uint8_t addr)
set sde indirect register address
uint8_t ov2640_set_image_vertical(ov2640_handle_t *handle, uint16_t size)
set image vertical
uint8_t ov2640_get_sccb_slave_id(ov2640_handle_t *handle, uint8_t *id)
get sccb slave id
uint8_t ov2640_get_bist(ov2640_handle_t *handle, ov2640_bist_t bist, ov2640_bool_t *enable)
get bist status
uint8_t ov2640_set_lenc(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable lenc
uint8_t ov2640_get_program_memory_pointer_address(ov2640_handle_t *handle, uint16_t *addr)
get program memory pointer address
uint8_t ov2640_get_uv_adj(ov2640_handle_t *handle, ov2640_bool_t *enable)
get uv adj status
uint8_t ov2640_set_dsp_bypass(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable dsp bypass
uint8_t ov2640_get_dvp_jpeg_output_href_timing(ov2640_handle_t *handle, ov2640_href_timing_t *timing)
get dvp jpeg output href timing
uint8_t ov2640_get_vfirst(ov2640_handle_t *handle, ov2640_bool_t *enable)
get vfirst status
uint8_t ov2640_get_horizontal_divider(ov2640_handle_t *handle, uint8_t *divider)
get horizontal divider
uint8_t ov2640_get_dvp_pclk(ov2640_handle_t *handle, uint8_t *pclk)
get dvp pclk
uint8_t ov2640_get_yuv422(ov2640_handle_t *handle, ov2640_bool_t *enable)
get yuv422 status
uint8_t ov2640_get_cip(ov2640_handle_t *handle, ov2640_bool_t *enable)
get cip status
uint8_t ov2640_get_dp_selx(ov2640_handle_t *handle, uint8_t *size)
get dp selx
uint8_t ov2640_set_auto_mode(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable auto_mode
uint8_t ov2640_set_sccb_slave_id(ov2640_handle_t *handle, uint8_t id)
set sccb slave id
uint8_t ov2640_get_bpc(ov2640_handle_t *handle, ov2640_bool_t *enable)
get bpc status
uint8_t ov2640_get_horizontal_size(ov2640_handle_t *handle, uint16_t *size)
get horizontal size
uint8_t ov2640_set_wpc(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable wpc
uint8_t ov2640_set_yuv(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable yuv
uint8_t ov2640_get_auto_mode(ov2640_handle_t *handle, ov2640_bool_t *enable)
get auto mode status
uint8_t ov2640_get_sccb_master_speed(ov2640_handle_t *handle, uint8_t *speed)
get sccb master speed
uint8_t ov2640_get_dvp_output_format(ov2640_handle_t *handle, ov2640_dvp_output_format_t *format)
get dvp output format
uint8_t ov2640_get_awb_gain(ov2640_handle_t *handle, ov2640_bool_t *enable)
get awb gain status
uint8_t ov2640_set_program_memory_pointer_access_address(ov2640_handle_t *handle, uint8_t addr)
set program memory pointer access address
uint8_t ov2640_set_sccb_master_speed(ov2640_handle_t *handle, uint8_t speed)
set sccb master speed
uint8_t ov2640_set_dmy(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable dmy
uint8_t ov2640_get_aec_enable(ov2640_handle_t *handle, ov2640_bool_t *enable)
get aec enable status
uint8_t ov2640_set_sccb_protocol_status(ov2640_handle_t *handle, uint8_t status)
set sccb protocol status
uint8_t ov2640_set_dcw(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable dcw
uint8_t ov2640_set_dvp_output_format(ov2640_handle_t *handle, ov2640_dvp_output_format_t format)
set dvp output format
uint8_t ov2640_set_dp_sely(ov2640_handle_t *handle, uint8_t size)
set dp sely
uint8_t ov2640_get_offset_y(ov2640_handle_t *handle, uint16_t *size)
get offset y
uint8_t ov2640_get_dp_sely(ov2640_handle_t *handle, uint8_t *size)
get dp sely
uint8_t ov2640_get_dsp_reg(ov2640_handle_t *handle, uint8_t reg, uint8_t *data)
get dsp reg
uint8_t ov2640_set_dsp_reg(ov2640_handle_t *handle, uint8_t reg, uint8_t data)
set dsp reg
uint8_t ov2640_set_sensor_reg(ov2640_handle_t *handle, uint8_t reg, uint8_t data)
set sensor reg
uint8_t ov2640_get_sensor_reg(ov2640_handle_t *handle, uint8_t reg, uint8_t *data)
get sensor reg
uint8_t ov2640_set_special_effect(ov2640_handle_t *handle, ov2640_special_effect_t effect)
set special effect
ov2640_special_effect_t
ov2640 special effect enumeration definition
uint8_t ov2640_set_light_mode(ov2640_handle_t *handle, ov2640_light_mode_t mode)
set light mode
ov2640_contrast_t
ov2640 contrast enumeration definition
ov2640_brightness_t
ov2640 brightness enumeration definition
ov2640_color_saturation_t
ov2640 color saturation enumeration definition
uint8_t ov2640_set_color_saturation(ov2640_handle_t *handle, ov2640_color_saturation_t color)
set color saturation
uint8_t ov2640_set_contrast(ov2640_handle_t *handle, ov2640_contrast_t contrast)
set contrast
ov2640_light_mode_t
ov2640 light mode enumeration definition
uint8_t ov2640_set_brightness(ov2640_handle_t *handle, ov2640_brightness_t brightness)
set brightness
@ OV2640_SPECIAL_EFFECT_ANTIQUE
@ OV2640_SPECIAL_EFFECT_BW_NEGATIVE
@ OV2640_SPECIAL_EFFECT_GREENISH
@ OV2640_SPECIAL_EFFECT_BLUISH
@ OV2640_SPECIAL_EFFECT_REDDISH
@ OV2640_SPECIAL_EFFECT_NEGATIVE
@ OV2640_SPECIAL_EFFECT_NORMAL
@ OV2640_SPECIAL_EFFECT_BW
@ OV2640_CONTRAST_POSITIVE_1
@ OV2640_CONTRAST_NEGATIVE_1
@ OV2640_CONTRAST_POSITIVE_2
@ OV2640_CONTRAST_NEGATIVE_2
@ OV2640_BRIGHTNESS_NEGATIVE_1
@ OV2640_BRIGHTNESS_NEGATIVE_2
@ OV2640_BRIGHTNESS_POSITIVE_2
@ OV2640_BRIGHTNESS_POSITIVE_1
@ OV2640_COLOR_SATURATION_NEGATIVE_1
@ OV2640_COLOR_SATURATION_POSITIVE_2
@ OV2640_COLOR_SATURATION_POSITIVE_1
@ OV2640_COLOR_SATURATION_0
@ OV2640_COLOR_SATURATION_NEGATIVE_2
@ OV2640_LIGHT_MODE_OFFICE
@ OV2640_LIGHT_MODE_CLOUDY
@ OV2640_LIGHT_MODE_SUNNY
uint8_t ov2640_get_power_reset_pin_remap(ov2640_handle_t *handle, ov2640_bool_t *enable)
get power reset pin remap status
uint8_t ov2640_table_jpeg_init(ov2640_handle_t *handle)
table jpeg init
uint8_t ov2640_get_line_interval_adjust(ov2640_handle_t *handle, uint16_t *adjust)
get line interval adjust
uint8_t ov2640_get_luminance_signal_high_range(ov2640_handle_t *handle, uint8_t *range)
get luminance signal high range
uint8_t ov2640_table_rgb565_init(ov2640_handle_t *handle)
table rgb565 init
uint8_t ov2640_set_vertical_flip(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable vertical flip
ov2640_edge_t
ov2640 edge enumeration definition
uint8_t ov2640_get_hsync_position_and_width_end_point(ov2640_handle_t *handle, uint16_t *position)
get hsync position and width end point
uint8_t ov2640_get_agc_gain(ov2640_handle_t *handle, uint16_t *gain)
get agc gain
uint8_t ov2640_get_luminance_average(ov2640_handle_t *handle, uint8_t *average)
get luminance average
uint8_t ov2640_set_hsync_polarity(ov2640_handle_t *handle, ov2640_polarity_t polarity)
set hsync polarity
uint8_t ov2640_set_60hz_banding_aec(ov2640_handle_t *handle, uint16_t aec)
set 60hz banding aec
uint8_t ov2640_set_horizontal_window_end(ov2640_handle_t *handle, uint16_t end)
set horizontal window end
uint8_t ov2640_set_mode(ov2640_handle_t *handle, ov2640_mode_t mode)
set mode
uint8_t ov2640_get_16_zone_average_weight_option(ov2640_handle_t *handle, uint32_t *avg)
get 16 zone average weight option
uint8_t ov2640_get_band_filter(ov2640_handle_t *handle, ov2640_bool_t *enable)
get band filter status
uint8_t ov2640_get_href_chsync_swap(ov2640_handle_t *handle, ov2640_bool_t *enable)
get href chsync swap status
uint8_t ov2640_set_frame_length_adjustment(ov2640_handle_t *handle, uint16_t frame)
set frame length adjustment
ov2640_resolution_t
ov2640 resolution enumeration definition
struct ov2640_info_s ov2640_info_t
ov2640 information structure definition
uint8_t ov2640_set_hsync_position_and_width_end_point(ov2640_handle_t *handle, uint16_t position)
set hsync position and width end point
uint8_t ov2640_set_clock_rate_double(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable double clock rate
uint8_t ov2640_set_href_chsync_swap(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable href chsync swap
uint8_t ov2640_table_init(ov2640_handle_t *handle)
table init
uint8_t ov2640_set_pclk(ov2640_handle_t *handle, ov2640_pclk_t pclk)
set pclk
uint8_t ov2640_get_clock_divider(ov2640_handle_t *handle, uint8_t *divider)
get clock divider
uint8_t ov2640_deinit(ov2640_handle_t *handle)
close the chip
ov2640_agc_gain_t
ov2640 agc gain enumeration definition
uint8_t ov2640_set_output_drive(ov2640_handle_t *handle, ov2640_output_drive_t select)
set output drive
uint8_t ov2640_set_flash_light(ov2640_handle_t *handle, uint8_t control)
set flash light
uint8_t ov2640_get_histogram_algorithm_high_level(ov2640_handle_t *handle, uint8_t *level)
get histogram algorithm high level
uint8_t ov2640_get_frame_length_adjustment(ov2640_handle_t *handle, uint16_t *frame)
get frame length adjustment
uint8_t ov2640_get_horizontal_window_start(ov2640_handle_t *handle, uint16_t *start)
get horizontal window start
uint8_t ov2640_set_vertical_window_line_start(ov2640_handle_t *handle, uint16_t start)
set vertical window line start
uint8_t ov2640_get_luminance_signal_low_range(ov2640_handle_t *handle, uint8_t *range)
get luminance signal low range
uint8_t ov2640_set_zoom(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable zoom
uint8_t ov2640_get_zoom_mode_vertical_window_start_point(ov2640_handle_t *handle, uint16_t *point)
get zoom mode vertical window start point
uint8_t ov2640_set_vertical_window_line_end(ov2640_handle_t *handle, uint16_t end)
set vertical window line end
uint8_t ov2640_get_resolution(ov2640_handle_t *handle, ov2640_resolution_t *resolution)
get resolution
ov2640_pin_status_t
ov2640 pin status enumeration definition
uint8_t ov2640_get_pclk(ov2640_handle_t *handle, ov2640_pclk_t *pclk)
get pclk
uint8_t ov2640_set_live_video_after_snapshot(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable live video after snapshot
uint8_t ov2640_get_zoom_window_horizontal_start_point(ov2640_handle_t *handle, ov2640_bool_t *enable)
get zoom window horizontal start point status
uint8_t ov2640_get_output_drive(ov2640_handle_t *handle, ov2640_output_drive_t *select)
get output drive
uint8_t ov2640_set_pclk_edge(ov2640_handle_t *handle, ov2640_edge_t edge)
set pclk edge
uint8_t ov2640_get_fast_mode_large_step_range(ov2640_handle_t *handle, uint8_t *high_threshold, uint8_t *low_threshold)
get fast mode large step range
uint8_t ov2640_set_band(ov2640_handle_t *handle, ov2640_band_t band)
set band
ov2640_control_t
ov2640 control enumeration definition
uint8_t ov2640_set_aec(ov2640_handle_t *handle, uint16_t aec)
set aec
uint8_t ov2640_info(ov2640_info_t *info)
get chip's information
uint8_t ov2640_set_clock_output_power_down_pin_status(ov2640_handle_t *handle, ov2640_pin_status_t status)
set clock output power down pin status
uint8_t ov2640_get_vertical_window_line_start(ov2640_handle_t *handle, uint16_t *start)
get vertical window line start
uint8_t ov2640_get_60hz_banding_aec(ov2640_handle_t *handle, uint16_t *aec)
get 60hz banding aec
uint8_t ov2640_set_line_interval_adjust(ov2640_handle_t *handle, uint16_t adjust)
set line interval adjust
uint8_t ov2640_set_pclk_output_qualified_by_href(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable pclk output qualified by href
uint8_t ov2640_set_auto_band(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable auto band
uint8_t ov2640_get_horizontal_window_end(ov2640_handle_t *handle, uint16_t *end)
get horizontal window end
uint8_t ov2640_set_zoom_mode_vertical_window_start_point(ov2640_handle_t *handle, uint16_t point)
set zoom mode vertical window start point
uint8_t ov2640_get_vsync_polarity(ov2640_handle_t *handle, ov2640_polarity_t *polarity)
get vsync polarity
uint8_t ov2640_get_chsync_href_swap(ov2640_handle_t *handle, ov2640_bool_t *enable)
get chsync href swap status
uint8_t ov2640_set_exposure_control(ov2640_handle_t *handle, ov2640_control_t control)
set exposure control
uint8_t ov2640_set_luminance_signal_low_range(ov2640_handle_t *handle, uint8_t range)
set luminance signal low range
uint8_t ov2640_get_frame_exposure_pre_charge_row_number(ov2640_handle_t *handle, uint8_t *num)
get frame exposure pre charge row number
uint8_t ov2640_get_flash_light(ov2640_handle_t *handle, uint8_t *control)
get flash light
uint8_t ov2640_get_aec(ov2640_handle_t *handle, uint16_t *aec)
get aec
uint8_t ov2640_set_dummy_frame(ov2640_handle_t *handle, ov2640_dummy_frame_t frame)
set dummy frame
uint8_t ov2640_get_hsync_position_and_width_start_point(ov2640_handle_t *handle, uint16_t *position)
get hsync position and width start point
uint8_t ov2640_set_16_zone_average_weight_option(ov2640_handle_t *handle, uint32_t avg)
set 16 zone average weight option
uint8_t ov2640_set_color_bar_test(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable color bar test
uint8_t ov2640_get_vsync_pulse_width(ov2640_handle_t *handle, uint16_t *width)
get vsync pulse width
ov2640_bool_t
ov2640 bool enumeration definition
ov2640_output_drive_t
ov2640 output drive enumeration definition
uint8_t ov2640_set_chsync_href_swap(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable chsync href swap
struct ov2640_handle_s ov2640_handle_t
ov2640 handle structure definition
uint8_t ov2640_set_frame_exposure_pre_charge_row_number(ov2640_handle_t *handle, uint8_t num)
set frame exposure pre charge row number
uint8_t ov2640_get_hsync_polarity(ov2640_handle_t *handle, ov2640_polarity_t *polarity)
get hsync polarity
uint8_t ov2640_set_50hz_banding_aec(ov2640_handle_t *handle, uint16_t aec)
set 50hz banding aec
uint8_t ov2640_get_agc_control(ov2640_handle_t *handle, ov2640_control_t *control)
get agc control
uint8_t ov2640_set_resolution(ov2640_handle_t *handle, ov2640_resolution_t resolution)
set resolution
uint8_t ov2640_init(ov2640_handle_t *handle)
initialize the chip
uint8_t ov2640_set_clock_divider(ov2640_handle_t *handle, uint8_t divider)
set clock divider
ov2640_mode_t
ov2640 mode enumeration definition
uint8_t ov2640_set_fast_mode_large_step_range(ov2640_handle_t *handle, uint8_t high_threshold, uint8_t low_threshold)
set fast mode large step range
uint8_t ov2640_set_agc_gain_ceiling(ov2640_handle_t *handle, ov2640_agc_gain_t agc)
set agc
uint8_t ov2640_get_pclk_edge(ov2640_handle_t *handle, ov2640_edge_t *edge)
get pclk edge
uint8_t ov2640_set_horizontal_mirror(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable horizontal mirror
uint8_t ov2640_get_zoom(ov2640_handle_t *handle, ov2640_bool_t *enable)
get zoom status
uint8_t ov2640_get_exposure_control(ov2640_handle_t *handle, ov2640_control_t *control)
get exposure control
uint8_t ov2640_set_vsync_polarity(ov2640_handle_t *handle, ov2640_polarity_t polarity)
set vsync polarity
uint8_t ov2640_get_vertical_flip(ov2640_handle_t *handle, ov2640_bool_t *enable)
get vertical flip status
uint8_t ov2640_set_agc_control(ov2640_handle_t *handle, ov2640_control_t control)
set agc control
uint8_t ov2640_get_auto_band(ov2640_handle_t *handle, ov2640_bool_t *enable)
get auto band status
uint8_t ov2640_set_histogram_algorithm_high_level(ov2640_handle_t *handle, uint8_t level)
set histogram algorithm high level
uint8_t ov2640_set_band_filter(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable band filter
uint8_t ov2640_get_histogram_algorithm_low_level(ov2640_handle_t *handle, uint8_t *level)
get histogram algorithm low level
uint8_t ov2640_get_clock_output_power_down_pin_status(ov2640_handle_t *handle, ov2640_pin_status_t *status)
get clock output power down pin status
uint8_t ov2640_get_pclk_output_qualified_by_href(ov2640_handle_t *handle, ov2640_bool_t *enable)
get pclk output qualified by href status
ov2640_polarity_t
ov2640 polarity enumeration definition
uint8_t ov2640_get_mode(ov2640_handle_t *handle, ov2640_mode_t *mode)
get mode
ov2640_band_t
ov2640 band enumeration definition
uint8_t ov2640_set_luminance_signal_high_range(ov2640_handle_t *handle, uint8_t range)
set luminance signal high range
uint8_t ov2640_set_luminance_average(ov2640_handle_t *handle, uint8_t average)
set luminance average
uint8_t ov2640_get_50hz_banding_aec(ov2640_handle_t *handle, uint16_t *aec)
get 50hz banding aec
uint8_t ov2640_get_horizontal_mirror(ov2640_handle_t *handle, ov2640_bool_t *enable)
get horizontal mirror status
uint8_t ov2640_set_horizontal_window_start(ov2640_handle_t *handle, uint16_t start)
set horizontal window start
uint8_t ov2640_get_agc_gain_ceiling(ov2640_handle_t *handle, ov2640_agc_gain_t *agc)
get agc
uint8_t ov2640_set_hsync_position_and_width_start_point(ov2640_handle_t *handle, uint16_t position)
set hsync position and width start point
uint8_t ov2640_set_href_polarity(ov2640_handle_t *handle, ov2640_polarity_t polarity)
set href polarity
uint8_t ov2640_get_href_polarity(ov2640_handle_t *handle, ov2640_polarity_t *polarity)
get href polarity
uint8_t ov2640_get_band(ov2640_handle_t *handle, ov2640_band_t *band)
get band
uint8_t ov2640_set_zoom_window_horizontal_start_point(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable zoom window horizontal start point
uint8_t ov2640_set_power_reset_pin_remap(ov2640_handle_t *handle, ov2640_bool_t enable)
enable or disable power reset pin remap
uint8_t ov2640_set_agc_gain(ov2640_handle_t *handle, uint16_t gain)
set agc gain
uint8_t ov2640_soft_reset(ov2640_handle_t *handle)
soft reset
uint8_t ov2640_get_live_video_after_snapshot(ov2640_handle_t *handle, ov2640_bool_t *enable)
get live video after snapshot status
uint8_t ov2640_set_histogram_algorithm_low_level(ov2640_handle_t *handle, uint8_t level)
set histogram algorithm low level
uint8_t ov2640_get_color_bar_test(ov2640_handle_t *handle, ov2640_bool_t *enable)
get color bar test status
ov2640_pclk_t
ov2640 pclk enumeration definition
uint8_t ov2640_get_dummy_frame(ov2640_handle_t *handle, ov2640_dummy_frame_t *frame)
get dummy frame
ov2640_dummy_frame_t
ov2640 dummy frame enumeration definition
uint8_t ov2640_set_vsync_pulse_width(ov2640_handle_t *handle, uint16_t width)
set vsync pulse width
uint8_t ov2640_get_vertical_window_line_end(ov2640_handle_t *handle, uint16_t *end)
get vertical window line end
uint8_t ov2640_get_clock_rate_double(ov2640_handle_t *handle, ov2640_bool_t *enable)
get clock rate double status
uint8_t(* power_down_init)(void)
uint8_t(* sccb_deinit)(void)
void(* delay_ms)(uint32_t ms)
uint8_t(* reset_write)(uint8_t level)
uint8_t(* sccb_init)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* power_down_write)(uint8_t level)
uint8_t(* sccb_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* reset_deinit)(void)
uint8_t(* reset_init)(void)
uint8_t(* sccb_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* power_down_deinit)(void)
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v