serial: lpc32xx: Move HSU_OFFSET to platform code
[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 #include <linux/serial_core.h>
26
27 /*
28  * NAND platform configuration structure
29 */
30 typedef int (*en_wp)(int);
31 struct lpc32XX_nand_cfg
32 {
33         u32             wdr_clks;
34         u32             wwidth;
35         u32             whold;
36         u32             wsetup;
37         u32             rdr_clks;
38         u32             rwidth;
39         u32             rhold;
40         u32             rsetup;
41         bool            use_bbt;
42         bool            polled_completion;
43         en_wp           enable_write_prot;
44         struct mtd_partition* (*partition_info)(int, int*);
45 };
46
47 /*
48  * Key scanner platform configuration structure
49  */
50 struct lpc32XX_kscan_cfg {
51         u32     matrix_sz;      /* Size of matrix in XxY, ie. 3 = 3x3 */
52         int     *keymap;        /* Pointer to key map for the scan matrix */
53         u32     deb_clks;       /* Debounce clocks (based on 32KHz clock) */
54         u32     scan_delay;     /* Scan delay (based on 32KHz clock) */
55 };
56
57 /*
58  * Network configuration structure
59  */
60 struct lpc_net_cfg {
61         int     phy_irq;        /* PHY IRQ number, or -1 for polling */
62         u32     phy_mask;       /* PHY mask value */
63 };
64
65 /*
66  * USB device configuration structure
67  */
68 typedef void (*usc_chg_event)(int);
69 struct lpc32xx_usbd_cfg
70 {
71         int     vbus_drv_pol;   /* 0=active low drive for VBUS via ISP1301 */
72         usc_chg_event conn_chgb; /* Connection change event callback (optional) */
73         usc_chg_event susp_chgb; /* Suspend/resume event callback (optional) */
74         usc_chg_event rmwk_chgb; /* Enable/disable remote wakeup */
75 };
76
77 /*
78  * High Speed UART configuration structure
79  */
80 struct lpc32xx_hsuart_port {
81         struct uart_port port;
82         unsigned int fbit_sam;
83 };
84
85 #endif  /* __ASM_ARCH_BOARD_H */
86