1 /*
2  * arch/arm/plat-orion/include/plat/gpio.h
3  *
4  * Marvell Orion SoC GPIO handling.
5  *
6  * This file is licensed under the terms of the GNU General Public
7  * License version 2.  This program is licensed "as is" without any
8  * warranty of any kind, whether express or implied.
9  */
10 
11 #ifndef __PLAT_GPIO_H
12 #define __PLAT_GPIO_H
13 
14 #include <linux/init.h>
15 #include <asm-generic/gpio.h>
16 
17 /*
18  * GENERIC_GPIO primitives.
19  */
20 #define gpio_get_value  __gpio_get_value
21 #define gpio_set_value  __gpio_set_value
22 #define gpio_cansleep   __gpio_cansleep
23 #define gpio_to_irq     __gpio_to_irq
24 
25 /*
26  * Orion-specific GPIO API extensions.
27  */
28 void orion_gpio_set_unused(unsigned pin);
29 void orion_gpio_set_blink(unsigned pin, int blink);
30 
31 #define GPIO_INPUT_OK		(1 << 0)
32 #define GPIO_OUTPUT_OK		(1 << 1)
33 void orion_gpio_set_valid(unsigned pin, int mode);
34 
35 /* Initialize gpiolib. */
36 void __init orion_gpio_init(int gpio_base, int ngpio,
37 			    u32 base, int mask_offset, int secondary_irq_base);
38 
39 /*
40  * GPIO interrupt handling.
41  */
42 extern struct irq_chip orion_gpio_irq_chip;
43 void orion_gpio_irq_handler(int irqoff);
44 
45 
46 #endif
47