Skip to content
Snippets Groups Projects
Commit 285348e0 authored by John Crispin's avatar John Crispin
Browse files

ixp4xx: fix gpio_line_set() logic, fixes #18986


Signed-off-by: default avatarJohn Crispin <blogic@openwrt.org>

SVN-Revision: 44439
parent 8f3e9c91
No related branches found
No related tags found
No related merge requests found
--- a/arch/arm/mach-ixp4xx/common.c --- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c
@@ -84,22 +84,7 @@ void __init ixp4xx_map_io(void) @@ -93,22 +93,7 @@
/* /*
* GPIO-functions * GPIO-functions
*/ */
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
{ {
if (direction == IXP4XX_GPIO_IN) if (direction == IXP4XX_GPIO_IN)
*IXP4XX_GPIO_GPOER |= (1 << line); *IXP4XX_GPIO_GPOER |= (1 << line);
@@ -107,12 +92,12 @@ static void gpio_line_config(u8 line, u3 @@ -116,17 +101,17 @@
*IXP4XX_GPIO_GPOER &= ~(1 << line); *IXP4XX_GPIO_GPOER &= ~(1 << line);
} }
...@@ -37,11 +37,19 @@ ...@@ -37,11 +37,19 @@
-static void gpio_line_set(u8 line, int value) -static void gpio_line_set(u8 line, int value)
+void gpio_line_set(u8 line, int value) +void gpio_line_set(u8 line, int value)
{ {
if (value == IXP4XX_GPIO_HIGH) - if (value == IXP4XX_GPIO_HIGH)
*IXP4XX_GPIO_GPOUTR |= (1 << line); - *IXP4XX_GPIO_GPOUTR |= (1 << line);
- else if (value == IXP4XX_GPIO_LOW)
+ if (value == IXP4XX_GPIO_LOW)
*IXP4XX_GPIO_GPOUTR &= ~(1 << line);
+ else
+ *IXP4XX_GPIO_GPOUTR |= (1 << line);
}
/*************************************************************************
--- a/arch/arm/mach-ixp4xx/include/mach/platform.h --- a/arch/arm/mach-ixp4xx/include/mach/platform.h
+++ b/arch/arm/mach-ixp4xx/include/mach/platform.h +++ b/arch/arm/mach-ixp4xx/include/mach/platform.h
@@ -131,5 +131,21 @@ struct pci_sys_data; @@ -131,5 +131,21 @@
extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
extern struct pci_ops ixp4xx_ops; extern struct pci_ops ixp4xx_ops;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment