ar71xx: define MTD partitions for RB2011
authorGabor Juhos <juhosg@openwrt.org>
Sun, 9 Sep 2012 14:05:24 +0000 (14:05 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sun, 9 Sep 2012 14:05:24 +0000 (14:05 +0000)
SVN-Revision: 33345

target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c

index 4f44ef4a3b71c4cd33ff06ac248a9ce659eb3dda..d3fa051977022e4e179919391f2d1ee192c14b25 100644 (file)
 #include <linux/phy.h>
 #include <linux/platform_device.h>
 #include <linux/ar8216_platform.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
 
 #include <asm/mach-ath79/ar71xx_regs.h>
 
 #include "dev-m25p80.h"
 #include "machtypes.h"
 
+#define RB_ROUTERBOOT_OFFSET   0x0000
+#define RB_ROUTERBOOT_SIZE     0xb000
+#define RB_HARD_CFG_OFFSET     0xb000
+#define RB_HARD_CFG_SIZE       0x1000
+#define RB_BIOS_OFFSET         0xd000
+#define RB_BIOS_SIZE           0x2000
+#define RB_SOFT_CFG_OFFSET     0xf000
+#define RB_SOFT_CFG_SIZE       0x1000
+
+static struct mtd_partition rb2011_spi_partitions[] = {
+       {
+               .name           = "routerboot",
+               .offset         = RB_ROUTERBOOT_OFFSET,
+               .size           = RB_ROUTERBOOT_SIZE,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "hard_config",
+               .offset         = RB_HARD_CFG_OFFSET,
+               .size           = RB_HARD_CFG_SIZE,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "bios",
+               .offset         = RB_BIOS_OFFSET,
+               .size           = RB_BIOS_SIZE,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "soft_config",
+               .offset         = RB_SOFT_CFG_OFFSET,
+               .size           = RB_SOFT_CFG_SIZE,
+       }
+};
+
+static struct flash_platform_data rb2011_spi_flash_data = {
+       .parts          = rb2011_spi_partitions,
+       .nr_parts       = ARRAY_SIZE(rb2011_spi_partitions),
+};
+
 static struct ar8327_pad_cfg rb2011_ar8327_pad0_cfg = {
        .mode = AR8327_PAD_MAC_RGMII,
        .txclk_delay_en = true,
@@ -65,7 +106,7 @@ static void __init rb2011_gmac_setup(void)
 
 static void __init rb2011_setup(void)
 {
-       ath79_register_m25p80(NULL);
+       ath79_register_m25p80(&rb2011_spi_flash_data);
 
        rb2011_gmac_setup();