blob: 01d175b54bcedc604b39b8a71f60cdf7dc3beb43 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/* linux/include/asm-arm/arch-s3c2410/nand.h
2 *
Ben Dooksf0560762006-12-17 19:59:20 +01003 * Copyright (c) 2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005 *
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.
Linus Torvalds1da177e2005-04-16 15:20:36 -070011*/
12
13/* struct s3c2410_nand_set
14 *
15 * define an set of one or more nand chips registered with an unique mtd
16 *
17 * nr_chips = number of chips in this set
18 * nr_partitions = number of partitions pointed to be partitoons (or zero)
19 * name = name of set (optional)
20 * nr_map = map for low-layer logical to physical chip numbers (option)
21 * partitions = mtd partition list
22*/
23
24struct s3c2410_nand_set {
25 int nr_chips;
26 int nr_partitions;
27 char *name;
28 int *nr_map;
29 struct mtd_partition *partitions;
Ben Dooks1c21ab62008-04-15 11:36:21 +010030 struct nand_ecclayout *ecc_layout;
Linus Torvalds1da177e2005-04-16 15:20:36 -070031};
32
33struct s3c2410_platform_nand {
34 /* timing information for controller, all times in nanoseconds */
35
36 int tacls; /* time for active CLE/ALE to nWE/nOE */
37 int twrph0; /* active time for nWE/nOE */
38 int twrph1; /* time for release CLE/ALE from nWE/nOE inactive */
39
Ben Dooksc45c6c62008-04-15 11:36:20 +010040 unsigned int ignore_unset_ecc : 1;
41
Linus Torvalds1da177e2005-04-16 15:20:36 -070042 int nr_sets;
43 struct s3c2410_nand_set *sets;
44
45 void (*select_chip)(struct s3c2410_nand_set *,
46 int chip);
47};
48