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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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); } }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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); }
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; }
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; }
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; }