Add linux-next specific files for 20110831
[linux-2.6/next.git] / arch / arm / mach-u300 / include / mach / gpio.h
blob430a0544baff7db68f0bd6143debd90e9ed71938
1 /*
3 * arch/arm/mach-u300/include/mach/gpio.h
6 * Copyright (C) 2007-2009 ST-Ericsson AB
7 * License terms: GNU General Public License (GPL) version 2
8 * GPIO block resgister definitions and inline macros for
9 * U300 GPIO COH 901 335 or COH 901 571/3
10 * Author: Linus Walleij <linus.walleij@stericsson.com>
13 #ifndef __MACH_U300_GPIO_H
14 #define __MACH_U300_GPIO_H
16 #define __ARM_GPIOLIB_COMPLEX
18 /* These can be found in arch/arm/mach-u300/gpio.c */
19 extern int gpio_is_valid(int number);
20 extern int gpio_request(unsigned gpio, const char *label);
21 extern void gpio_free(unsigned gpio);
22 extern int gpio_direction_input(unsigned gpio);
23 extern int gpio_direction_output(unsigned gpio, int value);
24 extern int gpio_register_callback(unsigned gpio,
25 int (*func)(void *arg),
26 void *);
27 extern int gpio_unregister_callback(unsigned gpio);
28 extern void enable_irq_on_gpio_pin(unsigned gpio, int edge);
29 extern void disable_irq_on_gpio_pin(unsigned gpio);
30 extern void gpio_pullup(unsigned gpio, int value);
31 extern int gpio_get_value(unsigned gpio);
32 extern void gpio_set_value(unsigned gpio, int value);
34 #define gpio_get_value_cansleep gpio_get_value
35 #define gpio_set_value_cansleep gpio_set_value
37 /* translates a pin number to a port number */
38 #define PIN_TO_PORT(val) (val >> 3)
40 /* wrappers to sleep-enable the previous two functions */
41 static inline unsigned gpio_to_irq(unsigned gpio)
43 return PIN_TO_PORT(gpio) + IRQ_U300_GPIO_PORT0;
45 #define gpio_to_irq gpio_to_irq
47 #endif /* __MACH_U300_GPIO_H */