This patch fixes the use of GPIO routines which are in the PCI configuration space of the RDC321x, therefore reading/writing to this space without spinlock protection can be problematic. We also now request and free GPIOs and support the MGB100 board, previous code was very AR525W-centric. Signed-off-by: Volker Weiss <volker@tintuc.de> Signed-off-by: Florian Fainelli <florian.fainelli@telecomint.eu> Signed-off-by: Ingo Molnar <mingo@elte.hu>
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _RDC321X_GPIO_H
 | 
						|
#define _RDC321X_GPIO_H
 | 
						|
 | 
						|
extern int rdc_gpio_get_value(unsigned gpio);
 | 
						|
extern void rdc_gpio_set_value(unsigned gpio, int value);
 | 
						|
extern int rdc_gpio_direction_input(unsigned gpio);
 | 
						|
extern int rdc_gpio_direction_output(unsigned gpio, int value);
 | 
						|
extern int rdc_gpio_request(unsigned gpio, const char *label);
 | 
						|
extern void rdc_gpio_free(unsigned gpio);
 | 
						|
extern void __init rdc321x_gpio_setup(void);
 | 
						|
 | 
						|
/* Wrappers for the arch-neutral GPIO API */
 | 
						|
 | 
						|
static inline int gpio_request(unsigned gpio, const char *label)
 | 
						|
{
 | 
						|
	return rdc_gpio_request(gpio, label);
 | 
						|
}
 | 
						|
 | 
						|
static inline void gpio_free(unsigned gpio)
 | 
						|
{
 | 
						|
	rdc_gpio_free(gpio);
 | 
						|
}
 | 
						|
 | 
						|
static inline int gpio_direction_input(unsigned gpio)
 | 
						|
{
 | 
						|
	return rdc_gpio_direction_input(gpio);
 | 
						|
}
 | 
						|
 | 
						|
static inline int gpio_direction_output(unsigned gpio, int value)
 | 
						|
{
 | 
						|
	return rdc_gpio_direction_output(gpio, value);
 | 
						|
}
 | 
						|
 | 
						|
static inline int gpio_get_value(unsigned gpio)
 | 
						|
{
 | 
						|
	return rdc_gpio_get_value(gpio);
 | 
						|
}
 | 
						|
 | 
						|
static inline void gpio_set_value(unsigned gpio, int value)
 | 
						|
{
 | 
						|
	rdc_gpio_set_value(gpio, value);
 | 
						|
}
 | 
						|
 | 
						|
static inline int gpio_to_irq(unsigned gpio)
 | 
						|
{
 | 
						|
	return gpio;
 | 
						|
}
 | 
						|
 | 
						|
static inline int irq_to_gpio(unsigned irq)
 | 
						|
{
 | 
						|
	return irq;
 | 
						|
}
 | 
						|
 | 
						|
/* For cansleep */
 | 
						|
#include <asm-generic/gpio.h>
 | 
						|
 | 
						|
#endif /* _RDC321X_GPIO_H_ */
 |