Support Micron or Numonyx memory
[x-loader:x-loader.git] / include / asm / arch-omap3 / mem.h
1 /*
2  * (C) Copyright 2006
3  * Texas Instruments, <www.ti.com>
4  * Richard Woodruff <r-woodruff2@ti.com>
5  *
6  * See file CREDITS for list of people who contributed to this
7  * project.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License as
11  * published by the Free Software Foundation; either version 2 of
12  * the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
22  * MA 02111-1307 USA
23  */
24
25 #ifndef _OMAP34XX_MEM_H_
26 #define _OMAP34XX_MEM_H_
27
28 #define SDRC_CS0_OSET    0x0
29 #define SDRC_CS1_OSET    0x30  /* mirror CS1 regs appear offset 0x30 from CS0 */
30
31 #ifndef __ASSEMBLY__
32
33 typedef enum {
34         STACKED         = 0,
35         IP_DDR          = 1,
36         COMBO_DDR       = 2,
37         IP_SDR          = 3,
38 } mem_t;
39
40
41 /* Memory that can be connected to GPMC */
42 #define GPMC_NOR            0
43 #define GPMC_NAND           1
44 #define GPMC_MDOC           2
45 #define GPMC_ONENAND        3
46 #define MMC_NAND            4
47 #define MMC_ONENAND         5
48 #define GPMC_NONE           6
49 #define GPMC_ONENAND_TRY    7
50
51 #endif
52
53 /* set the 343x-SDRC incoming address convention */
54 #if defined(SDRC_B_R_C)
55 #define B_ALL   (0 << 6)        /* bank-row-column */
56 #elif defined(SDRC_B1_R_B0_C)
57 #define B_ALL   (1 << 6)        /* bank1-row-bank0-column */
58 #elif defined(SDRC_R_B_C)
59 #define B_ALL   (2 << 6)        /* row-bank-column */
60 #endif
61
62 /* Future memory combinations based on past */
63 #define SDP_SDRC_MDCFG_MONO_DDR    0x0
64 #define SDP_COMBO_MDCFG_0_DDR      0x0
65 #define SDP_SDRC_MDCFG_0_SDR       0x0
66
67 /* Slower full frequency range default timings for x32 operation*/
68 #define SDP_SDRC_SHARING                0x00000100
69 #define SDP_SDRC_MR_0_SDR               0x00000031
70
71 #ifdef CONFIG_3430ZEBU
72 #define SDP_SDRC_MDCFG_0_DDR    (0x02582019|B_ALL) /* Infin ddr module */
73 #else
74 #define SDP_SDRC_MDCFG_0_DDR    (0x02584019|B_ALL)
75 #define SDP_SDRC_MDCFG_0_DDR_MICRON_XM  (0x03588019|B_ALL)
76 #define SDP_SDRC_MDCFG_0_DDR_NUMONYX_XM (0x04590019|B_ALL)
77 #endif
78
79 #define SDP_SDRC_MR_0_DDR               0x00000032
80
81 /* Diabling power down mode using CKE pin */
82 #define SDP_SDRC_POWER_POP      0x00000081
83
84 /* optimized timings good for current shipping parts */
85 #define SDP_3430_SDRC_RFR_CTRL_100MHz   0x0002da01
86 #define SDP_3430_SDRC_RFR_CTRL_133MHz   0x0003de01 /* 7.8us/7.5ns - 50=0x3de */
87 #define SDP_3430_SDRC_RFR_CTRL_165MHz   0x0004e201 /* 7.8us/6ns - 50=0x4e2 */
88 #define SDP_3430_SDRC_RFR_CTRL_200MHz   0x0005e601 /* 7.8us/5ns - 50=0x5e6 */
89
90 #define DLL_OFFSET              0
91 #define DLL_WRITEDDRCLKX2DIS    1
92 #define DLL_ENADLL              1
93 #define DLL_LOCKDLL             0
94 #define DLL_DLLPHASE_72         0
95 #define DLL_DLLPHASE_90         1
96
97 // rkw - need to find of 90/72 degree recommendation for speed like before.
98 #define SDP_SDRC_DLLAB_CTRL ((DLL_ENADLL << 3) | \
99     (DLL_LOCKDLL << 2) | (DLL_DLLPHASE_90 << 1))
100
101 /* Infineon part of 3430SDP (133MHz optimized) ~ 7.5ns
102  *      TDAL = Twr/Tck + Trp/tck = 15/7.5 + 22.5/7.5 = 2 + 3 = 5
103  *      TDPL = 15/7.5   = 2
104  *      TRRD = 15/2.5   = 2
105  *      TRCD = 22.5/7.5 = 3
106  *      TRP = 22.5/7.5  = 3
107  *      TRAS = 45/7.5   = 6
108  *      TRC = 65/7.5    = 8.6->9
109  *      TRFC = 75/7.5   = 10
110  *   ACTIMB
111  *      TCKE = 2
112  *      XSR = 120/7.5 = 16
113  */
114 #define INFINEON_TDAL_133   5
115 #define INFINEON_TDPL_133   2
116 #define INFINEON_TRRD_133   2
117 #define INFINEON_TRCD_133   3
118 #define INFINEON_TRP_133    3
119 #define INFINEON_TRAS_133   6
120 #define INFINEON_TRC_133    9
121 #define INFINEON_TRFC_133  10
122 #define INFINEON_V_ACTIMA_133 ((INFINEON_TRFC_133 << 27) | (INFINEON_TRC_133 << 22) | (INFINEON_TRAS_133 << 18) \
123                 |(INFINEON_TRP_133 << 15) | (INFINEON_TRCD_133 << 12) |(INFINEON_TRRD_133 << 9) |(INFINEON_TDPL_133 << 6) \
124                 | (INFINEON_TDAL_133))
125
126 #define INFINEON_TWTR_133   1
127 #define INFINEON_TCKE_133   2
128 #define INFINEON_TXP_133    2
129 #define INFINEON_XSR_133   16
130 #define INFINEON_V_ACTIMB_133 ((INFINEON_TCKE_133 << 12) | (INFINEON_XSR_133 << 0)) | \
131                                 (INFINEON_TXP_133 << 8) | (INFINEON_TWTR_133 << 16)
132
133 #define INFINEON_V_ACTIMA_100 INFINEON_V_ACTIMA_133
134 #define INFINEON_V_ACTIMB_100 INFINEON_V_ACTIMB_133
135
136
137 /* Infineon part of 3430SDP (165MHz optimized) 6.06ns
138  *   ACTIMA
139  *      TDAL = Twr/Tck + Trp/tck = 15/6 + 18/6 = 2.5 + 3 = 5.5 -> 6
140  *      TDPL (Twr) = 15/6       = 2.5 -> 3
141  *      TRRD = 12/6     = 2
142  *      TRCD = 18/6     = 3
143  *      TRP = 18/6      = 3
144  *      TRAS = 42/6     = 7
145  *      TRC = 60/6      = 10
146  *      TRFC = 72/6     = 12
147  *   ACTIMB
148  *      TCKE = 2
149  *      XSR = 120/6 = 20
150  */
151 #define INFINEON_TDAL_165   6
152 #define INFINEON_TDPL_165   3
153 #define INFINEON_TRRD_165   2
154 #define INFINEON_TRCD_165   3
155 #define INFINEON_TRP_165    3
156 #define INFINEON_TRAS_165   7
157 #define INFINEON_TRC_165   10
158 #define INFINEON_TRFC_165  12
159 #define INFINEON_V_ACTIMA_165 ((INFINEON_TRFC_165 << 27) | (INFINEON_TRC_165 << 22) | (INFINEON_TRAS_165 << 18) \
160                 | (INFINEON_TRP_165 << 15) | (INFINEON_TRCD_165 << 12) |(INFINEON_TRRD_165 << 9) | \
161                 (INFINEON_TDPL_165 << 6) | (INFINEON_TDAL_165))
162
163 #define INFINEON_TWTR_165   1
164 #define INFINEON_TCKE_165   2
165 #define INFINEON_TXP_165    2
166 #define INFINEON_XSR_165    20
167 #define INFINEON_V_ACTIMB_165 ((INFINEON_TCKE_165 << 12) | (INFINEON_XSR_165 << 0)) | \
168                                 (INFINEON_TXP_165 << 8) | (INFINEON_TWTR_165 << 16)
169
170 /* Micron part of 3430 EVM (133MHz optimized) ~ 7.5ns
171  *      TDAL = Twr/Tck + Trp/tck = 15/7.5 + 22.5/7.5 = 2 + 3 = 5
172  *      TDPL =  15/7.5   = 2
173  *      TRRD =  15/7.5   = 2
174  *      TRCD =  22.5/7.5 = 3
175  *      TRP  =  22.5/7.5 = 3
176  *      TRAS =  45/7.5   = 6
177  *      TRC  =  75/7.5   = 10
178  *      TRFC =  125/7.5  = 16.6->17
179  *   ACTIMB
180  *      TWTR =  1
181  *      TCKE =  1
182  *      TXSR =  138/7.5  = 18.3->19
183  *      TXP  =  25/7.5   = 3.3->4
184  */
185 #define MICRON_TDAL_133   5
186 #define MICRON_TDPL_133   2
187 #define MICRON_TRRD_133   2
188 #define MICRON_TRCD_133   3
189 #define MICRON_TRP_133    3
190 #define MICRON_TRAS_133   6
191 #define MICRON_TRC_133    10
192 #define MICRON_TRFC_133   17
193 #define MICRON_V_ACTIMA_133 ((MICRON_TRFC_133 << 27) | (MICRON_TRC_133 << 22) | (MICRON_TRAS_133 << 18) \
194                 |(MICRON_TRP_133 << 15) | (MICRON_TRCD_133 << 12) |(MICRON_TRRD_133 << 9) |(MICRON_TDPL_133 << 6) \
195                 | (MICRON_TDAL_133))
196
197 #define MICRON_TWTR_133   1
198 #define MICRON_TCKE_133   1
199 #define MICRON_TXSR_133   19
200 #define MICRON_TXP_133    4
201 #define MICRON_V_ACTIMB_133 ((MICRON_TWTR_133 << 16) | (MICRON_TCKE_133 << 12) | (MICRON_TXP_133 << 8) \
202                 | (MICRON_TXSR_133 << 0))
203
204 #define MICRON_V_ACTIMA_100 MICRON_V_ACTIMA_133
205 #define MICRON_V_ACTIMB_100 MICRON_V_ACTIMB_133
206
207 /* Micron part of 3430 EVM (165MHz optimized) 6.06ns
208  *   ACTIMA
209  *      TDAL = Twr/Tck + Trp/tck = 15/6 + 18 /6 = 2.5 + 3 = 5.5 -> 6
210  *      TDPL (Twr) = 15/6       = 2.5 -> 3
211  *      TRRD = 12/6     = 2
212  *      TRCD = 18/6 = 3
213  *      TRP = 18/6      = 3
214  *      TRAS = 42/6     = 7
215  *      TRC = 60/6      = 10
216  *      TRFC = 125/6    = 21
217  *   ACTIMB
218  *      TWTR =  1
219  *      TCKE =  1
220  *      TXSR =  138/6  = 23
221  *      TXP  =  25/6   = 4.1 ~5
222  */
223 #define MICRON_TDAL_165   6
224 #define MICRON_TDPL_165   3
225 #define MICRON_TRRD_165   2
226 #define MICRON_TRCD_165   3
227 #define MICRON_TRP_165    3
228 #define MICRON_TRAS_165   7
229 #define MICRON_TRC_165   10
230 #define MICRON_TRFC_165  21
231 #define MICRON_V_ACTIMA_165 ((MICRON_TRFC_165 << 27) | (MICRON_TRC_165 << 22) | (MICRON_TRAS_165 << 18) \
232                 | (MICRON_TRP_165 << 15) | (MICRON_TRCD_165 << 12) |(MICRON_TRRD_165 << 9) | \
233                 (MICRON_TDPL_165 << 6) | (MICRON_TDAL_165))
234
235 #define MICRON_TWTR_165   1
236 #define MICRON_TCKE_165   1
237 #define MICRON_TXP_165    5
238 #define MICRON_XSR_165    23
239 #define MICRON_V_ACTIMB_165 ((MICRON_TCKE_165 << 12) | (MICRON_XSR_165 << 0)) | \
240                                 (MICRON_TXP_165 << 8) | (MICRON_TWTR_165 << 16)
241
242 /* Micron part (200MHz optimized) 5 ns
243   */
244 #define MICRON_TDAL_200   6
245 #define MICRON_TDPL_200   3
246 #define MICRON_TRRD_200   2
247 #define MICRON_TRCD_200   3
248 #define MICRON_TRP_200    3
249 #define MICRON_TRAS_200   8
250 #define MICRON_TRC_200   11
251 #define MICRON_TRFC_200  15
252 #define MICRON_V_ACTIMA_200 ((MICRON_TRFC_200 << 27) | (MICRON_TRC_200 << 22) | (MICRON_TRAS_200 << 18) \
253                 | (MICRON_TRP_200 << 15) | (MICRON_TRCD_200 << 12) |(MICRON_TRRD_200 << 9) | \
254                 (MICRON_TDPL_200 << 6) | (MICRON_TDAL_200))
255
256 #define MICRON_TWTR_200   2
257 #define MICRON_TCKE_200   4
258 #define MICRON_TXP_200    2
259 #define MICRON_XSR_200   23
260 #define MICRON_V_ACTIMB_200 ((MICRON_TCKE_200 << 12) | (MICRON_XSR_200 << 0)) | \
261                                 (MICRON_TXP_200 << 8) | (MICRON_TWTR_200 << 16)
262
263 /* NUMONYX part of IGEP0020 (165MHz optimized) 6.06ns
264  *   ACTIMA
265  *      TDAL = Twr/Tck + Trp/tck = 15/6 + 18/6 = 2.5 + 3 = 5.5 -> 6
266  *      TDPL (Twr) = 15/6 = 2.5 -> 3
267  *      TRRD = 12/6 = 2
268  *      TRCD = 22.5/6 = 3.75 -> 4
269  *      TRP  = 18/6 = 3
270  *      TRAS = 42/6 = 7
271  *      TRC  = 60/6 = 10
272  *      TRFC = 140/6 = 23.3 -> 24
273  *   ACTIMB
274  *      TWTR = 2
275  *      TCKE = 2
276  *      TXSR = 200/6 =  33.3 -> 34
277  *      TXP  = 1.0 + 1.1 = 2.1 -> 3 ¿?
278  */
279 #define NUMONYX_TDAL_165   6
280 #define NUMONYX_TDPL_165   3
281 #define NUMONYX_TRRD_165   2
282 #define NUMONYX_TRCD_165   4
283 #define NUMONYX_TRP_165    3
284 #define NUMONYX_TRAS_165   7
285 #define NUMONYX_TRC_165   10
286 #define NUMONYX_TRFC_165  24
287 #define NUMONYX_V_ACTIMA_165 ((NUMONYX_TRFC_165 << 27) | (NUMONYX_TRC_165 << 22) | (NUMONYX_TRAS_165 << 18) \
288                 | (NUMONYX_TRP_165 << 15) | (NUMONYX_TRCD_165 << 12) |(NUMONYX_TRRD_165 << 9) | \
289                 (NUMONYX_TDPL_165 << 6) | (NUMONYX_TDAL_165))
290
291 #define NUMONYX_TWTR_165   2
292 #define NUMONYX_TCKE_165   2
293 #define NUMONYX_TXP_165    3
294 #define NUMONYX_XSR_165    34
295 #define NUMONYX_V_ACTIMB_165 ((NUMONYX_TCKE_165 << 12) | (NUMONYX_XSR_165 << 0)) | \
296                                 (NUMONYX_TXP_165 << 8) | (NUMONYX_TWTR_165 << 16)
297
298 /* New and compatability speed defines */
299 #if defined(PRCM_CLK_CFG2_200MHZ) || defined(PRCM_CONFIG_II) || defined(PRCM_CONFIG_5B)
300 # define L3_100MHZ   /* Use with <= 100MHz SDRAM */
301 #elif defined (PRCM_CLK_CFG2_266MHZ) || defined(PRCM_CONFIG_III) || defined(PRCM_CONFIG_5A)
302 # define L3_133MHZ    /* Use with <= 133MHz SDRAM*/
303 #elif  defined(PRCM_CLK_CFG2_332MHZ) || defined(PRCM_CONFIG_I) || defined(PRCM_CONFIG_2)
304 # define L3_165MHZ    /* Use with <= 165MHz SDRAM (L3=166 on 3430) */
305 #endif
306
307 #if defined(L3_100MHZ)
308 # define MICRON_SDRC_ACTIM_CTRLA_0     MICRON_V_ACTIMA_100
309 # define MICRON_SDRC_ACTIM_CTRLB_0     MICRON_V_ACTIMB_100
310 #elif defined(L3_133MHZ)
311 # define MICRON_SDRC_ACTIM_CTRLA_0     MICRON_V_ACTIMA_133
312 # define MICRON_SDRC_ACTIM_CTRLB_0     MICRON_V_ACTIMB_133
313 #elif  defined(L3_165MHZ)
314 # define MICRON_SDRC_ACTIM_CTRLA_0     MICRON_V_ACTIMA_165
315 # define MICRON_SDRC_ACTIM_CTRLB_0     MICRON_V_ACTIMB_165
316 # define NUMONYX_SDRC_ACTIM_CTRLA_0    NUMONYX_V_ACTIMA_165
317 # define NUMONYX_SDRC_ACTIM_CTRLB_0    NUMONYX_V_ACTIMB_165
318 #endif
319
320
321 #if defined(L3_100MHZ)
322 # define INFINEON_SDRC_ACTIM_CTRLA_0     INFINEON_V_ACTIMA_100
323 # define INFINEON_SDRC_ACTIM_CTRLB_0     INFINEON_V_ACTIMB_100
324 #elif defined(L3_133MHZ)
325 # define INFINEON_SDRC_ACTIM_CTRLA_0     INFINEON_V_ACTIMA_133
326 # define INFINEON_SDRC_ACTIM_CTRLB_0     INFINEON_V_ACTIMB_133
327 #elif  defined(L3_165MHZ)
328 # define INFINEON_SDRC_ACTIM_CTRLA_0     INFINEON_V_ACTIMA_165
329 # define INFINEON_SDRC_ACTIM_CTRLB_0     INFINEON_V_ACTIMB_165
330 #endif
331
332 #if defined(L3_100MHZ)
333 # define SDP_SDRC_RFR_CTRL          SDP_3430_SDRC_RFR_CTRL_100MHz
334 #elif defined(L3_133MHZ)
335 # define SDP_SDRC_RFR_CTRL          SDP_3430_SDRC_RFR_CTRL_133MHz
336 #elif  defined(L3_165MHZ)
337 # define SDP_SDRC_RFR_CTRL          SDP_3430_SDRC_RFR_CTRL_165MHz
338 #endif
339
340 /*
341  * GPMC settings -
342  * Definitions is as per the following format
343  * # define <PART>_GPMC_CONFIG<x> <value>
344  * Where:
345  * PART is the part name e.g. STNOR - Intel Strata Flash
346  * x is GPMC config registers from 1 to 6 (there will be 6 macros)
347  * Value is corresponding value
348  *
349  * For every valid PRCM configuration there should be only one definition of
350  * the same. if values are independent of the board, this definition will be
351  * present in this file if values are dependent on the board, then this should
352  * go into corresponding mem-boardName.h file
353  *
354  * Currently valid part Names are (PART):
355  * STNOR - Intel Strata Flash
356  * SMNAND - Samsung NAND
357  * M_NAND - Micron Large page x16 NAND
358  * MPDB - H4 MPDB board
359  * SBNOR - Sibley NOR
360  * ONNAND - Samsung One NAND
361  *
362  * include/configs/file.h contains the defn - for all CS we are interested
363  * #define OMAP34XX_GPMC_CSx PART
364  * #define OMAP34XX_GPMC_CSx_SIZE Size
365  * #define OMAP34XX_GPMC_CSx_MAP Map
366  * Where:
367  * x - CS number
368  * PART - Part Name as defined above
369  * SIZE - how big is the mapping to be
370  *   GPMC_SIZE_128M - 0x8
371  *   GPMC_SIZE_64M  - 0xC
372  *   GPMC_SIZE_32M  - 0xE
373  *   GPMC_SIZE_16M  - 0xF
374  * MAP  - Map this CS to which address(GPMC address space)- Absolute address
375  *   >>24 before being used.
376  */
377 #define GPMC_SIZE_128M  0x8
378 #define GPMC_SIZE_64M   0xC
379 #define GPMC_SIZE_32M   0xE
380 #define GPMC_SIZE_16M   0xF
381
382 #if defined(L3_100MHZ)
383 # define SMNAND_GPMC_CONFIG1 0x0
384 # define SMNAND_GPMC_CONFIG2 0x00141400
385 # define SMNAND_GPMC_CONFIG3 0x00141400
386 # define SMNAND_GPMC_CONFIG4 0x0F010F01
387 # define SMNAND_GPMC_CONFIG5 0x010C1414
388 # define SMNAND_GPMC_CONFIG6 0x00000A80
389
390 # define M_NAND_GPMC_CONFIG1 0x00001800
391 # define M_NAND_GPMC_CONFIG2 SMNAND_GPMC_CONFIG2
392 # define M_NAND_GPMC_CONFIG3 SMNAND_GPMC_CONFIG3
393 # define M_NAND_GPMC_CONFIG4 SMNAND_GPMC_CONFIG4
394 # define M_NAND_GPMC_CONFIG5 SMNAND_GPMC_CONFIG5
395 # define M_NAND_GPMC_CONFIG6 SMNAND_GPMC_CONFIG6
396 # define STNOR_GPMC_CONFIG1  0x3
397 # define STNOR_GPMC_CONFIG2  0x000f0f01
398 # define STNOR_GPMC_CONFIG3  0x00050502
399 # define STNOR_GPMC_CONFIG4  0x0C060C06
400 # define STNOR_GPMC_CONFIG5  0x01131F1F
401 # define STNOR_GPMC_CONFIG6  0x0  /* 0? */
402 # define MPDB_GPMC_CONFIG1   0x00011000
403 # define MPDB_GPMC_CONFIG2   0x001F1F00
404 # define MPDB_GPMC_CONFIG3   0x00080802
405 # define MPDB_GPMC_CONFIG4   0x1C091C09
406 # define MPDB_GPMC_CONFIG5   0x031A1F1F
407 # define MPDB_GPMC_CONFIG6   0x000003C2
408 #endif
409
410 #if defined(L3_133MHZ)
411 # define SMNAND_GPMC_CONFIG1 0x00000800
412 # define SMNAND_GPMC_CONFIG2 0x00141400
413 # define SMNAND_GPMC_CONFIG3 0x00141400
414 # define SMNAND_GPMC_CONFIG4 0x0F010F01
415 # define SMNAND_GPMC_CONFIG5 0x010C1414
416 # define SMNAND_GPMC_CONFIG6 0x00000A80
417 # define SMNAND_GPMC_CONFIG7 0x00000C44
418
419 # define M_NAND_GPMC_CONFIG1 0x00001800
420 # define M_NAND_GPMC_CONFIG2 SMNAND_GPMC_CONFIG2
421 # define M_NAND_GPMC_CONFIG3 SMNAND_GPMC_CONFIG3
422 # define M_NAND_GPMC_CONFIG4 SMNAND_GPMC_CONFIG4
423 # define M_NAND_GPMC_CONFIG5 SMNAND_GPMC_CONFIG5
424 # define M_NAND_GPMC_CONFIG6 SMNAND_GPMC_CONFIG6
425 # define M_NAND_GPMC_CONFIG7 SMNAND_GPMC_CONFIG7
426
427 # define STNOR_GPMC_CONFIG1  0x1203
428 # define STNOR_GPMC_CONFIG2  0x00151501
429 # define STNOR_GPMC_CONFIG3  0x00060602
430 # define STNOR_GPMC_CONFIG4  0x10081008
431 # define STNOR_GPMC_CONFIG5  0x01131F1F
432 # define STNOR_GPMC_CONFIG6  0x000004c4
433
434 # define SIBNOR_GPMC_CONFIG1  0x1200
435 # define SIBNOR_GPMC_CONFIG2  0x001f1f00
436 # define SIBNOR_GPMC_CONFIG3  0x00080802
437 # define SIBNOR_GPMC_CONFIG4  0x1C091C09
438 # define SIBNOR_GPMC_CONFIG5  0x01131F1F
439 # define SIBNOR_GPMC_CONFIG6  0x000003C2
440
441 # define MPDB_GPMC_CONFIG1  0x00011000
442 # define MPDB_GPMC_CONFIG2  0x001f1f01
443 # define MPDB_GPMC_CONFIG3  0x00080803
444 # define MPDB_GPMC_CONFIG4  0x1C091C09
445 # define MPDB_GPMC_CONFIG5  0x041f1F1F
446 # define MPDB_GPMC_CONFIG6  0x000004C4
447
448 # define P2_GPMC_CONFIG1  0x0
449 # define P2_GPMC_CONFIG2  0x0
450 # define P2_GPMC_CONFIG3  0x0
451 # define P2_GPMC_CONFIG4  0x0
452 # define P2_GPMC_CONFIG5  0x0
453 # define P2_GPMC_CONFIG6  0x0
454
455 # define ONENAND_GPMC_CONFIG1 0x00001200
456 # define ONENAND_GPMC_CONFIG2 0x000c0c01
457 # define ONENAND_GPMC_CONFIG3 0x00030301
458 # define ONENAND_GPMC_CONFIG4 0x0c040c04
459 # define ONENAND_GPMC_CONFIG5 0x010C1010
460 # define ONENAND_GPMC_CONFIG6 0x00000000
461
462 #endif /* endif L3_133MHZ */
463
464 #if defined (L3_165MHZ)
465 # define SMNAND_GPMC_CONFIG1 0x00000800
466 # define SMNAND_GPMC_CONFIG2 0x00141400
467 # define SMNAND_GPMC_CONFIG3 0x00141400
468 # define SMNAND_GPMC_CONFIG4 0x0F010F01
469 # define SMNAND_GPMC_CONFIG5 0x010C1414
470 # define SMNAND_GPMC_CONFIG6 0x1F0F0A80
471 # define SMNAND_GPMC_CONFIG7 0x00000C44
472
473 # define M_NAND_GPMC_CONFIG1 0x00001800
474 # define M_NAND_GPMC_CONFIG2 SMNAND_GPMC_CONFIG2
475 # define M_NAND_GPMC_CONFIG3 SMNAND_GPMC_CONFIG3
476 # define M_NAND_GPMC_CONFIG4 SMNAND_GPMC_CONFIG4
477 # define M_NAND_GPMC_CONFIG5 SMNAND_GPMC_CONFIG5
478 # define M_NAND_GPMC_CONFIG6 SMNAND_GPMC_CONFIG6
479 # define M_NAND_GPMC_CONFIG7 SMNAND_GPMC_CONFIG7
480
481 # define STNOR_GPMC_CONFIG1  0x3
482 # define STNOR_GPMC_CONFIG2  0x00151501
483 # define STNOR_GPMC_CONFIG3  0x00060602
484 # define STNOR_GPMC_CONFIG4  0x11091109
485 # define STNOR_GPMC_CONFIG5  0x01141F1F
486 # define STNOR_GPMC_CONFIG6  0x000004c4
487
488 # define SIBNOR_GPMC_CONFIG1  0x1200
489 # define SIBNOR_GPMC_CONFIG2  0x001f1f00
490 # define SIBNOR_GPMC_CONFIG3  0x00080802
491 # define SIBNOR_GPMC_CONFIG4  0x1C091C09
492 # define SIBNOR_GPMC_CONFIG5  0x01131F1F
493 # define SIBNOR_GPMC_CONFIG6  0x1F0F03C2
494
495 # define SDPV2_MPDB_GPMC_CONFIG1  0x00611200
496 # define SDPV2_MPDB_GPMC_CONFIG2  0x001F1F01
497 # define SDPV2_MPDB_GPMC_CONFIG3  0x00080803
498 # define SDPV2_MPDB_GPMC_CONFIG4  0x1D091D09
499 # define SDPV2_MPDB_GPMC_CONFIG5  0x041D1F1F
500 # define SDPV2_MPDB_GPMC_CONFIG6  0x1D0904C4
501
502 # define MPDB_GPMC_CONFIG1  0x00011000
503 # define MPDB_GPMC_CONFIG2  0x001f1f01
504 # define MPDB_GPMC_CONFIG3  0x00080803
505 # define MPDB_GPMC_CONFIG4  0x1c0b1c0a
506 # define MPDB_GPMC_CONFIG5  0x041f1F1F
507 # define MPDB_GPMC_CONFIG6  0x1F0F04C4
508
509 # define P2_GPMC_CONFIG1  0x0
510 # define P2_GPMC_CONFIG2  0x0
511 # define P2_GPMC_CONFIG3  0x0
512 # define P2_GPMC_CONFIG4  0x0
513 # define P2_GPMC_CONFIG5  0x0
514 # define P2_GPMC_CONFIG6  0x0
515
516 # define ONENAND_GPMC_CONFIG1 0x00001200
517 # define ONENAND_GPMC_CONFIG2 0x000F0F01
518 # define ONENAND_GPMC_CONFIG3 0x00030301
519 # define ONENAND_GPMC_CONFIG4 0x0F040F04
520 # define ONENAND_GPMC_CONFIG5 0x010F1010
521 # define ONENAND_GPMC_CONFIG6 0x1F060000
522
523 #endif
524
525 /* max number of GPMC Chip Selects */
526 #define GPMC_MAX_CS    8
527 /* max number of GPMC regs */
528 #define GPMC_MAX_REG   7
529
530 #define PISMO1_NOR       1
531 #define PISMO1_NAND      2
532 #define PISMO2_CS0  3
533 #define PISMO2_CS1  4
534 #define PISMO1_ONENAND  5
535 #define POP_ONENAND     5
536 #define DBG_MPDB       6
537 #define PISMO2_NAND_CS0 7
538 #define PISMO2_NAND_CS1 8
539
540 /* make it readable for the gpmc_init */
541 #define PISMO1_NOR_BASE         FLASH_BASE
542 #define PISMO1_NAND_BASE        NAND_BASE
543 #define PISMO2_CS0_BASE         PISMO2_MAP1
544 #define PISMO1_ONEN_BASE        ONENAND_MAP
545 #define POP_ONEN_BASE           ONENAND_MAP
546 #define DBG_MPDB_BASE           DEBUG_BASE
547
548 #endif /* endif _OMAP34XX_MEM_H_ */