summaryrefslogtreecommitdiffstats
path: root/drivers/staging/westbridge/astoria/arch/arm/plat-omap/include/mach/westbridge/westbridge-omap3-pnand-hal/cyasmemmap.h
blob: 3eee192ffe89ad82b677252ba6f833b89dd54c74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
/*
 OMAP3430 ZOOM MDK astoria interface defs(cyasmemmap.h)
## ===========================
## Copyright (C) 2010  Cypress Semiconductor
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
## as published by the Free Software Foundation; either version 2
## of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor
## Boston, MA  02110-1301, USA.
## ===========================
*/
/* include does not seem to work
 * moving for patch submission
#include <mach/gpmc.h>
#include <mach/mux.h>
*/
#include <linux/../../arch/arm/plat-omap/include/plat/gpmc.h>
#include <linux/../../arch/arm/plat-omap/include/plat/mux.h>

#ifndef _INCLUDED_CYASMEMMAP_H_
#define _INCLUDED_CYASMEMMAP_H_

/* defines copied from OMAP kernel branch */

#define OMAP2_PULL_UP		(1 << 4)
#define OMAP2_PULL_ENA		(1 << 3)
#define	OMAP34XX_MUX_MODE0	0
#define	OMAP34XX_MUX_MODE4	4
#define OMAP3_INPUT_EN		(1 << 8)
#define OMAP34XX_PIN_INPUT_PULLUP	(OMAP2_PULL_ENA | OMAP3_INPUT_EN \
						| OMAP2_PULL_UP)

/*
 * for OMAP3430 <-> astoria :   ADmux mode, 8 bit data path
 * WB Signal-	OMAP3430 signal	    COMMENTS
 *  --------------------------- --------------------
 * CS_L	 -GPMC_nCS4_GPIO_53	ZOOM I SOM board
 *								signal: up_nCS_A_EXT
 * AD[7:0]-upD[7:0]		  	buffered on the
 *								transposer board
 * 							GPMC_ADDR
 *							[A8:A1]->upD[7:0]
 * INT#	-GPMC_nWP_GPIO_62
 * DACK	-N/C				 not conected
 * WAKEUP-GPIO_167
 * RESET-GPIO_126
 * R/B	-GPMC_WAIT2_GPIO_64
 * -------------------------------------------
 * The address range for nCS1B is 0x06000000 - 0x07FF FFFF.
*/

/*
 *OMAP_ZOOM LEDS
 */
#define LED_0 156
#define LED_1 128
#define LED_2 64
#define LED_3 60

#define HIGH 1
#define LOW  1

/*
 *omap GPIO number
 */
#define AST_WAKEUP	 167
#define AST_RESET	 126
#define AST__rn_b	 64

/*
 * NOTE THIS PIN IS USED AS WP for OMAP NAND
 */
#define AST_INT	 62

/*
 * as an I/O, it is actually controlled by GPMC
 */
#define AST_CS	55


/*
 *GPMC prefetch engine
 */

/* register and its bit fields */
#define GPMC_PREFETCH_CONFIG1 0x01E0

	/*32 bytes for 16 bit pnand mode*/
	#define PFE_THRESHOLD 31

	/*
	 * bit fields
	 * PF_ACCESSMODE  - 0 - read mode, 1 - write mode
	 * PF_DMAMODE - 0 - default only intr line signal will be generated
	 * PF_SYNCHROMODE - default 0 - engin will start access as soon as
	 *					ctrl re STARTENGINE is set
	 * PF_WAITPINSEL - FOR synchro mode  selects WAIT pin whch edge
	 *					will be monitored
	 * PF_EN_ENGINE - 1- ENABLES ENGINE, but it needs to be started after
	 *					that C ctrl reg bit 0
	 * PF_FIFO_THRESHOLD - FIFO threshhold in number of BUS(8 or 16) words
	 * PF_WEIGHTED_PRIO  - NUM of cycles granted to PFE if RND_ROBIN
	 *					prioritization is enabled
	 * PF_ROUND_ROBIN  - if enabled, gives priority to other CS, but
	 *					reserves NUM of cycles for PFE's turn
	 * PF_ENGIN_CS_SEL  - GPMC CS assotiated with PFE function
	 */
	#define PF_ACCESSMODE  (0 << 0)
	#define PF_DMAMODE	 (0 << 2)
	#define PF_SYNCHROMODE (0 << 3)
	#define PF_WAITPINSEL  (0x0 << 4)
	#define PF_EN_ENGINE   (1 << 7)
	#define PF_FIFO_THRESHOLD (PFE_THRESHOLD << 8)
	#define PF_WEIGHTED_PRIO (0x0 << 16)
	#define PF_ROUND_ROBIN   (0 << 23)
	#define PF_ENGIN_CS_SEL (AST_GPMC_CS << 24)
	#define PF_EN_OPTIM_ACC (0 << 27)
	#define PF_CYCLEOPTIM   (0x0 << 28)

