Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
[pandora-kernel.git] / arch / arm / plat-omap / include / plat / onenand.h
1 /*
2  * arch/arm/plat-omap/include/mach/onenand.h
3  *
4  * Copyright (C) 2006 Nokia Corporation
5  * Author: Juha Yrjola
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  */
11
12 #include <linux/mtd/mtd.h>
13 #include <linux/mtd/partitions.h>
14
15 #define ONENAND_SYNC_READ       (1 << 0)
16 #define ONENAND_SYNC_READWRITE  (1 << 1)
17
18 struct onenand_freq_info {
19         u16                     maf_id;
20         u16                     dev_id;
21         u16                     ver_id;
22 };
23
24 struct omap_onenand_platform_data {
25         int                     cs;
26         int                     gpio_irq;
27         struct mtd_partition    *parts;
28         int                     nr_parts;
29         int                     (*onenand_setup)(void __iomem *, int *freq_ptr);
30         int             (*get_freq)(const struct onenand_freq_info *freq_info,
31                                     bool *clk_dep);
32         int                     dma_channel;
33         u8                      flags;
34         u8                      regulator_can_sleep;
35 };
36
37 #define ONENAND_MAX_PARTITIONS 8
38
39 #if defined(CONFIG_MTD_ONENAND_OMAP2) || \
40         defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
41
42 extern void gpmc_onenand_init(struct omap_onenand_platform_data *d);
43
44 #else
45
46 #define board_onenand_data      NULL
47
48 static inline void gpmc_onenand_init(struct omap_onenand_platform_data *d)
49 {
50 }
51
52 #endif