mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/arch/arm/mach-ixp4xx/common.c
 | 
						|
+++ b/arch/arm/mach-ixp4xx/common.c
 | 
						|
@@ -93,22 +93,7 @@ void __init ixp4xx_map_io(void)
 | 
						|
 /*
 | 
						|
  * 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);
 | 
						|
@@ -116,17 +101,17 @@ static void gpio_line_config(u8 line, u3
 | 
						|
 		*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);
 | 
						|
-	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;
 | 
						|
 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__
 | 
						|
 
 |