da8xx: Add the missing pinmux for da830 to the gpio driver
authorTomas Novotny <tomas@novotny.cz>
Fri, 1 Feb 2013 06:46:00 +0000 (06:46 +0000)
committerTom Rini <trini@ti.com>
Mon, 18 Feb 2013 18:48:03 +0000 (13:48 -0500)
The pinmux was generated from linux/arch/arm/mach-davinci/da830.c as of
kernel version 3.7.5. If the driver is used for the da850, then SoC
variant must be specified by CONFIG_SOC_DA850.

Signed-off-by: Tomas Novotny <tomas@novotny.cz>
Cc: Tom Rini <trini@ti.com>
arch/arm/include/asm/arch-davinci/gpio.h
drivers/gpio/da8xx_gpio.c

index ef65ffb..fbbb1f3 100644 (file)
@@ -67,7 +67,11 @@ struct davinci_gpio_bank {
 
 #define gpio_status()          gpio_info()
 #define GPIO_NAME_SIZE         20
+#if defined(CONFIG_SOC_DA8XX) && !defined(CONFIG_SOC_DA850)
+#define MAX_NUM_GPIOS          128
+#else
 #define MAX_NUM_GPIOS          144
+#endif
 #define GPIO_BANK(gp)          (davinci_gpio_bank01 + ((gp) >> 5))
 #define GPIO_BIT(gp)           ((gp) & 0x1F)
 
index 84d2b77..271b8d9 100644 (file)
@@ -33,6 +33,138 @@ static struct gpio_registry {
 
 #define pinmux(x)       (&davinci_syscfg_regs->pinmux[x])
 
+#if defined(CONFIG_SOC_DA8XX) && !defined(CONFIG_SOC_DA850)
+static const struct pinmux_config gpio_pinmux[] = {
+       { pinmux(13), 8, 6 },   /* GP0[0] */
+       { pinmux(13), 8, 7 },
+       { pinmux(14), 8, 0 },
+       { pinmux(14), 8, 1 },
+       { pinmux(14), 8, 2 },
+       { pinmux(14), 8, 3 },
+       { pinmux(14), 8, 4 },
+       { pinmux(14), 8, 5 },
+       { pinmux(14), 8, 6 },
+       { pinmux(14), 8, 7 },
+       { pinmux(15), 8, 0 },
+       { pinmux(15), 8, 1 },
+       { pinmux(15), 8, 2 },
+       { pinmux(15), 8, 3 },
+       { pinmux(15), 8, 4 },
+       { pinmux(15), 8, 5 },
+       { pinmux(15), 8, 6 },   /* GP1[0] */
+       { pinmux(15), 8, 7 },
+       { pinmux(16), 8, 0 },
+       { pinmux(16), 8, 1 },
+       { pinmux(16), 8, 2 },
+       { pinmux(16), 8, 3 },
+       { pinmux(16), 8, 4 },
+       { pinmux(16), 8, 5 },
+       { pinmux(16), 8, 6 },
+       { pinmux(16), 8, 7 },
+       { pinmux(17), 8, 0 },
+       { pinmux(17), 8, 1 },
+       { pinmux(17), 8, 2 },
+       { pinmux(17), 8, 3 },
+       { pinmux(17), 8, 4 },
+       { pinmux(17), 8, 5 },
+       { pinmux(17), 8, 6 },   /* GP2[0] */
+       { pinmux(17), 8, 7 },
+       { pinmux(18), 8, 0 },
+       { pinmux(18), 8, 1 },
+       { pinmux(18), 8, 2 },
+       { pinmux(18), 8, 3 },
+       { pinmux(18), 8, 4 },
+       { pinmux(18), 8, 5 },
+       { pinmux(18), 8, 6 },
+       { pinmux(18), 8, 7 },
+       { pinmux(19), 8, 0 },
+       { pinmux(9), 8, 2 },
+       { pinmux(9), 8, 3 },
+       { pinmux(9), 8, 4 },
+       { pinmux(9), 8, 5 },
+       { pinmux(9), 8, 6 },
+       { pinmux(10), 8, 1 },   /* GP3[0] */
+       { pinmux(10), 8, 2 },
+       { pinmux(10), 8, 3 },
+       { pinmux(10), 8, 4 },
+       { pinmux(10), 8, 5 },
+       { pinmux(10), 8, 6 },
+       { pinmux(10), 8, 7 },
+       { pinmux(11), 8, 0 },
+       { pinmux(11), 8, 1 },
+       { pinmux(11), 8, 2 },
+       { pinmux(11), 8, 3 },
+       { pinmux(11), 8, 4 },
+       { pinmux(9), 8, 7 },
+       { pinmux(2), 8, 6 },
+       { pinmux(11), 8, 5 },
+       { pinmux(11), 8, 6 },
+       { pinmux(12), 8, 4 },   /* GP4[0] */
+       { pinmux(12), 8, 5 },
+       { pinmux(12), 8, 6 },
+       { pinmux(12), 8, 7 },
+       { pinmux(13), 8, 0 },
+       { pinmux(13), 8, 1 },
+       { pinmux(13), 8, 2 },
+       { pinmux(13), 8, 3 },
+       { pinmux(13), 8, 4 },
+       { pinmux(13), 8, 5 },
+       { pinmux(11), 8, 7 },
+       { pinmux(12), 8, 0 },
+       { pinmux(12), 8, 1 },
+       { pinmux(12), 8, 2 },
+       { pinmux(12), 8, 3 },
+       { pinmux(9), 8, 1 },
+       { pinmux(7), 8, 3 },    /* GP5[0] */
+       { pinmux(7), 8, 4 },
+       { pinmux(7), 8, 5 },
+       { pinmux(7), 8, 6 },
+       { pinmux(7), 8, 7 },
+       { pinmux(8), 8, 0 },
+       { pinmux(8), 8, 1 },
+       { pinmux(8), 8, 2 },
+       { pinmux(8), 8, 3 },
+       { pinmux(8), 8, 4 },
+       { pinmux(8), 8, 5 },
+       { pinmux(8), 8, 6 },
+       { pinmux(8), 8, 7 },
+       { pinmux(9), 8, 0 },
+       { pinmux(7), 8, 1 },
+       { pinmux(7), 8, 2 },
+       { pinmux(5), 8, 1 },    /* GP6[0] */
+       { pinmux(5), 8, 2 },
+       { pinmux(5), 8, 3 },
+       { pinmux(5), 8, 4 },
+       { pinmux(5), 8, 5 },
+       { pinmux(5), 8, 6 },
+       { pinmux(5), 8, 7 },
+       { pinmux(6), 8, 0 },
+       { pinmux(6), 8, 1 },
+       { pinmux(6), 8, 2 },
+       { pinmux(6), 8, 3 },
+       { pinmux(6), 8, 4 },
+       { pinmux(6), 8, 5 },
+       { pinmux(6), 8, 6 },
+       { pinmux(6), 8, 7 },
+       { pinmux(7), 8, 0 },
+       { pinmux(1), 8, 0 },    /* GP7[0] */
+       { pinmux(1), 8, 1 },
+       { pinmux(1), 8, 2 },
+       { pinmux(1), 8, 3 },
+       { pinmux(1), 8, 4 },
+       { pinmux(1), 8, 5 },
+       { pinmux(1), 8, 6 },
+       { pinmux(1), 8, 7 },
+       { pinmux(2), 8, 0 },
+       { pinmux(2), 8, 1 },
+       { pinmux(2), 8, 2 },
+       { pinmux(2), 8, 3 },
+       { pinmux(2), 8, 4 },
+       { pinmux(2), 8, 5 },
+       { pinmux(0), 1, 0 },
+       { pinmux(0), 1, 1 },
+};
+#else
 static const struct pinmux_config gpio_pinmux[] = {
        { pinmux(1), 8, 7 },    /* GP0[0] */
        { pinmux(1), 8, 6 },
@@ -179,6 +311,7 @@ static const struct pinmux_config gpio_pinmux[] = {
        { pinmux(18), 8, 3 },
        { pinmux(18), 8, 2 },
 };
+#endif
 
 int gpio_request(unsigned gpio, const char *label)
 {