Пример #1
0
static int sec_pmic_remove(struct i2c_client *i2c)
{
	struct sec_pmic_dev *sec_pmic = i2c_get_clientdata(i2c);

	mfd_remove_devices(sec_pmic->dev);
	sec_irq_exit(sec_pmic);
	regmap_exit(sec_pmic->rtc_regmap);
	regmap_exit(sec_pmic->regmap);
	i2c_unregister_device(sec_pmic->rtc);
	return 0;
}
Пример #2
0
static int __devexit pm860x_remove(struct i2c_client *client)
{
	struct pm860x_chip *chip = i2c_get_clientdata(client);

	pm860x_device_exit(chip);
	if (chip->companion) {
		regmap_exit(chip->regmap_companion);
		i2c_unregister_device(chip->companion);
	}
	regmap_exit(chip->regmap);
	kfree(chip);
	return 0;
}
Пример #3
0
static int __devinit wm8988_spi_probe(struct spi_device *spi)
{
    struct wm8988_priv *wm8988;
    int ret;

    wm8988 = devm_kzalloc(&spi->dev, sizeof(struct wm8988_priv),
                          GFP_KERNEL);
    if (wm8988 == NULL)
        return -ENOMEM;

    wm8988->regmap = regmap_init_spi(spi, &wm8988_regmap);
    if (IS_ERR(wm8988->regmap)) {
        ret = PTR_ERR(wm8988->regmap);
        dev_err(&spi->dev, "Failed to init regmap: %d\n", ret);
        return ret;
    }

    spi_set_drvdata(spi, wm8988);

    ret = snd_soc_register_codec(&spi->dev,
                                 &soc_codec_dev_wm8988, &wm8988_dai, 1);
    if (ret != 0)
        regmap_exit(wm8988->regmap);

    return ret;
}
Пример #4
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;
}
Пример #5
0
static int tps65910_i2c_probe(struct i2c_client *i2c,
			    const struct i2c_device_id *id)
{
	struct tps65910 *tps65910;
	struct tps65910_board *pmic_plat_data;
	struct tps65910_platform_data *init_data;
	int ret = 0;

	pmic_plat_data = dev_get_platdata(&i2c->dev);
	if (!pmic_plat_data)
		return -EINVAL;

	init_data = kzalloc(sizeof(struct tps65910_platform_data), GFP_KERNEL);
	if (init_data == NULL)
		return -ENOMEM;

	tps65910 = kzalloc(sizeof(struct tps65910), GFP_KERNEL);
	if (tps65910 == NULL) {
		kfree(init_data);
		return -ENOMEM;
	}

	i2c_set_clientdata(i2c, tps65910);
	tps65910->dev = &i2c->dev;
	tps65910->i2c_client = i2c;
	tps65910->id = id->driver_data;
	tps65910->read = tps65910_i2c_read;
	tps65910->write = tps65910_i2c_write;
	mutex_init(&tps65910->io_mutex);

	tps65910->regmap = regmap_init_i2c(i2c, &tps65910_regmap_config);
	if (IS_ERR(tps65910->regmap)) {
		ret = PTR_ERR(tps65910->regmap);
		dev_err(&i2c->dev, "regmap initialization failed: %d\n", ret);
		goto regmap_err;
	}

	ret = mfd_add_devices(tps65910->dev, -1,
			      tps65910s, ARRAY_SIZE(tps65910s),
			      NULL, 0);
	if (ret < 0)
		goto err;

	init_data->irq = pmic_plat_data->irq;
	init_data->irq_base = pmic_plat_data->irq_base;

	tps65910_gpio_init(tps65910, pmic_plat_data->gpio_base);

	tps65910_irq_init(tps65910, init_data->irq, init_data);

	kfree(init_data);
	return ret;

err:
	regmap_exit(tps65910->regmap);
regmap_err:
	kfree(tps65910);
	kfree(init_data);
	return ret;
}
Пример #6
0
static __devinit int wm8988_i2c_probe(struct i2c_client *i2c,
                                      const struct i2c_device_id *id)
{
    struct wm8988_priv *wm8988;
    int ret;

    wm8988 = devm_kzalloc(&i2c->dev, sizeof(struct wm8988_priv),
                          GFP_KERNEL);
    if (wm8988 == NULL)
        return -ENOMEM;

    i2c_set_clientdata(i2c, wm8988);

    wm8988->regmap = regmap_init_i2c(i2c, &wm8988_regmap);
    if (IS_ERR(wm8988->regmap)) {
        ret = PTR_ERR(wm8988->regmap);
        dev_err(&i2c->dev, "Failed to init regmap: %d\n", ret);
        return ret;
    }

    ret =  snd_soc_register_codec(&i2c->dev,
                                  &soc_codec_dev_wm8988, &wm8988_dai, 1);
    if (ret != 0)
        regmap_exit(wm8988->regmap);

    return ret;
}
Пример #7
0
static int __devexit ak4104_spi_remove(struct spi_device *spi)
{
	struct ak4104_private *ak4101 = spi_get_drvdata(spi);
	regmap_exit(ak4101->regmap);
	snd_soc_unregister_codec(&spi->dev);
	return 0;
}
Пример #8
0
static int __devexit wm8988_spi_remove(struct spi_device *spi)
{
    struct wm8988_priv *wm8988 = spi_get_drvdata(spi);
    snd_soc_unregister_codec(&spi->dev);
    regmap_exit(wm8988->regmap);
    return 0;
}
Пример #9
0
static int __devinit ad193x_i2c_probe(struct i2c_client *client,
		const struct i2c_device_id *id)
{
	struct ad193x_priv *ad193x;
	int ret;

	ad193x = devm_kzalloc(&client->dev, sizeof(struct ad193x_priv),
			      GFP_KERNEL);
	if (ad193x == NULL)
		return -ENOMEM;

	ad193x->regmap = regmap_init_i2c(client, &ad193x_i2c_regmap_config);
	if (IS_ERR(ad193x->regmap)) {
		ret = PTR_ERR(ad193x->regmap);
		goto err_out;
	}

	i2c_set_clientdata(client, ad193x);

	ret =  snd_soc_register_codec(&client->dev,
			&soc_codec_dev_ad193x, &ad193x_dai, 1);
	if (ret < 0)
		goto err_regmap_exit;

	return 0;

err_regmap_exit:
	regmap_exit(ad193x->regmap);
err_out:
	return ret;
}
Пример #10
0
static int __devinit ad193x_spi_probe(struct spi_device *spi)
{
	struct ad193x_priv *ad193x;
	int ret;

	ad193x = devm_kzalloc(&spi->dev, sizeof(struct ad193x_priv),
			      GFP_KERNEL);
	if (ad193x == NULL)
		return -ENOMEM;

	ad193x->regmap = regmap_init_spi(spi, &ad193x_spi_regmap_config);
	if (IS_ERR(ad193x->regmap)) {
		ret = PTR_ERR(ad193x->regmap);
		goto err_out;
	}

	spi_set_drvdata(spi, ad193x);

	ret = snd_soc_register_codec(&spi->dev,
			&soc_codec_dev_ad193x, &ad193x_dai, 1);
	if (ret < 0)
		goto err_regmap_exit;

	return 0;

err_regmap_exit:
	regmap_exit(ad193x->regmap);
err_out:
	return ret;
}
Пример #11
0
static __devinit int wm8731_i2c_probe(struct i2c_client *i2c,
				      const struct i2c_device_id *id)
{
	struct wm8731_priv *wm8731;
	int ret;

	wm8731 = kzalloc(sizeof(struct wm8731_priv), GFP_KERNEL);
	if (wm8731 == NULL)
		return -ENOMEM;

	wm8731->regmap = regmap_init_i2c(i2c, &wm8731_regmap);
	if (IS_ERR(wm8731->regmap)) {
		ret = PTR_ERR(wm8731->regmap);
		dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
			ret);
		goto err;
	}

	i2c_set_clientdata(i2c, wm8731);

	ret = snd_soc_register_codec(&i2c->dev,
			&soc_codec_dev_wm8731, &wm8731_dai, 1);
	if (ret != 0) {
		dev_err(&i2c->dev, "Failed to register CODEC: %d\n", ret);
		goto err_regmap;
	}

	return 0;

