diff options
Diffstat (limited to 'target/linux/ramips/files/arch/mips/include')
| -rw-r--r-- | target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h | 1 | ||||
| -rw-r--r-- | target/linux/ramips/files/arch/mips/include/asm/mach-ralink/ramips_gpio.h | 48 | 
2 files changed, 48 insertions, 1 deletions
diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h index 8f058c88c..939062b49 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h @@ -16,7 +16,6 @@ void ramips_intc_irq_init(unsigned intc_base, unsigned irq, unsigned irq_base);  u32 ramips_intc_get_status(void);  void ramips_soc_setup(void); -void ramips_gpio_init(void);  void ramips_early_serial_setup(int line, unsigned base, unsigned freq,  			       unsigned irq); diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/ramips_gpio.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/ramips_gpio.h new file mode 100644 index 000000000..32fc7a740 --- /dev/null +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/ramips_gpio.h @@ -0,0 +1,48 @@ +/* + * Ralink SoC specific GPIO support + * + * Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#ifndef _RAMIPS_GPIO_H +#define _RAMIPS_GPIO_H + +#include <linux/gpio.h> +#include <linux/spinlock.h> + +enum ramips_gpio_reg { +	RAMIPS_GPIO_REG_INT = 0,	/* Interrupt status */ +	RAMIPS_GPIO_REG_EDGE, +	RAMIPS_GPIO_REG_RENA, +	RAMIPS_GPIO_REG_FENA, +	RAMIPS_GPIO_REG_DATA, +	RAMIPS_GPIO_REG_DIR,		/* Direction, 0:in, 1: out */ +	RAMIPS_GPIO_REG_POL,		/* Polarity, 0: normal, 1: invert */ +	RAMIPS_GPIO_REG_SET, +	RAMIPS_GPIO_REG_RESET, +	RAMIPS_GPIO_REG_TOGGLE, +	RAMIPS_GPIO_REG_MAX +}; + +struct ramips_gpio_chip { +	struct gpio_chip chip; +	unsigned long map_base; +	unsigned long map_size; +	u8 regs[RAMIPS_GPIO_REG_MAX]; + +	spinlock_t lock; +	void __iomem *regs_base; +}; + +struct ramips_gpio_data { +	unsigned int num_chips; +	struct ramips_gpio_chip *chips; +}; + +int ramips_gpio_init(struct ramips_gpio_data *data); + +#endif /* _RAMIPS_GPIO_H */  | 