#define GPMC_PREFETCH_CONFIG1_VAL (PF_ACCESSMODE | \
				PF_DMAMODE | PF_SYNCHROMODE | \
				PF_WAITPINSEL | PF_EN_ENGINE | \
				PF_FIFO_THRESHOLD | PF_FIFO_THRESHOLD | \
				PF_WEIGHTED_PRIO | PF_ROUND_ROBIN | \
				PF_ENGIN_CS_SEL | PF_EN_OPTIM_ACC | \
				PF_CYCLEOPTIM)

/* register and its bit fields */
#define GPMC_PREFETCH_CONFIG2 0x01E4
	/*
	 * bit fields
	 * 14 bit field NOTE this counts is also
	 * is in number of BUS(8 or 16) words
	 */
	#define PF_TRANSFERCOUNT (0x000)


/* register and its bit fields */
#define GPMC_PREFETCH_CONTROL 0x01EC
	/*
	 * bit fields , ONLY BIT 0 is implemented
	 * PFWE engin must be programmed with this bit = 0
	 */
	#define PFPW_STARTENGINE (1 << 0)

/* register and its bit fields */
#define GPMC_PREFETCH_STATUS  0x01F0

	/* */
	#define PFE_FIFO_THRESHOLD (1 << 16)

/*
 * GPMC posted write/prefetch engine end
 */


/*
 * chip select number on GPMC ( 0..7 )
 */
#define AST_GPMC_CS 4

/*
 * not connected
 */
#define AST_DACK	00


/*
 * Physical address above the NAND flash
 * we use CS For mapping in OMAP3430 RAM space use 0x0600 0000
 */
#define CYAS_DEV_BASE_ADDR  (0x20000000)

#define CYAS_DEV_MAX_ADDR   (0xFF)
#define CYAS_DEV_ADDR_RANGE (CYAS_DEV_MAX_ADDR << 1)

#ifdef p_s_r_a_m_INTERFACE
 /* in CRAM or PSRAM mode OMAP A1..An wires-> Astoria, there is no A0 line */
 #define CYAS_DEV_CALC_ADDR(cyas_addr) (cyas_addr << 1)
 #define CYAS_DEV_CALC_EP_ADDR(ep) (ep << 1)
#else
 /*
  * For pNAND interface it depends on NAND emulation mode
  * SBD/LBD etc we use NON-LNA_LBD  mode, so it goes like this:
  * forlbd   <CMD><CA0,CA1,RA0,RA1,RA2> <CMD>,
  * where CA1 address must have bits 2,3 = "11"
  * ep is mapped into RA1 bits {4:0}
  */
 #define CYAS_DEV_CALC_ADDR(cyas_addr) (cyas_addr | 0x0c00)
 #define CYAS_DEV_CALC_EP_ADDR(ep) ep
#endif

/*
 *OMAP3430 i/o access macros
 */
#define IORD32(addr) (*(volatile u32  *)(addr))
#define IOWR32(addr, val) (*(volatile u32 *)(addr) = val)

#define IORD16(addr) (*(volatile u16  *)(addr))
#define IOWR16(addr, val) (*(volatile u16 *)(addr) = val)

