Merge u-boot/master into u-boot-ti/master
[glsdk/glsdk-u-boot.git] / arch / arm / include / asm / arch-davinci / gpio.h
1 /*
2  * Copyright (C) 2009 Texas Instruments Incorporated
3  *
4  * See file CREDITS for list of people who contributed to this
5  * project.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation; either version 2 of
10  * the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20  * MA 02111-1307 USA
21  */
22 #ifndef _GPIO_DEFS_H_
23 #define _GPIO_DEFS_H_
25 #ifndef CONFIG_SOC_DA8XX
26 #define DAVINCI_GPIO_BINTEN     0x01C67008
27 #define DAVINCI_GPIO_BANK01     0x01C67010
28 #define DAVINCI_GPIO_BANK23     0x01C67038
29 #define DAVINCI_GPIO_BANK45     0x01C67060
30 #define DAVINCI_GPIO_BANK67     0x01C67088
32 #else /* CONFIG_SOC_DA8XX */
33 #define DAVINCI_GPIO_BINTEN     0x01E26008
34 #define DAVINCI_GPIO_BANK01     0x01E26010
35 #define DAVINCI_GPIO_BANK23     0x01E26038
36 #define DAVINCI_GPIO_BANK45     0x01E26060
37 #define DAVINCI_GPIO_BANK67     0x01E26088
38 #define DAVINCI_GPIO_BANK8      0x01E260B0
39 #endif /* CONFIG_SOC_DA8XX */
41 struct davinci_gpio {
42         unsigned int dir;
43         unsigned int out_data;
44         unsigned int set_data;
45         unsigned int clr_data;
46         unsigned int in_data;
47         unsigned int set_rising;
48         unsigned int clr_rising;
49         unsigned int set_falling;
50         unsigned int clr_falling;
51         unsigned int intstat;
52 };
54 struct davinci_gpio_bank {
55         int num_gpio;
56         unsigned int irq_num;
57         unsigned int irq_mask;
58         unsigned long *in_use;
59         unsigned long base;
60 };
62 #define davinci_gpio_bank01 ((struct davinci_gpio *)DAVINCI_GPIO_BANK01)
63 #define davinci_gpio_bank23 ((struct davinci_gpio *)DAVINCI_GPIO_BANK23)
64 #define davinci_gpio_bank45 ((struct davinci_gpio *)DAVINCI_GPIO_BANK45)
65 #define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
66 #define davinci_gpio_bank8 ((struct davinci_gpio *)DAVINCI_GPIO_BANK8)
68 #define gpio_status()           gpio_info()
69 #define GPIO_NAME_SIZE          20
70 #if defined(CONFIG_SOC_DM644X)
71 /* GPIO0 to GPIO53, omit the V3.3 volts one */
72 #define MAX_NUM_GPIOS           70
73 #elif defined(CONFIG_SOC_DA8XX) && !defined(CONFIG_SOC_DA850)
74 #define MAX_NUM_GPIOS           128
75 #else
76 #define MAX_NUM_GPIOS           144
77 #endif
78 #define GPIO_BANK(gp)           (davinci_gpio_bank01 + ((gp) >> 5))
79 #define GPIO_BIT(gp)            ((gp) & 0x1F)
81 void gpio_info(void);
83 #endif