GPIO: TPS65910: Move driver to drivers/gpio/
authorJorge Eduardo Candelaria <jedu@slimlogic.co.uk>
Mon, 16 May 2011 23:35:37 +0000 (18:35 -0500)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Fri, 27 May 2011 09:49:29 +0000 (10:49 +0100)
The GPIO driver should reside in drivers/gpio/ for better
organization.

Signed-off-by: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/gpio/tps65910-gpio.c [new file with mode: 0644]
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/mfd/tps65910-gpio.c [deleted file]

index b57ec09af891698dd1dc990c77cc4dfc9a2eed24..d213646037553cabba73180bc4beb1b6d6d68440 100644 (file)
@@ -424,4 +424,11 @@ config AB8500_GPIO
        depends on AB8500_CORE && BROKEN
        help
          Select this to enable the AB8500 IC GPIO driver
+
+config GPIO_TPS65910
+       bool "TPS65910 GPIO"
+       depends on MFD_TPS65910
+       help
+         Select this option to enable GPIO driver for the TPS65910
+         chip family.
 endif
index d92ce3a62ae593aedbaee5681ad3acc4485a8e4d..6a3387acc0e5d71b8daae00da808f271bca6ed3f 100644 (file)
@@ -40,3 +40,4 @@ obj-$(CONFIG_GPIO_SX150X)     += sx150x.o
 obj-$(CONFIG_GPIO_VX855)       += vx855_gpio.o
 obj-$(CONFIG_GPIO_ML_IOH)      += ml_ioh_gpio.o
 obj-$(CONFIG_AB8500_GPIO)       += ab8500-gpio.o
+obj-$(CONFIG_GPIO_TPS65910)    += tps65910-gpio.o
diff --git a/drivers/gpio/tps65910-gpio.c b/drivers/gpio/tps65910-gpio.c
new file mode 100644 (file)
index 0000000..f3ae376
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * tps65910-gpio.c  --  TI TPS6591x
+ *
+ * Copyright 2010 Texas Instruments Inc.
+ *
+ * Author: Graeme Gregory <gg@slimlogic.co.uk>
+ * Author: Jorge Eduardo Candelaria jedu@slimlogic.co.uk>
+ *
+ *  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;  either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/errno.h>
+#include <linux/gpio.h>
+#include <linux/i2c.h>
+#include <linux/mfd/tps65910.h>
+
+static int tps65910_gpio_get(struct gpio_chip *gc, unsigned offset)
+{
+       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
+       uint8_t val;
+
+       tps65910->read(tps65910, TPS65910_GPIO0, 1, &val);
+
+       if (val & GPIO0_GPIO_STS_MASK)
+               return 1;
+
+       return 0;
+}
+
+static void tps65910_gpio_set(struct gpio_chip *gc, unsigned offset,
+                             int value)
+{
+       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
+
+       if (value)
+               tps65910_set_bits(tps65910, TPS65910_GPIO0,
+                                       GPIO0_GPIO_SET_MASK);
+       else
+               tps65910_clear_bits(tps65910, TPS65910_GPIO0,
+                                       GPIO0_GPIO_SET_MASK);
+}
+
+static int tps65910_gpio_output(struct gpio_chip *gc, unsigned offset,
+                               int value)
+{
+       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
+
+       /* Set the initial value */
+       tps65910_gpio_set(gc, 0, value);
+
+       return tps65910_set_bits(tps65910, TPS65910_GPIO0, GPIO0_GPIO_CFG_MASK);
+}
+
+static int tps65910_gpio_input(struct gpio_chip *gc, unsigned offset)
+{
+       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
+
+       return tps65910_clear_bits(tps65910, TPS65910_GPIO0,
+                                       GPIO0_GPIO_CFG_MASK);
+}
+
+void tps65910_gpio_init(struct tps65910 *tps65910, int gpio_base)
+{
+       int ret;
+
+       if (!gpio_base)
+               return;
+
+       tps65910->gpio.owner            = THIS_MODULE;
+       tps65910->gpio.label            = tps65910->i2c_client->name;
+       tps65910->gpio.dev              = tps65910->dev;
+       tps65910->gpio.base             = gpio_base;
+       tps65910->gpio.ngpio            = 1;
+       tps65910->gpio.can_sleep        = 1;
+
+       tps65910->gpio.direction_input  = tps65910_gpio_input;
+       tps65910->gpio.direction_output = tps65910_gpio_output;
+       tps65910->gpio.set              = tps65910_gpio_set;
+       tps65910->gpio.get              = tps65910_gpio_get;
+
+       ret = gpiochip_add(&tps65910->gpio);
+
+       if (ret)
+               dev_warn(tps65910->dev, "GPIO registration failed: %d\n", ret);
+}
index 4990a492a09b3c2e6c0cadbc4b78913970c9c75b..b6c267724e14b1dabb9b08b6daac2821351f5817 100644 (file)
@@ -721,8 +721,9 @@ config MFD_PM8XXX_IRQ
 
 config MFD_TPS65910
        bool "TPS65910 Power Management chip"