#define IORD8(addr) (*(volatile u8  *)(addr))
#define IOWR8(addr, val) (*(volatile u8 *)(addr) = val)

/*
 * local defines for accessing to OMAP GPIO ***
 */
#define CTLPADCONF_BASE_ADDR 0x48002000
#define CTLPADCONF_SIZE 0x1000

#define GPIO1_BASE_ADDR 0x48310000
#define GPIO2_BASE_ADDR 0x49050000
#define GPIO3_BASE_ADDR 0x49052000
#define GPIO4_BASE_ADDR 0x49054000
#define GPIO5_BASE_ADDR 0x49056000
#define GPIO6_BASE_ADDR 0x49058000
#define GPIO_SPACE_SIZE 0x1000


/*
 * OMAP3430 GPMC timing for pNAND interface
 */
#define GPMC_BASE 0x6E000000
#define GPMC_REGION_SIZE 0x1000
#define GPMC_CONFIG_REG (0x50)

/*
 * bit 0 in the GPMC_CONFIG_REG
 */
#define NAND_FORCE_POSTED_WRITE_B 1

/*
 * WAIT2STATUS, must be (1 << 10)
 */
#define AS_WAIT_PIN_MASK (1 << 10)


/*
 * GPMC_CONFIG(reg number [1..7] [for chip sel CS[0..7])
 */
#define GPMC_CFG_REG(N, CS) ((0x60 + (4*(N-1))) + (0x30*CS))

/*
 *gpmc nand registers for CS4
 */
#define AST_GPMC_NAND_CMD		(0x7c + (0x30*AST_GPMC_CS))
#define AST_GPMC_NAND_ADDR		(0x80 + (0x30*AST_GPMC_CS))
#define AST_GPMC_NAND_DATA		(0x84 + (0x30*AST_GPMC_CS))

#define GPMC_STAT_REG		(0x54)
#define GPMC_ERR_TYPE	   (0x48)

/*
 * we get "gpmc_base" from kernel
 */
#define GPMC_VMA(offset) (gpmc_base + offset)

/*
 * GPMC CS space VMA start address
 */
#define GPMC_CS_VMA(offset) (gpmc_data_vma + offset)

/*
 * PAD_CFG mux space VMA
 */
#define PADCFG_VMA(offset) (iomux_vma + offset)

/*
 * CONFIG1: by default, sngle access, async r/w RD_MULTIPLE[30]
 * WR_MULTIPLE[28]; GPMC_FCL_DIV[1:0]
 */
#define GPMC_FCLK_DIV ((0) << 0)

/*
 * ADDITIONAL DIVIDER FOR ALL TIMING PARAMS
 */
#define TIME_GRAN_SCALE ((0) << 4)

/*
 * for use by gpmc_set_timings api, measured in ns, not clocks
 */
#define WB_GPMC_BUSCYC_t  (7 * 6)
#define WB_GPMC_CS_t_o_n	(0)
#define WB_GPMC_ADV_t_o_n   (0)
#define WB_GPMC_OE_t_o_n	(0)
#define WB_GPMC_OE_t_o_f_f   (5 * 6)
#define WB_GPMC_WE_t_o_n	(1 * 6)
#define WB_GPMC_WE_t_o_f_f   (5 * 6)
#define WB_GPMC_RDS_ADJ   (2 * 6)
#define WB_GPMC_RD_t_a_c_c   (WB_GPMC_OE_t_o_f_f + WB_GPMC_RDS_ADJ)
#define WB_GPMC_WR_t_a_c_c  (WB_GPMC_BUSCYC_t)

#define DIR_OUT	0
#define DIR_INP	1
#define DRV_HI	1
#define DRV_LO	0

/*
 * GPMC_CONFIG7[cs] register bit fields
 * AS_CS_MASK - 3 bit mask for  A26,A25,A24,
 * AS_CS_BADDR - 6 BIT VALUE  A29 ...A24
 * CSVALID_B - CSVALID bit on GPMC_CONFIG7[cs] register
 */
#define AS_CS_MASK	(0X7 << 8)
#define AS_CS_BADDR	 0x02
#define CSVALID_B (1 << 6)

