コード例 #1
0
static int msm_eeprom_spi_parse_of(struct msm_camera_spi_client *spic)
{
	int rc = -EFAULT;
	uint32_t tmp[3];
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop,read", read, tmp, 3);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop,readseq", read_seq, tmp, 3);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop,queryid", query_id, tmp, 3);

	rc = of_property_read_u32_array(spic->spi_master->dev.of_node,
					"qcom,eeprom-id", tmp, 2);
	if (rc) {
		pr_err("%s: Failed to get eeprom id\n", __func__);
		return rc;
	}
	spic->mfr_id = tmp[0];
	spic->device_id = tmp[1];

	return 0;
}
コード例 #2
0
static int msm_eeprom_spi_parse_of(struct msm_camera_spi_client *spic)
{
	int rc = -EFAULT;
	uint32_t tmp[5];
	struct device_node *of = spic->spi_master->dev.of_node;
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop-read", read, tmp, 5);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop-readseq", read_seq, tmp, 5);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop-queryid", query_id, tmp, 5);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop-pprog",
				 page_program, tmp, 5);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop-wenable",
				 write_enable, tmp, 5);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop-readst",
				 read_status, tmp, 5);
	msm_eeprom_spi_parse_cmd(spic, "qcom,spiop-erase", erase, tmp, 5);

	rc = of_property_read_u32(of, "qcom,spi-busy-mask", tmp);
	if (rc < 0) {
		pr_err("%s: Failed to get busy mask\n", __func__);
		return rc;
	}
	spic->busy_mask = tmp[0];
	rc = of_property_read_u32(of, "qcom,spi-page-size", tmp);
	if (rc < 0) {
		pr_err("%s: Failed to get page size\n", __func__);
		return rc;
	}
	spic->page_size = tmp[0];
	rc = of_property_read_u32(of, "qcom,spi-erase-size", tmp);
	if (rc < 0) {
		pr_err("%s: Failed to get erase size\n", __func__);
		return rc;
	}
	spic->erase_size = tmp[0];

	rc = of_property_read_u32_array(of, "qcom,eeprom-id0", tmp, 2);
	if (rc < 0) {
		pr_err("%s: Failed to get eeprom id 0\n", __func__);
		return rc;
	}
	spic->mfr_id0 = tmp[0];
	spic->device_id0 = tmp[1];

	rc = of_property_read_u32_array(of, "qcom,eeprom-id1", tmp, 2);
	if (rc < 0) {
		pr_err("%s: Failed to get eeprom id 1\n", __func__);
		return rc;
	}
	spic->mfr_id1 = tmp[0];
	spic->device_id1 = tmp[1];

	return 0;
}