diff options
author | Syed Rafiuddin <srafiuddin@nvidia.com> | 2013-04-03 14:09:40 +0530 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2013-04-16 14:55:49 -0700 |
commit | f42984eb0c5340bad68200b87cbb1d58acd67d0a (patch) | |
tree | b265528e5cba8103a6f830bfb28073bb306508d4 /drivers | |
parent | 4123637ea11cdd589c6c7b09746bf1aeba4da93f (diff) |
mfd/regulator: remove bq2419x driver
The bq2419x driver functionality is merged into single file as
power/bq2419x-charger, these files are not required hence deleting.
Bug 1240114
Change-Id: Ibc09b12904558d6b0905f6bdf309e452f9c8be78
Signed-off-by: Syed Rafiuddin <srafiuddin@nvidia.com>
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/205497
(cherry picked from commit df6821a3a1013d4775fe7ed0c52a56a8bef29a1f)
Reviewed-on: http://git-master/r/216078
Reviewed-by: Hyong Bin Kim <hyongbink@nvidia.com>
Tested-by: Hyong Bin Kim <hyongbink@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mfd/Kconfig | 8 | ||||
-rw-r--r-- | drivers/mfd/Makefile | 1 | ||||
-rw-r--r-- | drivers/mfd/bq2419x.c | 144 | ||||
-rw-r--r-- | drivers/regulator/Kconfig | 6 | ||||
-rw-r--r-- | drivers/regulator/Makefile | 1 | ||||
-rw-r--r-- | drivers/regulator/bq2419x-regulator.c | 299 |
6 files changed, 0 insertions, 459 deletions
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 96f2da0c16c7..e08d8a932826 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -46,14 +46,6 @@ config MFD_ASIC3 This driver supports the ASIC3 multifunction chip found on many PDAs (mainly iPAQ and HTC based ones) -config MFD_BQ2419X - bool "Support for bq24190, bq24911, bq24192" - depends on I2C=y - select MFD_CORE - select REGMAP_I2C - help - This supports the bq24190, bq24911, bq24192 drivers. - config MFD_DAVINCI_VOICECODEC tristate select MFD_CORE diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index 3a72df44cfba..00fc5cc70f63 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -11,7 +11,6 @@ obj-$(CONFIG_HTC_EGPIO) += htc-egpio.o obj-$(CONFIG_HTC_PASIC3) += htc-pasic3.o obj-$(CONFIG_HTC_I2CPLD) += htc-i2cpld.o -obj-$(CONFIG_MFD_BQ2419X) += bq2419x.o obj-$(CONFIG_MFD_DAVINCI_VOICECODEC) += davinci_voicecodec.o obj-$(CONFIG_MFD_DM355EVM_MSP) += dm355evm_msp.o obj-$(CONFIG_MFD_TI_SSP) += ti-ssp.o diff --git a/drivers/mfd/bq2419x.c b/drivers/mfd/bq2419x.c deleted file mode 100644 index 59b7a0c12d5f..000000000000 --- a/drivers/mfd/bq2419x.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * bq2419x.c -- bq2419x - * - * MFD driver for BQ2419X charger. - * - * Copyright (c) 2012-2013, NVIDIA Corporation. - * - * Author: Laxman Dewangan <ldewangan@nvidia.com> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation version 2. - * - * This program is distributed "as is" WITHOUT ANY WARRANTY of any kind, - * whether express or implied; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307, USA - */ - -#include <linux/err.h> -#include <linux/gpio.h> -#include <linux/i2c.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/platform_device.h> -#include <linux/regmap.h> -#include <linux/mfd/core.h> -#include <linux/mfd/bq2419x.h> -#include <linux/slab.h> - -static struct mfd_cell bq2419x_children[] = { - {.name = "bq2419x-pmic",}, - {.name = "bq2419x-battery-charger",}, -}; - -static const struct regmap_config bq2419x_regmap_config = { - .reg_bits = 8, - .val_bits = 8, - .max_register = BQ2419X_MAX_REGS, -}; - -static int __devinit bq2419x_probe(struct i2c_client *client, - const struct i2c_device_id *id) -{ - struct bq2419x_platform_data *pdata; - struct bq2419x_chip *bq; - int ret; - - pdata = client->dev.platform_data; - if (!pdata) { - dev_err(&client->dev, "No Platform data"); - return -EIO; - } - - bq = devm_kzalloc(&client->dev, sizeof(*bq), GFP_KERNEL); - if (!bq) { - dev_err(&client->dev, "Memory allocation failed\n"); - return -ENOMEM; - } - - bq->dev = &client->dev; - bq->regmap = devm_regmap_init_i2c(client, &bq2419x_regmap_config); - if (IS_ERR(bq->regmap)) { - ret = PTR_ERR(bq->regmap); - dev_err(&client->dev, "regmap init failed with err %d\n", ret); - return ret; - } - i2c_set_clientdata(client, bq); - - if (pdata->disable_watchdog) { - ret = regmap_update_bits(bq->regmap, BQ2419X_WD, - BQ2419X_WD_MASK, BQ2419X_WD_DISABLE); - if (ret < 0) { - dev_err(bq->dev, "register %d update failed with err %d", - BQ2419X_WD, ret); - return ret; - } - } - - /* Clear EN_HIZ */ - ret = regmap_update_bits(bq->regmap, - BQ2419X_INPUT_SRC_REG, BQ2419X_EN_HIZ, 0); - if (ret < 0) { - dev_err(bq->dev, "error reading reg: 0x%x\n", - BQ2419X_INPUT_SRC_REG); - return ret; - } - - ret = mfd_add_devices(bq->dev, -1, bq2419x_children, - ARRAY_SIZE(bq2419x_children), NULL, 0); - if (ret < 0) { - dev_err(bq->dev, - "registering mfd sub devices failed, err = %d\n", ret); - return ret; - } - return 0; -} - -static int __devexit bq2419x_remove(struct i2c_client *client) -{ - struct bq2419x_chip *bq = i2c_get_clientdata(client); - - mfd_remove_devices(bq->dev); - return 0; -} - -static const struct i2c_device_id bq2419x_id[] = { - {.name = "bq2419x",}, - {}, -}; - -MODULE_DEVICE_TABLE(i2c, bq2419x_id); - -static struct i2c_driver bq2419x_i2c_driver = { - .driver = { - .name = "bq2419x", - .owner = THIS_MODULE, - }, - .probe = bq2419x_probe, - .remove = __devexit_p(bq2419x_remove), - .id_table = bq2419x_id, -}; - -static int __init bq2419x_init(void) -{ - return i2c_add_driver(&bq2419x_i2c_driver); -} -subsys_initcall(bq2419x_init); - -static void __exit bq2419x_cleanup(void) -{ - i2c_del_driver(&bq2419x_i2c_driver); -} -module_exit(bq2419x_cleanup); - -MODULE_AUTHOR("Laxman Dewangan <ldewangan@nvidia.com>"); -MODULE_DESCRIPTION("BQ2419X mfd core driver"); -MODULE_LICENSE("GPL v2"); diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index 84848300bf86..03aa8ab1a454 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -88,12 +88,6 @@ config REGULATOR_AAT2870 If you have a AnalogicTech AAT2870 say Y to enable the regulator driver. -config REGULATOR_BQ2419X - tristate "BQ24190, BQ24191, BQ24192 Charger VBUS regualtor" - depends on MFD_BQ2419X - help - Say y here to support the VBUS regulator support from BQ2419X. - config REGULATOR_DA903X tristate "Dialog Semiconductor DA9030/DA9034 regulators" depends on PMIC_DA903X diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile index 2bfff3150596..79ac38c4c7b1 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile @@ -16,7 +16,6 @@ obj-$(CONFIG_REGULATOR_AB3100) += ab3100.o obj-$(CONFIG_REGULATOR_AB8500) += ab8500.o obj-$(CONFIG_REGULATOR_AD5398) += ad5398.o obj-$(CONFIG_REGULATOR_ANATOP) += anatop-regulator.o -obj-$(CONFIG_REGULATOR_BQ2419X) += bq2419x-regulator.o obj-$(CONFIG_REGULATOR_DA903X) += da903x.o obj-$(CONFIG_REGULATOR_DA9052) += da9052-regulator.o obj-$(CONFIG_REGULATOR_DBX500_PRCMU) += dbx500-prcmu.o diff --git a/drivers/regulator/bq2419x-regulator.c b/drivers/regulator/bq2419x-regulator.c deleted file mode 100644 index e4f660212cc4..000000000000 --- a/drivers/regulator/bq2419x-regulator.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - * bq2419x-regulator.c -- bq2419x - * - * Regulator driver for BQ2419X charger. - * - * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. - * - * Author: Laxman Dewangan <ldewangan@nvidia.com> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation version 2. - * - * This program is distributed "as is" WITHOUT ANY WARRANTY of any kind, - * whether express or implied; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307, USA - */ - -#include <linux/err.h> -#include <linux/gpio.h> -#include <linux/i2c.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/platform_device.h> -#include <linux/regmap.h> -#include <linux/regulator/driver.h> -#include <linux/regulator/machine.h> -#include <linux/mfd/bq2419x.h> -#include <linux/slab.h> - -struct bq2419x_regulator_info { - struct device *dev; - struct regulator_desc desc; - struct regulator_dev *rdev; - struct bq2419x_chip *chip; - int gpio_otg_iusb; - bool power_off_on_suspend; - struct mutex mutex; - int shutdown_complete; -}; - -static int bq2419x_regulator_enable_time(struct regulator_dev *rdev) -{ - return 500000; -} - -static int bq2419x_dcdc_enable(struct regulator_dev *rdev) -{ - struct bq2419x_regulator_info *bq = rdev_get_drvdata(rdev); - int ret; - - dev_info(bq->dev, "%s called\n", __func__); - if (gpio_is_valid(bq->gpio_otg_iusb)) - gpio_set_value(bq->gpio_otg_iusb, 1); - - mutex_lock(&bq->mutex); - if (bq && bq->shutdown_complete) { - mutex_unlock(&bq->mutex); - return -ENODEV; - } - - /* Clear EN_HIZ */ - ret = regmap_update_bits(bq->chip->regmap, - BQ2419X_INPUT_SRC_REG, BQ2419X_EN_HIZ, 0); - if (ret < 0) { - dev_err(bq->dev, "error reading reg: 0x%x\n", - BQ2419X_INPUT_SRC_REG); - return ret; - } - - ret = regmap_update_bits(bq->chip->regmap, BQ2419X_OTG, - BQ2419X_OTG_ENABLE_MASK, BQ2419X_OTG_ENABLE); - if (ret < 0) { - dev_err(bq->dev, "register %d update failed with err %d", - BQ2419X_OTG, ret); - mutex_unlock(&bq->mutex); - return ret; - } - mutex_unlock(&bq->mutex); - return ret; -} - -static int bq2419x_dcdc_disable(struct regulator_dev *rdev) -{ - struct bq2419x_regulator_info *bq = rdev_get_drvdata(rdev); - int ret = 0; - - dev_info(bq->dev, "%s called\n", __func__); - mutex_lock(&bq->mutex); - if (bq && bq->shutdown_complete) { - mutex_unlock(&bq->mutex); - return -ENODEV; - } - - ret = regmap_update_bits(bq->chip->regmap, BQ2419X_OTG, - BQ2419X_OTG_ENABLE_MASK, 0x10); - if (ret < 0) { - dev_err(bq->dev, "register %d update failed with err %d", - BQ2419X_OTG, ret); - mutex_unlock(&bq->mutex); - return ret; - } - - if (gpio_is_valid(bq->gpio_otg_iusb)) - gpio_set_value(bq->gpio_otg_iusb, 0); - - mutex_unlock(&bq->mutex); - return ret; -} - -static int bq2419x_dcdc_is_enabled(struct regulator_dev *rdev) -{ - struct bq2419x_regulator_info *bq = rdev_get_drvdata(rdev); - int ret; - unsigned int data; - - mutex_lock(&bq->mutex); - if (bq && bq->shutdown_complete) { - mutex_unlock(&bq->mutex); - return -ENODEV; - } - ret = regmap_read(bq->chip->regmap, BQ2419X_OTG, &data); - if (ret < 0) { - dev_err(bq->dev, "register %d read failed with err %d", - BQ2419X_OTG, ret); - mutex_unlock(&bq->mutex); - return ret; - } - mutex_unlock(&bq->mutex); - return (data & BQ2419X_OTG_ENABLE_MASK) == BQ2419X_OTG_ENABLE; -} - -static struct regulator_ops bq2419x_dcdc_ops = { - .enable = bq2419x_dcdc_enable, - .disable = bq2419x_dcdc_disable, - .is_enabled = bq2419x_dcdc_is_enabled, - .enable_time = bq2419x_regulator_enable_time, -}; - -static void bq2419x_regulator_shutdown(struct platform_device *pdev) -{ - struct bq2419x_regulator_info *bq = platform_get_drvdata(pdev); - - mutex_lock(&bq->mutex); - bq->shutdown_complete = 1; - mutex_unlock(&bq->mutex); -} - -static int __devinit bq2419x_regulator_probe(struct platform_device *pdev) -{ - struct bq2419x_regulator_platform_data *pdata = NULL; - struct bq2419x_platform_data *chip_pdata; - struct regulator_dev *rdev; - struct bq2419x_regulator_info *bq; - int ret; - - chip_pdata = dev_get_platdata(pdev->dev.parent); - if (chip_pdata) - pdata = chip_pdata->reg_pdata; - - if (!pdata) { - dev_err(&pdev->dev, "No Platform data"); - return -EIO; - } - - bq = devm_kzalloc(&pdev->dev, sizeof(*bq), GFP_KERNEL); - if (!bq) { - dev_err(&pdev->dev, "Memory allocation failed\n"); - return -ENOMEM; - } - - bq->dev = &pdev->dev; - bq->chip = dev_get_drvdata(pdev->dev.parent); - - bq->gpio_otg_iusb = pdata->gpio_otg_iusb; - bq->power_off_on_suspend = pdata->power_off_on_suspend; - bq->desc.name = "bq2419x-vbus"; - bq->desc.id = 0; - bq->desc.ops = &bq2419x_dcdc_ops; - bq->desc.type = REGULATOR_VOLTAGE; - bq->desc.owner = THIS_MODULE; - bq->shutdown_complete = 0; - mutex_init(&bq->mutex); - - platform_set_drvdata(pdev, bq); - - if (gpio_is_valid(bq->gpio_otg_iusb)) { - ret = gpio_request(bq->gpio_otg_iusb, dev_name(&pdev->dev)); - if (ret < 0) { - dev_err(&pdev->dev, - "gpio request failed, err = %d\n", ret); - return ret; - } - gpio_direction_output(bq->gpio_otg_iusb, 0); - } - - /* Register the regulators */ - rdev = regulator_register(&bq->desc, &pdev->dev, - pdata->reg_init_data, bq, NULL); - if (IS_ERR(rdev)) { - ret = PTR_ERR(rdev); - dev_err(bq->dev, "regulator register failed, err %d\n", ret); - goto err_init; - } - - bq->rdev = rdev; - - ret = regmap_update_bits(bq->chip->regmap, BQ2419X_OTG, - BQ2419X_OTG_ENABLE_MASK, 0x10); - if (ret < 0) { - dev_err(bq->dev, "register %d update failed with err %d", - BQ2419X_OTG, ret); - goto err_reg_update; - } - return 0; - -err_reg_update: - regulator_unregister(bq->rdev); -err_init: - if (gpio_is_valid(bq->gpio_otg_iusb)) - gpio_free(bq->gpio_otg_iusb); - mutex_destroy(&bq->mutex); - return ret; -} - -static int __devexit bq2419x_regulator_remove(struct platform_device *pdev) -{ - struct bq2419x_regulator_info *bq = platform_get_drvdata(pdev); - - mutex_destroy(&bq->mutex); - regulator_unregister(bq->rdev); - if (gpio_is_valid(bq->gpio_otg_iusb)) - gpio_free(bq->gpio_otg_iusb); - return 0; -} - -#ifdef CONFIG_PM_SLEEP -static int bq2419x_reg_suspend(struct device *dev) -{ - struct bq2419x_regulator_info *bq = dev_get_drvdata(dev); - - if (bq->power_off_on_suspend && bq2419x_dcdc_is_enabled(bq->rdev) > 0) - bq2419x_dcdc_disable(bq->rdev); - return 0; -} - -static int bq2419x_reg_resume(struct device *dev) -{ - struct bq2419x_regulator_info *bq = dev_get_drvdata(dev); - - /* Turn on regulator that might be turned off by bq2419x_reg_suspend() - * and that should be turned on according to the regulators properties. - */ - if (bq->power_off_on_suspend && - (bq->rdev->use_count > 0 || bq->rdev->constraints->always_on)) - bq2419x_dcdc_enable(bq->rdev); - return 0; -} - -static const struct dev_pm_ops bq2419x_reg_pm_ops = { - SET_SYSTEM_SLEEP_PM_OPS(bq2419x_reg_suspend, bq2419x_reg_resume) -}; -#endif - -static struct platform_driver bq2419x_regulator_driver = { - .driver = { - .name = "bq2419x-pmic", - .owner = THIS_MODULE, -#ifdef CONFIG_PM_SLEEP - .pm = &bq2419x_reg_pm_ops, -#endif - }, - .probe = bq2419x_regulator_probe, - .shutdown = bq2419x_regulator_shutdown, - .remove = __devexit_p(bq2419x_regulator_remove), -}; - -static int __init bq2419x_init(void) -{ - return platform_driver_register(&bq2419x_regulator_driver); -} -subsys_initcall(bq2419x_init); - -static void __exit bq2419x_cleanup(void) -{ - platform_driver_unregister(&bq2419x_regulator_driver); -} -module_exit(bq2419x_cleanup); - -MODULE_AUTHOR("Laxman Dewangan <ldewangan@nvidia.com>"); -MODULE_DESCRIPTION("BQ2419X voltage regulator driver"); -MODULE_LICENSE("GPL v2"); |