Ejemplo n.º 1
0
static int pm805_probe(struct i2c_client *client,
                       const struct i2c_device_id *id)
{
    int ret = 0;
    struct pm80x_chip *chip;
    struct pm80x_platform_data *pdata = dev_get_platdata(&client->dev);

    ret = pm80x_init(client);
    if (ret) {
        dev_err(&client->dev, "pm805_init fail!\n");
        goto out_init;
    }

    chip = i2c_get_clientdata(client);

    ret = device_805_init(chip);
    if (ret) {
        dev_err(chip->dev, "Failed to initialize 88pm805 devices\n");
        goto err_805_init;
    }

    if (pdata && pdata->plat_config)
        pdata->plat_config(chip, pdata);

err_805_init:
    pm80x_deinit();
out_init:
    return ret;
}
Ejemplo n.º 2
0
static int pm805_probe(struct i2c_client *client,
				 const struct i2c_device_id *id)
{
	int ret = 0;
	struct pm80x_chip *chip;
	struct pm80x_platform_data *pdata = client->dev.platform_data;

	ret = pm80x_init(client, id);
	if (ret) {
		dev_err(&client->dev, "pm805_init fail!\n");
		goto out_init;
	}

	chip = i2c_get_clientdata(client);

	ret = device_805_init(chip);
	if (ret) {
		dev_err(chip->dev, "%s id 0x%x failed!\n", __func__, chip->id);
		goto err_805_init;
	}

	if (pdata->plat_config)
		pdata->plat_config(chip, pdata);

err_805_init:
	pm80x_deinit(client);
out_init:
	return ret;
}