All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
@ 2011-04-27 15:51 Jorge Eduardo Candelaria
  2011-04-29 15:23 ` Liam Girdwood
  0 siblings, 1 reply; 8+ messages in thread
From: Jorge Eduardo Candelaria @ 2011-04-27 15:51 UTC (permalink / raw)
  To: linux-kernel; +Cc: broonie, lrg, sameo, Graeme Gregory, grant

From: Graeme Gregory <gg@slimlogic.co.uk>

TPS65910 has one configurable GPIO that can be used for several
purposes. Subsequent versions of the TPS chip support more than
one GPIO.

Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
Signed-off-by: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
---
 drivers/mfd/Makefile         |    2 +-
 drivers/mfd/tps65910-gpio.c  |   91 ++++++++++++++++++++++++++++++++++++++++++
 drivers/mfd/tps65910.c       |    7 +++
 include/linux/mfd/tps65910.h |    2 +
 4 files changed, 101 insertions(+), 1 deletions(-)
 create mode 100644 drivers/mfd/tps65910-gpio.c

diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index 3afb7ac..012ed17 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -88,4 +88,4 @@ obj-$(CONFIG_MFD_VX855)		+= vx855.o
 obj-$(CONFIG_MFD_WL1273_CORE)	+= wl1273-core.o
 obj-$(CONFIG_MFD_CS5535)	+= cs5535-mfd.o
 obj-$(CONFIG_MFD_OMAP_USB_HOST)	+= omap-usb-host.o
-obj-$(CONFIG_MFD_TPS65910)	+= tps65910.o
+obj-$(CONFIG_MFD_TPS65910)	+= tps65910.o tps65910-gpio.o
diff --git a/drivers/mfd/tps65910-gpio.c b/drivers/mfd/tps65910-gpio.c
new file mode 100644
index 0000000..f3ae376
--- /dev/null
+++ b/drivers/mfd/tps65910-gpio.c
@@ -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);
+}
diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
index 43e73cf..5bd3115 100644
--- a/drivers/mfd/tps65910.c
+++ b/drivers/mfd/tps65910.c
@@ -137,8 +137,13 @@ static int tps65910_i2c_probe(struct i2c_client *i2c,
 			    const struct i2c_device_id *id)
 {
 	struct tps65910 *tps65910;
+	struct tps65910_board *pmic_plat_data;
 	int ret = 0;
 
+	pmic_plat_data = dev_get_platdata(&i2c->dev);
+	if (!pmic_plat_data)
+		return -EINVAL;
+
 	tps65910 = kzalloc(sizeof(struct tps65910), GFP_KERNEL);
 	if (tps65910 == NULL)
 		return -ENOMEM;
@@ -155,6 +160,8 @@ static int tps65910_i2c_probe(struct i2c_client *i2c,
 	if (ret < 0)
 		goto err;
 
+	tps65910_gpio_init(tps65910, pmic_plat_data->gpio_base);
+
 	return ret;
 
 err:
diff --git a/include/linux/mfd/tps65910.h b/include/linux/mfd/tps65910.h
index fd2be22..b19cd04 100644
--- a/include/linux/mfd/tps65910.h
+++ b/include/linux/mfd/tps65910.h
@@ -714,6 +714,7 @@
  */
 
 struct tps65910_board {
+	int gpio_base;
 	struct regulator_init_data *tps65910_pmic_init_data;
 };
 
@@ -748,5 +749,6 @@ struct tps65910_platform_data {
 
 int tps65910_set_bits(struct tps65910 *tps65910, u8 reg, u8 mask);
 int tps65910_clear_bits(struct tps65910 *tps65910, u8 reg, u8 mask);
+void tps65910_gpio_init(struct tps65910 *tps65910, int gpio_base);
 
 #endif /*  __LINUX_MFD_TPS65910_H */
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
  2011-04-27 15:51 [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver Jorge Eduardo Candelaria
@ 2011-04-29 15:23 ` Liam Girdwood
  2011-04-29 22:06   ` Grant Likely
  0 siblings, 1 reply; 8+ messages in thread
From: Liam Girdwood @ 2011-04-29 15:23 UTC (permalink / raw)
  To: grant
  Cc: Jorge Eduardo Candelaria, linux-kernel, broonie, sameo, Graeme Gregory

On 27/04/11 16:51, Jorge Eduardo Candelaria wrote:
> From: Graeme Gregory <gg@slimlogic.co.uk>
> 
> TPS65910 has one configurable GPIO that can be used for several
> purposes. Subsequent versions of the TPS chip support more than
> one GPIO.
> 
> Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
> Signed-off-by: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
> ---
>  drivers/mfd/Makefile         |    2 +-
>  drivers/mfd/tps65910-gpio.c  |   91 ++++++++++++++++++++++++++++++++++++++++++
>  drivers/mfd/tps65910.c       |    7 +++
>  include/linux/mfd/tps65910.h |    2 +
>  4 files changed, 101 insertions(+), 1 deletions(-)
>  create mode 100644 drivers/mfd/tps65910-gpio.c
> 

Grant, if you are happy with this I can take all via regulator.

Liam

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
  2011-04-29 15:23 ` Liam Girdwood
