int32_t	lgit2_ois_on ( enum ois_ver_t ver  )
{
	int32_t rc = OIS_SUCCESS;
	uint16_t cal_ver = 0;
	
	printk("%s, %s\n", __func__,LAST_UPDATE);

	ois_i2c_e2p_read(E2P_FIRST_ADDR+0x1C, &cal_ver, 2);
	printk("%s ver %x\n", __func__, cal_ver);

	switch (cal_ver) {
	case 0xE:
		rc = lgit2_bin_download(LGIT_VER14_REL_BIN_DATA);
		break;
	default:
		rc = OIS_INIT_NOT_SUPPORTED;
		break;
	}

	if (rc < 0)	{
		CDBG("%s: init fail \n", __func__);
		return rc;
	}
		
	switch (ver) {
	case OIS_VER_RELEASE:
		lgit2_ois_init_cmd(LIMIT_OIS_ON_RETRY);

		/* OIS ON */
		RegWriteA(0x6021, 0x12);//LGIT STILL & PAN ON MODE
		RegWriteA(0x6020, 0x02);//OIS ON

		if (!lgit2_ois_poll_ready(5))
			return OIS_INIT_TIMEOUT;
			
		break;
	case OIS_VER_CALIBRATION:
	case OIS_VER_DEBUG:
		lgit_ois_calibration(ver);

		/* OIS ON */
		RegWriteA(0x6021, 0x12);//LGIT STILL & PAN ON MODE
		RegWriteA(0x6020, 0x02);//OIS ON

		if (!lgit2_ois_poll_ready(5))
			return OIS_INIT_TIMEOUT;
		
		break;
	}
	
	lgit2_ois_func_tbl.ois_cur_mode = OIS_MODE_CENTERING_ONLY;
	
	CDBG("%s : complete!\n", __func__);	
	return rc;
}
Example #2
0
static int lgit_ois_rohm_on(enum ois_ver_t ver)
{
    int32_t rc = OIS_SUCCESS;
    uint16_t cal_ver = 0;

    ois_i2c_e2p_read(E2P_FIRST_ADDR + 0x1C, &cal_ver, 2);
    pr_info("%s ver %x\n", __func__, cal_ver);

    switch (cal_ver) {
    case 1:
        rc = lgit2_bin_download(LGIT_VER2_REL_BIN_DATA);
        break;
    case 2:
        rc = lgit2_bin_download(LGIT_VER3_CAL_BIN_DATA);
        if (rc < 0)
            rc = lgit2_bin_download(LGIT_VER3_REL_BIN_DATA);
        break;
    default:
        rc = OIS_INIT_NOT_SUPPORTED;
        break;
    }

    if (rc < 0) {
        pr_err("%s: init fail \n", __func__);
        return rc;
    }

    rc = lgit_ois_rohm_init_cmd(LIMIT_OIS_ON_RETRY);

    lgit_ois_rohm_func_tbl.ois_cur_mode = OIS_MODE_CENTERING_ONLY;

    /* temp code to execute ois */
    reg_write_addr(0x6021, 0x11); /* movie mode, pan on */
    reg_write_addr(0x6020, 0x02); /* ois on */

    CDBG("%s: complete!\n", __func__);
    return rc;
}