mtd: lpc32xx_nand: NAND driver changes
[linux-2.6.34-lpc32xx.git] / arch / arm / mach-lpc32xx / include / mach / board.h
1 /*
2  * arm/arch/mach-lpc32xx/include/mach/board.h
3  *
4  * Author: Kevin Wells <kevin.wells@nxp.com>
5  *
6  * Copyright (C) 2010 NXP Semiconductors
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  */
18
19
20 #ifndef __ASM_ARCH_BOARD_H
21 #define __ASM_ARCH_BOARD_H
22
23 #include "platform.h"
24 #include <linux/mtd/partitions.h>
25
26 /*
27  * NAND platform configuration structure
28 */
29 typedef int (*en_wp)(int);
30 struct lpc32XX_nand_cfg
31 {
32         u32             wdr_clks;
33         u32             wwidth;
34         u32             whold;
35         u32             wsetup;
36         u32             rdr_clks;
37         u32             rwidth;
38         u32             rhold;
39         u32             rsetup;
40         bool            use_bbt;
41         bool            polled_completion;
42         en_wp           enable_write_prot;
43         struct mtd_partition* (*partition_info)(int, int*);
44 };
45
46 /*
47  * Key scanner platform configuration structure
48  */
49 struct lpc32XX_kscan_cfg {
50         u32     matrix_sz;      /* Size of matrix in XxY, ie. 3 = 3x3 */
51         int     *keymap;        /* Pointer to key map for the scan matrix */
52         u32     deb_clks;       /* Debounce clocks (based on 32KHz clock) */
53         u32     scan_delay;     /* Scan delay (based on 32KHz clock) */
54 };
55
56 /*
57  * Network configuration structure
58  */
59 struct lpc_net_cfg {
60         int     phy_irq;        /* PHY IRQ number, or -1 for polling */
61         u32     phy_mask;       /* PHY mask value */
62 };
63
64 /*
65  * USB device configuration structure
66  */
67 typedef void (*usc_chg_event)(int);
68 struct lpc32xx_usbd_cfg
69 {
70         int     vbus_drv_pol;   /* 0=active low drive for VBUS via ISP1301 */
71         usc_chg_event conn_chgb; /* Connection change event callback (optional) */
72         usc_chg_event susp_chgb; /* Suspend/resume event callback (optional) */
73         usc_chg_event rmwk_chgb; /* Enable/disable remote wakeup */
74 };
75
76
77 #endif  /* __ASM_ARCH_BOARD_H */
78