power: supply: move HDQ interface for bq27xxx from w1 to power/supply
authorAndrew F. Davis <afd@ti.com>
Wed, 19 Jul 2017 17:04:06 +0000 (12:04 -0500)
committerSebastian Reichel <sebastian.reichel@collabora.co.uk>
Tue, 25 Jul 2017 13:17:39 +0000 (15:17 +0200)
The HDQ interface driver should be in this folder just like the I2C
interface driver. Move this driver out of drivers/w1/slave and into
drivers/power/supply.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
drivers/power/supply/Kconfig
drivers/power/supply/Makefile
drivers/power/supply/bq27xxx_battery_hdq.c [new file with mode: 0644]
drivers/w1/slaves/Kconfig
drivers/w1/slaves/Makefile
drivers/w1/slaves/w1_bq27000.c [deleted file]

index 969f5005669cad5749ad031850b9d77d02747389..af6397224a82ba02e6e3aa414dcc9e2bfa6e222c 100644 (file)
@@ -198,6 +198,15 @@ config BATTERY_BQ27XXX_I2C
          Say Y here to enable support for batteries with BQ27xxx chips
          connected over an I2C bus.
 
+config BATTERY_BQ27XXX_HDQ
+       tristate "BQ27xxx HDQ support"
+       depends on BATTERY_BQ27XXX
+       depends on W1
+       default y
+       help
+         Say Y here to enable support for batteries with BQ27xxx chips
+         connected over an HDQ bus.
+
 config BATTERY_BQ27XXX_DT_UPDATES_NVM
        bool "BQ27xxx support for update of NVM/flash data memory"
        depends on BATTERY_BQ27XXX_I2C
index a41f40957847fe971037e1cb01356473268b09ce..946a5e6be860871388715c921f33cdd82ea53d8f 100644 (file)
@@ -38,6 +38,7 @@ obj-$(CONFIG_BATTERY_SBS)     += sbs-battery.o
 obj-$(CONFIG_CHARGER_SBS)      += sbs-charger.o
 obj-$(CONFIG_BATTERY_BQ27XXX)  += bq27xxx_battery.o
 obj-$(CONFIG_BATTERY_BQ27XXX_I2C) += bq27xxx_battery_i2c.o
+obj-$(CONFIG_BATTERY_BQ27XXX_HDQ) += bq27xxx_battery_hdq.o
 obj-$(CONFIG_BATTERY_DA9030)   += da9030_battery.o
 obj-$(CONFIG_BATTERY_DA9052)   += da9052-battery.o
 obj-$(CONFIG_CHARGER_DA9150)   += da9150-charger.o
diff --git a/drivers/power/supply/bq27xxx_battery_hdq.c b/drivers/power/supply/bq27xxx_battery_hdq.c
new file mode 100644 (file)
index 0000000..f4df67e
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2007 Texas Instruments, Inc.
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2. This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/device.h>
+#include <linux/types.h>
+#include <linux/platform_device.h>
+#include <linux/mutex.h>
+#include <linux/power/bq27xxx_battery.h>
+
+#include <linux/w1.h>
+
+#define W1_FAMILY_BQ27000      0x01
+
+#define HDQ_CMD_READ   (0)
+#define HDQ_CMD_WRITE  (1<<7)
+
+static int F_ID;
+module_param(F_ID, int, S_IRUSR);
+MODULE_PARM_DESC(F_ID, "1-wire slave FID for BQ device");
+
+static int w1_bq27000_read(struct device *dev, unsigned int reg)
+{
+       u8 val;
+       struct w1_slave *sl = container_of(dev->parent, struct w1_slave, dev);
+
+       mutex_lock(&sl->master->bus_mutex);
+       w1_write_8(sl->master, HDQ_CMD_READ | reg);
+       val = w1_read_8(sl->master);
+       mutex_unlock(&sl->master->bus_mutex);
+
+       return val;
+}
+
+static struct bq27xxx_platform_data bq27000_battery_info = {
+       .read   = w1_bq27000_read,
+       .name   = "bq27000-battery",
+       .chip   = BQ27000,
+};
+
+static int w1_bq27000_add_slave(struct w1_slave *sl)
+{
+       int ret;
+       struct platform_device *pdev;
+
+       pdev = platform_device_alloc("bq27000-battery", -1);
+       if (!pdev) {
+               ret = -ENOMEM;
+               return ret;
+       }
+       ret = platform_device_add_data(pdev,
+                                      &bq27000_battery_info,
+                                      sizeof(bq27000_battery_info));
+       if (ret)
+               goto pdev_add_failed;
+       pdev->dev.parent = &sl->dev;
+
+       ret = platform_device_add(pdev);
+       if (ret)
+               goto pdev_add_failed;
+
+       dev_set_drvdata(&sl->dev, pdev);
+
+       goto success;
+
+pdev_add_failed:
+       platform_device_put(pdev);
+success:
+       return ret;
+}
+
+static void w1_bq27000_remove_slave(struct w1_slave *sl)
+{
+       struct platform_device *pdev = dev_get_drvdata(&sl->dev);
+
+       platform_device_unregister(pdev);
+}
+
+static struct w1_family_ops w1_bq27000_fops = {
+       .add_slave      = w1_bq27000_add_slave,
+       .remove_slave   = w1_bq27000_remove_slave,
+};
+
+static struct w1_family w1_bq27000_family = {
+       .fid = W1_FAMILY_BQ27000,
+       .fops = &w1_bq27000_fops,
+};
+
+static int __init w1_bq27000_init(void)
+{
+       if (F_ID)
+               w1_bq27000_family.fid = F_ID;
+
+       return w1_register_family(&w1_bq27000_family);
+}
+
+static void __exit w1_bq27000_exit(void)
+{
+       w1_unregister_family(&w1_bq27000_family);
+}
+
+module_init(w1_bq27000_init);
+module_exit(w1_bq27000_exit);
+
+MODULE_AUTHOR("Texas Instruments Ltd");
+MODULE_DESCRIPTION("HDQ/1-wire slave driver bq27000 battery monitor chip");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("w1-family-" __stringify(W1_FAMILY_BQ27000));
index fb68465908f21371a31f0656d101996d568cb26c..dc443768395680bca0b59593b56bcb9bc824e79a 100644 (file)
@@ -140,10 +140,4 @@ config W1_SLAVE_DS28E04
 
          If you are unsure, say N.
 
