@@ -29,8 +29,7 @@ static int read_reg(uint8_t slv_addr, const uint16_t reg)
29
29
{
30
30
int ret = SCCB_Read16 (slv_addr , reg );
31
31
#ifdef REG_DEBUG_ON
32
- if (ret < 0 )
33
- {
32
+ if (ret < 0 ) {
34
33
ESP_LOGE (TAG , "READ REG 0x%04x FAILED: %d" , reg , ret );
35
34
}
36
35
#endif
@@ -45,20 +44,18 @@ static int check_reg_mask(uint8_t slv_addr, uint16_t reg, uint8_t mask)
45
44
static int read_reg16 (uint8_t slv_addr , const uint16_t reg )
46
45
{
47
46
int ret = 0 , ret2 = 0 ;
47
+
48
48
ret = read_reg (slv_addr , reg );
49
- if (ret >= 0 )
50
- {
49
+ if (ret >= 0 ) {
51
50
ret = (ret & 0xFF ) << 8 ;
52
51
ret2 = read_reg (slv_addr , reg + 1 );
53
- if (ret2 < 0 )
54
- {
52
+ if (ret2 < 0 ) {
55
53
ret = ret2 ;
56
- }
57
- else
58
- {
54
+ } else {
59
55
ret |= ret2 & 0xFF ;
60
56
}
61
57
}
58
+
62
59
return ret ;
63
60
}
64
61
@@ -69,22 +66,18 @@ static int write_reg(uint8_t slv_addr, const uint16_t reg, uint8_t value)
69
66
ret = SCCB_Write16 (slv_addr , reg , value );
70
67
#else
71
68
int old_value = read_reg (slv_addr , reg );
72
- if (old_value < 0 )
73
- {
69
+ if (old_value < 0 ) {
74
70
return old_value ;
75
71
}
76
- if (( uint8_t ) old_value != value )
77
- {
72
+
73
+ if (( uint8_t ) old_value != value ) {
78
74
ESP_LOGD (TAG , "NEW REG 0x%04x: 0x%02x to 0x%02x" , reg , (uint8_t )old_value , value );
79
75
ret = SCCB_Write16 (slv_addr , reg , value );
80
- }
81
- else
82
- {
76
+ } else {
83
77
ESP_LOGD (TAG , "OLD REG 0x%04x: 0x%02x" , reg , (uint8_t )old_value );
84
78
ret = SCCB_Write16 (slv_addr , reg , value ); // maybe not?
85
79
}
86
- if (ret < 0 )
87
- {
80
+ if (ret < 0 ) {
88
81
ESP_LOGE (TAG , "WRITE REG 0x%04x FAILED: %d" , reg , ret );
89
82
}
90
83
#endif
@@ -95,11 +88,12 @@ static int set_reg_bits(uint8_t slv_addr, uint16_t reg, uint8_t offset, uint8_t
95
88
{
96
89
int ret = 0 ;
97
90
uint8_t c_value , new_value ;
91
+
98
92
ret = read_reg (slv_addr , reg );
99
- if (ret < 0 )
100
- {
93
+ if (ret < 0 ) {
101
94
return ret ;
102
95
}
96
+
103
97
c_value = ret ;
104
98
new_value = (c_value & ~(mask << offset )) | ((value & mask ) << offset );
105
99
ret = write_reg (slv_addr , reg , new_value );
@@ -109,34 +103,30 @@ static int set_reg_bits(uint8_t slv_addr, uint16_t reg, uint8_t offset, uint8_t
109
103
static int write_regs (uint8_t slv_addr , const uint16_t (* regs )[2 ])
110
104
{
111
105
int i = 0 , ret = 0 ;
112
- while (!ret && regs [i ][0 ] != REGLIST_TAIL )
113
- {
114
- if (regs [i ][0 ] == REG_DLY )
115
- {
106
+
107
+ while (!ret && regs [i ][0 ] != REGLIST_TAIL ) {
108
+ if (regs [i ][0 ] == REG_DLY ) {
116
109
vTaskDelay (regs [i ][1 ] / portTICK_PERIOD_MS );
117
- }
118
- else
119
- {
110
+ } else {
120
111
ret = write_reg (slv_addr , regs [i ][0 ], regs [i ][1 ]);
121
112
}
122
113
i ++ ;
123
114
}
115
+
124
116
return ret ;
125
117
}
126
118
127
119
static int write_reg16 (uint8_t slv_addr , const uint16_t reg , uint16_t value )
128
120
{
129
- if (write_reg (slv_addr , reg , value >> 8 ) || write_reg (slv_addr , reg + 1 , value ))
130
- {
121
+ if (write_reg (slv_addr , reg , value >> 8 ) || write_reg (slv_addr , reg + 1 , value )) {
131
122
return -1 ;
132
123
}
133
124
return 0 ;
134
125
}
135
126
136
127
static int write_addr_reg (uint8_t slv_addr , const uint16_t reg , uint16_t x_value , uint16_t y_value )
137
128
{
138
- if (write_reg16 (slv_addr , reg , x_value ) || write_reg16 (slv_addr , reg + 2 , y_value ))
139
- {
129
+ if (write_reg16 (slv_addr , reg , x_value ) || write_reg16 (slv_addr , reg + 2 , y_value )) {
140
130
return -1 ;
141
131
}
142
132
return 0 ;
@@ -148,20 +138,21 @@ static int reset(sensor_t *sensor)
148
138
{
149
139
vTaskDelay (100 / portTICK_PERIOD_MS );
150
140
int ret = 0 ;
141
+
151
142
// Software Reset: clear all registers and reset them to their default values
152
143
ret = write_reg (sensor -> slv_addr , SW_RESET , 0x00 );
153
- if (ret )
154
- {
144
+ if (ret ) {
155
145
ESP_LOGE (TAG , "Software Reset FAILED!" );
156
146
return ret ;
157
147
}
148
+
158
149
vTaskDelay (100 / portTICK_PERIOD_MS );
159
150
ret = write_regs (sensor -> slv_addr , sensor_default_regs );
160
- if (ret == 0 )
161
- {
151
+ if (ret == 0 ) {
162
152
ESP_LOGD (TAG , "Camera defaults loaded" );
163
153
vTaskDelay (100 / portTICK_PERIOD_MS );
164
154
}
155
+
165
156
return ret ;
166
157
}
167
158
@@ -188,31 +179,23 @@ static int set_framesize(sensor_t *sensor, framesize_t framesize)
188
179
sensor -> status .framesize = framesize ;
189
180
ret = write_regs (sensor -> slv_addr , sensor_default_regs );
190
181
191
- if (framesize == FRAMESIZE_QQVGA )
192
- {
182
+ if (framesize == FRAMESIZE_QQVGA ) {
193
183
ESP_LOGI (TAG , "Set FRAMESIZE_QQVGA" );
194
184
ret |= write_regs (sensor -> slv_addr , sensor_framesize_QQVGA );
195
185
ret |= set_reg_bits (sensor -> slv_addr , 0x3024 , 0 , 0x01 , 1 );
196
- }
197
- else if (framesize == FRAMESIZE_QVGA )
198
- {
186
+ } else if (framesize == FRAMESIZE_QVGA ) {
199
187
ESP_LOGI (TAG , "Set FRAMESIZE_QVGA" );
200
188
ret |= write_regs (sensor -> slv_addr , sensor_framesize_QVGA );
201
189
ret |= set_reg_bits (sensor -> slv_addr , 0x3024 , 0 , 0x01 , 1 );
202
- }
203
- else if (framesize == FRAMESIZE_VGA )
204
- {
190
+ } else if (framesize == FRAMESIZE_VGA ) {
205
191
ESP_LOGI (TAG , "Set FRAMESIZE_VGA" );
206
192
ret |= set_reg_bits (sensor -> slv_addr , 0x3024 , 0 , 0x01 , 0 );
207
- }
208
- else
209
- {
193
+ } else {
210
194
ESP_LOGI (TAG , "Dont suppost this size, Set FRAMESIZE_VGA" );
211
195
ret |= set_reg_bits (sensor -> slv_addr , 0x3024 , 0 , 0x01 , 0 );
212
196
}
213
197
214
- if (ret == 0 )
215
- {
198
+ if (ret == 0 ) {
216
199
_set_pll (sensor , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 );
217
200
ret |= write_reg (sensor -> slv_addr , 0x0104 , 0x01 );
218
201
}
@@ -291,28 +274,22 @@ static int set_brightness(sensor_t *sensor, int level)
291
274
static int get_reg (sensor_t * sensor , int reg , int mask )
292
275
{
293
276
int ret = 0 , ret2 = 0 ;
294
- if ( mask > 0xFF )
295
- {
277
+
278
+ if ( mask > 0xFF ) {
296
279
ret = read_reg16 (sensor -> slv_addr , reg );
297
- if (ret >= 0 && mask > 0xFFFF )
298
- {
280
+ if (ret >= 0 && mask > 0xFFFF ) {
299
281
ret2 = read_reg (sensor -> slv_addr , reg + 2 );
300
- if (ret2 >= 0 )
301
- {
282
+ if (ret2 >= 0 ) {
302
283
ret = (ret << 8 ) | ret2 ;
303
- }
304
- else
305
- {
284
+ } else {
306
285
ret = ret2 ;
307
286
}
308
287
}
309
- }
310
- else
311
- {
288
+ } else {
312
289
ret = read_reg (sensor -> slv_addr , reg );
313
290
}
314
- if ( ret > 0 )
315
- {
291
+
292
+ if ( ret > 0 ) {
316
293
ret &= mask ;
317
294
}
318
295
return ret ;
@@ -321,47 +298,37 @@ static int get_reg(sensor_t *sensor, int reg, int mask)
321
298
static int set_reg (sensor_t * sensor , int reg , int mask , int value )
322
299
{
323
300
int ret = 0 , ret2 = 0 ;
324
- if ( mask > 0xFF )
325
- {
301
+
302
+ if ( mask > 0xFF ) {
326
303
ret = read_reg16 (sensor -> slv_addr , reg );
327
- if (ret >= 0 && mask > 0xFFFF )
328
- {
304
+ if (ret >= 0 && mask > 0xFFFF ) {
329
305
ret2 = read_reg (sensor -> slv_addr , reg + 2 );
330
- if (ret2 >= 0 )
331
- {
306
+ if (ret2 >= 0 ) {
332
307
ret = (ret << 8 ) | ret2 ;
333
- }
334
- else
335
- {
308
+ } else {
336
309
ret = ret2 ;
337
310
}
338
311
}
339
- }
340
- else
341
- {
312
+ } else {
342
313
ret = read_reg (sensor -> slv_addr , reg );
343
314
}
344
- if ( ret < 0 )
345
- {
315
+
316
+ if ( ret < 0 ) {
346
317
return ret ;
347
318
}
319
+
348
320
value = (ret & ~mask ) | (value & mask );
349
- if (mask > 0xFFFF )
350
- {
321
+ if (mask > 0xFFFF ) {
351
322
ret = write_reg16 (sensor -> slv_addr , reg , value >> 8 );
352
- if (ret >= 0 )
353
- {
323
+ if (ret >= 0 ) {
354
324
ret = write_reg (sensor -> slv_addr , reg + 2 , value & 0xFF );
355
325
}
356
- }
357
- else if (mask > 0xFF )
358
- {
326
+ } else if (mask > 0xFF ) {
359
327
ret = write_reg16 (sensor -> slv_addr , reg , value );
360
- }
361
- else
362
- {
328
+ } else {
363
329
ret = write_reg (sensor -> slv_addr , reg , value );
364
330
}
331
+
365
332
return ret ;
366
333
}
367
334
@@ -370,8 +337,7 @@ static int set_xclk(sensor_t *sensor, int timer, int xclk)
370
337
int ret = 0 ;
371
338
sensor -> xclk_freq_hz = xclk * 1000000U ;
372
339
ret = xclk_timer_conf (timer , sensor -> xclk_freq_hz );
373
- if (ret == 0 )
374
- {
340
+ if (ret == 0 ) {
375
341
ESP_LOGD (TAG , "Set xclk to %d" , xclk );
376
342
}
377
343
return ret ;
@@ -382,20 +348,13 @@ static int _set_pll(sensor_t *sensor, int bypass, int multiplier, int sys_div, i
382
348
uint8_t value = 0 ;
383
349
uint8_t pll_cfg = 0 ;
384
350
385
- if (sensor -> xclk_freq_hz <= 6000000 )
386
- {
351
+ if (sensor -> xclk_freq_hz <= 6000000 ) {
387
352
value = 0x03 ;
388
- }
389
- else if (sensor -> xclk_freq_hz <= 12000000 )
390
- {
353
+ } else if (sensor -> xclk_freq_hz <= 12000000 ) {
391
354
value = 0x02 ;
392
- }
393
- else if (sensor -> xclk_freq_hz <= 18000000 )
394
- {
355
+ } else if (sensor -> xclk_freq_hz <= 18000000 ) {
395
356
value = 0x01 ;
396
- }
397
- else
398
- { // max is 48000000
357
+ } else { // max is 48000000
399
358
value = 0x00 ;
400
359
}
401
360
@@ -416,19 +375,15 @@ static int init_status(sensor_t *sensor)
416
375
417
376
int hm0360_detect (int slv_addr , sensor_id_t * id )
418
377
{
419
- if (HM1055_SCCB_ADDR == slv_addr )
420
- {
378
+ if (HM1055_SCCB_ADDR == slv_addr ) {
421
379
uint8_t h = SCCB_Read16 (slv_addr , MODEL_ID_H );
422
380
uint8_t l = SCCB_Read16 (slv_addr , MODEL_ID_L );
423
381
uint16_t PID = (h << 8 ) | l ;
424
- if (HM0360_PID == PID )
425
- {
382
+ if (HM0360_PID == PID ) {
426
383
id -> PID = PID ;
427
384
id -> VER = SCCB_Read16 (slv_addr , SILICON_REV );
428
385
return PID ;
429
- }
430
- else
431
- {
386
+ } else {
432
387
ESP_LOGD (TAG , "Mismatch PID=0x%x" , PID );
433
388
}
434
389
}
0 commit comments