- bump atheros to .26
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 4 Aug 2008 21:22:00 +0000 (21:22 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 4 Aug 2008 21:22:00 +0000 (21:22 +0000)
- adds leds-gpio to default selection on atheros
- extend led platform setup on atheros

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12100 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/atheros/Makefile
target/linux/atheros/config-2.6.26
target/linux/atheros/files/arch/mips/atheros/ar5315/board.c

index 5f5f9e4..fa292ac 100644 (file)
@@ -11,7 +11,7 @@ BOARD:=atheros
 BOARDNAME:=Atheros 231x/5312
 FEATURES:=squashfs jffs2
 
-LINUX_VERSION:=2.6.23.17
+LINUX_VERSION:=2.6.26
 
 include $(INCLUDE_DIR)/target.mk
 
index 3e58d6a..158decc 100644 (file)
@@ -251,3 +251,4 @@ CONFIG_VIDEO_V4L1=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_V4L2_COMMON=m
 CONFIG_ZONE_DMA_FLAG=0
+CONFIG_LEDS_GPIO=y
index eafde33..96c6f8f 100644 (file)
@@ -93,11 +93,9 @@ static struct platform_device ar5315_spiflash = {
 };
 
 #ifdef CONFIG_LEDS_GPIO
-static struct gpio_led ar5315_leds[] = {
-       { .name = "wlan", .gpio = 0, .active_low = 1, },
-};
+static struct gpio_led ar5315_leds[8];
 
-static const struct gpio_led_platform_data ar5315_led_data = {
+static struct gpio_led_platform_data ar5315_led_data = {
        .num_leds = ARRAY_SIZE(ar5315_leds),
        .leds = (void *) ar5315_leds,
 };
@@ -111,11 +109,8 @@ static struct platform_device ar5315_gpio_leds = {
 };
 #endif
 
-
 static __initdata struct platform_device *ar5315_devs[5];
 
-
-
 static void *flash_regs;
 
 static inline __u32 spiflash_regread32(int reg)
@@ -147,12 +142,12 @@ static __u8 spiflash_probe(void)
        spiflash_regwrite32(SPI_FLASH_OPCODE, 0xab);
 
        reg = (reg & ~SPI_CTL_TX_RX_CNT_MASK) | 4 |
-               (1 << 4) | SPI_CTL_START;
+               (1 << 4) | SPI_CTL_START;
 
        spiflash_regwrite32(SPI_FLASH_CTL, reg);
 
        do {
-               reg = spiflash_regread32(SPI_FLASH_CTL);
+               reg = spiflash_regread32(SPI_FLASH_CTL);
        } while (reg & SPI_CTL_BUSY);
 
        reg = (__u32) spiflash_regread32(SPI_FLASH_DATA);
@@ -206,6 +201,10 @@ int __init ar5315_init_devices(void)
        struct ar531x_config *config;
        struct ar531x_boarddata *bcfg;
        int dev = 0;
+#ifdef CONFIG_LEDS_GPIO
+       int i;
+       char *tmp;
+#endif
 
        if (!is_5315)
                return 0;
@@ -246,7 +245,31 @@ int __init ar5315_init_devices(void)
        ar5315_devs[dev++] = &ar5315_spiflash;
 
 #ifdef CONFIG_LEDS_GPIO
-       ar5315_leds[0].gpio = bcfg->sysLedGpio;
+       ar5315_led_data.num_leds = 0;
+       for(i = 0; i < 8; i++)
+       {
+               if((i != AR5315_RESET_GPIO) && (i != bcfg->resetConfigGpio))
+               {
+                       if(i == bcfg->sysLedGpio)
+                       {
+                               tmp = kstrdup("wlan", GFP_KERNEL);
+                       } else {
+                               tmp = kmalloc(6, GFP_KERNEL);
+                               if(tmp)
+                                       sprintf((char*)tmp, "gpio%d", i);
+                       }
+                       if(tmp)
+                       {
+                               ar5315_leds[ar5315_led_data.num_leds].name = tmp;
+                               ar5315_leds[ar5315_led_data.num_leds].gpio = i;
+                               ar5315_leds[ar5315_led_data.num_leds].active_low = 0;
+                               ar5315_led_data.num_leds++;
+                       } else {
+                               printk("failed to alloc led string\n");
+                               continue;
+                       }
+               }
+       }
        ar5315_devs[dev++] = &ar5315_gpio_leds;
 #endif