Lines Matching full:otp
19 * 2. default support rk otp spec.
213 struct otp_info *otp; member
215 struct gc8034_otp_info *otp; member
227 /* If you use the otp function, keep the otp_drv ->
1427 static void gc8034_get_otp(struct otp_info *otp, in gc8034_get_otp() argument
1434 if (otp->awb_data.flag) { in gc8034_get_otp()
1436 inf->awb.r_value = otp->awb_data.r_ratio; in gc8034_get_otp()
1437 inf->awb.b_value = otp->awb_data.b_ratio; in gc8034_get_otp()
1438 inf->awb.gr_value = otp->awb_data.g_ratio; in gc8034_get_otp()
1441 inf->awb.golden_r_value = otp->awb_data.r_golden; in gc8034_get_otp()
1442 inf->awb.golden_b_value = otp->awb_data.b_golden; in gc8034_get_otp()
1443 inf->awb.golden_gr_value = otp->awb_data.g_golden; in gc8034_get_otp()
1448 if (otp->lsc_data.flag) { in gc8034_get_otp()
1450 inf->lsc.width = otp->basic_data.size.width; in gc8034_get_otp()
1451 inf->lsc.height = otp->basic_data.size.height; in gc8034_get_otp()
1452 inf->lsc.table_size = otp->lsc_data.table_size; in gc8034_get_otp()
1455 inf->lsc.lsc_r[i] = (otp->lsc_data.data[i * 2] << 8) | in gc8034_get_otp()
1456 otp->lsc_data.data[i * 2 + 1]; in gc8034_get_otp()
1457 inf->lsc.lsc_gr[i] = (otp->lsc_data.data[i * 2 + 578] << 8) | in gc8034_get_otp()
1458 otp->lsc_data.data[i * 2 + 579]; in gc8034_get_otp()
1459 inf->lsc.lsc_gb[i] = (otp->lsc_data.data[i * 2 + 1156] << 8) | in gc8034_get_otp()
1460 otp->lsc_data.data[i * 2 + 1157]; in gc8034_get_otp()
1461 inf->lsc.lsc_b[i] = (otp->lsc_data.data[i * 2 + 1734] << 8) | in gc8034_get_otp()
1462 otp->lsc_data.data[i * 2 + 1735]; in gc8034_get_otp()
1467 if (otp->pdaf_data.flag) { in gc8034_get_otp()
1469 inf->pdaf.gainmap_width = otp->pdaf_data.gainmap_width; in gc8034_get_otp()
1470 inf->pdaf.gainmap_height = otp->pdaf_data.gainmap_height; in gc8034_get_otp()
1471 inf->pdaf.dcc_mode = otp->pdaf_data.dcc_mode; in gc8034_get_otp()
1472 inf->pdaf.dcc_dir = otp->pdaf_data.dcc_dir; in gc8034_get_otp()
1473 inf->pdaf.dccmap_width = otp->pdaf_data.dccmap_width; in gc8034_get_otp()
1474 inf->pdaf.dccmap_height = otp->pdaf_data.dccmap_height; in gc8034_get_otp()
1475 w = otp->pdaf_data.gainmap_width; in gc8034_get_otp()
1476 h = otp->pdaf_data.gainmap_height; in gc8034_get_otp()
1480 (otp->pdaf_data.gainmap[(i * w + j) * 2] << 8) | in gc8034_get_otp()
1481 otp->pdaf_data.gainmap[(i * w + j) * 2 + 1]; in gc8034_get_otp()
1484 w = otp->pdaf_data.dccmap_width; in gc8034_get_otp()
1485 h = otp->pdaf_data.dccmap_height; in gc8034_get_otp()
1489 (otp->pdaf_data.dccmap[(i * w + j) * 2] << 8) | in gc8034_get_otp()
1490 otp->pdaf_data.dccmap[(i * w + j) * 2 + 1]; in gc8034_get_otp()
1496 if (otp->af_data.flag) { in gc8034_get_otp()
1499 inf->af.af_otp[0].vcm_start = otp->af_data.af_inf; in gc8034_get_otp()
1500 inf->af.af_otp[0].vcm_end = otp->af_data.af_macro; in gc8034_get_otp()
1646 /* OTP base information*/ in gc8034_otp_read()
1662 dev_err(dev, "%s read otp error!\n", __func__); in gc8034_otp_read()
1695 /* OTP WB calibration data */ in gc8034_otp_read()
1713 dev_err(dev, "%s read otp error!\n", __func__); in gc8034_otp_read()
1719 otp_ptr->flag |= 0x40; /* valid AWB in OTP */ in gc8034_otp_read()
1724 dev_err(dev, "otp:(rg_ratio 0x%x, bg_ratio 0x%x)\n", in gc8034_otp_read()
1752 dev_err(dev, "%s read otp error!\n", __func__); in gc8034_otp_read()
1762 dev_err(dev, "otp:(golden_rg 0x%x, golden_bg 0x%x)\n", in gc8034_otp_read()
1779 /* OTP VCM calibration data */ in gc8034_otp_read()
1796 dev_err(dev, "%s read otp error!\n", __func__); in gc8034_otp_read()
1803 otp_ptr->flag |= 0x20; /* valid LSC in OTP */ in gc8034_otp_read()
1830 /* OTP LSC calibration data */ in gc8034_otp_read()
1854 dev_err(dev, "otp lsc[%d] = %d\n", in gc8034_otp_read()
1858 otp_ptr->flag |= 0x10; /* valid LSC in OTP */ in gc8034_otp_read()
1875 /* OTP DD calibration data */ in gc8034_otp_read()
1880 dev_err(dev, "%s GC8034 OTP:flag_dd is EMPTY!\n", in gc8034_otp_read()
1921 dev_err(dev, "%s GC8034 OTP:total_number = %d!\n", in gc8034_otp_read()
1933 /* OTP Chip Register*/ in gc8034_otp_read()
1959 gc8034->otp = otp_ptr; in gc8034_otp_read()
1961 gc8034->otp = NULL; in gc8034_otp_read()
1968 static void gc8034_get_otp(struct gc8034_otp_info *otp, in gc8034_get_otp() argument
1974 if (otp->flag & 0x80) { in gc8034_get_otp()
1976 inf->fac.year = otp->year; in gc8034_get_otp()
1977 inf->fac.month = otp->month; in gc8034_get_otp()
1978 inf->fac.day = otp->day; in gc8034_get_otp()
1980 if (gc8034_module_info[i].id == otp->module_id) in gc8034_get_otp()
1987 if (gc8034_lens_info[i].id == otp->lens_id) in gc8034_get_otp()
1994 if (otp->flag & 0x40) { in gc8034_get_otp()
1996 inf->awb.r_value = otp->rg_ratio; in gc8034_get_otp()
1997 inf->awb.b_value = otp->bg_ratio; in gc8034_get_otp()
2007 if (otp->flag & 0x20) { in gc8034_get_otp()
2010 inf->af.af_otp[0].vcm_start = otp->vcm_start; in gc8034_get_otp()
2011 inf->af.af_otp[0].vcm_end = otp->vcm_end; in gc8034_get_otp()
2012 inf->af.af_otp[0].vcm_dir = otp->vcm_dir; in gc8034_get_otp()
2021 struct otp_info *otp = gc8034->otp; in gc8034_get_module_inf() local
2023 struct gc8034_otp_info *otp = gc8034->otp; in gc8034_get_module_inf()
2035 if (otp) in gc8034_get_module_inf()
2036 gc8034_get_otp(otp, inf); in gc8034_get_module_inf()
2188 struct gc8034_otp_info *otp_ptr = gc8034->otp; in gc8034_apply_otp()
2208 /* apply OTP WB Calibration */ in gc8034_apply_otp()
2238 /* apply OTP Lenc Calibration */ in gc8034_apply_otp()
2286 /* apply OTP DD Calibration */ in gc8034_apply_otp()
2369 if (gc8034->otp) { in __gc8034_start_stream()
3171 gc8034->otp = otp_ptr; in gc8034_probe()
3173 gc8034->otp = NULL; in gc8034_probe()
3175 dev_warn(dev, "can not get otp info, skip!\n"); in gc8034_probe()