/*
 * DEFINE OMAP34XX GPIO OFFSETS (should have been defined in kernel /arch
 * these are offsets from the BASE_ADDRESS of the GPIO BLOCK
 */
#define GPIO_REVISION		0x000
#define GPIO_SYSCONFIG		0x010
#define GPIO_SYSSTATUS1		0x014
#define GPIO_IRQSTATUS1		0x018
#define GPIO_IRQENABLE1		0x01C
#define GPIO_IRQSTATUS2		0x028
#define GPIO_CTRL		0x030
#define GPIO_OE			0x034
#define GPIO_DATA_IN		0x038
#define GPIO_DATA_OUT		0x03C
#define GPIO_LEVELDETECT0	   0x040
#define GPIO_LEVELDETECT1	   0x044
#define GPIO_RISINGDETECT	   0x048
#define GPIO_FALLINGDETECT	  0x04c
#define GPIO_CLEAR_DATAOUT	0x090
#define GPIO_SET_DATAOUT	0x094

typedef struct  {
	char	*name;
	u32		phy_addr;
	u32		virt_addr;
	u32		size;
} io2vma_tab_t;

/*
 * GPIO phy to translation VMA table
 */
static  io2vma_tab_t gpio_vma_tab[6] = {
		{"GPIO1_BASE_ADDR", GPIO1_BASE_ADDR , 0 , GPIO_SPACE_SIZE},
		{"GPIO2_BASE_ADDR", GPIO2_BASE_ADDR , 0 , GPIO_SPACE_SIZE},
		{"GPIO3_BASE_ADDR", GPIO3_BASE_ADDR , 0 , GPIO_SPACE_SIZE},
		{"GPIO4_BASE_ADDR", GPIO4_BASE_ADDR , 0 , GPIO_SPACE_SIZE},
		{"GPIO5_BASE_ADDR", GPIO5_BASE_ADDR , 0 , GPIO_SPACE_SIZE},
		{"GPIO6_BASE_ADDR", GPIO6_BASE_ADDR , 0 , GPIO_SPACE_SIZE}
};
/*
 * name - USER signal name assigned to the pin ( for printks)
 * mux_func -  enum index NAME for the pad_cfg function
 * pin_num - pin_number if mux_func is GPIO, if not a GPIO it is -1
 * mux_ptr - pointer to the corresponding pad_cfg_reg
 *			(used for pad release )
 * mux_save - preserve here original PAD_CNF value for this
 *			pin (used for pad release)
 * dir - if GPIO: 0 - OUT , 1 - IN
 * dir_save - save original pin direction
 * drv - initial drive level "0" or "1"
 * drv_save - save original pin drive level
 * valid - 1 if successfuly configured
*/
typedef struct  {
	char *name;
	u32 mux_func;
	int pin_num;
	u16 *mux_ptr;
	u16 mux_save;
	u8 dir;
	u8 dir_save;
	u8 drv;
	u8 drv_save;
	u8 valid;
} user_pad_cfg_t;

/*
 * need to ensure that enums are in sync with the
 * omap_mux_pin_cfg table, these enums designate
 * functions that OMAP pads can be configured to
 */
enum {
	B23_OMAP3430_GPIO_167,
	D23_OMAP3430_GPIO_126,
	H1_OMAP3430_GPIO_62,
	H1_OMAP3430_GPMC_n_w_p,
	T8_OMAP3430_GPMC_n_c_s4,
	T8_OMAP3430_GPIO_55,
	R25_OMAP3430_GPIO_156,
	R27_OMAP3430_GPIO_128,
	K8_OMAP3430_GPIO_64,
	K8_GPMC_WAIT2,
	G3_OMAP3430_GPIO_60,
	G3_OMAP3430_n_b_e0_CLE,
	C6_GPMC_WAIT3,
	J1_OMAP3430_GPIO_61,
	C6_OMAP3430_GPIO_65,

	END_OF_TABLE
};

/*
 * number of GPIOS we plan to grab
 */
#define GPIO_SLOTS 8

