blob: 2858667d2e4f7505502c5e3a8317ff0bdfb4fbe6 [file] [log] [blame]
Russell Kinga09e64f2008-08-05 16:14:15 +01001/*
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
Juha Yrjolaaa62e902009-05-28 13:23:52 -070012#include <linux/mtd/mtd.h>
Russell Kinga09e64f2008-08-05 16:14:15 +010013#include <linux/mtd/partitions.h>
14
Juha Yrjolaaa62e902009-05-28 13:23:52 -070015#define ONENAND_SYNC_READ (1 << 0)
16#define ONENAND_SYNC_READWRITE (1 << 1)
17
Adrian Hunter5714b7e2011-02-07 10:47:00 +020018struct onenand_freq_info {
19 u16 maf_id;
20 u16 dev_id;
21 u16 ver_id;
22};
23
Russell Kinga09e64f2008-08-05 16:14:15 +010024struct omap_onenand_platform_data {
25 int cs;
26 int gpio_irq;
27 struct mtd_partition *parts;
28 int nr_parts;
Adrian Hunter3ad2d862011-02-07 10:46:59 +020029 int (*onenand_setup)(void __iomem *, int *freq_ptr);
Adrian Hunter5714b7e2011-02-07 10:47:00 +020030 int (*get_freq)(const struct onenand_freq_info *freq_info,
31 bool *clk_dep);
Russell Kinga09e64f2008-08-05 16:14:15 +010032 int dma_channel;
Juha Yrjolaaa62e902009-05-28 13:23:52 -070033 u8 flags;
Adrian Hunter9ac4e612010-02-19 15:39:53 +010034 u8 regulator_can_sleep;
Roman Tereshonkovc93ff6b2011-02-17 13:44:42 +020035 u8 skip_initial_unlocking;
Russell Kinga09e64f2008-08-05 16:14:15 +010036};
David Woodhouse742c5252008-08-12 11:28:00 +010037
David Woodhouse742c5252008-08-12 11:28:00 +010038#define ONENAND_MAX_PARTITIONS 8
Juha Yrjolaaa62e902009-05-28 13:23:52 -070039
40#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
41 defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
42
43extern void gpmc_onenand_init(struct omap_onenand_platform_data *d);
44
45#else
46
47#define board_onenand_data NULL
48
49static inline void gpmc_onenand_init(struct omap_onenand_platform_data *d)
50{
51}
52
53#endif