diff options
Diffstat (limited to 'target')
| -rw-r--r-- | target/linux/atheros/config-2.6.23 | 4 | ||||
| -rw-r--r-- | target/linux/atheros/files/arch/mips/atheros/ar5312/board.c | 24 | ||||
| -rw-r--r-- | target/linux/atheros/files/arch/mips/atheros/ar5315/board.c | 29 | 
3 files changed, 52 insertions, 5 deletions
diff --git a/target/linux/atheros/config-2.6.23 b/target/linux/atheros/config-2.6.23 index 90f390998..72d04fd07 100644 --- a/target/linux/atheros/config-2.6.23 +++ b/target/linux/atheros/config-2.6.23 @@ -49,12 +49,12 @@ CONFIG_DMA_NONCOHERENT=y  # CONFIG_FIXED_PHY is not set  CONFIG_FS_POSIX_ACL=y  CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_GPIO=y  # CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set  CONFIG_GPIO_DEVICE=y  CONFIG_HAS_DMA=y  CONFIG_HAS_IOMEM=y  CONFIG_HAS_IOPORT=y -CONFIG_HID_SUPPORT=n  # CONFIG_HOSTAP is not set  CONFIG_HW_RANDOM=y  # CONFIG_I2C is not set @@ -64,6 +64,8 @@ CONFIG_ICPLUS_PHY=y  CONFIG_INITRAMFS_SOURCE=""  CONFIG_IRQ_CPU=y  # CONFIG_LEDS_ALIX is not set +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_NETDEV=y  # CONFIG_LEMOTE_FULONG is not set  # CONFIG_MACH_ALCHEMY is not set  # CONFIG_MACH_DECSTATION is not set diff --git a/target/linux/atheros/files/arch/mips/atheros/ar5312/board.c b/target/linux/atheros/files/arch/mips/atheros/ar5312/board.c index 3768e30be..f58d08cba 100644 --- a/target/linux/atheros/files/arch/mips/atheros/ar5312/board.c +++ b/target/linux/atheros/files/arch/mips/atheros/ar5312/board.c @@ -28,11 +28,12 @@  #include <asm/irq.h>  #include <asm/io.h>  #include <ar531x.h> +#include <linux/leds.h>  #define NO_PHY 0x1f  static int is_5312 = 0; -static struct platform_device *ar5312_devs[5]; +static struct platform_device *ar5312_devs[6];  static struct resource ar5312_eth0_res[] = {  	{ @@ -164,6 +165,24 @@ static struct platform_device ar5312_physmap_flash = {  	.resource   = &ar5312_flash_resource,  }; +#ifdef CONFIG_LEDS_GPIO +static struct gpio_led ar5312_leds[] = { +	{ .name = "wlan", .gpio = 0, .active_low = 1, }, +}; + +static const struct gpio_led_platform_data ar5312_led_data = { +	.num_leds = ARRAY_SIZE(ar5312_leds), +	.leds = (void *) ar5312_leds, +}; + +static struct platform_device ar5312_gpio_leds = { +	.name = "leds-gpio", +	.id = -1, +	.dev = { +		.platform_data = (void *) &ar5312_led_data, +	} +}; +#endif  /*   * NB: This mapping size is larger than the actual flash size, @@ -269,6 +288,9 @@ int __init ar5312_init_devices(void)  	ar5312_devs[dev++] = &ar5312_physmap_flash; +	ar5312_leds[0].gpio = bcfg->sysLedGpio; +	ar5312_devs[dev++] = &ar5312_gpio_leds; +  	if (!memcmp(bcfg->enet0Mac, "\xff\xff\xff\xff\xff\xff", 6))  		memcpy(bcfg->enet0Mac, bcfg->enet1Mac, 6); diff --git a/target/linux/atheros/files/arch/mips/atheros/ar5315/board.c b/target/linux/atheros/files/arch/mips/atheros/ar5315/board.c index 57d17f526..6d46c85a1 100644 --- a/target/linux/atheros/files/arch/mips/atheros/ar5315/board.c +++ b/target/linux/atheros/files/arch/mips/atheros/ar5315/board.c @@ -27,6 +27,7 @@  #include <asm/irq.h>  #include <asm/io.h>  #include <ar531x.h> +#include <linux/leds.h>  static int is_5315 = 0; @@ -90,7 +91,27 @@ static struct platform_device ar5315_spiflash = {  	.num_resources = ARRAY_SIZE(ar5315_spiflash_res)  }; -static __initdata struct platform_device *ar5315_devs[4]; +#ifdef CONFIG_LEDS_GPIO +static struct gpio_led ar5315_leds[] = { +	{ .name = "wlan", .gpio = 0, .active_low = 1, }, +}; + +static const struct gpio_led_platform_data ar5315_led_data = { +	.num_leds = ARRAY_SIZE(ar5315_leds), +	.leds = (void *) ar5315_leds, +}; + +static struct platform_device ar5315_gpio_leds = { +	.name = "leds-gpio", +	.id = -1, +	.dev = { +		.platform_data = (void *) &ar5315_led_data, +	} +}; +#endif + + +static __initdata struct platform_device *ar5315_devs[5]; @@ -218,11 +239,13 @@ int __init ar5315_init_devices(void)  	ar5315_eth_data.board_config = board_config;  	ar5315_eth_data.macaddr = bcfg->enet0Mac;  	ar5315_wmac.dev.platform_data = config; -	 + +	ar5315_leds[0].gpio = bcfg->sysLedGpio; +  	ar5315_devs[dev++] = &ar5315_eth;  	ar5315_devs[dev++] = &ar5315_wmac;  	ar5315_devs[dev++] = &ar5315_spiflash; -			 +	ar5315_devs[dev++] = &ar5315_gpio_leds;  	return platform_add_devices(ar5315_devs, dev);  }  | 
