diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-03-25 11:50:46 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-03-25 11:50:46 +0000 |
commit | dd98c76b9a5cc9b278bee9251bd0a57d39a58031 (patch) | |
tree | 95d054fed6abcf46425c58fa55b81dba5c769fd4 /target/linux/ifxmips/files/arch/mips/include | |
parent | c4a3b1979a2f519cb80154b7c83cf92241a03adc (diff) |
[ifxmips] implement gpiolib drivers for core gpio and ebu attached latches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20418 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ifxmips/files/arch/mips/include')
-rw-r--r-- | target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/gpio.h | 105 | ||||
-rw-r--r-- | target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/ifxmips_irq.h | 7 |
2 files changed, 5 insertions, 107 deletions
diff --git a/target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/gpio.h b/target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/gpio.h deleted file mode 100644 index 4176bfd80..000000000 --- a/target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/gpio.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * include/asm-mips/mach-ifxmips/gpio.h - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - * - * Copyright (C) 2007 John Crispin <blogic@openwrt.org> - * - */ - -#ifndef _IFXMIPS_GPIO_H_ -#define _IFXMIPS_GPIO_H_ - -#include <ifxmips.h> -#include <ifxmips_gpio.h> - -#define GPIO_TO_PORT(x) ((x > 15) ? (1) : (0)) -#define GPIO_TO_GPIO(x) ((x > 15) ? (x-16) : (x)) - -static inline int gpio_direction_input(unsigned gpio) -{ - ifxmips_port_set_open_drain(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - ifxmips_port_clear_altsel0(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - ifxmips_port_clear_altsel1(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - ifxmips_port_set_dir_in(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - return 0; -} - -static inline int gpio_direction_output(unsigned gpio, int value) -{ - ifxmips_port_clear_open_drain(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - ifxmips_port_clear_altsel0(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - ifxmips_port_clear_altsel1(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - ifxmips_port_set_dir_out(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - return 0; -} - -static inline int gpio_get_value(unsigned gpio) -{ - ifxmips_port_get_input(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - return 0; -} - -static inline void gpio_set_value(unsigned gpio, int value) -{ - if (value) - ifxmips_port_set_output(GPIO_TO_PORT(gpio), GPIO_TO_GPIO(gpio)); - else - ifxmips_port_clear_output(GPIO_TO_PORT(gpio), - GPIO_TO_GPIO(gpio)); -} - -static inline int gpio_request(unsigned gpio, const char *label) -{ - return 0; -} - -static inline void gpio_free(unsigned gpio) -{ -} - -static inline int gpio_to_irq(unsigned gpio) -{ - return 0; -} - -static inline int irq_to_gpio(unsigned irq) -{ - return 0; -} - -static inline int gpio_cansleep(unsigned gpio) -{ - return 0; -} - -static inline int gpio_get_value_cansleep(unsigned gpio) -{ - might_sleep(); - return gpio_get_value(gpio); -} - -static inline void gpio_set_value_cansleep(unsigned gpio, int value) -{ - might_sleep(); - gpio_set_value(gpio, value); -} - -static inline int gpio_is_valid(int number) -{ - return ((unsigned)number) < 32; -} - -#endif diff --git a/target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/ifxmips_irq.h b/target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/ifxmips_irq.h index f3cb99c2b..e6ca59baf 100644 --- a/target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/ifxmips_irq.h +++ b/target/linux/ifxmips/files/arch/mips/include/asm/mach-ifxmips/ifxmips_irq.h @@ -66,8 +66,11 @@ #define IFXMIPS_PPE_MBOX_INT (INT_NUM_IM2_IRL0 + 24) -#define IFXMIPS_USB_INT (INT_NUM_IM4_IRL0 + 22) -#define IFXMIPS_USB_OC_INT (INT_NUM_IM4_IRL0 + 23) +#define INT_NUM_IM4_IRL14 (INT_NUM_IM4_IRL0 + 14) +#define INT_NUM_IM4_IRL18 (INT_NUM_IM4_IRL0 + 18) +#define INT_NUM_IM4_IRL19 (INT_NUM_IM4_IRL0 + 19) +#define IFXMIPS_USB_INT (INT_NUM_IM4_IRL0 + 22) +#define IFXMIPS_USB_OC_INT (INT_NUM_IM4_IRL0 + 23) extern void ifxmips_mask_and_ack_irq(unsigned int irq_nr); |