[ar71xx] ap81: register SPI flash, and add default MTD partitions

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14924 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2009-03-17 18:48:00 +00:00
parent 2da690b21b
commit ef33a3c7f8
1 changed files with 53 additions and 0 deletions

View File

@ -9,6 +9,11 @@
* 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 <linux/input.h>
#include <asm/mips_machine.h>
@ -21,6 +26,51 @@
#define AP81_BUTTONS_POLL_INTERVAL 20
#ifdef CONFIG_MTD_PARTITIONS
static struct mtd_partition ap81_partitions[] = {
{
.name = "u-boot",
.offset = 0,
.size = 0x040000,
.mask_flags = MTD_WRITEABLE,
} , {
.name = "u-boot-env",
.offset = 0x040000,
.size = 0x010000,
} , {
.name = "rootfs",
.offset = 0x050000,
.size = 0x500000,
} , {
.name = "uImage",
.offset = 0x550000,
.size = 0x100000,
} , {
.name = "ART",
.offset = 0x650000,
.size = 0x1b0000,
.mask_flags = MTD_WRITEABLE,
}
};
#endif /* CONFIG_MTD_PARTITIONS */
static struct flash_platform_data ap81_flash_data = {
#ifdef CONFIG_MTD_PARTITIONS
.parts = ap81_partitions,
.nr_parts = ARRAY_SIZE(ap81_partitions),
#endif
};
static struct spi_board_info ap81_spi_info[] = {
{
.bus_num = 0,
.chip_select = 0,
.max_speed_hz = 25000000,
.modalias = "m25p80",
.platform_data = &ap81_flash_data,
}
};
static struct gpio_button ap81_gpio_buttons[] __initdata = {
{
.desc = "sw1",
@ -57,6 +107,9 @@ static void __init ap81_setup(void)
ar71xx_add_device_usb();
ar71xx_add_device_spi(NULL, ap81_spi_info,
ARRAY_SIZE(ap81_spi_info));
ar71xx_add_device_gpio_buttons(-1, AP81_BUTTONS_POLL_INTERVAL,
ARRAY_SIZE(ap81_gpio_buttons),
ap81_gpio_buttons);