err_regmap:
	regmap_exit(wm8731->regmap);
err:
	kfree(wm8731);
	return ret;
}
Пример #12
0
static __devinit int ak4535_i2c_probe(struct i2c_client *i2c,
				      const struct i2c_device_id *id)
{
	struct ak4535_priv *ak4535;
	int ret;

	ak4535 = devm_kzalloc(&i2c->dev, sizeof(struct ak4535_priv),
			      GFP_KERNEL);
	if (ak4535 == NULL)
		return -ENOMEM;

	ak4535->regmap = regmap_init_i2c(i2c, &ak4535_regmap);
	if (IS_ERR(ak4535->regmap)) {
		ret = PTR_ERR(ak4535->regmap);
		dev_err(&i2c->dev, "Failed to init regmap: %d\n", ret);
		return ret;
	}

	i2c_set_clientdata(i2c, ak4535);

	ret = snd_soc_register_codec(&i2c->dev,
			&soc_codec_dev_ak4535, &ak4535_dai, 1);
	if (ret != 0)
		regmap_exit(ak4535->regmap);

	return ret;
}
Пример #13
0
static int __devinit wm8731_spi_probe(struct spi_device *spi)
{
	struct wm8731_priv *wm8731;
	int ret;

	wm8731 = kzalloc(sizeof(struct wm8731_priv), GFP_KERNEL);
	if (wm8731 == NULL)
		return -ENOMEM;

	wm8731->regmap = regmap_init_spi(spi, &wm8731_regmap);
	if (IS_ERR(wm8731->regmap)) {
		ret = PTR_ERR(wm8731->regmap);
		dev_err(&spi->dev, "Failed to allocate register map: %d\n",
			ret);
		goto err;
	}

	spi_set_drvdata(spi, wm8731);

	ret = snd_soc_register_codec(&spi->dev,
			&soc_codec_dev_wm8731, &wm8731_dai, 1);
	if (ret != 0) {
		dev_err(&spi->dev, "Failed to register CODEC: %d\n", ret);
		goto err_regmap;
	}

	return 0;

err_regmap:
	regmap_exit(wm8731->regmap);
err:
	kfree(wm8731);
	return ret;
}
Пример #14
0
static __devexit int alc5632_i2c_remove(struct i2c_client *client)
{
	struct alc5632_priv *alc5632 = i2c_get_clientdata(client);
	snd_soc_unregister_codec(&client->dev);
	regmap_exit(alc5632->regmap);
	return 0;
}
Пример #15
0
static __devexit int wm8988_i2c_remove(struct i2c_client *client)
{
    struct wm8988_priv *wm8988 = i2c_get_clientdata(client);
    snd_soc_unregister_codec(&client->dev);
    regmap_exit(wm8988->regmap);
    return 0;
}
Пример #16
0
static int max97236_i2c_remove(struct i2c_client *client)
{
	struct max97236_priv *max97236 = dev_get_drvdata(&client->dev);
	snd_soc_unregister_codec(&client->dev);
	regmap_exit(max97236->regmap);
	kfree(i2c_get_clientdata(client));
	return 0;
}
Пример #17
0
static int s2abb01_i2c_remove(struct i2c_client *i2c)
{
	struct s2abb01_dev *s2abb01 = i2c_get_clientdata(i2c);

	regmap_exit(s2abb01->regmap);
	kfree(s2abb01);
	return 0;
}
Пример #18
0
static void pm800_pages_exit(struct pm80x_chip *chip)
{
	struct pm80x_subchip *subchip;

	regmap_exit(chip->regmap);
	i2c_unregister_device(chip->client);

	subchip = chip->subchip;
	if (subchip->power_page) {
		regmap_exit(subchip->regmap_power);
		i2c_unregister_device(subchip->power_page);
	}
	if (subchip->gpadc_page) {
		regmap_exit(subchip->regmap_gpadc);
		i2c_unregister_device(subchip->gpadc_page);
	}
}
Пример #19
0
static int __devexit ad193x_i2c_remove(struct i2c_client *client)
{
	struct ad193x_priv *ad193x = i2c_get_clientdata(client);

	snd_soc_unregister_codec(&client->dev);
	regmap_exit(ad193x->regmap);
	return 0;
}
Пример #20
0
static int __devexit ad193x_spi_remove(struct spi_device *spi)
{
	struct ad193x_priv *ad193x = spi_get_drvdata(spi);

	snd_soc_unregister_codec(&spi->dev);
	regmap_exit(ad193x->regmap);
	return 0;
}
Пример #21
0
static int __devexit wm9090_i2c_remove(struct i2c_client *i2c)
{
	struct wm9090_priv *wm9090 = i2c_get_clientdata(i2c);

	snd_soc_unregister_codec(&i2c->dev);
	regmap_exit(wm9090->regmap);

	return 0;
}
Пример #22
0
static __devexit int wm2000_i2c_remove(struct i2c_client *i2c)
{
	struct wm2000_priv *wm2000 = dev_get_drvdata(&i2c->dev);

	snd_soc_unregister_codec(&i2c->dev);
	regmap_exit(wm2000->regmap);

	return 0;
}
Пример #23
0
static __devexit int cs42l73_i2c_remove(struct i2c_client *client)
{
	struct cs42l73_private *cs42l73 = i2c_get_clientdata(client);

	snd_soc_unregister_codec(&client->dev);
	regmap_exit(cs42l73->regmap);

	return 0;
}
Пример #24
0
static int wm8400_i2c_remove(struct i2c_client *i2c)
{
    struct wm8400 *wm8400 = i2c_get_clientdata(i2c);

    wm8400_release(wm8400);
    regmap_exit(wm8400->regmap);

    return 0;
}
Пример #25
0
static int s5m87xx_i2c_remove(struct i2c_client *i2c)
{
	struct s5m87xx_dev *s5m87xx = i2c_get_clientdata(i2c);

	mfd_remove_devices(s5m87xx->dev);
	s5m_irq_exit(s5m87xx);
	i2c_unregister_device(s5m87xx->rtc);
	regmap_exit(s5m87xx->regmap);
	return 0;
}
Пример #26
0
static void wm8994_device_exit(struct wm8994 *wm8994)
{
	pm_runtime_disable(wm8994->dev);
	mfd_remove_devices(wm8994->dev);
	wm8994_irq_exit(wm8994);
	regulator_bulk_disable(wm8994->num_supplies,
			       wm8994->supplies);
	regulator_bulk_free(wm8994->num_supplies, wm8994->supplies);
	regmap_exit(wm8994->regmap);
}
Пример #27
0
static int __devexit da9052_spi_remove(struct spi_device *spi)
{
	struct da9052 *da9052 = dev_get_drvdata(&spi->dev);

	da9052_device_exit(da9052);
	regmap_exit(da9052->regmap);
	kfree(da9052);

	return 0;
}
static __devexit int max98504_i2c_remove(struct i2c_client *client)
{
	struct max98504_priv *max98504 = dev_get_drvdata(&client->dev);

	if (max98504->regmap)
		regmap_exit(max98504->regmap);
	kfree(i2c_get_clientdata(client));

	return 0;
}
Пример #29
0
static int max98925_i2c_probe(struct i2c_client *i2c_l,
			     const struct i2c_device_id *id)
{
	int ret;

	pr_err("%s: enter, device '%s'\n", __func__, id->name);

	max98925_data = kzalloc(sizeof(struct max98925_priv), GFP_KERNEL);
	if (max98925_data == NULL)
		return -ENOMEM;

	max98925_data->devtype = id->driver_data;
	max98925_data->control_data = i2c_l;
	//max98925_data->pdata = i2c_l->dev.platform_data;

	max98925_data->regmapL = regmap_init_i2c(i2c_l, &max98925_regmap);
	if (IS_ERR(max98925_data->regmapL)) {
		ret = PTR_ERR(max98925_data->regmapL);
		dev_err(&i2c_l->dev, "Failed to allocate regmapL: %d\n", ret);
		goto err_out;
	}
/*
	ret = of_property_read_u32(i2c_l->dev.of_node,
				"irq-gpio", &max98925_data->irq_gpio);
	if (ret) {
		dev_err(&i2c_l->dev, "DT has no property named irq_gpio\n");
		goto err_out;
	}

	ret = request_threaded_irq(gpio_to_irq(max98925_data->irq_gpio), NULL, max98925_irq_handler,
			IRQF_TRIGGER_HIGH | IRQF_ONESHOT, "MAX98925", max98925_data);
	if (ret < 0) {
		dev_err(&i2c_l->dev, "Failed to register IRQ for GPIO %d, error = %d\n",
			max98925_data->irq_gpio, ret);
		goto err_out;
	}
*/
	ret = sysfs_create_file(&i2c_l->dev.kobj, &dev_attr_register_list.attr);
	ret |= misc_register(&max98925_ctrl_miscdev);

	pr_info("%s: ret %d\n", __func__, ret);

	if(!max98925_dclient){
		max98925_dclient = dsm_register_client(&dsm_maxim_smartpa);
	}
err_out:

	if (ret < 0) {
		if (max98925_data->regmapL)
			regmap_exit(max98925_data->regmapL);
		kfree(max98925_data);
	}

	return ret;
}
Пример #30
0
static int max97236_i2c_remove(struct i2c_client *client)
{
	struct max97236_priv *max97236 = dev_get_drvdata(&client->dev);
	snd_soc_unregister_codec(&client->dev);
	regmap_exit(max97236->regmap);
	kfree(i2c_get_clientdata(client));
        #ifdef CONFIG_SWITCH
        switch_dev_unregister(&tegra_max97236_button_switch);
        #endif
	return 0;
}