gpio: Build the da8xx_gpio code for the davinci644x device
authorHolger Hans Peter Freyther <holger@freyther.de>
Thu, 7 Feb 2013 23:41:01 +0000 (23:41 +0000)
committerTom Rini <trini@ti.com>
Wed, 20 Feb 2013 13:52:41 +0000 (08:52 -0500)
The differences include the number of GPIOs and that one is
not required to set the pinmux on request.

Signed-off-by: Holger Hans Peter Freyther <holger@freyther.de>
arch/arm/include/asm/arch-davinci/gpio.h
drivers/gpio/Makefile
drivers/gpio/da8xx_gpio.c

index ef65ffbb9f739286d1da482f7ce4bb7202013c5a..5206b122114e1eeb02f22d4cc855355fd8624ef1 100644 (file)
@@ -65,9 +65,15 @@ struct davinci_gpio_bank {
 #define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
 #define davinci_gpio_bank8 ((struct davinci_gpio *)DAVINCI_GPIO_BANK8)
 
+#if defined(CONFIG_SOC_DM644X)
+/* GPIO0 to GPIO53, omit the V3.3 volts one */
+#define MAX_NUM_GPIOS          70
+#else
+#define MAX_NUM_GPIOS          144
+#endif
+
 #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)
 
index 2d97b4f1e4d521796af31646480671465d6a0d1d..9df1e2632f774805b635edd317292cb3196fa6cf 100644 (file)
@@ -39,6 +39,7 @@ COBJS-$(CONFIG_SANDBOX_GPIO)  += sandbox.o
 COBJS-$(CONFIG_SPEAR_GPIO)     += spear_gpio.o
 COBJS-$(CONFIG_TEGRA_GPIO)     += tegra_gpio.o
 COBJS-$(CONFIG_DA8XX_GPIO)     += da8xx_gpio.o
+COBJS-$(CONFIG_DM644X_GPIO)    += da8xx_gpio.o
 COBJS-$(CONFIG_ALTERA_PIO)     += altera_pio.o
 COBJS-$(CONFIG_MPC83XX_GPIO)   += mpc83xx_gpio.o
 COBJS-$(CONFIG_SH_GPIO_PFC)    += sh_pfc.o
index 84d2b77d926d4be998402173ea831b1df78d6b25..ed6a1180d469b0c6387653056fbccf8164c2a0ef 100644 (file)
@@ -31,6 +31,7 @@ static struct gpio_registry {
        char name[GPIO_NAME_SIZE];
 } gpio_registry[MAX_NUM_GPIOS];
 
+#if defined(CONFIG_SOC_DA8XX)
 #define pinmux(x)       (&davinci_syscfg_regs->pinmux[x])
 
 static const struct pinmux_config gpio_pinmux[] = {
@@ -179,6 +180,9 @@ static const struct pinmux_config gpio_pinmux[] = {
        { pinmux(18), 8, 3 },
        { pinmux(18), 8, 2 },
 };
+#else
+#define davinci_configure_pin_mux(a, b)
+#endif
 
 int gpio_request(unsigned gpio, const char *label)
 {