@ 2011-04-29 22:06   ` Grant Likely
  2011-05-13 18:41     ` Samuel Ortiz
  0 siblings, 1 reply; 8+ messages in thread
From: Grant Likely @ 2011-04-29 22:06 UTC (permalink / raw)
  To: Liam Girdwood
  Cc: grant, Jorge Eduardo Candelaria, linux-kernel, broonie, sameo,
	Graeme Gregory

On Fri, Apr 29, 2011 at 04:23:20PM +0100, Liam Girdwood wrote:
> On 27/04/11 16:51, Jorge Eduardo Candelaria wrote:
> > From: Graeme Gregory <gg@slimlogic.co.uk>
> > 
> > TPS65910 has one configurable GPIO that can be used for several
> > purposes. Subsequent versions of the TPS chip support more than
> > one GPIO.
> > 
> > Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
> > Signed-off-by: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
> > ---
> >  drivers/mfd/Makefile         |    2 +-
> >  drivers/mfd/tps65910-gpio.c  |   91 ++++++++++++++++++++++++++++++++++++++++++
> >  drivers/mfd/tps65910.c       |    7 +++
> >  include/linux/mfd/tps65910.h |    2 +
> >  4 files changed, 101 insertions(+), 1 deletions(-)
> >  create mode 100644 drivers/mfd/tps65910-gpio.c
> > 
> 
> Grant, if you are happy with this I can take all via regulator.

Yes, I'm okay with it.

Acked-by: Grant Likely <grant.likely@secretlab.ca>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
  2011-04-29 22:06   ` Grant Likely
@ 2011-05-13 18:41     ` Samuel Ortiz
  2011-05-15 21:20       ` Grant Likely
  0 siblings, 1 reply; 8+ messages in thread
From: Samuel Ortiz @ 2011-05-13 18:41 UTC (permalink / raw)
  To: Grant Likely
  Cc: Liam Girdwood, grant, Jorge Eduardo Candelaria, linux-kernel,
	broonie, Graeme Gregory

Hi Grant,

On Fri, Apr 29, 2011 at 04:06:51PM -0600, Grant Likely wrote:
> On Fri, Apr 29, 2011 at 04:23:20PM +0100, Liam Girdwood wrote:
> > On 27/04/11 16:51, Jorge Eduardo Candelaria wrote:
> > > From: Graeme Gregory <gg@slimlogic.co.uk>
> > > 
> > > TPS65910 has one configurable GPIO that can be used for several
> > > purposes. Subsequent versions of the TPS chip support more than
> > > one GPIO.
> > > 
> > > Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
> > > Signed-off-by: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
> > > ---
> > >  drivers/mfd/Makefile         |    2 +-
> > >  drivers/mfd/tps65910-gpio.c  |   91 ++++++++++++++++++++++++++++++++++++++++++
> > >  drivers/mfd/tps65910.c       |    7 +++
> > >  include/linux/mfd/tps65910.h |    2 +
> > >  4 files changed, 101 insertions(+), 1 deletions(-)
> > >  create mode 100644 drivers/mfd/tps65910-gpio.c
> > > 
> > 
> > Grant, if you are happy with this I can take all via regulator.
> 
> Yes, I'm okay with it.
Would you be ok with moving this one to drivers/gpio/ ? And in general, moving
most of the GPIO drivers under drivers/mfd/ back to drivers/gpio/ ?
David didn't want to take the basic MFD related GPIO drivers, that's why we
have several of them under mfd.

Cheers,
Samuel.

-- 
Intel Open Source Technology Centre
http://oss.intel.com/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
  2011-05-13 18:41     ` Samuel Ortiz
