Beispiel #1
0
void imx135_set_dev_addr(struct msm_eeprom_ctrl_t *ectrl,
 uint32_t *reg_addr) {
 int32_t rc = 0;

 rc = msm_camera_i2c_write(&ectrl->i2c_client,
  0x3B02, (*reg_addr) >> 16, MSM_CAMERA_I2C_BYTE_DATA);
 if (rc != 0)
  pr_err("%s: Page write error\n", __func__);

 rc = msm_camera_i2c_write(&ectrl->i2c_client,
  0x3B00, 0x01, MSM_CAMERA_I2C_BYTE_DATA);
 if (rc != 0)
  pr_err("%s: Turn ON read mode write error\n", __func__);

 rc = msm_camera_i2c_poll(&ectrl->i2c_client,
  0x3B01, 0x01, MSM_CAMERA_I2C_BYTE_DATA);
 if (rc != 0)
  pr_err("%s: Ready ready poll error\n", __func__);

}
Beispiel #2
0
int32_t hi351_camera_i2c_write_tbl(struct msm_camera_i2c_client *client,
                                     struct msm_camera_i2c_reg_conf *reg_conf_tbl, uint16_t size,
                                     enum msm_camera_i2c_data_type data_type)
{
	int i;
	int32_t rc = -EFAULT;
	for (i = 0; i < size; i++) {
		enum msm_camera_i2c_data_type dt;
		if (reg_conf_tbl->cmd_type == MSM_CAMERA_I2C_CMD_POLL) {
			rc = msm_camera_i2c_poll(client, reg_conf_tbl->reg_addr,
				reg_conf_tbl->reg_data, reg_conf_tbl->dt);
		} else {
			if (reg_conf_tbl->dt == 0)
				dt = data_type;
			else
				dt = reg_conf_tbl->dt;

			switch (dt) {
			case MSM_CAMERA_I2C_BYTE_DATA:
			case MSM_CAMERA_I2C_WORD_DATA:
				rc = msm_camera_i2c_write(
					client,
					reg_conf_tbl->reg_addr,
					reg_conf_tbl->reg_data, dt);
				break;
			default:
				pr_err("%s: Unsupport data type: %d\n",
					__func__, dt);
				break;
			}
		}
		if (rc < 0)
			break;
		reg_conf_tbl++;
	}
	return rc;
}