Browse Source

tew-632brp: register flash device

SVN-Revision: 13631
Gabor Juhos 17 years ago
parent
commit
4eb4a07b33
1 changed files with 58 additions and 0 deletions
  1. 58 0
      target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c

+ 58 - 0
target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c

@@ -9,11 +9,66 @@
  *  by the Free Software Foundation.
  */
 
+#include <linux/platform_device.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
+
 #include <asm/mips_machine.h>
 
 #include <asm/mach-ar71xx/ar71xx.h>
 #include <asm/mach-ar71xx/platform.h>
 
+#ifdef CONFIG_MTD_PARTITIONS
+static struct mtd_partition tew_632brp_partitions[] = {
+	{
+		.name		= "u-boot",
+		.offset		= 0,
+		.size		= 0x020000,
+		.mask_flags	= MTD_WRITEABLE,
+	} , {
+		.name		= "config",
+		.offset		= 0x020000,
+		.size		= 0x010000,
+	} , {
+		.name		= "kernel",
+		.offset		= 0x030000,
+		.size		= 0x100000,
+	} , {
+		.name		= "rootfs",
+		.offset		= 0x130000,
+		.size		= 0x2b0000,
+	} , {
+		.name		= "firmware",
+		.offset		= 0x030000,
+		.size		= 0x3b0000,
+	} , {
+		.name		= "art",
+		.offset		= 0x3e0000,
+		.size		= 0x020000,
+		.mask_flags	= MTD_WRITEABLE,
+	}
+};
+#endif /* CONFIG_MTD_PARTITIONS */
+
+static struct flash_platform_data tew_632brp_flash_data = {
+#ifdef CONFIG_MTD_PARTITIONS
+        .parts          = tew_632brp_partitions,
+        .nr_parts       = ARRAY_SIZE(tew_632brp_partitions),
+#endif
+};
+
+static struct spi_board_info tew_632brp_spi_info[] = {
+	{
+		.bus_num	= 0,
+		.chip_select	= 0,
+		.max_speed_hz	= 25000000,
+		.modalias	= "m25p80",
+		.platform_data  = &tew_632brp_flash_data,
+	}
+};
+
 static void __init tew_632brp_setup(void)
 {
 	ar71xx_add_device_mdio(0xfffffffe);
@@ -24,6 +79,9 @@ static void __init tew_632brp_setup(void)
 	ar71xx_eth0_data.duplex = DUPLEX_FULL;
 
 	ar71xx_add_device_eth(0);
+
+	ar71xx_add_device_spi(NULL, tew_632brp_spi_info,
+					ARRAY_SIZE(tew_632brp_spi_info));
 }
 
 MIPS_MACHINE(AR71XX_MACH_TEW_632BRP, "TRENDnet TEW-632BRP", tew_632brp_setup);