Ejemplo n.º 1
0
static int wm8400_i2c_probe(struct i2c_client *i2c,
                            const struct i2c_device_id *id)
{
    struct wm8400 *wm8400;
    int ret;

    wm8400 = kzalloc(sizeof(struct wm8400), GFP_KERNEL);
    if (wm8400 == NULL) {
        ret = -ENOMEM;
        goto err;
    }

    wm8400->regmap = regmap_init_i2c(i2c, &wm8400_regmap_config);
    if (IS_ERR(wm8400->regmap)) {
        ret = PTR_ERR(wm8400->regmap);
        goto struct_err;
    }

    wm8400->dev = &i2c->dev;
    i2c_set_clientdata(i2c, wm8400);

    ret = wm8400_init(wm8400, i2c->dev.platform_data);
    if (ret != 0)
        goto map_err;

    return 0;

map_err:
    regmap_exit(wm8400->regmap);
struct_err:
    kfree(wm8400);
err:
    return ret;
}
Ejemplo n.º 2
0
static int wm8400_i2c_probe(struct i2c_client *i2c,
			    const struct i2c_device_id *id)
{
	struct wm8400 *wm8400;
	int ret;

	wm8400 = kzalloc(sizeof(struct wm8400), GFP_KERNEL);
	if (wm8400 == NULL) {
		ret = -ENOMEM;
		goto err;
	}

	wm8400->io_data = i2c;
	wm8400->read_dev = wm8400_i2c_read;
	wm8400->write_dev = wm8400_i2c_write;
	wm8400->dev = &i2c->dev;
	i2c_set_clientdata(i2c, wm8400);

	ret = wm8400_init(wm8400, i2c->dev.platform_data);
	if (ret != 0)
		goto struct_err;

	return 0;

struct_err:
	i2c_set_clientdata(i2c, NULL);
	kfree(wm8400);
err:
	return ret;
}
Ejemplo n.º 3
0
static int wm8400_i2c_probe(struct i2c_client *i2c,
			    const struct i2c_device_id *id)
{
	struct wm8400 *wm8400;
	int ret;

	wm8400 = devm_kzalloc(&i2c->dev, sizeof(struct wm8400), GFP_KERNEL);
	if (wm8400 == NULL) {
		ret = -ENOMEM;
		goto err;
	}

	wm8400->regmap = devm_regmap_init_i2c(i2c, &wm8400_regmap_config);
	if (IS_ERR(wm8400->regmap)) {
		ret = PTR_ERR(wm8400->regmap);
		goto err;
	}

	wm8400->dev = &i2c->dev;
	i2c_set_clientdata(i2c, wm8400);

	ret = wm8400_init(wm8400, dev_get_platdata(&i2c->dev));
	if (ret != 0)
		goto err;

	return 0;

err:
	return ret;
}
Ejemplo n.º 4
0
static int wm8400_i2c_probe(struct i2c_client *i2c,
			    const struct i2c_device_id *id)
{
	struct wm8400 *wm8400;

	wm8400 = devm_kzalloc(&i2c->dev, sizeof(struct wm8400), GFP_KERNEL);
	if (!wm8400)
		return -ENOMEM;

	wm8400->regmap = devm_regmap_init_i2c(i2c, &wm8400_regmap_config);
	if (IS_ERR(wm8400->regmap))
		return PTR_ERR(wm8400->regmap);

	wm8400->dev = &i2c->dev;
	i2c_set_clientdata(i2c, wm8400);

	return wm8400_init(wm8400, dev_get_platdata(&i2c->dev));
}