ixp4xx: fix gpio_line_set() logic, fixes #18986
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 44439
This commit is contained in:
parent
8f3e9c91a8
commit
285348e086
1 changed files with 13 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
|||
--- a/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
|
||||
*/
|
||||
|
@ -24,7 +24,7 @@
|
|||
{
|
||||
if (direction == IXP4XX_GPIO_IN)
|
||||
*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);
|
||||
}
|
||||
|
||||
|
@ -37,11 +37,19 @@
|
|||
-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);
|
||||
- if (value == IXP4XX_GPIO_HIGH)
|
||||
- *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
|
||||
+++ 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 struct pci_ops ixp4xx_ops;
|
||||
|
||||
|
|
Loading…
Reference in a new issue