-       depends on I2C=y && GPIOLIB
+       depends on I2C=y
        select MFD_CORE
+       select GPIO_TPS65910
        help
          if you say yes here you get support for the TPS65910 series of
          Power Management chips.
index bdb8eab5668b4b7e993b1a465632f633989d75a4..efe3cc33ed92ed83a7a8ece78f32686c87bb6170 100644 (file)
@@ -93,4 +93,4 @@ obj-$(CONFIG_MFD_CS5535)      += cs5535-mfd.o
 obj-$(CONFIG_MFD_OMAP_USB_HOST)        += omap-usb-host.o
 obj-$(CONFIG_MFD_PM8921_CORE)  += pm8921-core.o
 obj-$(CONFIG_MFD_PM8XXX_IRQ)   += pm8xxx-irq.o
-obj-$(CONFIG_MFD_TPS65910)     += tps65910.o tps65910-gpio.o tps65910-irq.o
+obj-$(CONFIG_MFD_TPS65910)     += tps65910.o tps65910-irq.o
diff --git a/drivers/mfd/tps65910-gpio.c b/drivers/mfd/tps65910-gpio.c
deleted file mode 100644 (file)
index f3ae376..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * tps65910-gpio.c  --  TI TPS6591x
- *
- * Copyright 2010 Texas Instruments Inc.
- *
- * Author: Graeme Gregory <gg@slimlogic.co.uk>
- * Author: Jorge Eduardo Candelaria jedu@slimlogic.co.uk>
- *
- *  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;  either version 2 of the License, or (at your
- *  option) any later version.
- *
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/errno.h>
-#include <linux/gpio.h>
-#include <linux/i2c.h>
-#include <linux/mfd/tps65910.h>
-
-static int tps65910_gpio_get(struct gpio_chip *gc, unsigned offset)
-{
-       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
-       uint8_t val;
-
-       tps65910->read(tps65910, TPS65910_GPIO0, 1, &val);
-
-       if (val & GPIO0_GPIO_STS_MASK)
-               return 1;
-
-       return 0;
-}
-
-static void tps65910_gpio_set(struct gpio_chip *gc, unsigned offset,
-                             int value)
-{
-       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
-
-       if (value)
-               tps65910_set_bits(tps65910, TPS65910_GPIO0,
-                                       GPIO0_GPIO_SET_MASK);
-       else
-               tps65910_clear_bits(tps65910, TPS65910_GPIO0,
-                                       GPIO0_GPIO_SET_MASK);
-}
-
-static int tps65910_gpio_output(struct gpio_chip *gc, unsigned offset,
-                               int value)
-{
-       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
-
-       /* Set the initial value */
-       tps65910_gpio_set(gc, 0, value);
-
-       return tps65910_set_bits(tps65910, TPS65910_GPIO0, GPIO0_GPIO_CFG_MASK);
-}
-
-static int tps65910_gpio_input(struct gpio_chip *gc, unsigned offset)
-{
-       struct tps65910 *tps65910 = container_of(gc, struct tps65910, gpio);
-
-       return tps65910_clear_bits(tps65910, TPS65910_GPIO0,
-                                       GPIO0_GPIO_CFG_MASK);
-}
-
-void tps65910_gpio_init(struct tps65910 *tps65910, int gpio_base)
-{
-       int ret;
-
-       if (!gpio_base)
-               return;
-
-       tps65910->gpio.owner            = THIS_MODULE;
-       tps65910->gpio.label            = tps65910->i2c_client->name;
-       tps65910->gpio.dev              = tps65910->dev;
-       tps65910->gpio.base             = gpio_base;
-       tps65910->gpio.ngpio            = 1;
-       tps65910->gpio.can_sleep        = 1;
-
-       tps65910->gpio.direction_input  = tps65910_gpio_input;
-       tps65910->gpio.direction_output = tps65910_gpio_output;
-       tps65910->gpio.set              = tps65910_gpio_set;
-       tps65910->gpio.get              = tps65910_gpio_get;
-
-       ret = gpiochip_add(&tps65910->gpio);
-
-       if (ret)
-               dev_warn(tps65910->dev, "GPIO registration failed: %d\n", ret);
-}