summaryrefslogtreecommitdiffstats
path: root/arch/mips/txx9/rbtx4927/setup.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-10-30 12:53:33 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-30 12:53:33 -0700
commite61467e9b6c88e97560873603cf9aceaf7435480 (patch)
tree2b0a75dd5a263f82d520bdfb28da71210471c998 /arch/mips/txx9/rbtx4927/setup.c
parentc732acd96085347027b11961463a243c568d9aab (diff)
parent09d9327b3420002c9952a81db37effec9dc1135e (diff)
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: CHAR: Delete old and now unused M48T35 RTC driver for SGI IP27. CHAR: Delete old and now unused DS1286 driver. MIPS: Sort out CPU type to name translation. MIPS: Use the new byteorder headers MIPS: Probe for watch registers on cores of all vendors, not just MTI. MIPS: Switch FPU emulator trap to BREAK instruction. MIPS: SMP: Do not initialize __cpu_number_map/__cpu_logical_map for CPU 0. MIPS: Consider value of c0_ebase when computing value of exception base. MIPS: Clean up MIPSxx-optimized bitop functions MIPS: New feature test macro cpu_has_mips_r MIPS: RBTX4927: Add GPIO-LED support MIPS: TXx9: Fix RBTX4939 ethernet address initialization
Diffstat (limited to 'arch/mips/txx9/rbtx4927/setup.c')
-rw-r--r--arch/mips/txx9/rbtx4927/setup.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/arch/mips/txx9/rbtx4927/setup.c b/arch/mips/txx9/rbtx4927/setup.c
index 4a74423b2ba..01129a9d50f 100644
--- a/arch/mips/txx9/rbtx4927/setup.c
+++ b/arch/mips/txx9/rbtx4927/setup.c
@@ -49,6 +49,7 @@
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/gpio.h>
+#include <linux/leds.h>
#include <asm/io.h>
#include <asm/reboot.h>
#include <asm/txx9/generic.h>
@@ -210,10 +211,6 @@ static void __init rbtx4927_mem_setup(void)
/* TX4927-SIO DTR on (PIO[15]) */
gpio_request(15, "sio-dtr");
gpio_direction_output(15, 1);
- gpio_request(0, "led");
- gpio_direction_output(0, 1);
- gpio_request(1, "led");
- gpio_direction_output(1, 1);
tx4927_sio_init(0, 0);
#ifdef CONFIG_SERIAL_TXX9_CONSOLE
@@ -315,6 +312,25 @@ static void __init rbtx4927_mtd_init(void)
tx4927_mtd_init(i);
}
+static void __init rbtx4927_gpioled_init(void)
+{
+ static struct gpio_led leds[] = {
+ { .name = "gpioled:green:0", .gpio = 0, .active_low = 1, },
+ { .name = "gpioled:green:1", .gpio = 1, .active_low = 1, },
+ };
+ static struct gpio_led_platform_data pdata = {
+ .num_leds = ARRAY_SIZE(leds),
+ .leds = leds,
+ };
+ struct platform_device *pdev = platform_device_alloc("leds-gpio", 0);
+
+ if (!pdev)
+ return;
+ pdev->dev.platform_data = &pdata;
+ if (platform_device_add(pdev))
+ platform_device_put(pdev);
+}
+
static void __init rbtx4927_device_init(void)
{
toshiba_rbtx4927_rtc_init();
@@ -322,6 +338,7 @@ static void __init rbtx4927_device_init(void)
tx4927_wdt_init();
rbtx4927_mtd_init();
txx9_iocled_init(RBTX4927_LED_ADDR - IO_BASE, -1, 3, 1, "green", NULL);
+ rbtx4927_gpioled_init();
}
struct txx9_board_vec rbtx4927_vec __initdata = {