Lines Matching +full:0 +full:x3600
42 #define MIPI_CTRL00_CLOCK_LANE_DISABLE BIT(0)
44 #define OV5647_SW_STANDBY 0x0100
45 #define OV5647_SW_RESET 0x0103
46 #define OV5647_REG_CHIPID_H 0x300a
47 #define OV5647_REG_CHIPID_L 0x300b
48 #define OV5640_REG_PAD_OUT 0x300d
49 #define OV5647_REG_EXP_HI 0x3500
50 #define OV5647_REG_EXP_MID 0x3501
51 #define OV5647_REG_EXP_LO 0x3502
52 #define OV5647_REG_AEC_AGC 0x3503
53 #define OV5647_REG_GAIN_HI 0x350a
54 #define OV5647_REG_GAIN_LO 0x350b
55 #define OV5647_REG_VTS_HI 0x380e
56 #define OV5647_REG_VTS_LO 0x380f
57 #define OV5647_REG_FRAME_OFF_NUMBER 0x4202
58 #define OV5647_REG_MIPI_CTRL00 0x4800
59 #define OV5647_REG_MIPI_CTRL14 0x4814
60 #define OV5647_REG_AWB 0x5001
62 #define REG_TERM 0xfffe
63 #define VAL_TERM 0xfe
64 #define REG_DLY 0xffff
120 {0x3000, 0x00},
121 {0x3001, 0x00},
122 {0x3002, 0x00},
126 {0x3000, 0x0f},
127 {0x3001, 0xff},
128 {0x3002, 0xe4},
132 {0x0100, 0x00},
133 {0x0103, 0x01},
134 {0x3034, 0x1a},
135 {0x3035, 0x21},
136 {0x3036, 0x69},
137 {0x303c, 0x11},
138 {0x3106, 0xf5},
139 {0x3821, 0x06},
140 {0x3820, 0x00},
141 {0x3827, 0xec},
142 {0x370c, 0x03},
143 {0x3612, 0x5b},
144 {0x3618, 0x04},
145 {0x5000, 0x06},
146 {0x5002, 0x41},
147 {0x5003, 0x08},
148 {0x5a00, 0x08},
149 {0x3000, 0x00},
150 {0x3001, 0x00},
151 {0x3002, 0x00},
152 {0x3016, 0x08},
153 {0x3017, 0xe0},
154 {0x3018, 0x44},
155 {0x301c, 0xf8},
156 {0x301d, 0xf0},
157 {0x3a18, 0x00},
158 {0x3a19, 0xf8},
159 {0x3c01, 0x80},
160 {0x3b07, 0x0c},
161 {0x380c, 0x0b},
162 {0x380d, 0x1c},
163 {0x3814, 0x11},
164 {0x3815, 0x11},
165 {0x3708, 0x64},
166 {0x3709, 0x12},
167 {0x3808, 0x0a},
168 {0x3809, 0x20},
169 {0x380a, 0x07},
170 {0x380b, 0x98},
171 {0x3800, 0x00},
172 {0x3801, 0x00},
173 {0x3802, 0x00},
174 {0x3803, 0x00},
175 {0x3804, 0x0a},
176 {0x3805, 0x3f},
177 {0x3806, 0x07},
178 {0x3807, 0xa3},
179 {0x3811, 0x10},
180 {0x3813, 0x06},
181 {0x3630, 0x2e},
182 {0x3632, 0xe2},
183 {0x3633, 0x23},
184 {0x3634, 0x44},
185 {0x3636, 0x06},
186 {0x3620, 0x64},
187 {0x3621, 0xe0},
188 {0x3600, 0x37},
189 {0x3704, 0xa0},
190 {0x3703, 0x5a},
191 {0x3715, 0x78},
192 {0x3717, 0x01},
193 {0x3731, 0x02},
194 {0x370b, 0x60},
195 {0x3705, 0x1a},
196 {0x3f05, 0x02},
197 {0x3f06, 0x10},
198 {0x3f01, 0x0a},
199 {0x3a08, 0x01},
200 {0x3a09, 0x28},
201 {0x3a0a, 0x00},
202 {0x3a0b, 0xf6},
203 {0x3a0d, 0x08},
204 {0x3a0e, 0x06},
205 {0x3a0f, 0x58},
206 {0x3a10, 0x50},
207 {0x3a1b, 0x58},
208 {0x3a1e, 0x50},
209 {0x3a11, 0x60},
210 {0x3a1f, 0x28},
211 {0x4001, 0x02},
212 {0x4004, 0x04},
213 {0x4000, 0x09},
214 {0x4837, 0x19},
215 {0x4800, 0x24},
216 {0x3503, 0x03},
217 {0x0100, 0x01},
221 {0x0100, 0x00},
222 {0x0103, 0x01},
223 {0x3034, 0x1a},
224 {0x3035, 0x21},
225 {0x3036, 0x62},
226 {0x303c, 0x11},
227 {0x3106, 0xf5},
228 {0x3821, 0x06},
229 {0x3820, 0x00},
230 {0x3827, 0xec},
231 {0x370c, 0x03},
232 {0x3612, 0x5b},
233 {0x3618, 0x04},
234 {0x5000, 0x06},
235 {0x5002, 0x41},
236 {0x5003, 0x08},
237 {0x5a00, 0x08},
238 {0x3000, 0x00},
239 {0x3001, 0x00},
240 {0x3002, 0x00},
241 {0x3016, 0x08},
242 {0x3017, 0xe0},
243 {0x3018, 0x44},
244 {0x301c, 0xf8},
245 {0x301d, 0xf0},
246 {0x3a18, 0x00},
247 {0x3a19, 0xf8},
248 {0x3c01, 0x80},
249 {0x3b07, 0x0c},
250 {0x380c, 0x09},
251 {0x380d, 0x70},
252 {0x3814, 0x11},
253 {0x3815, 0x11},
254 {0x3708, 0x64},
255 {0x3709, 0x12},
256 {0x3808, 0x07},
257 {0x3809, 0x80},
258 {0x380a, 0x04},
259 {0x380b, 0x38},
260 {0x3800, 0x01},
261 {0x3801, 0x5c},
262 {0x3802, 0x01},
263 {0x3803, 0xb2},
264 {0x3804, 0x08},
265 {0x3805, 0xe3},
266 {0x3806, 0x05},
267 {0x3807, 0xf1},
268 {0x3811, 0x04},
269 {0x3813, 0x02},
270 {0x3630, 0x2e},
271 {0x3632, 0xe2},
272 {0x3633, 0x23},
273 {0x3634, 0x44},
274 {0x3636, 0x06},
275 {0x3620, 0x64},
276 {0x3621, 0xe0},
277 {0x3600, 0x37},
278 {0x3704, 0xa0},
279 {0x3703, 0x5a},
280 {0x3715, 0x78},
281 {0x3717, 0x01},
282 {0x3731, 0x02},
283 {0x370b, 0x60},
284 {0x3705, 0x1a},
285 {0x3f05, 0x02},
286 {0x3f06, 0x10},
287 {0x3f01, 0x0a},
288 {0x3a08, 0x01},
289 {0x3a09, 0x4b},
290 {0x3a0a, 0x01},
291 {0x3a0b, 0x13},
292 {0x3a0d, 0x04},
293 {0x3a0e, 0x03},
294 {0x3a0f, 0x58},
295 {0x3a10, 0x50},
296 {0x3a1b, 0x58},
297 {0x3a1e, 0x50},
298 {0x3a11, 0x60},
299 {0x3a1f, 0x28},
300 {0x4001, 0x02},
301 {0x4004, 0x04},
302 {0x4000, 0x09},
303 {0x4837, 0x19},
304 {0x4800, 0x34},
305 {0x3503, 0x03},
306 {0x0100, 0x01},
310 {0x0100, 0x00},
311 {0x0103, 0x01},
312 {0x3034, 0x1a},
313 {0x3035, 0x21},
314 {0x3036, 0x62},
315 {0x303c, 0x11},
316 {0x3106, 0xf5},
317 {0x3827, 0xec},
318 {0x370c, 0x03},
319 {0x3612, 0x59},
320 {0x3618, 0x00},
321 {0x5000, 0x06},
322 {0x5002, 0x41},
323 {0x5003, 0x08},
324 {0x5a00, 0x08},
325 {0x3000, 0x00},
326 {0x3001, 0x00},
327 {0x3002, 0x00},
328 {0x3016, 0x08},
329 {0x3017, 0xe0},
330 {0x3018, 0x44},
331 {0x301c, 0xf8},
332 {0x301d, 0xf0},
333 {0x3a18, 0x00},
334 {0x3a19, 0xf8},
335 {0x3c01, 0x80},
336 {0x3b07, 0x0c},
337 {0x3800, 0x00},
338 {0x3801, 0x00},
339 {0x3802, 0x00},
340 {0x3803, 0x00},
341 {0x3804, 0x0a},
342 {0x3805, 0x3f},
343 {0x3806, 0x07},
344 {0x3807, 0xa3},
345 {0x3808, 0x05},
346 {0x3809, 0x10},
347 {0x380a, 0x03},
348 {0x380b, 0xcc},
349 {0x380c, 0x07},
350 {0x380d, 0x68},
351 {0x3811, 0x0c},
352 {0x3813, 0x06},
353 {0x3814, 0x31},
354 {0x3815, 0x31},
355 {0x3630, 0x2e},
356 {0x3632, 0xe2},
357 {0x3633, 0x23},
358 {0x3634, 0x44},
359 {0x3636, 0x06},
360 {0x3620, 0x64},
361 {0x3621, 0xe0},
362 {0x3600, 0x37},
363 {0x3704, 0xa0},
364 {0x3703, 0x5a},
365 {0x3715, 0x78},
366 {0x3717, 0x01},
367 {0x3731, 0x02},
368 {0x370b, 0x60},
369 {0x3705, 0x1a},
370 {0x3f05, 0x02},
371 {0x3f06, 0x10},
372 {0x3f01, 0x0a},
373 {0x3a08, 0x01},
374 {0x3a09, 0x28},
375 {0x3a0a, 0x00},
376 {0x3a0b, 0xf6},
377 {0x3a0d, 0x08},
378 {0x3a0e, 0x06},
379 {0x3a0f, 0x58},
380 {0x3a10, 0x50},
381 {0x3a1b, 0x58},
382 {0x3a1e, 0x50},
383 {0x3a11, 0x60},
384 {0x3a1f, 0x28},
385 {0x4001, 0x02},
386 {0x4004, 0x04},
387 {0x4000, 0x09},
388 {0x4837, 0x16},
389 {0x4800, 0x24},
390 {0x3503, 0x03},
391 {0x3820, 0x41},
392 {0x3821, 0x07},
393 {0x350a, 0x00},
394 {0x350b, 0x10},
395 {0x3500, 0x00},
396 {0x3501, 0x1a},
397 {0x3502, 0xf0},
398 {0x3212, 0xa0},
399 {0x0100, 0x01},
403 {0x0100, 0x00},
404 {0x0103, 0x01},
405 {0x3035, 0x11},
406 {0x3036, 0x46},
407 {0x303c, 0x11},
408 {0x3821, 0x07},
409 {0x3820, 0x41},
410 {0x370c, 0x03},
411 {0x3612, 0x59},
412 {0x3618, 0x00},
413 {0x5000, 0x06},
414 {0x5003, 0x08},
415 {0x5a00, 0x08},
416 {0x3000, 0xff},
417 {0x3001, 0xff},
418 {0x3002, 0xff},
419 {0x301d, 0xf0},
420 {0x3a18, 0x00},
421 {0x3a19, 0xf8},
422 {0x3c01, 0x80},
423 {0x3b07, 0x0c},
424 {0x380c, 0x07},
425 {0x380d, 0x3c},
426 {0x3814, 0x35},
427 {0x3815, 0x35},
428 {0x3708, 0x64},
429 {0x3709, 0x52},
430 {0x3808, 0x02},
431 {0x3809, 0x80},
432 {0x380a, 0x01},
433 {0x380b, 0xe0},
434 {0x3800, 0x00},
435 {0x3801, 0x10},
436 {0x3802, 0x00},
437 {0x3803, 0x00},
438 {0x3804, 0x0a},
439 {0x3805, 0x2f},
440 {0x3806, 0x07},
441 {0x3807, 0x9f},
442 {0x3630, 0x2e},
443 {0x3632, 0xe2},
444 {0x3633, 0x23},
445 {0x3634, 0x44},
446 {0x3620, 0x64},
447 {0x3621, 0xe0},
448 {0x3600, 0x37},
449 {0x3704, 0xa0},
450 {0x3703, 0x5a},
451 {0x3715, 0x78},
452 {0x3717, 0x01},
453 {0x3731, 0x02},
454 {0x370b, 0x60},
455 {0x3705, 0x1a},
456 {0x3f05, 0x02},
457 {0x3f06, 0x10},
458 {0x3f01, 0x0a},
459 {0x3a08, 0x01},
460 {0x3a09, 0x2e},
461 {0x3a0a, 0x00},
462 {0x3a0b, 0xfb},
463 {0x3a0d, 0x02},
464 {0x3a0e, 0x01},
465 {0x3a0f, 0x58},
466 {0x3a10, 0x50},
467 {0x3a1b, 0x58},
468 {0x3a1e, 0x50},
469 {0x3a11, 0x60},
470 {0x3a1f, 0x28},
471 {0x4001, 0x02},
472 {0x4004, 0x02},
473 {0x4000, 0x09},
474 {0x3000, 0x00},
475 {0x3001, 0x00},
476 {0x3002, 0x00},
477 {0x3017, 0xe0},
478 {0x301c, 0xfc},
479 {0x3636, 0x06},
480 {0x3016, 0x08},
481 {0x3827, 0xec},
482 {0x3018, 0x44},
483 {0x3035, 0x21},
484 {0x3106, 0xf5},
485 {0x3034, 0x1a},
486 {0x301c, 0xf8},
487 {0x4800, 0x34},
488 {0x3503, 0x03},
489 {0x0100, 0x01},
510 .vts = 0x7b0,
531 .vts = 0x450,
552 .vts = 0x59b,
573 .vts = 0x1f8,
585 unsigned char data[4] = { reg >> 8, reg & 0xff, val >> 8, val & 0xff}; in ov5647_write16()
590 if (ret < 0) { in ov5647_write16()
596 return 0; in ov5647_write16()
601 unsigned char data[3] = { reg >> 8, reg & 0xff, val}; in ov5647_write()
606 if (ret < 0) { in ov5647_write()
612 return 0; in ov5647_write()
617 unsigned char data_w[2] = { reg >> 8, reg & 0xff }; in ov5647_read()
622 if (ret < 0) { in ov5647_read()
629 if (ret < 0) { in ov5647_read()
635 return 0; in ov5647_read()
643 for (i = 0; i < array_size; i++) { in ov5647_write_array()
645 if (ret < 0) in ov5647_write_array()
649 return 0; in ov5647_write_array()
658 if (ret < 0) in ov5647_set_virtual_channel()
675 if (ret < 0) in ov5647_set_mode()
680 if (ret < 0) { in ov5647_set_mode()
685 ret = ov5647_set_virtual_channel(sd, 0); in ov5647_set_mode()
686 if (ret < 0) in ov5647_set_mode()
690 if (ret < 0) in ov5647_set_mode()
693 if (!(resetval & 0x01)) { in ov5647_set_mode()
695 ret = ov5647_write(sd, OV5647_SW_STANDBY, 0x01); in ov5647_set_mode()
696 if (ret < 0) in ov5647_set_mode()
700 return 0; in ov5647_set_mode()
726 if (ret < 0) in ov5647_stream_on()
729 ret = ov5647_write(sd, OV5647_REG_FRAME_OFF_NUMBER, 0x00); in ov5647_stream_on()
730 if (ret < 0) in ov5647_stream_on()
733 return ov5647_write(sd, OV5640_REG_PAD_OUT, 0x00); in ov5647_stream_on()
743 if (ret < 0) in ov5647_stream_off()
746 ret = ov5647_write(sd, OV5647_REG_FRAME_OFF_NUMBER, 0x0f); in ov5647_stream_off()
747 if (ret < 0) in ov5647_stream_off()
750 return ov5647_write(sd, OV5640_REG_PAD_OUT, 0x01); in ov5647_stream_off()
761 gpiod_set_value_cansleep(sensor->pwdn, 0); in ov5647_power_on()
766 if (ret < 0) { in ov5647_power_on()
773 if (ret < 0) { in ov5647_power_on()
780 if (ret < 0) { in ov5647_power_on()
785 return 0; in ov5647_power_on()
805 if (ret < 0) in ov5647_power_off()
810 if (ret < 0) in ov5647_power_off()
813 rdval &= ~0x01; in ov5647_power_off()
815 if (ret < 0) in ov5647_power_off()
821 return 0; in ov5647_power_off()
831 ret = ov5647_read(sd, reg->reg & 0xff, &val); in ov5647_sensor_get_register()
832 if (ret < 0) in ov5647_sensor_get_register()
838 return 0; in ov5647_sensor_get_register()
844 return ov5647_write(sd, reg->reg & 0xff, reg->val & 0xff); in ov5647_sensor_set_register()
882 return 0; in ov5647_s_stream()
887 if (ret < 0) in ov5647_s_stream()
891 if (ret < 0) { in ov5647_s_stream()
897 if (ret < 0) { in ov5647_s_stream()
907 return 0; in ov5647_s_stream()
925 if (code->index > 0) in ov5647_enum_mbus_code()
930 return 0; in ov5647_enum_mbus_code()
949 return 0; in ov5647_enum_frame_size()
974 return 0; in ov5647_get_pad_fmt()
1021 return 0; in ov5647_set_pad_fmt()
1037 return 0; in ov5647_get_selection()
1041 sel->r.top = 0; in ov5647_get_selection()
1042 sel->r.left = 0; in ov5647_get_selection()
1046 return 0; in ov5647_get_selection()
1055 return 0; in ov5647_get_selection()
1081 ret = ov5647_write(sd, OV5647_SW_RESET, 0x01); in ov5647_detect()
1082 if (ret < 0) in ov5647_detect()
1086 if (ret < 0) in ov5647_detect()
1089 if (read != 0x56) { in ov5647_detect()
1090 dev_err(&client->dev, "ID High expected 0x56 got %x", read); in ov5647_detect()
1095 if (ret < 0) in ov5647_detect()
1098 if (read != 0x47) { in ov5647_detect()
1099 dev_err(&client->dev, "ID Low expected 0x47 got %x", read); in ov5647_detect()
1103 return ov5647_write(sd, OV5647_SW_RESET, 0x00); in ov5647_detect()
1109 v4l2_subdev_get_try_format(sd, fh->state, 0); in ov5647_open()
1110 struct v4l2_rect *crop = v4l2_subdev_get_try_crop(sd, fh->state, 0); in ov5647_open()
1119 return 0; in ov5647_open()
1128 return ov5647_write(sd, OV5647_REG_AWB, val ? 1 : 0); in ov5647_s_auto_white_balance()
1152 * clearing bit 0. in ov5647_s_exposure_auto()
1159 val == V4L2_EXPOSURE_MANUAL ? reg | BIT(0) in ov5647_s_exposure_auto()
1160 : reg & ~BIT(0)); in ov5647_s_exposure_auto()
1172 return ov5647_write(sd, OV5647_REG_GAIN_LO, val & 0xff); in ov5647_s_analogue_gain()
1183 ret = ov5647_write(sd, OV5647_REG_EXP_HI, (val >> 12) & 0xf); in ov5647_s_exposure()
1187 ret = ov5647_write(sd, OV5647_REG_EXP_MID, (val >> 4) & 0xff); in ov5647_s_exposure()
1191 return ov5647_write(sd, OV5647_REG_EXP_LO, (val & 0xf) << 4); in ov5647_s_exposure()
1200 int ret = 0; in ov5647_s_ctrl()
1222 if (pm_runtime_get_if_in_use(&client->dev) == 0) in ov5647_s_ctrl()
1223 return 0; in ov5647_s_ctrl()
1254 "Control (id:0x%x, val:0x%x) not supported\n", in ov5647_s_ctrl()
1276 V4L2_CID_AUTOGAIN, 0, 1, 1, 0); in ov5647_init_controls()
1279 V4L2_CID_AUTO_WHITE_BALANCE, 0, 1, 1, 0); in ov5647_init_controls()
1283 0, V4L2_EXPOSURE_MANUAL); in ov5647_init_controls()
1324 return 0; in ov5647_init_controls()
1415 if (ret < 0) in ov5647_probe()
1423 if (ret < 0) in ov5647_probe()
1427 if (ret < 0) in ov5647_probe()
1437 return 0; in ov5647_probe()
1469 { "ov5647", 0 },