/*
 *  user_pads_init() reads(and saves) from/to this table
 *  used in conjunction with omap_3430_mux_t table in .h file
 *  because the way it's done in the kernel code
 *  TODO: implement restore of the the original cfg and i/o regs
 */

static user_pad_cfg_t user_pad_cfg[] = {
		 /*
		 * name,pad_func,pin_num, mux_ptr, mux_sav, dir,
		 *    dir_sav, drv, drv_save, valid
		 */
		{"AST_WAKEUP", B23_OMAP3430_GPIO_167, 167, NULL, 0,
				DIR_OUT, 0, DRV_HI, 0, 0},
		{"AST_RESET", D23_OMAP3430_GPIO_126, 126, NULL,	0,
				DIR_OUT, 0, DRV_HI, 0, 0},
		{"AST__rn_b", K8_GPMC_WAIT2, 64, NULL, 0,
				DIR_INP, 0,	0, 0, 0},
		{"AST_INTR", H1_OMAP3430_GPIO_62, 62, NULL, 0,
				DIR_INP, 0,	DRV_HI, 0, 0},
		{"AST_CS", T8_OMAP3430_GPMC_n_c_s4, 55, NULL, 0,
				DIR_OUT, 0,	DRV_HI, 0, 0},
		{"LED_0", R25_OMAP3430_GPIO_156, 156, NULL, 0,
				DIR_OUT, 0,	DRV_LO, 0, 0},
		{"LED_1", R27_OMAP3430_GPIO_128, 128, NULL, 0,
				DIR_OUT, 0,	DRV_LO, 0, 0},
		{"AST_CLE", G3_OMAP3430_n_b_e0_CLE , 60, NULL, 0,
				DIR_OUT, 0,	DRV_LO, 0, 0},
		/*
		 * Z terminator, must always be present
		 * for sanity check, don't remove
		 */
		{NULL}
};

#define GPIO_BANK(pin) (pin >> 5)
#define REG_WIDTH 32
#define GPIO_REG_VMA(pin_num, offset) \
	(gpio_vma_tab[GPIO_BANK(pin_num)].virt_addr + offset)

/*
 * OMAP GPIO_REG 32 BIT MASK for a bit or
 * flag in gpio_No[0..191]  apply it to a 32 bit
 * location to set clear or check on a corresponding
 * gpio bit or flag
 */
#define GPIO_REG_MASK(pin_num) (1 << \
		(pin_num - (GPIO_BANK(pin_num) * REG_WIDTH)))

/*
 * OMAP GPIO registers bitwise access macros
 */

#define OMAP_GPIO_BIT(pin_num, reg) \
	((*((u32 *)GPIO_REG_VMA(pin_num, reg)) \
	& GPIO_REG_MASK(pin_num)) ? 1 : 0)

#define RD_OMAP_GPIO_BIT(pin_num, v) OMAP_GPIO_BIT(pin_num, reg)

/*
 *these are superfast set/clr bitbang macro, 48ns cyc tyme
 */
#define OMAP_SET_GPIO(pin_num) \
	(*(u32 *)GPIO_REG_VMA(pin_num, GPIO_SET_DATAOUT) \
	= GPIO_REG_MASK(pin_num))
#define OMAP_CLR_GPIO(pin_num) \
	(*(u32 *)GPIO_REG_VMA(pin_num, GPIO_CLEAR_DATAOUT) \
	= GPIO_REG_MASK(pin_num))

#define WR_OMAP_GPIO_BIT(pin_num, v) \
	(v ? (*(u32 *)GPIO_REG_VMA(pin_num, \
	GPIO_SET_DATAOUT) = GPIO_REG_MASK(pin_num)) \
	: (*(u32 *)GPIO_REG_VMA(pin_num, \
	GPIO_CLEAR_DATAOUT) = GPIO_REG_MASK(pin_num)))

/*
 * Note this pin cfg mimicks similar implementation
 * in linux kernel, which unfortunately doesn't allow
 * us to dynamically insert new custom GPIO mux
 * configurations all REG definitions used in this
 * applications. to add a new pad_cfg function, insert
 * a new ENUM and new pin_cfg entry in omap_mux_pin_cfg[]
 * table below
 *
 * offset - note this is a word offset since the
 *		SCM regs are 16 bit packed in one 32 bit word
 * mux_val - just enough to describe pins used
 */
