1 /****************************************************************************
2 ****************************************************************************
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
10 ****************************************************************************
11 ****************************************************************************/
12 #ifndef __ASM_ARCH_OMAP_GPIO_H
13 #define __ASM_ARCH_OMAP_GPIO_H
15 #include <asm/hardware.h>
16 #include <asm/arch/irqs.h>
19 #define OMAP_MPUIO_BASE (void __iomem *)0xfffb5000
21 #define OMAP_MPUIO_INPUT_LATCH 0x00
22 #define OMAP_MPUIO_OUTPUT 0x04
23 #define OMAP_MPUIO_IO_CNTL 0x08
24 #define OMAP_MPUIO_KBR_LATCH 0x10
25 #define OMAP_MPUIO_KBC 0x14
26 #define OMAP_MPUIO_GPIO_EVENT_MODE 0x18
27 #define OMAP_MPUIO_GPIO_INT_EDGE 0x1c
28 #define OMAP_MPUIO_KBD_INT 0x20
29 #define OMAP_MPUIO_GPIO_INT 0x24
30 #define OMAP_MPUIO_KBD_MASKIT 0x28
31 #define OMAP_MPUIO_GPIO_MASKIT 0x2c
32 #define OMAP_MPUIO_GPIO_DEBOUNCING 0x30
33 #define OMAP_MPUIO_LATCH 0x34
35 #define OMAP_MPUIO(nr) (OMAP_MAX_GPIO_LINES + (nr))
36 #define OMAP_GPIO_IS_MPUIO(nr) ((nr) >= OMAP_MAX_GPIO_LINES)
38 #define OMAP_GPIO_IRQ(nr) (OMAP_GPIO_IS_MPUIO(nr) ? IH_MPUIO_BASE + ((nr) & 0x0f) : IH_GPIO_BASE + (nr))
40 struct omap_machine_gpio_bank
{
44 void (*set_gpio_direction
)(int gpio
, int is_input
);
45 void (*set_gpio_dataout
)(int gpio
, int enable
);
46 int (*get_gpio_datain
)(int gpio
);