Index: linux-3.14.25/arch/arm/mach-ixp4xx/common.c =================================================================== --- linux-3.14.25.orig/arch/arm/mach-ixp4xx/common.c 2014-11-21 18:23:44.000000000 +0100 +++ linux-3.14.25/arch/arm/mach-ixp4xx/common.c 2014-12-01 07:16:02.172180453 +0100 @@ -84,22 +84,7 @@ /* * GPIO-functions */ -/* - * The following converted to the real HW bits the gpio_line_config - */ -/* GPIO pin types */ -#define IXP4XX_GPIO_OUT 0x1 -#define IXP4XX_GPIO_IN 0x2 - -/* GPIO signal types */ -#define IXP4XX_GPIO_LOW 0 -#define IXP4XX_GPIO_HIGH 1 - -/* GPIO Clocks */ -#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 +92,12 @@ *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: linux-3.14.25/arch/arm/mach-ixp4xx/include/mach/platform.h =================================================================== --- linux-3.14.25.orig/arch/arm/mach-ixp4xx/include/mach/platform.h 2014-11-30 15:26:43.020130937 +0100 +++ linux-3.14.25/arch/arm/mach-ixp4xx/include/mach/platform.h 2014-12-01 07:16:22.024919689 +0100 @@ -142,5 +142,21 @@ extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); extern struct pci_ops ixp4xx_ops; +/* GPIO pin types */ +#define IXP4XX_GPIO_OUT 0x1 +#define IXP4XX_GPIO_IN 0x2 + +/* GPIO signal types */ +#define IXP4XX_GPIO_LOW 0 +#define IXP4XX_GPIO_HIGH 1 + +/* GPIO Clocks */ +#define IXP4XX_GPIO_CLK_0 14 +#define IXP4XX_GPIO_CLK_1 15 + +void gpio_line_config(u8 line, u32 direction); +void gpio_line_get(u8 line, int *value); +void gpio_line_set(u8 line, int value); + #endif // __ASSEMBLY__