]> nv-tegra.nvidia Code Review - linux-2.6.git/blob - arch/arm/mach-pxa/csb701.c
Merge branch 'avr32-arch' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoe...
[linux-2.6.git] / arch / arm / mach-pxa / csb701.c
1 #include <linux/kernel.h>
2 #include <linux/module.h>
3 #include <linux/platform_device.h>
4 #include <linux/gpio_keys.h>
5 #include <linux/input.h>
6 #include <linux/leds.h>
7
8 static struct gpio_keys_button csb701_buttons[] = {
9         {
10                 .code   = 0x7,
11                 .gpio   = 1,
12                 .active_low = 1,
13                 .desc   = "SW2",
14                 .type   = EV_SW,
15                 .wakeup = 1,
16         },
17 };
18
19 static struct gpio_keys_platform_data csb701_gpio_keys_data = {
20         .buttons = csb701_buttons,
21         .nbuttons = ARRAY_SIZE(csb701_buttons),
22 };
23
24 static struct gpio_led csb701_leds[] = {
25         {
26                 .name   = "csb701:yellow:heartbeat",
27                 .default_trigger = "heartbeat",
28                 .gpio   = 11,
29                 .active_low = 1,
30         },
31 };
32
33 static struct platform_device csb701_gpio_keys = {
34         .name           = "gpio-keys",
35         .id             = -1,
36         .dev.platform_data = &csb701_gpio_keys_data,
37 };
38
39 static struct gpio_led_platform_data csb701_leds_gpio_data = {
40         .leds           = csb701_leds,
41         .num_leds       = ARRAY_SIZE(csb701_leds),
42 };
43
44 static struct platform_device csb701_leds_gpio = {
45         .name           = "leds-gpio",
46         .id             = -1,
47         .dev.platform_data = &csb701_leds_gpio_data,
48 };
49
50 static struct platform_device *devices[] __initdata = {
51         &csb701_gpio_keys,
52         &csb701_leds_gpio,
53 };
54
55 static int __init csb701_init(void)
56 {
57         return platform_add_devices(devices, ARRAY_SIZE(devices));
58 }
59
60 module_init(csb701_init);
61