Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sead3-mtd.c
Go to the documentation of this file.
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) 2012 MIPS Technologies, Inc. All rights reserved.
7  */
8 #include <linux/init.h>
10 #include <linux/mtd/physmap.h>
11 
12 static struct mtd_partition sead3_mtd_partitions[] = {
13  {
14  .name = "User FS",
15  .offset = 0x00000000,
16  .size = 0x01fc0000,
17  }, {
18  .name = "Board Config",
19  .offset = 0x01fc0000,
20  .size = 0x00040000,
21  .mask_flags = MTD_WRITEABLE
22  },
23 };
24 
25 static struct physmap_flash_data sead3_flash_data = {
26  .width = 4,
27  .nr_parts = ARRAY_SIZE(sead3_mtd_partitions),
28  .parts = sead3_mtd_partitions
29 };
30 
31 static struct resource sead3_flash_resource = {
32  .start = 0x1c000000,
33  .end = 0x1dffffff,
34  .flags = IORESOURCE_MEM
35 };
36 
37 static struct platform_device sead3_flash = {
38  .name = "physmap-flash",
39  .id = 0,
40  .dev = {
41  .platform_data = &sead3_flash_data,
42  },
43  .num_resources = 1,
44  .resource = &sead3_flash_resource,
45 };
46 
47 static int __init sead3_mtd_init(void)
48 {
49  platform_device_register(&sead3_flash);
50 
51  return 0;
52 }
53 
54 module_init(sead3_mtd_init)