ixp4xx: patch cleanup
authorFelix Fietkau <nbd@openwrt.org>
Sun, 7 Oct 2012 23:23:43 +0000 (23:23 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 7 Oct 2012 23:23:43 +0000 (23:23 +0000)
roll all avila patches into a single patch (no code changes)

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
SVN-Revision: 33646

target/linux/ixp4xx/patches-3.3/300-avila_fetch_mac.patch [deleted file]
target/linux/ixp4xx/patches-3.3/300-avila_support.patch [new file with mode: 0644]
target/linux/ixp4xx/patches-3.3/301-avila_led.patch [deleted file]
target/linux/ixp4xx/patches-3.3/302-avila_gpio_device.patch [deleted file]

diff --git a/target/linux/ixp4xx/patches-3.3/300-avila_fetch_mac.patch b/target/linux/ixp4xx/patches-3.3/300-avila_fetch_mac.patch
deleted file mode 100644 (file)
index 8cbd38d..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
---- a/arch/arm/mach-ixp4xx/avila-setup.c
-+++ b/arch/arm/mach-ixp4xx/avila-setup.c
-@@ -14,9 +14,14 @@
- #include <linux/kernel.h>
- #include <linux/init.h>
- #include <linux/device.h>
-+#include <linux/if_ether.h>
-+#include <linux/socket.h>
-+#include <linux/netdevice.h>
- #include <linux/serial.h>
- #include <linux/tty.h>
- #include <linux/serial_8250.h>
-+#include <linux/i2c.h>
-+#include <linux/i2c/at24.h>
- #include <linux/i2c-gpio.h>
- #include <asm/types.h>
- #include <asm/setup.h>
-@@ -30,6 +35,13 @@
- #define AVILA_SDA_PIN 7
- #define AVILA_SCL_PIN 6
-+struct avila_board_info {
-+      unsigned char   *model;
-+      void            (*setup)(void);
-+};
-+
-+static struct avila_board_info *avila_info __initdata;
-+
- static struct flash_platform_data avila_flash_data = {
-       .map_name       = "cfi_probe",
-       .width          = 2,
-@@ -133,16 +145,181 @@ static struct platform_device avila_pata
-       .resource               = avila_pata_resources,
- };
-+/* Built-in 10/100 Ethernet MAC interfaces */
-+static struct eth_plat_info avila_npeb_data = {
-+      .phy            = 0,
-+      .rxq            = 3,
-+      .txreadyq       = 20,
-+};
-+
-+static struct eth_plat_info avila_npec_data = {
-+      .phy            = 1,
-+      .rxq            = 4,
-+      .txreadyq       = 21,
-+};
-+
-+static struct platform_device avila_npeb_device = {
-+      .name                   = "ixp4xx_eth",
-+      .id                     = IXP4XX_ETH_NPEB,
-+      .dev.platform_data      = &avila_npeb_data,
-+};
-+
-+static struct platform_device avila_npec_device = {
-+      .name                   = "ixp4xx_eth",
-+      .id                     = IXP4XX_ETH_NPEC,
-+      .dev.platform_data      = &avila_npec_data,
-+};
-+
- static struct platform_device *avila_devices[] __initdata = {
-       &avila_i2c_gpio,
-       &avila_flash,
-       &avila_uart
- };
-+static void __init avila_gw23xx_setup(void)
-+{
-+      platform_device_register(&avila_npeb_device);
-+      platform_device_register(&avila_npec_device);
-+}
-+
-+static void __init avila_gw2342_setup(void)
-+{
-+      platform_device_register(&avila_npeb_device);
-+      platform_device_register(&avila_npec_device);
-+}
-+
-+static void __init avila_gw2345_setup(void)
-+{
-+      avila_npeb_data.phy = IXP4XX_ETH_PHY_MAX_ADDR;
-+      avila_npeb_data.phy_mask = 0x1e; /* ports 1-4 of the KS8995 switch */
-+      platform_device_register(&avila_npeb_device);
-+
-+      avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */
-+      platform_device_register(&avila_npec_device);
-+}
-+
-+static void __init avila_gw2347_setup(void)
-+{
-+      platform_device_register(&avila_npeb_device);
-+}
-+
-+static void __init avila_gw2348_setup(void)
-+{
-+      platform_device_register(&avila_npeb_device);
-+      platform_device_register(&avila_npec_device);
-+}
-+
-+static void __init avila_gw2353_setup(void)
-+{
-+      platform_device_register(&avila_npeb_device);
-+}
-+
-+static void __init avila_gw2355_setup(void)
-+{
-+      avila_npeb_data.phy = IXP4XX_ETH_PHY_MAX_ADDR;
-+      avila_npeb_data.phy_mask = 0x1e; /* ports 1-4 of the KS8995 switch */
-+      platform_device_register(&avila_npeb_device);
-+
-+      avila_npec_data.phy = 16;
-+      platform_device_register(&avila_npec_device);
-+}
-+
-+static void __init avila_gw2357_setup(void)
-+{
-+      platform_device_register(&avila_npeb_device);
-+}
-+
-+static struct avila_board_info avila_boards[] __initdata = {
-+      {
-+              .model          = "GW2342",
-+              .setup          = avila_gw2342_setup,
-+      }, {
-+              .model          = "GW2345",
-+              .setup          = avila_gw2345_setup,
-+      }, {
-+              .model          = "GW2347",
-+              .setup          = avila_gw2347_setup,
-+      }, {
-+              .model          = "GW2348",
-+              .setup          = avila_gw2348_setup,
-+      }, {
-+              .model          = "GW2353",
-+              .setup          = avila_gw2353_setup,
-+      }, {
-+              .model          = "GW2355",
-+              .setup          = avila_gw2355_setup,
-+      }, {
-+              .model          = "GW2357",
-+              .setup          = avila_gw2357_setup,
-+      }
-+};
-+
-+static struct avila_board_info * __init avila_find_board_info(char *model)
-+{
-+      int i;
-+      model[6] = '\0';
-+
-+      for (i = 0; i < ARRAY_SIZE(avila_boards); i++) {
-+              struct avila_board_info *info = &avila_boards[i];
-+              if (strcmp(info->model, model) == 0)
-+                      return info;
-+      }
-+
-+      return NULL;
-+}
-+
-+static struct memory_accessor *at24_mem_acc;
-+
-+static void at24_setup(struct memory_accessor *mem_acc, void *context)
-+{
-+      char mac_addr[ETH_ALEN];
-+      char model[7];
-+
-+      at24_mem_acc = mem_acc;
-+
-+      /* Read MAC addresses */
-+      if (at24_mem_acc->read(at24_mem_acc, mac_addr, 0x0, 6) == 6) {
-+              memcpy(&avila_npeb_data.hwaddr, mac_addr, ETH_ALEN);
-+      }
-+      if (at24_mem_acc->read(at24_mem_acc, mac_addr, 0x6, 6) == 6) {
-+              memcpy(&avila_npec_data.hwaddr, mac_addr, ETH_ALEN);
-+      }
-+
-+      /* Read the first 6 bytes of the model number */
-+      if (at24_mem_acc->read(at24_mem_acc, model, 0x20, 6) == 6) {
-+              avila_info = avila_find_board_info(model);
-+      }
-+
-+}
-+
-+static struct at24_platform_data avila_eeprom_info = {
-+      .byte_len       = 1024,
-+      .page_size      = 16,
-+      .flags          = AT24_FLAG_READONLY,
-+      .setup          = at24_setup,
-+};
-+
-+static struct i2c_board_info __initdata avila_i2c_board_info[] = {
-+      {
-+              I2C_BOARD_INFO("ds1672", 0x68),
-+      },
-+      {
-+              I2C_BOARD_INFO("ad7418", 0x28),
-+      },
-+      {
-+              I2C_BOARD_INFO("24c08", 0x51),
-+              .platform_data  = &avila_eeprom_info
-+      },
-+};
-+
- static void __init avila_init(void)
- {
-       ixp4xx_sys_init();
-+      /*
-+       * These devices are present on all Avila models and don't need any
-+       * model specific setup.
-+       */
-       avila_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
-       avila_flash_resource.end =
-               IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1;
-@@ -160,7 +337,28 @@ static void __init avila_init(void)
-       platform_device_register(&avila_pata);
-+              i2c_register_board_info(0, avila_i2c_board_info,
-+                              ARRAY_SIZE(avila_i2c_board_info));
-+}
-+
-+static int __init avila_model_setup(void)
-+{
-+      if (!machine_is_avila())
-+              return 0;
-+
-+      if (avila_info) {
-+              printk(KERN_DEBUG "Running on Gateworks Avila %s\n",
-+                                                      avila_info->model);
-+              avila_info->setup();
-+      } else {
-+              printk(KERN_INFO "Unknown/missing Avila model number"
-+                                              " -- defaults will be used\n");
-+              avila_gw23xx_setup();
-+      }
-+
-+      return 0;
- }
-+late_initcall(avila_model_setup);
- MACHINE_START(AVILA, "Gateworks Avila Network Platform")
-       /* Maintainer: Deepak Saxena <dsaxena@plexity.net> */
diff --git a/target/linux/ixp4xx/patches-3.3/300-avila_support.patch b/target/linux/ixp4xx/patches-3.3/300-avila_support.patch
new file mode 100644 (file)
index 0000000..4af8ca5
--- /dev/null
@@ -0,0 +1,346 @@
+--- a/arch/arm/mach-ixp4xx/avila-setup.c
++++ b/arch/arm/mach-ixp4xx/avila-setup.c
+@@ -14,9 +14,15 @@
+ #include <linux/kernel.h>
+ #include <linux/init.h>
+ #include <linux/device.h>
++#include <linux/if_ether.h>
++#include <linux/socket.h>
++#include <linux/netdevice.h>
+ #include <linux/serial.h>
+ #include <linux/tty.h>
+ #include <linux/serial_8250.h>
++#include <linux/i2c.h>
++#include <linux/i2c/at24.h>
++#include <linux/leds.h>
+ #include <linux/i2c-gpio.h>
+ #include <asm/types.h>
+ #include <asm/setup.h>
+@@ -30,6 +36,20 @@
+ #define AVILA_SDA_PIN 7
+ #define AVILA_SCL_PIN 6
++/* User LEDs */
++#define AVILA_GW23XX_LED_USER_GPIO     3
++#define AVILA_GW23X7_LED_USER_GPIO     4
++
++/* gpio mask used by platform device */
++#define AVILA_GPIO_MASK        (1 << 1) | (1 << 3) | (1 << 5) | (1 << 7) | (1 << 9)
++
++struct avila_board_info {
++      unsigned char   *model;
++      void            (*setup)(void);
++};
++
++static struct avila_board_info *avila_info __initdata;
++
+ static struct flash_platform_data avila_flash_data = {
+       .map_name       = "cfi_probe",
+       .width          = 2,
+@@ -133,16 +153,277 @@ static struct platform_device avila_pata
+       .resource               = avila_pata_resources,
+ };
++/* Built-in 10/100 Ethernet MAC interfaces */
++static struct eth_plat_info avila_npeb_data = {
++      .phy            = 0,
++      .rxq            = 3,
++      .txreadyq       = 20,
++};
++
++static struct eth_plat_info avila_npec_data = {
++      .phy            = 1,
++      .rxq            = 4,
++      .txreadyq       = 21,
++};
++
++static struct platform_device avila_npeb_device = {
++      .name                   = "ixp4xx_eth",
++      .id                     = IXP4XX_ETH_NPEB,
++      .dev.platform_data      = &avila_npeb_data,
++};
++
++static struct platform_device avila_npec_device = {
++      .name                   = "ixp4xx_eth",
++      .id                     = IXP4XX_ETH_NPEC,
++      .dev.platform_data      = &avila_npec_data,
++};
++
++static struct gpio_led avila_gpio_leds[] = {
++      {
++              .name           = "user",  /* green led */
++              .gpio           = AVILA_GW23XX_LED_USER_GPIO,
++              .active_low     = 1,
++      }
++};
++
++static struct gpio_led_platform_data avila_gpio_leds_data = {
++      .num_leds               = 1,
++      .leds                   = avila_gpio_leds,
++};
++
++static struct platform_device avila_gpio_leds_device = {
++      .name                   = "leds-gpio",
++      .id                     = -1,
++      .dev.platform_data      = &avila_gpio_leds_data,
++};
++
++static struct latch_led avila_latch_leds[] = {
++      {
++              .name   = "led0",  /* green led */
++              .bit    = 0,
++      },
++      {
++              .name   = "led1",  /* green led */
++              .bit    = 1,
++      },
++      {
++              .name   = "led2",  /* green led */
++              .bit    = 2,
++      },
++      {
++              .name   = "led3",  /* green led */
++              .bit    = 3,
++      },
++      {
++              .name   = "led4",  /* green led */
++              .bit    = 4,
++      },
++      {
++              .name   = "led5",  /* green led */
++              .bit    = 5,
++      },
++      {
++              .name   = "led6",  /* green led */
++              .bit    = 6,
++      },
++      {
++              .name   = "led7",  /* green led */
++              .bit    = 7,
++      }
++};
++
++static struct latch_led_platform_data avila_latch_leds_data = {
++      .num_leds       = 8,
++      .leds           = avila_latch_leds,
++      .mem            = 0x51000000,
++};
++
++static struct platform_device avila_latch_leds_device = {
++      .name                   = "leds-latch",
++      .id                     = -1,
++      .dev.platform_data      = &avila_latch_leds_data,
++};
++
+ static struct platform_device *avila_devices[] __initdata = {
+       &avila_i2c_gpio,
+       &avila_flash,
+       &avila_uart
+ };
++static void __init avila_gw23xx_setup(void)
++{
++      platform_device_register(&avila_npeb_device);
++      platform_device_register(&avila_npec_device);
++
++      platform_device_register(&avila_gpio_leds_device);
++}
++
++static void __init avila_gw2342_setup(void)
++{
++      platform_device_register(&avila_npeb_device);
++      platform_device_register(&avila_npec_device);
++
++      platform_device_register(&avila_gpio_leds_device);
++}
++
++static void __init avila_gw2345_setup(void)
++{
++      avila_npeb_data.phy = IXP4XX_ETH_PHY_MAX_ADDR;
++      avila_npeb_data.phy_mask = 0x1e; /* ports 1-4 of the KS8995 switch */
++      platform_device_register(&avila_npeb_device);
++
++      avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */
++      platform_device_register(&avila_npec_device);
++
++      platform_device_register(&avila_gpio_leds_device);
++}
++
++static void __init avila_gw2347_setup(void)
++{
++      platform_device_register(&avila_npeb_device);
++
++      avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO;
++      platform_device_register(&avila_gpio_leds_device);
++}
++
++static void __init avila_gw2348_setup(void)
++{
++      platform_device_register(&avila_npeb_device);
++      platform_device_register(&avila_npec_device);
++
++      platform_device_register(&avila_gpio_leds_device);
++}
++
++static void __init avila_gw2353_setup(void)
++{
++      platform_device_register(&avila_npeb_device);
++      platform_device_register(&avila_gpio_leds_device);
++}
++
++static void __init avila_gw2355_setup(void)
++{
++      avila_npeb_data.phy = IXP4XX_ETH_PHY_MAX_ADDR;
++      avila_npeb_data.phy_mask = 0x1e; /* ports 1-4 of the KS8995 switch */
++      platform_device_register(&avila_npeb_device);
++
++      avila_npec_data.phy = 16;
++      platform_device_register(&avila_npec_device);
++
++      platform_device_register(&avila_gpio_leds_device);
++
++      *IXP4XX_EXP_CS4 |= 0xbfff3c03;
++      avila_latch_leds[0].name = "RXD";
++      avila_latch_leds[1].name = "TXD";
++      avila_latch_leds[2].name = "POL";
++      avila_latch_leds[3].name = "LNK";
++      avila_latch_leds[4].name = "ERR";
++      avila_latch_leds_data.num_leds = 5;
++      avila_latch_leds_data.mem = 0x54000000;
++      platform_device_register(&avila_latch_leds_device);
++}
++
++static void __init avila_gw2357_setup(void)
++{
++      platform_device_register(&avila_npeb_device);
++
++      avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO;
++      platform_device_register(&avila_gpio_leds_device);
++
++      *IXP4XX_EXP_CS1 |= 0xbfff3c03;
++      platform_device_register(&avila_latch_leds_device);
++}
++
++static struct avila_board_info avila_boards[] __initdata = {
++      {
++              .model          = "GW2342",
++              .setup          = avila_gw2342_setup,
++      }, {
++              .model          = "GW2345",
++              .setup          = avila_gw2345_setup,
++      }, {
++              .model          = "GW2347",
++              .setup          = avila_gw2347_setup,
++      }, {
++              .model          = "GW2348",
++              .setup          = avila_gw2348_setup,
++      }, {
++              .model          = "GW2353",
++              .setup          = avila_gw2353_setup,
++      }, {
++              .model          = "GW2355",
++              .setup          = avila_gw2355_setup,
++      }, {
++              .model          = "GW2357",
++              .setup          = avila_gw2357_setup,
++      }
++};
++
++static struct avila_board_info * __init avila_find_board_info(char *model)
++{
++      int i;
++      model[6] = '\0';
++
++      for (i = 0; i < ARRAY_SIZE(avila_boards); i++) {
++              struct avila_board_info *info = &avila_boards[i];
++              if (strcmp(info->model, model) == 0)
++                      return info;
++      }
++
++      return NULL;
++}
++
++static struct memory_accessor *at24_mem_acc;
++
++static void at24_setup(struct memory_accessor *mem_acc, void *context)
++{
++      char mac_addr[ETH_ALEN];
++      char model[7];
++
++      at24_mem_acc = mem_acc;
++
++      /* Read MAC addresses */
++      if (at24_mem_acc->read(at24_mem_acc, mac_addr, 0x0, 6) == 6) {
++              memcpy(&avila_npeb_data.hwaddr, mac_addr, ETH_ALEN);
++      }
++      if (at24_mem_acc->read(at24_mem_acc, mac_addr, 0x6, 6) == 6) {
++              memcpy(&avila_npec_data.hwaddr, mac_addr, ETH_ALEN);
++      }
++
++      /* Read the first 6 bytes of the model number */
++      if (at24_mem_acc->read(at24_mem_acc, model, 0x20, 6) == 6) {
++              avila_info = avila_find_board_info(model);
++      }
++
++}
++
++static struct at24_platform_data avila_eeprom_info = {
++      .byte_len       = 1024,
++      .page_size      = 16,
++      .flags          = AT24_FLAG_READONLY,
++      .setup          = at24_setup,
++};
++
++static struct i2c_board_info __initdata avila_i2c_board_info[] = {
++      {
++              I2C_BOARD_INFO("ds1672", 0x68),
++      },
++      {
++              I2C_BOARD_INFO("ad7418", 0x28),
++      },
++      {
++              I2C_BOARD_INFO("24c08", 0x51),
++              .platform_data  = &avila_eeprom_info
++      },
++};
++
+ static void __init avila_init(void)
+ {
+       ixp4xx_sys_init();
++      /*
++       * These devices are present on all Avila models and don't need any
++       * model specific setup.
++       */
+       avila_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
+       avila_flash_resource.end =
+               IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1;
+@@ -160,7 +441,28 @@ static void __init avila_init(void)
+       platform_device_register(&avila_pata);
++              i2c_register_board_info(0, avila_i2c_board_info,
++                              ARRAY_SIZE(avila_i2c_board_info));
++}
++
++static int __init avila_model_setup(void)
++{
++      if (!machine_is_avila())
++              return 0;
++
++      if (avila_info) {
++              printk(KERN_DEBUG "Running on Gateworks Avila %s\n",
++                                                      avila_info->model);
++              avila_info->setup();
++      } else {
++              printk(KERN_INFO "Unknown/missing Avila model number"
++                                              " -- defaults will be used\n");
++              avila_gw23xx_setup();
++      }
++
++      return 0;
+ }
++late_initcall(avila_model_setup);
+ MACHINE_START(AVILA, "Gateworks Avila Network Platform")
+       /* Maintainer: Deepak Saxena <dsaxena@plexity.net> */
diff --git a/target/linux/ixp4xx/patches-3.3/301-avila_led.patch b/target/linux/ixp4xx/patches-3.3/301-avila_led.patch
deleted file mode 100644 (file)
index 9acf3fd..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
---- a/arch/arm/mach-ixp4xx/avila-setup.c
-+++ b/arch/arm/mach-ixp4xx/avila-setup.c
-@@ -22,6 +22,7 @@
- #include <linux/serial_8250.h>
- #include <linux/i2c.h>
- #include <linux/i2c/at24.h>
-+#include <linux/leds.h>
- #include <linux/i2c-gpio.h>
- #include <asm/types.h>
- #include <asm/setup.h>
-@@ -170,6 +171,72 @@ static struct platform_device avila_npec
-       .dev.platform_data      = &avila_npec_data,
- };
-+static struct gpio_led avila_gpio_leds[] = {
-+      {
-+              .name           = "user",  /* green led */
-+              .gpio           = AVILA_GW23XX_LED_USER_GPIO,
-+              .active_low     = 1,
-+      }
-+};
-+
-+static struct gpio_led_platform_data avila_gpio_leds_data = {
-+      .num_leds               = 1,
-+      .leds                   = avila_gpio_leds,
-+};
-+
-+static struct platform_device avila_gpio_leds_device = {
-+      .name                   = "leds-gpio",
-+      .id                     = -1,
-+      .dev.platform_data      = &avila_gpio_leds_data,
-+};
-+
-+static struct latch_led avila_latch_leds[] = {
-+      {
-+              .name   = "led0",  /* green led */
-+              .bit    = 0,
-+      },
-+      {
-+              .name   = "led1",  /* green led */
-+              .bit    = 1,
-+      },
-+      {
-+              .name   = "led2",  /* green led */
-+              .bit    = 2,
-+      },
-+      {
-+              .name   = "led3",  /* green led */
-+              .bit    = 3,
-+      },
-+      {
-+              .name   = "led4",  /* green led */
-+              .bit    = 4,
-+      },
-+      {
-+              .name   = "led5",  /* green led */
-+              .bit    = 5,
-+      },
-+      {
-+              .name   = "led6",  /* green led */
-+              .bit    = 6,
-+      },
-+      {
-+              .name   = "led7",  /* green led */
-+              .bit    = 7,
-+      }
-+};
-+
-+static struct latch_led_platform_data avila_latch_leds_data = {
-+      .num_leds       = 8,
-+      .leds           = avila_latch_leds,
-+      .mem            = 0x51000000,
-+};
-+
-+static struct platform_device avila_latch_leds_device = {
-+      .name                   = "leds-latch",
-+      .id                     = -1,
-+      .dev.platform_data      = &avila_latch_leds_data,
-+};
-+
- static struct platform_device *avila_devices[] __initdata = {
-       &avila_i2c_gpio,
-       &avila_flash,
-@@ -180,12 +247,16 @@ static void __init avila_gw23xx_setup(vo
- {
-       platform_device_register(&avila_npeb_device);
-       platform_device_register(&avila_npec_device);
-+
-+      platform_device_register(&avila_gpio_leds_device);
- }
- static void __init avila_gw2342_setup(void)
- {
-       platform_device_register(&avila_npeb_device);
-       platform_device_register(&avila_npec_device);
-+
-+      platform_device_register(&avila_gpio_leds_device);
- }
- static void __init avila_gw2345_setup(void)
-@@ -196,22 +267,30 @@ static void __init avila_gw2345_setup(vo
-       avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */
-       platform_device_register(&avila_npec_device);
-+
-+      platform_device_register(&avila_gpio_leds_device);
- }
- static void __init avila_gw2347_setup(void)
- {
-       platform_device_register(&avila_npeb_device);
-+
-+      avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO;
-+      platform_device_register(&avila_gpio_leds_device);
- }
- static void __init avila_gw2348_setup(void)
- {
-       platform_device_register(&avila_npeb_device);
-       platform_device_register(&avila_npec_device);
-+
-+      platform_device_register(&avila_gpio_leds_device);
- }
- static void __init avila_gw2353_setup(void)
- {
-       platform_device_register(&avila_npeb_device);
-+      platform_device_register(&avila_gpio_leds_device);
- }
- static void __init avila_gw2355_setup(void)
-@@ -222,11 +301,29 @@ static void __init avila_gw2355_setup(vo
-       avila_npec_data.phy = 16;
-       platform_device_register(&avila_npec_device);
-+
-+      platform_device_register(&avila_gpio_leds_device);
-+
-+      *IXP4XX_EXP_CS4 |= 0xbfff3c03;
-+      avila_latch_leds[0].name = "RXD";
-+      avila_latch_leds[1].name = "TXD";
-+      avila_latch_leds[2].name = "POL";
-+      avila_latch_leds[3].name = "LNK";
-+      avila_latch_leds[4].name = "ERR";
-+      avila_latch_leds_data.num_leds = 5;
-+      avila_latch_leds_data.mem = 0x54000000;
-+      platform_device_register(&avila_latch_leds_device);
- }
- static void __init avila_gw2357_setup(void)
- {
-       platform_device_register(&avila_npeb_device);
-+
-+      avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO;
-+      platform_device_register(&avila_gpio_leds_device);
-+
-+      *IXP4XX_EXP_CS1 |= 0xbfff3c03;
-+      platform_device_register(&avila_latch_leds_device);
- }
- static struct avila_board_info avila_boards[] __initdata = {
diff --git a/target/linux/ixp4xx/patches-3.3/302-avila_gpio_device.patch b/target/linux/ixp4xx/patches-3.3/302-avila_gpio_device.patch
deleted file mode 100644 (file)
index a45d432..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/arch/arm/mach-ixp4xx/avila-setup.c
-+++ b/arch/arm/mach-ixp4xx/avila-setup.c
-@@ -36,6 +36,13 @@
- #define AVILA_SDA_PIN 7
- #define AVILA_SCL_PIN 6
-+/* User LEDs */
-+#define AVILA_GW23XX_LED_USER_GPIO     3
-+#define AVILA_GW23X7_LED_USER_GPIO     4
-+
-+/* gpio mask used by platform device */
-+#define AVILA_GPIO_MASK        (1 << 1) | (1 << 3) | (1 << 5) | (1 << 7) | (1 << 9)
-+
- struct avila_board_info {
-       unsigned char   *model;
-       void            (*setup)(void);