blob: 07c430fdc9ef6489328337c05cee85fecb49524c [file] [log] [blame]
Lennert Buytenhek9569dae2008-10-20 01:51:03 +02001/*
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
Martin Michlmayr3e475f52009-08-17 23:34:10 -100014#include <linux/init.h>
15
Lennert Buytenhek9569dae2008-10-20 01:51:03 +020016/*
17 * GENERIC_GPIO primitives.
18 */
Erik Benadaa8865652009-05-28 17:08:55 -070019#define gpio_get_value __gpio_get_value
20#define gpio_set_value __gpio_set_value
21#define gpio_cansleep __gpio_cansleep
Lennert Buytenhek9569dae2008-10-20 01:51:03 +020022
23/*
24 * Orion-specific GPIO API extensions.
25 */
26void orion_gpio_set_unused(unsigned pin);
Lennert Buytenhek9569dae2008-10-20 01:51:03 +020027void orion_gpio_set_blink(unsigned pin, int blink);
28
Erik Benadaa8865652009-05-28 17:08:55 -070029#define GPIO_INPUT_OK (1 << 0)
30#define GPIO_OUTPUT_OK (1 << 1)
Nicolas Pitre28d27cf2009-02-02 15:27:55 -050031void orion_gpio_set_valid(unsigned pin, int mode);
32
Erik Benadaa8865652009-05-28 17:08:55 -070033/* Initialize gpiolib. */
34void __init orion_gpio_init(void);
35
Lennert Buytenhek07332312008-10-20 01:51:03 +020036/*
37 * GPIO interrupt handling.
38 */
Nicolas Pitrefd4b9b32009-02-17 20:45:50 +010039extern struct irq_chip orion_gpio_irq_chip;
Lennert Buytenhek07332312008-10-20 01:51:03 +020040void orion_gpio_irq_handler(int irqoff);
41
Lennert Buytenhek9569dae2008-10-20 01:51:03 +020042
43#endif