1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License.  See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2006 MIPS Technologies, Inc.
7 *     written by Ralf Baechle <ralf@linux-mips.org>
8 */
9
10#include <linux/init.h>
11#include <linux/platform_device.h>
12#include <linux/mtd/partitions.h>
13#include <linux/mtd/physmap.h>
14#include <mtd/mtd-abi.h>
15
16static struct mtd_partition malta_mtd_partitions[] = {
17	{
18		.name =		"YAMON",
19		.offset =	0x0,
20		.size =		0x100000,
21		.mask_flags =	MTD_WRITEABLE
22	}, {
23		.name =		"User FS",
24		.offset = 	0x100000,
25		.size =		0x2e0000
26	}, {
27		.name =		"Board Config",
28		.offset =	0x3e0000,
29		.size =		0x020000,
30		.mask_flags =	MTD_WRITEABLE
31	}
32};
33
34static struct physmap_flash_data malta_flash_data = {
35	.width		= 4,
36	.nr_parts	= ARRAY_SIZE(malta_mtd_partitions),
37	.parts		= malta_mtd_partitions
38};
39
40static struct resource malta_flash_resource = {
41	.start		= 0x1e000000,
42	.end		= 0x1e3fffff,
43	.flags		= IORESOURCE_MEM
44};
45
46static struct platform_device malta_flash = {
47	.name		= "physmap-flash",
48	.id		= 0,
49	.dev		= {
50		.platform_data	= &malta_flash_data,
51	},
52	.num_resources	= 1,
53	.resource	= &malta_flash_resource,
54};
55
56static int __init malta_mtd_init(void)
57{
58	platform_device_register(&malta_flash);
59
60	return 0;
61}
62
63module_init(malta_mtd_init)
64