mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04: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__
 | |
|  
 |