typedef struct  {
	char	*name;
	u16		offset;
	u16	 mux_val;
} omap_3430_mux_t;

/*
 * "OUTIN" is configuration when DATA reg drives the
 * pin but the level at the pin can be sensed
 */
#define PAD_AS_OUTIN (OMAP34XX_MUX_MODE4 | \
		OMAP34XX_PIN_OUTPUT | OMAP34XX_PIN_INPUT)

omap_3430_mux_t omap_mux_pin_cfg[] = {
	/*
	 * B23_OMAP3430_GPIO_167 - GPIO func to PAD 167 WB wakeup
	 * D23_OMAP3430_GPIO_126 - drive GPIO_126 ( AST RESET)
	 * H1_OMAP3430_GPIO_62 - need a pullup on this pin
	 * H1_OMAP3430_GPMC_n_w_p -  GPMC NAND CTRL n_w_p out
	 * T8_OMAP3430_GPMC_n_c_s4" - T8 is controlled b_y GPMC NAND ctrl
	 * R25_OMAP3430_GPIO_156 - OMAPZOOM drive LED_0
	 * R27_OMAP3430_GPIO_128 - OMAPZOOM drive LED_1
	 * K8_OMAP3430_GPIO_64 - OMAPZOOM drive LED_2
	 * K8_GPMC_WAIT2 - GPMC WAIT2 function on PAD K8
	 * G3_OMAP3430_GPIO_60 - OMAPZOOM drive LED_3
	 * G3_OMAP3430_n_b_e0_CLE -GPMC NAND ctrl CLE signal
	*/

	{"B23_OMAP3430_GPIO_167", 0x0130, (OMAP34XX_MUX_MODE4)},
	{"D23_OMAP3430_GPIO_126", 0x0132, (OMAP34XX_MUX_MODE4)},
	{"H1_OMAP3430_GPIO_62",   0x00CA, (OMAP34XX_MUX_MODE4 |
				OMAP3_INPUT_EN | OMAP34XX_PIN_INPUT_PULLUP) },
	{"H1_OMAP3430_GPMC_n_w_p",  0x00CA, (OMAP34XX_MUX_MODE0)},
	{"T8_OMAP3430_GPMC_n_c_s4", 0x00B6, (OMAP34XX_MUX_MODE0) },
	{"T8_OMAP3430_GPIO_55",   0x00B6, (OMAP34XX_MUX_MODE4) },
	{"R25_OMAP3430_GPIO_156", 0x018C, (OMAP34XX_MUX_MODE4) },
	{"R27_OMAP3430_GPIO_128", 0x0154, (OMAP34XX_MUX_MODE4) },
	{"K8_OMAP3430_GPIO_64",   0x00d0, (OMAP34XX_MUX_MODE4) },
	{"K8_GPMC_WAIT2",		  0x00d0, (OMAP34XX_MUX_MODE0) },
	{"G3_OMAP3430_GPIO_60",   0x00C6, (OMAP34XX_MUX_MODE4 |
				OMAP3_INPUT_EN)},
	{"G3_OMAP3430_n_b_e0_CLE",  0x00C6, (OMAP34XX_MUX_MODE0)},
	{"C6_GPMC_WAIT3", 0x00d2, (OMAP34XX_MUX_MODE0)},
	{"C6_OMAP3430_GPIO_65", 0x00d2, (OMAP34XX_MUX_MODE4 |
				OMAP3_INPUT_EN)},
	{"J1_OMAP3430_GPIO_61", 0x00C8, (OMAP34XX_MUX_MODE4 |
				OMAP3_INPUT_EN | OMAP34XX_PIN_INPUT_PULLUP)},
	/*
	 * don't remove, used for sanity check.
	 */
	{"END_OF_TABLE"}
};


#endif /* _INCLUDED_CYASMEMMAP_H_ */

/*[]*/
OpenPOWER on IntegriCloud