Skip to contentSkip to conversation

DA8xx: add generic GPIO driver

PATCH Superseded Laurence Withers 4 participants 8 messages Jul 15, 2011 – Jul 18, 2011

Subsystems (4)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover DA8xx: add generic GPIO driver

This adds a generic GPIO driver fulfilling the <asm/gpio.h> interface for the TI DaVinci DA8xx CPU.

#1 lore raw

PATCH 1/2 DaVinci: rename gpio_defs.h to gpio.h

In preparation for a generic GPIO driver for the DA8xx processors, rename <asm/arch/gpio_defs.h> to <asm/arch/gpio.h> and fix up all files which include it.

---
 arch/arm/include/asm/arch-davinci/gpio.h      |   66 +++++++++++++++++++++++++
 arch/arm/include/asm/arch-davinci/gpio_defs.h |   66 -------------------------
 board/davinci/dm355leopard/dm355leopard.c     |    2 +-
 board/davinci/dm365evm/dm365evm.c             |    2 +-
 drivers/usb/musb/da8xx.h                      |    2 +-
 5 files changed, 69 insertions(+), 69 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-davinci/gpio.h
 delete mode 100644 arch/arm/include/asm/arch-davinci/gpio_defs.h
arch/arm/include/asm/arch-davinci/gpio.h new file +66 -0
new file mode 100644
index 0000000..1be2ac2
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2009 Texas Instruments Incorporated
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; 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
+ */
+#ifndef _GPIO_DEFS_H_
+#define _GPIO_DEFS_H_
+
+#ifndef CONFIG_SOC_DA8XX
+#define DAVINCI_GPIO_BINTEN	0x01C67008
+#define DAVINCI_GPIO_BANK01	0x01C67010
+#define DAVINCI_GPIO_BANK23	0x01C67038
+#define DAVINCI_GPIO_BANK45	0x01C67060
+#define DAVINCI_GPIO_BANK67	0x01C67088
+
+#else /* CONFIG_SOC_DA8XX */
+#define DAVINCI_GPIO_BINTEN	0x01E26008
+#define DAVINCI_GPIO_BANK01	0x01E26010
+#define DAVINCI_GPIO_BANK23	0x01E26038
+#define DAVINCI_GPIO_BANK45	0x01E26060
+#define DAVINCI_GPIO_BANK67	0x01E26088
+#endif /* CONFIG_SOC_DA8XX */
+
+struct davinci_gpio {
+	unsigned int dir;
+	unsigned int out_data;
+	unsigned int set_data;
+	unsigned int clr_data;
+	unsigned int in_data;
+	unsigned int set_rising;
+	unsigned int clr_rising;
+	unsigned int set_falling;
+	unsigned int clr_falling;
+	unsigned int intstat;
+};
+
+struct davinci_gpio_bank {
+	int num_gpio;
+	unsigned int irq_num;
+	unsigned int irq_mask;
+	unsigned long *in_use;
+	unsigned long base;
+};
+
+#define davinci_gpio_bank01 ((struct davinci_gpio *)DAVINCI_GPIO_BANK01)
+#define davinci_gpio_bank23 ((struct davinci_gpio *)DAVINCI_GPIO_BANK23)
+#define davinci_gpio_bank45 ((struct davinci_gpio *)DAVINCI_GPIO_BANK45)
+#define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
+
+#endif
arch/arm/include/asm/arch-davinci/gpio_defs.h deleted +0 -66

66 lines not on this page · raw message

board/davinci/dm355leopard/dm355leopard.c +1 -1
index 0ee0d11..0ad5678 100644
@@ -20,7 +20,7 @@
 #include <nand.h>
 #include <asm/io.h>
 #include <asm/arch/hardware.h>
-#include <asm/arch/gpio_defs.h>
+#include <asm/arch/gpio.h>
 #include <asm/arch/nand_defs.h>
 #include <asm/arch/davinci_misc.h>
 #include <net.h>
board/davinci/dm365evm/dm365evm.c +1 -1
index 5fb7611..ac54106 100644
@@ -22,7 +22,7 @@
 #include <asm/arch/hardware.h>
 #include <asm/arch/emif_defs.h>
 #include <asm/arch/nand_defs.h>
-#include <asm/arch/gpio_defs.h>
+#include <asm/arch/gpio.h>
 #include <netdev.h>
 #include <asm/arch/davinci_misc.h>
 #ifdef CONFIG_DAVINCI_MMC
drivers/usb/musb/da8xx.h +1 -1
index b9660ba..be1cdaf 100644
@@ -25,7 +25,7 @@
 #define __DA8XX_MUSB_H__
 
 #include <asm/arch/hardware.h>
-#include <asm/arch/gpio_defs.h>
+#include <asm/arch/gpio.h>
 #include "musb_core.h"
 
 /* Base address of da8xx usb0 wrapper */
Signature · 1 line
1.7.2.5
#2 lore raw

PATCH 1/2 DaVinci: rename gpio_defs.h to gpio.h

Hi Laurence,

Le 15/07/2011 13:27, Laurence Withers a ?crit :

Quoted 8 lines

In preparation for a generic GPIO driver for the DA8xx processors, rename<asm/arch/gpio_defs.h> to<asm/arch/gpio.h> and fix up all files which include it.

---
  arch/arm/include/asm/arch-davinci/gpio.h      |   66 +++++++++++++++++++++++++
  arch/arm/include/asm/arch-davinci/gpio_defs.h |   66 -------------------------

This is a rename, so use 'git mv...' and 'git format-patch -C' to let git and readers know it is.

Amicalement,

Signature · 1 line
Albert.
#3 lore raw

PATCH 1/2 DaVinci: rename gpio_defs.h to gpio.h

