patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / include / asm-arm / arch-omap / board-innovator.h
1 /*
2  * linux/include/asm-arm/arch-omap/board-innovator.h
3  *
4  * Copyright (C) 2001 RidgeRun, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the
8  * Free Software Foundation; either version 2 of the License, or (at your
9  * option) any later version.
10  *
11  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
12  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
14  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
15  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
18  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
19  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21  *
22  * You should have received a copy of the  GNU General Public License along
23  * with this program; if not, write  to the Free Software Foundation, Inc.,
24  * 675 Mass Ave, Cambridge, MA 02139, USA.
25  */
26 #ifndef __ASM_ARCH_OMAP_INNOVATOR_H
27 #define __ASM_ARCH_OMAP_INNOVATOR_H
28
29 #if defined (CONFIG_ARCH_OMAP1510)
30
31 /*
32  * ---------------------------------------------------------------------------
33  *  OMAP-1510 FPGA
34  * ---------------------------------------------------------------------------
35  */
36 #define OMAP1510_FPGA_BASE                      0xE8000000      /* Virtual */
37 #define OMAP1510_FPGA_SIZE                      SZ_4K
38 #define OMAP1510_FPGA_START                     0x08000000      /* Physical */
39
40 /* Revision */
41 #define OMAP1510_FPGA_REV_LOW                   (OMAP1510_FPGA_BASE + 0x0)
42 #define OMAP1510_FPGA_REV_HIGH                  (OMAP1510_FPGA_BASE + 0x1)
43
44 #define OMAP1510_FPGA_LCD_PANEL_CONTROL         (OMAP1510_FPGA_BASE + 0x2)
45 #define OMAP1510_FPGA_LED_DIGIT                 (OMAP1510_FPGA_BASE + 0x3)
46 #define INNOVATOR_FPGA_HID_SPI                  (OMAP1510_FPGA_BASE + 0x4)
47 #define OMAP1510_FPGA_POWER                     (OMAP1510_FPGA_BASE + 0x5)
48
49 /* Interrupt status */
50 #define OMAP1510_FPGA_ISR_LO                    (OMAP1510_FPGA_BASE + 0x6)
51 #define OMAP1510_FPGA_ISR_HI                    (OMAP1510_FPGA_BASE + 0x7)
52
53 /* Interrupt mask */
54 #define OMAP1510_FPGA_IMR_LO                    (OMAP1510_FPGA_BASE + 0x8)
55 #define OMAP1510_FPGA_IMR_HI                    (OMAP1510_FPGA_BASE + 0x9)
56
57 /* Reset registers */
58 #define OMAP1510_FPGA_HOST_RESET                (OMAP1510_FPGA_BASE + 0xa)
59 #define OMAP1510_FPGA_RST                       (OMAP1510_FPGA_BASE + 0xb)
60
61 #define OMAP1510_FPGA_AUDIO                     (OMAP1510_FPGA_BASE + 0xc)
62 #define OMAP1510_FPGA_DIP                       (OMAP1510_FPGA_BASE + 0xe)
63 #define OMAP1510_FPGA_FPGA_IO                   (OMAP1510_FPGA_BASE + 0xf)
64 #define OMAP1510_FPGA_UART1                     (OMAP1510_FPGA_BASE + 0x14)
65 #define OMAP1510_FPGA_UART2                     (OMAP1510_FPGA_BASE + 0x15)
66 #define OMAP1510_FPGA_OMAP1510_STATUS           (OMAP1510_FPGA_BASE + 0x16)
67 #define OMAP1510_FPGA_BOARD_REV                 (OMAP1510_FPGA_BASE + 0x18)
68 #define OMAP1510P1_PPT_DATA                     (OMAP1510_FPGA_BASE + 0x100)
69 #define OMAP1510P1_PPT_STATUS                   (OMAP1510_FPGA_BASE + 0x101)
70 #define OMAP1510P1_PPT_CONTROL                  (OMAP1510_FPGA_BASE + 0x102)
71
72 #define OMAP1510_FPGA_TOUCHSCREEN               (OMAP1510_FPGA_BASE + 0x204)
73
74 #define INNOVATOR_FPGA_INFO                     (OMAP1510_FPGA_BASE + 0x205)
75 #define INNOVATOR_FPGA_LCD_BRIGHT_LO            (OMAP1510_FPGA_BASE + 0x206)
76 #define INNOVATOR_FPGA_LCD_BRIGHT_HI            (OMAP1510_FPGA_BASE + 0x207)
77 #define INNOVATOR_FPGA_LED_GRN_LO               (OMAP1510_FPGA_BASE + 0x208)
78 #define INNOVATOR_FPGA_LED_GRN_HI               (OMAP1510_FPGA_BASE + 0x209)
79 #define INNOVATOR_FPGA_LED_RED_LO               (OMAP1510_FPGA_BASE + 0x20a)
80 #define INNOVATOR_FPGA_LED_RED_HI               (OMAP1510_FPGA_BASE + 0x20b)
81 #define INNOVATOR_FPGA_CAM_USB_CONTROL          (OMAP1510_FPGA_BASE + 0x20c)
82 #define INNOVATOR_FPGA_EXP_CONTROL              (OMAP1510_FPGA_BASE + 0x20d)
83 #define INNOVATOR_FPGA_ISR2                     (OMAP1510_FPGA_BASE + 0x20e)
84 #define INNOVATOR_FPGA_IMR2                     (OMAP1510_FPGA_BASE + 0x210)
85
86 #define OMAP1510_FPGA_ETHR_START                (OMAP1510_FPGA_START + 0x300)
87 #define OMAP1510_FPGA_ETHR_BASE                 (OMAP1510_FPGA_BASE + 0x300)
88
89 /*
90  * Power up Giga UART driver, turn on HID clock.
91  * Turn off BT power, since we're not using it and it
92  * draws power.
93  */
94 #define OMAP1510_FPGA_RESET_VALUE               0x42
95
96 #define OMAP1510_FPGA_PCR_IF_PD0                (1 << 7)
97 #define OMAP1510_FPGA_PCR_COM2_EN               (1 << 6)
98 #define OMAP1510_FPGA_PCR_COM1_EN               (1 << 5)
99 #define OMAP1510_FPGA_PCR_EXP_PD0               (1 << 4)
100 #define OMAP1510_FPGA_PCR_EXP_PD1               (1 << 3)
101 #define OMAP1510_FPGA_PCR_48MHZ_CLK             (1 << 2)
102 #define OMAP1510_FPGA_PCR_4MHZ_CLK              (1 << 1)
103 #define OMAP1510_FPGA_PCR_RSRVD_BIT0            (1 << 0)
104
105 /*
106  * Innovator/OMAP1510 FPGA HID register bit definitions
107  */
108 #define FPGA_HID_SCLK   (1<<0)  /* output */
109 #define FPGA_HID_MOSI   (1<<1)  /* output */
110 #define FPGA_HID_nSS    (1<<2)  /* output 0/1 chip idle/select */
111 #define FPGA_HID_nHSUS  (1<<3)  /* output 0/1 host active/suspended */
112 #define FPGA_HID_MISO   (1<<4)  /* input */
113 #define FPGA_HID_ATN    (1<<5)  /* input  0/1 chip idle/ATN */
114 #define FPGA_HID_rsrvd  (1<<6)
115 #define FPGA_HID_RESETn (1<<7)  /* output - 0/1 USAR reset/run */
116
117 #ifndef OMAP_SDRAM_DEVICE
118 #define OMAP_SDRAM_DEVICE                       D256M_1X16_4B
119 #endif
120
121 #define OMAP1510P1_IMIF_PRI_VALUE               0x00
122 #define OMAP1510P1_EMIFS_PRI_VALUE              0x00
123 #define OMAP1510P1_EMIFF_PRI_VALUE              0x00
124
125 /*
126  * These definitions define an area of FLASH set aside
127  * for the use of MTD/JFFS2. This is the area of flash
128  * that a JFFS2 filesystem will reside which is mounted
129  * at boot with the "root=/dev/mtdblock/0 rw"
130  * command line option. The flash address used here must
131  * fall within the legal range defined by rrload for storing
132  * the filesystem component. This address will be sufficiently
133  * deep into the overall flash range to avoid the other
134  * components also stored in flash such as the bootloader,
135  * the bootloader params, and the kernel.
136  * The SW2 settings for the map below are:
137  * 1 off, 2 off, 3 on, 4 off.
138  */
139
140 /* Intel flash_0, partitioned as expected by rrload */
141 #define OMAP_FLASH_0_BASE       0xD8000000
142 #define OMAP_FLASH_0_START      0x00000000
143 #define OMAP_FLASH_0_SIZE       SZ_16M
144
145 /* Intel flash_1, used for cramfs or other flash file systems */
146 #define OMAP_FLASH_1_BASE       0xD9000000
147 #define OMAP_FLASH_1_START      0x01000000
148 #define OMAP_FLASH_1_SIZE       SZ_16M
149
150 /* The FPGA IRQ is cascaded through GPIO_13 */
151 #define INT_FPGA                (IH_GPIO_BASE + 13)
152
153 /* IRQ Numbers for interrupts muxed through the FPGA */
154 #define IH_FPGA_BASE            IH_BOARD_BASE
155 #define INT_FPGA_ATN            (IH_FPGA_BASE + 0)
156 #define INT_FPGA_ACK            (IH_FPGA_BASE + 1)
157 #define INT_FPGA2               (IH_FPGA_BASE + 2)
158 #define INT_FPGA3               (IH_FPGA_BASE + 3)
159 #define INT_FPGA4               (IH_FPGA_BASE + 4)
160 #define INT_FPGA5               (IH_FPGA_BASE + 5)
161 #define INT_FPGA6               (IH_FPGA_BASE + 6)
162 #define INT_FPGA7               (IH_FPGA_BASE + 7)
163 #define INT_FPGA8               (IH_FPGA_BASE + 8)
164 #define INT_FPGA9               (IH_FPGA_BASE + 9)
165 #define INT_FPGA10              (IH_FPGA_BASE + 10)
166 #define INT_FPGA11              (IH_FPGA_BASE + 11)
167 #define INT_FPGA12              (IH_FPGA_BASE + 12)
168 #define INT_ETHER               (IH_FPGA_BASE + 13)
169 #define INT_FPGAUART1           (IH_FPGA_BASE + 14)
170 #define INT_FPGAUART2           (IH_FPGA_BASE + 15)
171 #define INT_FPGA_TS             (IH_FPGA_BASE + 16)
172 #define INT_FPGA17              (IH_FPGA_BASE + 17)
173 #define INT_FPGA_CAM            (IH_FPGA_BASE + 18)
174 #define INT_FPGA_RTC_A          (IH_FPGA_BASE + 19)
175 #define INT_FPGA_RTC_B          (IH_FPGA_BASE + 20)
176 #define INT_FPGA_CD             (IH_FPGA_BASE + 21)
177 #define INT_FPGA22              (IH_FPGA_BASE + 22)
178 #define INT_FPGA23              (IH_FPGA_BASE + 23)
179
180 #define NR_FPGA_IRQS             24
181
182 #ifndef __ASSEMBLY__
183 void fpga_write(unsigned char val, int reg);
184 unsigned char fpga_read(int reg);
185 #endif
186
187 #endif /* CONFIG_ARCH_OMAP1510 */
188
189 #if defined (CONFIG_ARCH_OMAP1610)
190
191 /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
192 #define OMAP1610_ETHR_BASE              0xE8000000
193 #define OMAP1610_ETHR_SIZE              SZ_4K
194 #define OMAP1610_ETHR_START             0x04000000
195
196 /* Intel STRATA NOR flash at CS3 */
197 #define OMAP1610_NOR_FLASH_BASE         0xD8000000
198 #define OMAP1610_NOR_FLASH_SIZE         SZ_32M
199 #define OMAP1610_NOR_FLASH_START        0x0C000000
200
201 #endif /* CONFIG_ARCH_OMAP1610 */
202 #endif /* __ASM_ARCH_OMAP_INNOVATOR_H */