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; }
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; }