@ 2011-05-15 21:20       ` Grant Likely
  2011-05-22 20:44         ` Samuel Ortiz
  0 siblings, 1 reply; 8+ messages in thread
From: Grant Likely @ 2011-05-15 21:20 UTC (permalink / raw)
  To: Samuel Ortiz
  Cc: Liam Girdwood, grant, Jorge Eduardo Candelaria, linux-kernel,
	broonie, Graeme Gregory

On Fri, May 13, 2011 at 08:41:54PM +0200, Samuel Ortiz wrote:
> Hi Grant,
> 
> On Fri, Apr 29, 2011 at 04:06:51PM -0600, Grant Likely wrote:
> > On Fri, Apr 29, 2011 at 04:23:20PM +0100, Liam Girdwood wrote:
> > > On 27/04/11 16:51, Jorge Eduardo Candelaria wrote:
> > > > From: Graeme Gregory <gg@slimlogic.co.uk>
> > > > 
> > > > TPS65910 has one configurable GPIO that can be used for several
> > > > purposes. Subsequent versions of the TPS chip support more than
> > > > one GPIO.
> > > > 
> > > > Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
> > > > Signed-off-by: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
> > > > ---
> > > >  drivers/mfd/Makefile         |    2 +-
> > > >  drivers/mfd/tps65910-gpio.c  |   91 ++++++++++++++++++++++++++++++++++++++++++
> > > >  drivers/mfd/tps65910.c       |    7 +++
> > > >  include/linux/mfd/tps65910.h |    2 +
> > > >  4 files changed, 101 insertions(+), 1 deletions(-)
> > > >  create mode 100644 drivers/mfd/tps65910-gpio.c
> > > > 
> > > 
> > > Grant, if you are happy with this I can take all via regulator.
> > 
> > Yes, I'm okay with it.
> Would you be ok with moving this one to drivers/gpio/ ? And in general, moving
> most of the GPIO drivers under drivers/mfd/ back to drivers/gpio/ ?
> David didn't want to take the basic MFD related GPIO drivers, that's why we
> have several of them under mfd.

Yes, move them to GPIO.  That is where they belong.

g.

> 
> Cheers,
> Samuel.
> 
> -- 
> Intel Open Source Technology Centre
> http://oss.intel.com/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
  2011-05-15 21:20       ` Grant Likely
@ 2011-05-22 20:44         ` Samuel Ortiz
  2011-05-23  8:09           ` Liam Girdwood
  0 siblings, 1 reply; 8+ messages in thread
From: Samuel Ortiz @ 2011-05-22 20:44 UTC (permalink / raw)
  To: Grant Likely
  Cc: Liam Girdwood, grant, Jorge Eduardo Candelaria, linux-kernel,
	broonie, Graeme Gregory

Hi Grant,

On Sun, May 15, 2011 at 03:20:44PM -0600, Grant Likely wrote:
> > Would you be ok with moving this one to drivers/gpio/ ? And in general, moving
> > most of the GPIO drivers under drivers/mfd/ back to drivers/gpio/ ?
> > David didn't want to take the basic MFD related GPIO drivers, that's why we
> > have several of them under mfd.
> 
> Yes, move them to GPIO.  That is where they belong.
Thanks, I'll prepare that for the next merge window.

Cheers,
Samuel.

-- 
Intel Open Source Technology Centre
http://oss.intel.com/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
  2011-05-22 20:44         ` Samuel Ortiz
