diff options
Diffstat (limited to 'target/linux/ar71xx/files')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c index 1a104e2231..c162913903 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c +++ b/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); |