summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-12-18 12:56:55 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-12-18 12:56:55 +0000
commit4fea26d57c7977bd2514473970ab33e95f0b7046 (patch)
treeef54fd1ae7e74fa65e5d7ad87de08f39a4c7c3a9
parentf91a135a0bcc6e92d36a14f6ca421c4d4f4a96d8 (diff)
ar71xx: add common m25p80 device
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18817 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/ar71xx/config-2.6.301
-rw-r--r--target/linux/ar71xx/config-2.6.311
-rw-r--r--target/linux/ar71xx/config-2.6.321
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig19
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/Makefile2
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.c30
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.h16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap81.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c15
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-mzk-w300nh.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb42.c15
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c17
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr1043nd.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr941nd.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-ubnt.c18
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-wnr2000.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c14
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c16
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt400n.c16
22 files changed, 101 insertions, 208 deletions
diff --git a/target/linux/ar71xx/config-2.6.30 b/target/linux/ar71xx/config-2.6.30
index 66b1b8fb3..842424de6 100644
--- a/target/linux/ar71xx/config-2.6.30
+++ b/target/linux/ar71xx/config-2.6.30
@@ -3,6 +3,7 @@ CONFIG_32BIT=y
CONFIG_AG71XX=y
CONFIG_AG71XX_AR8216_SUPPORT=y
# CONFIG_AG71XX_DEBUG is not set
+CONFIG_AR71XX_DEV_M25P80=y
CONFIG_AR71XX_MACH_AP81=y
CONFIG_AR71XX_MACH_AP83=y
CONFIG_AR71XX_MACH_AW_NR580=y
diff --git a/target/linux/ar71xx/config-2.6.31 b/target/linux/ar71xx/config-2.6.31
index b699e4b81..b506467e5 100644
--- a/target/linux/ar71xx/config-2.6.31
+++ b/target/linux/ar71xx/config-2.6.31
@@ -5,6 +5,7 @@ CONFIG_AG71XX_AR8216_SUPPORT=y
# CONFIG_AG71XX_DEBUG is not set
# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
# CONFIG_AR7 is not set
+CONFIG_AR71XX_DEV_M25P80=y
CONFIG_AR71XX_MACH_AP81=y
CONFIG_AR71XX_MACH_AP83=y
CONFIG_AR71XX_MACH_AW_NR580=y
diff --git a/target/linux/ar71xx/config-2.6.32 b/target/linux/ar71xx/config-2.6.32
index cedfa8e72..70cd31f48 100644
--- a/target/linux/ar71xx/config-2.6.32
+++ b/target/linux/ar71xx/config-2.6.32
@@ -5,6 +5,7 @@ CONFIG_AG71XX_AR8216_SUPPORT=y
# CONFIG_AG71XX_DEBUG is not set
# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
# CONFIG_AR7 is not set
+CONFIG_AR71XX_DEV_M25P80=y
CONFIG_AR71XX_MACH_AP81=y
CONFIG_AR71XX_MACH_AP83=y
CONFIG_AR71XX_MACH_AW_NR580=y
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
index c06038cad..6ab6eefa9 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig
@@ -4,6 +4,7 @@ menu "Atheros AR71xx machine selection"
config AR71XX_MACH_AP81
bool "Atheros AP81 board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_AP83
@@ -12,10 +13,12 @@ config AR71XX_MACH_AP83
config AR71XX_MACH_DIR_825_B1
bool "D-Link DIR-825 rev. B1 board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_PB42
bool "Atheros PB42 board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_PB44
@@ -24,6 +27,7 @@ config AR71XX_MACH_PB44
config AR71XX_MACH_AW_NR580
bool "AzureWave AW-NR580 board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_GENERIC
@@ -33,14 +37,17 @@ config AR71XX_MACH_GENERIC
config AR71XX_MACH_WP543
bool "Compex WP543/WPJ543 board support"
select MYLOADER
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_WRT160NL
bool "Linksys WRT160NL board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_WRT400N
bool "Linksys WRT400N board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_RB_4XX
@@ -49,40 +56,52 @@ config AR71XX_MACH_RB_4XX
config AR71XX_MACH_WNDR3700
bool "NETGEAR WNDR3700 board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_WNR2000
bool "NETGEAR WNR2000 board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_MZK_W04NU
bool "Planex MZK-W04NU board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_MZK_W300NH
bool "Planex MZK-W300NH board support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_TL_WR741ND
bool "TP-LINK TL-WR741ND support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_TL_WR941ND
bool "TP-LINK TL-WR941ND support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_TL_WR1043ND
bool "TP-LINK TL-WR1043ND support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_TEW_632BRP
bool "TRENDnet TEW-632BRP support"
+ select AR71XX_DEV_M25P80
default y
config AR71XX_MACH_UBNT
bool "Ubiquiti AR71xx based boards support"
+ select AR71XX_DEV_M25P80
default y
endmenu
+config AR71XX_DEV_M25P80
+ def_bool n
+
endif
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
index a7871a22a..1b9bdafd8 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile
@@ -13,6 +13,8 @@ obj-y := prom.o irq.o setup.o devices.o gpio.o ar71xx.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_PCI) += pci.o
+obj-$(CONFIG_AR71XX_DEV_M25P80) += dev-m25p80.o
+
obj-$(CONFIG_AR71XX_MACH_AP81) += mach-ap81.o
obj-$(CONFIG_AR71XX_MACH_AP83) += mach-ap83.o
obj-$(CONFIG_AR71XX_MACH_AW_NR580) += mach-aw-nr580.o
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.c b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.c
new file mode 100644
index 000000000..666b508fc
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#include <linux/init.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
+
+#include "devices.h"
+#include "dev-m25p80.h"
+
+static struct spi_board_info ar71xx_spi_info[] = {
+ {
+ .bus_num = 0,
+ .chip_select = 0,
+ .max_speed_hz = 25000000,
+ .modalias = "m25p80",
+ }
+};
+
+void __init ar71xx_add_device_m25p80(struct flash_platform_data *pdata)
+{
+ ar71xx_spi_info[0].platform_data = pdata;
+ ar71xx_add_device_spi(NULL, ar71xx_spi_info,
+ ARRAY_SIZE(ar71xx_spi_info));
+}
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.h b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.h
new file mode 100644
index 000000000..0b8e56d03
--- /dev/null
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-m25p80.h
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#ifndef _AR71XX_DEV_M25P80_H
+#define _AR71XX_DEV_M25P80_H
+
+#include <linux/spi/flash.h>
+
+void ar71xx_add_device_m25p80(struct flash_platform_data *pdata) __init;
+
+#endif /* _AR71XX_DEV_M25P80_H */
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap81.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap81.c
index 418631a3b..c510f8548 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap81.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap81.c
@@ -12,14 +12,13 @@
#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>
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define AP81_GPIO_LED_STATUS 1
#define AP81_GPIO_LED_AOSS 3
@@ -66,16 +65,6 @@ static struct flash_platform_data ap81_flash_data = {
#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_led ap81_leds_gpio[] __initdata = {
{
.name = "ap81:green:status",
@@ -135,8 +124,7 @@ 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_m25p80(&ap81_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(ap81_leds_gpio),
ap81_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c
index 1e8c2baec..d8bed6934 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c
@@ -12,8 +12,6 @@
#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 +19,7 @@
#include <asm/mach-ar71xx/pci.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define AW_NR580_GPIO_LED_READY_RED 0
#define AW_NR580_GPIO_LED_WLAN 1
@@ -33,15 +32,6 @@
#define AW_NR580_BUTTONS_POLL_INTERVAL 20
-static struct spi_board_info aw_nr580_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- }
-};
-
static struct gpio_led aw_nr580_leds_gpio[] __initdata = {
{
.name = "aw-nr580:red:ready",
@@ -105,8 +95,7 @@ static void __init aw_nr580_setup(void)
ar71xx_pci_init(ARRAY_SIZE(aw_nr580_pci_irqs), aw_nr580_pci_irqs);
- ar71xx_add_device_spi(NULL, aw_nr580_spi_info,
- ARRAY_SIZE(aw_nr580_spi_info));
+ ar71xx_add_device_m25p80(NULL);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(aw_nr580_leds_gpio),
aw_nr580_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c
index 4fdb9fb5b..620ccd1d7 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c
@@ -13,8 +13,6 @@
#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 <linux/pci.h>
#include <linux/ath9k_platform.h>
@@ -26,6 +24,7 @@
#include <asm/mach-ar71xx/pci.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define DIR825B1_GPIO_LED_BLUE_USB 0
#define DIR825B1_GPIO_LED_ORANGE_POWER 1
@@ -85,16 +84,6 @@ static struct flash_platform_data dir825b1_flash_data = {
#endif
};
-static struct spi_board_info dir825b1_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &dir825b1_flash_data,
- }
-};
-
static struct gpio_led dir825b1_leds_gpio[] __initdata = {
{
.name = "dir825b1:blue:usb",
@@ -298,8 +287,7 @@ static void __init dir825b1_setup(void)
ar71xx_add_device_eth(0);
ar71xx_add_device_eth(1);
- ar71xx_add_device_spi(NULL, dir825b1_spi_info,
- ARRAY_SIZE(dir825b1_spi_info));
+ ar71xx_add_device_m25p80(&dir825b1_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(dir825b1_leds_gpio),
dir825b1_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-mzk-w300nh.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-mzk-w300nh.c
index 49cc2ac3f..7dea748e0 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-mzk-w300nh.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-mzk-w300nh.c
@@ -12,8 +12,6 @@
#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 +19,7 @@
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define MZK_W300NH_GPIO_LED_STATUS 1
#define MZK_W300NH_GPIO_LED_WPS 3
@@ -77,16 +76,6 @@ static struct flash_platform_data mzk_w300nh_flash_data = {
#endif
};
-static struct spi_board_info mzk_w300nh_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &mzk_w300nh_flash_data,
- }
-};
-
static struct gpio_led mzk_w300nh_leds_gpio[] __initdata = {
{
.name = "mzk-w300nh:green:status",
@@ -156,8 +145,7 @@ static void __init mzk_w300nh_setup(void)
ar71xx_add_device_eth(0);
ar71xx_add_device_eth(1);
- ar71xx_add_device_spi(NULL, mzk_w300nh_spi_info,
- ARRAY_SIZE(mzk_w300nh_spi_info));
+ ar71xx_add_device_m25p80(&mzk_w300nh_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(mzk_w300nh_leds_gpio),
mzk_w300nh_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb42.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb42.c
index 154a1e43d..9a4b7a1c3 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb42.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb42.c
@@ -13,29 +13,19 @@
#include <linux/bitops.h>
#include <linux/input.h>
#include <linux/platform_device.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/pci.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define PB42_BUTTONS_POLL_INTERVAL 20
#define PB42_GPIO_BTN_SW4 8
#define PB42_GPIO_BTN_SW5 3
-static struct spi_board_info pb42_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- }
-};
-
static struct ar71xx_pci_irq pb42_pci_irqs[] __initdata = {
{
.slot = 0,
@@ -76,8 +66,7 @@ static struct gpio_button pb42_gpio_buttons[] __initdata = {
static void __init pb42_init(void)
{
- ar71xx_add_device_spi(NULL, pb42_spi_info,
- ARRAY_SIZE(pb42_spi_info));
+ ar71xx_add_device_m25p80(NULL);
ar71xx_add_device_mdio(~PB42_MDIO_PHYMASK);
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 afb8ceebd..0c81ec190 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
@@ -12,15 +12,13 @@
#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>
-
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define TEW_632BRP_GPIO_LED_STATUS 1
#define TEW_632BRP_GPIO_LED_WPS 3
@@ -69,16 +67,6 @@ static struct flash_platform_data tew_632brp_flash_data = {
#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 struct gpio_led tew_632brp_leds_gpio[] __initdata = {
{
.name = "tew-632brp:green:status",
@@ -126,8 +114,7 @@ static void __init tew_632brp_setup(void)
ar71xx_add_device_eth(0);
ar71xx_add_device_eth(1);
- ar71xx_add_device_spi(NULL, tew_632brp_spi_info,
- ARRAY_SIZE(tew_632brp_spi_info));
+ ar71xx_add_device_m25p80(&tew_632brp_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tew_632brp_leds_gpio),
tew_632brp_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr1043nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr1043nd.c
index d4dcd5a33..d612335f9 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr1043nd.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr1043nd.c
@@ -11,8 +11,6 @@
#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>
@@ -20,6 +18,7 @@
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define TL_WR1043ND_GPIO_LED_SYSTEM 2
#define TL_WR1043ND_GPIO_LED_QSS 5
@@ -64,16 +63,6 @@ static struct flash_platform_data tl_wr1043nd_flash_data = {
#endif
};
-static struct spi_board_info tl_wr1043nd_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &tl_wr1043nd_flash_data,
- }
-};
-
static struct gpio_led tl_wr1043nd_leds_gpio[] __initdata = {
{
.name = "tl-wr1043nd:green:system",
@@ -121,8 +110,7 @@ static void __init tl_wr1043nd_setup(void)
ar71xx_add_device_usb();
- ar71xx_add_device_spi(NULL, tl_wr1043nd_spi_info,
- ARRAY_SIZE(tl_wr1043nd_spi_info));
+ ar71xx_add_device_m25p80(&tl_wr1043nd_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr1043nd_leds_gpio),
tl_wr1043nd_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c
index 1d13ce94d..859ef6afd 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c
@@ -12,8 +12,6 @@
#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 <linux/ath9k_platform.h>
@@ -23,6 +21,7 @@
#include <asm/mach-ar71xx/pci.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define TL_WR741ND_GPIO_LED_QSS 0
#define TL_WR741ND_GPIO_LED_SYSTEM 1
@@ -67,16 +66,6 @@ static struct flash_platform_data tl_wr741nd_flash_data = {
#endif
};
-static struct spi_board_info tl_wr741nd_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &tl_wr741nd_flash_data,
- }
-};
-
static struct gpio_led tl_wr741nd_leds_gpio[] __initdata = {
{
.name = "tl-wr741nd:green:system",
@@ -167,8 +156,7 @@ static void __init tl_wr741nd_setup(void)
ar71xx_add_device_eth(1);
ar71xx_add_device_eth(0);
- ar71xx_add_device_spi(NULL, tl_wr741nd_spi_info,
- ARRAY_SIZE(tl_wr741nd_spi_info));
+ ar71xx_add_device_m25p80(&tl_wr741nd_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr741nd_leds_gpio),
tl_wr741nd_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr941nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr941nd.c
index 580ae19d9..fb42cb006 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr941nd.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr941nd.c
@@ -11,8 +11,6 @@
#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>
@@ -20,6 +18,7 @@
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define TL_WR941ND_GPIO_LED_SYSTEM 2
#define TL_WR941ND_GPIO_LED_QSS 5
@@ -64,16 +63,6 @@ static struct flash_platform_data tl_wr941nd_flash_data = {
#endif
};
-static struct spi_board_info tl_wr941nd_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &tl_wr941nd_flash_data,
- }
-};
-
static struct gpio_led tl_wr941nd_leds_gpio[] __initdata = {
{
.name = "tl-wr941nd:green:system",
@@ -134,8 +123,7 @@ static void __init tl_wr941nd_setup(void)
ar71xx_add_device_eth(0);
ar71xx_add_device_dsa(0, &tl_wr941nd_dsa_data);
- ar71xx_add_device_spi(NULL, tl_wr941nd_spi_info,
- ARRAY_SIZE(tl_wr941nd_spi_info));
+ ar71xx_add_device_m25p80(&tl_wr941nd_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr941nd_leds_gpio),
tl_wr941nd_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ubnt.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ubnt.c
index 371ac0fc3..5182cbfc4 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ubnt.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ubnt.c
@@ -12,8 +12,6 @@
#include <linux/pci.h>
#include <linux/platform_device.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/flash.h>
#include <linux/input.h>
#include <linux/ath9k_platform.h>
@@ -22,6 +20,7 @@
#include <asm/mach-ar71xx/pci.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define UBNT_RS_GPIO_LED_RF 2
#define UBNT_RS_GPIO_SW4 8
@@ -42,15 +41,6 @@
#define UBNT_BUTTONS_POLL_INTERVAL 20
-static struct spi_board_info ubnt_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- }
-};
-
static struct ar71xx_pci_irq ubnt_pci_irqs[] __initdata = {
{
.slot = 0,
@@ -151,8 +141,7 @@ static struct gpio_button ubnt_m_gpio_buttons[] __initdata = {
static void __init ubnt_generic_setup(void)
{
- ar71xx_add_device_spi(NULL, ubnt_spi_info,
- ARRAY_SIZE(ubnt_spi_info));
+ ar71xx_add_device_m25p80(NULL);
ar71xx_add_device_gpio_buttons(-1, UBNT_BUTTONS_POLL_INTERVAL,
ARRAY_SIZE(ubnt_gpio_buttons),
@@ -285,8 +274,7 @@ static void __init ubnt_m_setup(void)
ar71xx_set_mac_base(mac);
- ar71xx_add_device_spi(NULL, ubnt_spi_info,
- ARRAY_SIZE(ubnt_spi_info));
+ ar71xx_add_device_m25p80(NULL);
ar71xx_add_device_mdio(~0);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
index 729267ac4..e408ef6eb 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
@@ -12,8 +12,6 @@
#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 <linux/pci.h>
#include <linux/ath9k_platform.h>
@@ -25,6 +23,7 @@
#include <asm/mach-ar71xx/pci.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define WNDR3700_GPIO_LED_WPS_ORANGE 0
#define WNDR3700_GPIO_LED_POWER_ORANGE 1
@@ -226,16 +225,6 @@ static void __init wndr3700_pci_init(void)
static inline void wndr3700_pci_init(void) { };
#endif /* CONFIG_PCI */
-static struct spi_board_info wndr3700_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &wndr3700_flash_data,
- }
-};
-
static struct gpio_led wndr3700_leds_gpio[] __initdata = {
{
.name = "wndr3700:green:power",
@@ -314,8 +303,7 @@ static void __init wndr3700_setup(void)
ar71xx_add_device_usb();
- ar71xx_add_device_spi(NULL, wndr3700_spi_info,
- ARRAY_SIZE(wndr3700_spi_info));
+ ar71xx_add_device_m25p80(&wndr3700_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wndr3700_leds_gpio),
wndr3700_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wnr2000.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wnr2000.c
index d766fef71..c1674e469 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wnr2000.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wnr2000.c
@@ -13,8 +13,6 @@
#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>
@@ -22,6 +20,7 @@
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define WNR2000_GPIO_LED_PWR_GREEN 14
#define WNR2000_GPIO_LED_PWR_AMBER 7
@@ -79,16 +78,6 @@ static struct flash_platform_data wnr2000_flash_data = {
#endif
};
-static struct spi_board_info wnr2000_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &wnr2000_flash_data,
- }
-};
-
static struct gpio_led wnr2000_leds_gpio[] __initdata = {
{
.name = "wnr2000:green:power",
@@ -144,8 +133,7 @@ static void __init wnr2000_setup(void)
ar71xx_add_device_eth(0);
ar71xx_add_device_eth(1);
- ar71xx_add_device_spi(NULL, wnr2000_spi_info,
- ARRAY_SIZE(wnr2000_spi_info));
+ ar71xx_add_device_m25p80(&wnr2000_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wnr2000_leds_gpio),
wnr2000_leds_gpio);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c
index 9f1111dae..04d344650 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c
@@ -12,8 +12,6 @@
#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 +19,7 @@
#include <asm/mach-ar71xx/pci.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define WP543_GPIO_SW6 2
#define WP543_GPIO_LED_1 3
@@ -32,15 +31,6 @@
#define WP543_BUTTONS_POLL_INTERVAL 20
-static struct spi_board_info wp543_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- }
-};
-
static struct ar71xx_pci_irq wp543_pci_irqs[] __initdata = {
{
.slot = 0,
@@ -99,7 +89,7 @@ static struct gpio_button wp543_gpio_buttons[] __initdata = {
static void __init wp543_setup(void)
{
- ar71xx_add_device_spi(NULL, wp543_spi_info, ARRAY_SIZE(wp543_spi_info));
+ ar71xx_add_device_m25p80(NULL);
ar71xx_add_device_mdio(0xfffffff7);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c
index ca811d356..da8bd9bbe 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c
@@ -11,14 +11,13 @@
#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>
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define WRT160NL_GPIO_LED_POWER 14
#define WRT160NL_GPIO_LED_WPS_AMBER 9
@@ -70,16 +69,6 @@ static struct flash_platform_data wrt160nl_flash_data = {
#endif
};
-static struct spi_board_info wrt160nl_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &wrt160nl_flash_data,
- }
-};
-
static struct gpio_led wrt160nl_leds_gpio[] __initdata = {
{
.name = "wrt160nl:blue:power",
@@ -132,8 +121,7 @@ static void __init wrt160nl_setup(void)
ar71xx_add_device_eth(0);
ar71xx_add_device_eth(1);
- ar71xx_add_device_spi(NULL, wrt160nl_spi_info,
- ARRAY_SIZE(wrt160nl_spi_info));
+ ar71xx_add_device_m25p80(&wrt160nl_flash_data);
ar71xx_add_device_usb();
ar91xx_add_device_wmac();
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt400n.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt400n.c
index 0298b1a6b..91de9adbc 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt400n.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt400n.c
@@ -12,14 +12,13 @@
#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>
#include <asm/mach-ar71xx/ar71xx.h>
#include "devices.h"
+#include "dev-m25p80.h"
#define WRT400N_GPIO_LED_ORANGE 5
#define WRT400N_GPIO_LED_GREEN 4
@@ -86,16 +85,6 @@ static struct flash_platform_data wrt400n_flash_data = {
#endif
};
-static struct spi_board_info wrt400n_spi_info[] = {
- {
- .bus_num = 0,
- .chip_select = 0,
- .max_speed_hz = 25000000,
- .modalias = "m25p80",
- .platform_data = &wrt400n_flash_data,
- }
-};
-
static struct gpio_led wrt400n_leds_gpio[] __initdata = {
{
.name = "wrt400n:green:status",
@@ -150,8 +139,7 @@ static void __init wrt400n_setup(void)
ar71xx_add_device_eth(0);
ar71xx_add_device_eth(1);
- ar71xx_add_device_spi(NULL, wrt400n_spi_info,
- ARRAY_SIZE(wrt400n_spi_info));
+ ar71xx_add_device_m25p80(&wrt400n_flash_data);
ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wrt400n_leds_gpio),
wrt400n_leds_gpio);