@ 2011-05-23  8:09           ` Liam Girdwood
  2011-05-23 20:22             ` Samuel Ortiz
  0 siblings, 1 reply; 8+ messages in thread
From: Liam Girdwood @ 2011-05-23  8:09 UTC (permalink / raw)
  To: Samuel Ortiz
  Cc: Grant Likely, grant, Jorge Eduardo Candelaria, linux-kernel,
	broonie, Graeme Gregory

On 22/05/11 21:44, Samuel Ortiz wrote:
> Hi Grant,
> 
> On Sun, May 15, 2011 at 03:20:44PM -0600, Grant Likely wrote:
>>> Would you be ok with moving this one to drivers/gpio/ ? And in general, moving
>>> most of the GPIO drivers under drivers/mfd/ back to drivers/gpio/ ?
>>> David didn't want to take the basic MFD related GPIO drivers, that's why we
>>> have several of them under mfd.
>>
>> Yes, move them to GPIO.  That is where they belong.
> Thanks, I'll prepare that for the next merge window.
> 

Ah, I thought you acked the whole series here and applied it yesterday. I can remove this one if required.

Thanks

Liam 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver
  2011-05-23  8:09           ` Liam Girdwood
@ 2011-05-23 20:22             ` Samuel Ortiz
  0 siblings, 0 replies; 8+ messages in thread
From: Samuel Ortiz @ 2011-05-23 20:22 UTC (permalink / raw)
  To: Liam Girdwood
  Cc: Grant Likely, grant, Jorge Eduardo Candelaria, linux-kernel,
	broonie, Graeme Gregory

Hi Liam,

On Mon, May 23, 2011 at 09:09:43AM +0100, Liam Girdwood wrote:
> On 22/05/11 21:44, Samuel Ortiz wrote:
> > Hi Grant,
> > 
> > On Sun, May 15, 2011 at 03:20:44PM -0600, Grant Likely wrote:
> >>> Would you be ok with moving this one to drivers/gpio/ ? And in general, moving
> >>> most of the GPIO drivers under drivers/mfd/ back to drivers/gpio/ ?
> >>> David didn't want to take the basic MFD related GPIO drivers, that's why we
> >>> have several of them under mfd.
> >>
> >> Yes, move them to GPIO.  That is where they belong.
> > Thanks, I'll prepare that for the next merge window.
> > 
> 
> Ah, I thought you acked the whole series here and applied it yesterday. I can remove this one if required.
>
No, please go ahead, and I'll queue whatever I'd like to see removed from
drivers/mfd/ for the next merge window.

Cheers,
Samuel.
 
> Thanks

> 
> Liam 

-- 
Intel Open Source Technology Centre
http://oss.intel.com/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-05-23 20:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-27 15:51 [PATCHv5 2/4] TPS65910: GPIO: Add GPIO driver Jorge Eduardo Candelaria
2011-04-29 15:23 ` Liam Girdwood
2011-04-29 22:06   ` Grant Likely
2011-05-13 18:41     ` Samuel Ortiz
2011-05-15 21:20       ` Grant Likely
2011-05-22 20:44         ` Samuel Ortiz
2011-05-23  8:09           ` Liam Girdwood
2011-05-23 20:22             ` Samuel Ortiz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.