static int cs8427_i2c_write(struct cs8427 *chip, unsigned short reg, int bytes, void *src) { int ret = 0, err = 0; struct cs8427_platform_data *pdata = chip->client->dev.platform_data; /* * enable the 100KHz level shifter to communicate * with CS8427 chip */ if (pdata->enable) { err = pdata->enable(1, pdata->ls_gpio); if (err < 0) { dev_err(&chip->client->dev, "failed to enable the level shifter\n"); return err; } } ret = cs8427_i2c_write_device(chip, reg, src, bytes); /* * Disable the 100KHz level shifter to communicate * with CS8427 chip */ if (pdata->enable) { err = pdata->enable(0, pdata->ls_gpio); if (err < 0) { dev_err(&chip->client->dev, "failed to disable the level shifter\n"); return err; } } return ret; }
static int cs8427_i2c_sendbytes(struct cs8427 *chip, char *reg_addr, char *data, int bytes) { int ret = 0; u8 i = 0; if (!chip) { pr_err("%s, invalid device info\n", __func__); return -ENODEV; } if (!data) { dev_err(&chip->client->dev, "%s:" "invalid data pointer\n", __func__); return -EINVAL; } for (i = 0; i < bytes; i++) { ret = cs8427_i2c_write_device(chip, (*reg_addr + i), &data[i], 1); if (ret < 0) { dev_err(&chip->client->dev, "%s: failed to send the data to" " cs8427 chip\n", __func__); break; } } return i; }
static int cs8427_i2c_sendbytes(struct cs8427 *chip, char *reg_addr, char *data, int bytes) { u32 ret = 0, err = 0; u8 i = 0; struct cs8427_platform_data *pdata = chip->client->dev.platform_data; if (!chip) { pr_err("%s, invalid device info\n", __func__); return -ENODEV; } if (!data) { dev_err(&chip->client->dev, "%s:" "invalid data pointer\n", __func__); return -EINVAL; } /* * enable the 100KHz level shifter to communicate * with CS8427 chip */ if (pdata->enable) { err = pdata->enable(1, pdata->ls_gpio); if (err < 0) { dev_err(&chip->client->dev, "failed to enable the level shifter\n"); return err; } } for (i = 0; i < bytes; i++) { ret = cs8427_i2c_write_device(chip, (*reg_addr + i), &data[i], 1); if (ret < 0) { dev_err(&chip->client->dev, "%s: failed to send the data to" " cs8427 chip\n", __func__); break; } } /* * Disable the 100KHz level shifter to communicate * with CS8427 chip */ if (pdata->enable) { err = pdata->enable(0, pdata->ls_gpio); if (err < 0) { dev_err(&chip->client->dev, "failed to disable the level shifter\n"); return err; } } return i; }
static int cs8427_i2c_write(struct cs8427 *chip, unsigned short reg, int bytes, void *src) { return cs8427_i2c_write_device(chip, reg, src, bytes); }