Linux-2.6.12-rc2
[safe/jmp/linux-2.6] / include / asm-arm / arch-s3c2410 / nand.h
1 /* linux/include/asm-arm/arch-s3c2410/nand.h
2  *
3  * (c) 2004 Simtec Electronics
4  *  Ben Dooks <ben@simtec.co.uk>
5  *
6  * S3C2410 - NAND device controller platfrom_device info
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 version 2 as
10  * published by the Free Software Foundation.
11  *
12  * Changelog:
13  *      23-Sep-2004 BJD  Created file
14 */
15
16 /* struct s3c2410_nand_set
17  *
18  * define an set of one or more nand chips registered with an unique mtd
19  *
20  * nr_chips      = number of chips in this set
21  * nr_partitions = number of partitions pointed to be partitoons (or zero)
22  * name          = name of set (optional)
23  * nr_map        = map for low-layer logical to physical chip numbers (option)
24  * partitions    = mtd partition list
25 */
26
27 struct s3c2410_nand_set {
28         int                     nr_chips;
29         int                     nr_partitions;
30         char                    *name;
31         int                     *nr_map;
32         struct mtd_partition    *partitions;
33 };
34
35 struct s3c2410_platform_nand {
36         /* timing information for controller, all times in nanoseconds */
37
38         int     tacls;  /* time for active CLE/ALE to nWE/nOE */
39         int     twrph0; /* active time for nWE/nOE */
40         int     twrph1; /* time for release CLE/ALE from nWE/nOE inactive */
41
42         int                     nr_sets;
43         struct s3c2410_nand_set *sets;
44
45         void                    (*select_chip)(struct s3c2410_nand_set *,
46                                                int chip);
47 };
48