]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARM: ixp4xx: fix gpio rework
authorArnd Bergmann <arnd@arndb.de>
Mon, 3 Feb 2014 16:40:14 +0000 (17:40 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 21 Mar 2014 17:23:27 +0000 (18:23 +0100)
Commit 098e30f6558f8 "ARM: ixp4xx: stop broadcasting the custom GPIO API"
changed the internal gpio code of ixp4xx to be accessible only from
common.c, but unfortunately that broke the Goramo MultiLink code, which
uses this API.

This tries to restore the previous state without exposing the
API globally again. A better solution might be needed.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Krzysztof Halasa <khc@pm.waw.pl>
Cc: Imre Kaloz <kaloz@openwrt.org>
arch/arm/mach-ixp4xx/common.c
arch/arm/mach-ixp4xx/goramo_mlr.c

index 6d68aed6548a504c23ba0639ea96871760381f12..c751f2f35668b6943683649fe60447e3da306ffc 100644 (file)
@@ -99,7 +99,7 @@ void __init ixp4xx_map_io(void)
 #define IXP4XX_GPIO_CLK_0              14
 #define IXP4XX_GPIO_CLK_1              15
 
-static void gpio_line_config(u8 line, u32 direction)
+void gpio_line_config(u8 line, u32 direction)
 {
        if (direction == IXP4XX_GPIO_IN)
                *IXP4XX_GPIO_GPOER |= (1 << line);
@@ -107,12 +107,12 @@ static void gpio_line_config(u8 line, u32 direction)
                *IXP4XX_GPIO_GPOER &= ~(1 << line);
 }
 
-static void gpio_line_get(u8 line, int *value)
+void gpio_line_get(u8 line, int *value)
 {
        *value = (*IXP4XX_GPIO_GPINR >> line) & 0x1;
 }
 
-static void gpio_line_set(u8 line, int value)
+void gpio_line_set(u8 line, int value)
 {
        if (value == IXP4XX_GPIO_HIGH)
            *IXP4XX_GPIO_GPOUTR |= (1 << line);
index e54ff491c105fd0949238a9127abff04069216f6..5a635c657ea2c17cede979f4b2f575e8f7f56d42 100644 (file)
 #include <asm/mach/pci.h>
 #include <asm/system_info.h>
 
+#define IXP4XX_GPIO_OUT                0x1
+#define IXP4XX_GPIO_IN                 0x2
+
+void gpio_line_config(u8 line, u32 direction);
+void gpio_line_get(u8 line, int *value);
+void gpio_line_set(u8 line, int value);
+
 #define SLOT_ETHA              0x0B    /* IDSEL = AD21 */
 #define SLOT_ETHB              0x0C    /* IDSEL = AD20 */
 #define SLOT_MPCI              0x0D    /* IDSEL = AD19 */