static int i2c_init(blsp_qup_id_t id) { qup_config_t *qup_config; switch (id) { case BLSP_QUP_ID_0: qup_config = &blsp1_qup0_config; break; case BLSP_QUP_ID_1: qup_config = &blsp1_qup1_config; break; case BLSP_QUP_ID_2: qup_config = &blsp1_qup2_config; break; case BLSP_QUP_ID_3: qup_config = &blsp1_qup3_config; break; default: printk(BIOS_ERR, "QUP configuration not defined for BLSP%d.\n", id); return 1; } if (qup_config->initialized) return 0; if (blsp_i2c_init(id)) { printk(BIOS_ERR, "failed to initialize blsp\n"); return 1; } if (qup_init(id, qup_config)) { printk(BIOS_ERR, "failed to initialize qup\n"); return 1; } if (qup_reset_i2c_master_status(id)) { printk(BIOS_ERR, "failed to reset i2c master status\n"); return 1; } qup_config->initialized = 1; return 0; }
static int i2c_init(unsigned bus) { unsigned gsbi_id = bus; qup_config_t *qup_config; switch (gsbi_id) { case GSBI_ID_1: qup_config = &gsbi1_qup_config; break; case GSBI_ID_4: qup_config = &gsbi4_qup_config; break; case GSBI_ID_7: qup_config = &gsbi7_qup_config; break; default: printk(BIOS_ERR, "QUP configuration not defind for GSBI%d.\n", gsbi_id); return 1; } if (qup_config->initialized) return 0; if (gsbi_init(gsbi_id, GSBI_PROTO_I2C_ONLY)) { printk(BIOS_ERR, "failed to initialize gsbi\n"); return 1; } if (qup_init(gsbi_id, qup_config)) { printk(BIOS_ERR, "failed to initialize qup\n"); return 1; } if (qup_reset_i2c_master_status(gsbi_id)) { printk(BIOS_ERR, "failed to reset i2c master status\n"); return 1; } qup_config->initialized = 1; return 0; }
static int i2c_init(unsigned gsbi_id) { gsbi_return_t gsbi_ret = 0; qup_return_t qup_ret = 0; qup_config_t *qup_config; switch (gsbi_id) { case 1: qup_config = &gsbi1_qup_config; break; case 4: qup_config = &gsbi4_qup_config; break; case 7: qup_config = &gsbi7_qup_config; break; default: printf("QUP configuration not defined for GSBI%d\n", gsbi_id); return 1; } gsbi_ret = gsbi_init(gsbi_id, GSBI_PROTO_I2C_ONLY); if (GSBI_SUCCESS != gsbi_ret) { printf("%s: gsbi_init failed\n", __func__); return 1; } qup_ret = qup_init(gsbi_id, qup_config); if (QUP_SUCCESS != qup_ret) { printf("%s: qup_init failed\n", __func__); return 1; } qup_ret = qup_reset_i2c_master_status(gsbi_id); if (QUP_SUCCESS != qup_ret) { printf("%s: qup_reset failed\n", __func__); return 1; } return 0; }
static int i2c_init(blsp_qup_id_t id) { qup_config_t *qup_config; switch (id) { case BLSP_QUP_ID_0: qup_config = &blsp1_qup0_config; break; case BLSP_QUP_ID_1: qup_config = &blsp1_qup1_config; break; case BLSP_QUP_ID_2: qup_config = &blsp1_qup2_config; break; case BLSP_QUP_ID_3: qup_config = &blsp1_qup3_config; break; default: printf("QUP configuration not defind for GSBI%d.\n", id); return 1; } if (blsp_init(id, BLSP_PROTO_I2C_ONLY)) { printf("failed to initialize blsp\n"); return 1; } if (qup_init(id, qup_config)) { printf("failed to initialize qup\n"); return 1; } if (qup_reset_i2c_master_status(id)) { printf("failed to reset i2c master status\n"); return 1; } return 0; }