diff options
Diffstat (limited to 'arch/sh/boards/board-rsk7203.c')
| -rw-r--r-- | arch/sh/boards/board-rsk7203.c | 43 | 
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/sh/boards/board-rsk7203.c b/arch/sh/boards/board-rsk7203.c index ffbedc59a97..58266f06134 100644 --- a/arch/sh/boards/board-rsk7203.c +++ b/arch/sh/boards/board-rsk7203.c @@ -16,8 +16,11 @@  #include <linux/mtd/physmap.h>  #include <linux/mtd/map.h>  #include <linux/smc911x.h> +#include <linux/gpio.h> +#include <linux/leds.h>  #include <asm/machvec.h>  #include <asm/io.h> +#include <cpu/sh7203.h>  static struct smc911x_platdata smc911x_info = {  	.flags		= SMC911X_USE_16BIT, @@ -114,14 +117,54 @@ static void __init set_mtd_partitions(void)  	}  } +static struct gpio_led rsk7203_gpio_leds[] = { +	{ +		.name			= "green", +		.gpio			= GPIO_PE10, +		.active_low		= 1, +	}, { +		.name			= "orange", +		.default_trigger	= "nand-disk", +		.gpio			= GPIO_PE12, +		.active_low		= 1, +	}, { +		.name			= "red:timer", +		.default_trigger	= "timer", +		.gpio			= GPIO_PC14, +		.active_low		= 1, +	}, { +		.name			= "red:heartbeat", +		.default_trigger	= "heartbeat", +		.gpio			= GPIO_PE11, +		.active_low		= 1, +	}, +}; + +static struct gpio_led_platform_data rsk7203_gpio_leds_info = { +	.leds		= rsk7203_gpio_leds, +	.num_leds	= ARRAY_SIZE(rsk7203_gpio_leds), +}; + +static struct platform_device led_device = { +	.name		= "leds-gpio", +	.id		= -1, +	.dev		= { +		.platform_data	= &rsk7203_gpio_leds_info, +	}, +};  static struct platform_device *rsk7203_devices[] __initdata = {  	&smc911x_device,  	&flash_device, +	&led_device,  };  static int __init rsk7203_devices_setup(void)  { +	/* Select pins for SCIF0 */ +	gpio_request(GPIO_FN_TXD0, NULL); +	gpio_request(GPIO_FN_RXD0, NULL); +  	set_mtd_partitions();  	return platform_add_devices(rsk7203_devices,  				    ARRAY_SIZE(rsk7203_devices));  | 
