|  | /* | 
|  | * This file is subject to the terms and conditions of the GNU General Public | 
|  | * License.  See the file "COPYING" in the main directory of this archive | 
|  | * for more details. | 
|  | * | 
|  | * Copyright (C) 2012 MIPS Technologies, Inc.  All rights reserved. | 
|  | */ | 
|  | #include <linux/init.h> | 
|  | #include <linux/platform_device.h> | 
|  | #include <linux/mtd/physmap.h> | 
|  |  | 
|  | static struct mtd_partition sead3_mtd_partitions[] = { | 
|  | { | 
|  | .name =		"User FS", | 
|  | .offset =	0x00000000, | 
|  | .size =		0x01fc0000, | 
|  | }, { | 
|  | .name =		"Board Config", | 
|  | .offset =	0x01fc0000, | 
|  | .size =		0x00040000, | 
|  | .mask_flags =	MTD_WRITEABLE | 
|  | }, | 
|  | }; | 
|  |  | 
|  | static struct physmap_flash_data sead3_flash_data = { | 
|  | .width		= 4, | 
|  | .nr_parts	= ARRAY_SIZE(sead3_mtd_partitions), | 
|  | .parts		= sead3_mtd_partitions | 
|  | }; | 
|  |  | 
|  | static struct resource sead3_flash_resource = { | 
|  | .start		= 0x1c000000, | 
|  | .end		= 0x1dffffff, | 
|  | .flags		= IORESOURCE_MEM | 
|  | }; | 
|  |  | 
|  | static struct platform_device sead3_flash = { | 
|  | .name		= "physmap-flash", | 
|  | .id		= 0, | 
|  | .dev		= { | 
|  | .platform_data	= &sead3_flash_data, | 
|  | }, | 
|  | .num_resources	= 1, | 
|  | .resource	= &sead3_flash_resource, | 
|  | }; | 
|  |  | 
|  | static int __init sead3_mtd_init(void) | 
|  | { | 
|  | platform_device_register(&sead3_flash); | 
|  |  | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | module_init(sead3_mtd_init) |