Quoted 2 lines · Albert ARIBAUD

This is a rename, so use 'git mv...' and 'git format-patch -C' to let git and readers know it is.

Hi Albert,

Thanks for the tip. I reposted a v2 with this.

Bye for now,

Signature · 3 lines
Laurence Withers, <[email protected]>                http://www.guralp.com/
Direct tel:+447753988197 or tel:+443333408643               Software Engineer
General support queries: <[email protected]>         CMG-DCM CMG-EAM CMG-NAM
#4 lore raw

PATCH 1/2 DaVinci: rename gpio_defs.h to gpio.h

In reply to Albert ARIBAUD
Quoted 11 lines

Hi Laurence,

Le 15/07/2011 13:27, Laurence Withers a ?crit :

Quoted 7 lines

In preparation for a generic GPIO driver for the DA8xx processors, rename<asm/arch/gpio_defs.h> to<asm/arch/gpio.h> and fix up all files which include it.

---
  arch/arm/include/asm/arch-davinci/gpio.h      |   66
Quoted 7 lines

+++++++++++++++++++++++++

Quoted 1 line
  arch/arm/include/asm/arch-davinci/gpio_defs.h |   66 -----------------

--------

This is a rename, so use 'git mv...' and 'git format-patch -C' to let git and readers know it is.

I didn't see an updated patch for this?
Are you planning on sending one?

--Sandeep

#5 lore raw

PATCH 1/2 DaVinci: rename gpio_defs.h to gpio.h

Hi Sandeep,

Le 18/07/2011 15:02, Paulraj, Sandeep a ?crit :

Quoted 15 lines
Quoted 15 lines

Hi Laurence,

Le 15/07/2011 13:27, Laurence Withers a ?crit :

Quoted 7 lines

In preparation for a generic GPIO driver for the DA8xx processors,
rename<asm/arch/gpio_defs.h> to<asm/arch/gpio.h> and fix up all files
which include it.

---
   arch/arm/include/asm/arch-davinci/gpio.h      |   66

+++++++++++++++++++++++++

Quoted 1 line
   arch/arm/include/asm/arch-davinci/gpio_defs.h |   66 -----------------

--------

Quoted 7 lines
Quoted 3 lines

This is a rename, so use 'git mv...' and 'git format-patch -C' to let git and readers know it is.

I didn't see an updated patch for this?
Are you planning on sending one?

It was sent: <http://patchwork.ozlabs.org/patch/104953/>

Quoted 1 line

--Sandeep

Amicalement,

Signature · 1 line
Albert.
#6 lore raw

PATCH 1/2 DaVinci: rename gpio_defs.h to gpio.h

In reply to Albert ARIBAUD
Quoted 5 lines · Albert ARIBAUD

Le 15/07/2011 13:27, Laurence Withers a ?crit :

Quoted 4 lines

In preparation for a generic GPIO driver for the DA8xx processors, rename<asm/arch/gpio_defs.h> ?to<asm/arch/gpio.h> ?and fix up all files which include it.

Quoted 7 lines
Quoted 4 lines

---
? arch/arm/include/asm/arch-davinci/gpio.h ? ? ?| ? 66 +++++++++++++++++++++++++ ? arch/arm/include/asm/arch-davinci/gpio_defs.h | ? 66 -------------------------

This is a rename, so use 'git mv...' and 'git format-patch -C' to let git and readers know it is.

the git mv is unnecessary. the -C/-M options to format-patch/send-email should be sufficient. -mike

#7 lore raw

PATCH 2/2 DA8xx: add generic GPIO driver

In reply to Laurence Withers

Add a generic GPIO driver for the DaVinci DA8xx processors. It is turned on by defining CONFIG_DA8XX_GPIO and fulfills the generic GPIO interface specified in <asm/gpio.h> . The driver has support for both manipulating GPIO pins as well as automatically configuring the pin multiplexor registers to set the pin function to GPIO.

---
 arch/arm/include/asm/arch-davinci/gpio.h |    8 +
 drivers/gpio/Makefile                    |    1 +
 drivers/gpio/da8xx_gpio.c                |  281 ++++++++++++++++++++++++++++++
 3 files changed, 290 insertions(+), 0 deletions(-)
 create mode 100644 drivers/gpio/da8xx_gpio.c
arch/arm/include/asm/arch-davinci/gpio.h +8 -0
index 1be2ac2..29dcccf 100644
@@ -63,4 +63,12 @@ struct davinci_gpio_bank {
 #define davinci_gpio_bank45 ((struct davinci_gpio *)DAVINCI_GPIO_BANK45)
 #define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
 
+#define gpio_status()		gpio_info()
+#define GPIO_NAME_SIZE		20
+#define MAX_NUM_GPIOS		144
+#define GPIO_BANK(gp)		(davinci_gpio_bank01 + ((gp) >> 5))
+#define GPIO_BIT(gp)		((gp) & 0x1F)
+
+void gpio_info(void);
+
 #endif
drivers/gpio/Makefile +1 -0
index 1e3ae11..62ec97d 100644
@@ -32,6 +32,7 @@ COBJS-$(CONFIG_MXC_GPIO)	+= mxc_gpio.o
 COBJS-$(CONFIG_PCA953X)		+= pca953x.o
 COBJS-$(CONFIG_S5P)		+= s5p_gpio.o
 COBJS-$(CONFIG_TEGRA2_GPIO)	+= tegra2_gpio.o
+COBJS-$(CONFIG_DA8XX_GPIO)	+= da8xx_gpio.o
 
 COBJS	:= $(COBJS-y)
 SRCS 	:= $(COBJS:.o=.c)
drivers/gpio/da8xx_gpio.c new file +281 -0

281 lines not on this page · raw message

Signature · 1 line
1.7.2.5