xref: /openbmc/linux/arch/arm/plat-orion/include/plat/orion-gpio.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1ce91574cSRob Herring /*
2ce91574cSRob Herring  * arch/arm/plat-orion/include/plat/orion-gpio.h
3ce91574cSRob Herring  *
4ce91574cSRob Herring  * Marvell Orion SoC GPIO handling.
5ce91574cSRob Herring  *
6ce91574cSRob Herring  * This file is licensed under the terms of the GNU General Public
7ce91574cSRob Herring  * License version 2.  This program is licensed "as is" without any
8ce91574cSRob Herring  * warranty of any kind, whether express or implied.
9ce91574cSRob Herring  */
10ce91574cSRob Herring 
11ce91574cSRob Herring #ifndef __PLAT_GPIO_H
12ce91574cSRob Herring #define __PLAT_GPIO_H
13ce91574cSRob Herring 
14ce91574cSRob Herring #include <linux/init.h>
15ce91574cSRob Herring #include <linux/types.h>
16ce91574cSRob Herring #include <linux/irqdomain.h>
17c673a2b4SMika Westerberg 
18c673a2b4SMika Westerberg struct gpio_desc;
19c673a2b4SMika Westerberg 
20ce91574cSRob Herring /*
21ce91574cSRob Herring  * Orion-specific GPIO API extensions.
22ce91574cSRob Herring  */
23ce91574cSRob Herring void orion_gpio_set_unused(unsigned pin);
24ce91574cSRob Herring void orion_gpio_set_blink(unsigned pin, int blink);
25c673a2b4SMika Westerberg int orion_gpio_led_blink_set(struct gpio_desc *desc, int state,
26ce91574cSRob Herring 	unsigned long *delay_on, unsigned long *delay_off);
27ce91574cSRob Herring 
28ce91574cSRob Herring #define GPIO_INPUT_OK		(1 << 0)
29ce91574cSRob Herring #define GPIO_OUTPUT_OK		(1 << 1)
30ce91574cSRob Herring void orion_gpio_set_valid(unsigned pin, int mode);
31ce91574cSRob Herring 
32ce91574cSRob Herring /* Initialize gpiolib. */
33*bba14b32SAndy Shevchenko void __init orion_gpio_init(int gpio_base, int ngpio,
34ce91574cSRob Herring 			    void __iomem *base, int mask_offset,
35ce91574cSRob Herring 			    int secondary_irq_base,
36ce91574cSRob Herring 			    int irq[4]);
37ce91574cSRob Herring 
38ce91574cSRob Herring #endif
39