-config W1_SLAVE_BQ27000
-       tristate "BQ27000 slave support"
-       help
-         Say Y here if you want to use a hdq
-         bq27000 slave support.
-
 endmenu
index 54c63e4203024d2dcc34dd69f31665f19f01aa9e..e59441a5e1577ee8ae7e77585bdeb76723f3ff5a 100644 (file)
@@ -15,5 +15,4 @@ obj-$(CONFIG_W1_SLAVE_DS2438) += w1_ds2438.o
 obj-$(CONFIG_W1_SLAVE_DS2760)  += w1_ds2760.o
 obj-$(CONFIG_W1_SLAVE_DS2780)  += w1_ds2780.o
 obj-$(CONFIG_W1_SLAVE_DS2781)  += w1_ds2781.o
-obj-$(CONFIG_W1_SLAVE_BQ27000) += w1_bq27000.o
 obj-$(CONFIG_W1_SLAVE_DS28E04) += w1_ds28e04.o
diff --git a/drivers/w1/slaves/w1_bq27000.c b/drivers/w1/slaves/w1_bq27000.c
deleted file mode 100644 (file)
index 8046ac4..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * drivers/w1/slaves/w1_bq27000.c
- *
- * Copyright (C) 2007 Texas Instruments, Inc.
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2. This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- *
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/types.h>
-#include <linux/platform_device.h>
-#include <linux/mutex.h>
-#include <linux/power/bq27xxx_battery.h>
-
-#include <linux/w1.h>
-
-#define W1_FAMILY_BQ27000      0x01
-
-#define HDQ_CMD_READ   (0)
-#define HDQ_CMD_WRITE  (1<<7)
-
-static int F_ID;
-module_param(F_ID, int, S_IRUSR);
-MODULE_PARM_DESC(F_ID, "1-wire slave FID for BQ device");
-
-static int w1_bq27000_read(struct device *dev, unsigned int reg)
-{
-       u8 val;
-       struct w1_slave *sl = container_of(dev->parent, struct w1_slave, dev);
-
-       mutex_lock(&sl->master->bus_mutex);
-       w1_write_8(sl->master, HDQ_CMD_READ | reg);
-       val = w1_read_8(sl->master);
-       mutex_unlock(&sl->master->bus_mutex);
-
-       return val;
-}
-
-static struct bq27xxx_platform_data bq27000_battery_info = {
-       .read   = w1_bq27000_read,
-       .name   = "bq27000-battery",
-       .chip   = BQ27000,
-};
-
-static int w1_bq27000_add_slave(struct w1_slave *sl)
-{
-       int ret;
-       struct platform_device *pdev;
-
-       pdev = platform_device_alloc("bq27000-battery", -1);
-       if (!pdev) {
-               ret = -ENOMEM;
-               return ret;
-       }
-       ret = platform_device_add_data(pdev,
-                                      &bq27000_battery_info,
-                                      sizeof(bq27000_battery_info));
-       if (ret)
-               goto pdev_add_failed;
-       pdev->dev.parent = &sl->dev;
-
-       ret = platform_device_add(pdev);
-       if (ret)
-               goto pdev_add_failed;
-
-       dev_set_drvdata(&sl->dev, pdev);
-
-       goto success;
-
-pdev_add_failed:
-       platform_device_put(pdev);
-success:
-       return ret;
-}
-
-static void w1_bq27000_remove_slave(struct w1_slave *sl)
-{
-       struct platform_device *pdev = dev_get_drvdata(&sl->dev);
-
-       platform_device_unregister(pdev);
-}
-
-static struct w1_family_ops w1_bq27000_fops = {
-       .add_slave      = w1_bq27000_add_slave,
-       .remove_slave   = w1_bq27000_remove_slave,
-};
-
-static struct w1_family w1_bq27000_family = {
-       .fid = W1_FAMILY_BQ27000,
-       .fops = &w1_bq27000_fops,
-};
-
-static int __init w1_bq27000_init(void)
-{
-       if (F_ID)
-               w1_bq27000_family.fid = F_ID;
-
-       return w1_register_family(&w1_bq27000_family);
-}
-
-static void __exit w1_bq27000_exit(void)
-{
-       w1_unregister_family(&w1_bq27000_family);
-}
-
-module_init(w1_bq27000_init);
-module_exit(w1_bq27000_exit);
-
-MODULE_AUTHOR("Texas Instruments Ltd");
-MODULE_DESCRIPTION("HDQ/1-wire slave driver bq27000 battery monitor chip");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("w1-family-" __stringify(W1_FAMILY_BQ27000));