diff options
Diffstat (limited to 'arch/sh/boards')
-rw-r--r-- | arch/sh/boards/mach-rsk/devices-rsk7203.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/arch/sh/boards/mach-rsk/devices-rsk7203.c b/arch/sh/boards/mach-rsk/devices-rsk7203.c index 4fa08ba10253..a8089f79d058 100644 --- a/arch/sh/boards/mach-rsk/devices-rsk7203.c +++ b/arch/sh/boards/mach-rsk/devices-rsk7203.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Renesas Technology Europe RSK+ 7203 Support. | 2 | * Renesas Technology Europe RSK+ 7203 Support. |
3 | * | 3 | * |
4 | * Copyright (C) 2008 Paul Mundt | 4 | * Copyright (C) 2008 - 2010 Paul Mundt |
5 | * | 5 | * |
6 | * This file is subject to the terms and conditions of the GNU General Public | 6 | * This file is subject to the terms and conditions of the GNU General Public |
7 | * License. See the file "COPYING" in the main directory of this archive | 7 | * License. See the file "COPYING" in the main directory of this archive |
@@ -12,7 +12,9 @@ | |||
12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/smsc911x.h> | 14 | #include <linux/smsc911x.h> |
15 | #include <linux/input.h> | ||
15 | #include <linux/gpio.h> | 16 | #include <linux/gpio.h> |
17 | #include <linux/gpio_keys.h> | ||
16 | #include <linux/leds.h> | 18 | #include <linux/leds.h> |
17 | #include <asm/machvec.h> | 19 | #include <asm/machvec.h> |
18 | #include <asm/io.h> | 20 | #include <asm/io.h> |
@@ -84,9 +86,42 @@ static struct platform_device led_device = { | |||
84 | }, | 86 | }, |
85 | }; | 87 | }; |
86 | 88 | ||
89 | static struct gpio_keys_button rsk7203_gpio_keys_table[] = { | ||
90 | { | ||
91 | .code = BTN_0, | ||
92 | .gpio = GPIO_PB0, | ||
93 | .active_low = 1, | ||
94 | .desc = "SW1", | ||
95 | }, { | ||
96 | .code = BTN_1, | ||
97 | .gpio = GPIO_PB1, | ||
98 | .active_low = 1, | ||
99 | .desc = "SW2", | ||
100 | }, { | ||
101 | .code = BTN_2, | ||
102 | .gpio = GPIO_PB2, | ||
103 | .active_low = 1, | ||
104 | .desc = "SW3", | ||
105 | }, | ||
106 | }; | ||
107 | |||
108 | static struct gpio_keys_platform_data rsk7203_gpio_keys_info = { | ||
109 | .buttons = rsk7203_gpio_keys_table, | ||
110 | .nbuttons = ARRAY_SIZE(rsk7203_gpio_keys_table), | ||
111 | .poll_interval = 50, /* default to 50ms */ | ||
112 | }; | ||
113 | |||
114 | static struct platform_device keys_device = { | ||
115 | .name = "gpio-keys-polled", | ||
116 | .dev = { | ||
117 | .platform_data = &rsk7203_gpio_keys_info, | ||
118 | }, | ||
119 | }; | ||
120 | |||
87 | static struct platform_device *rsk7203_devices[] __initdata = { | 121 | static struct platform_device *rsk7203_devices[] __initdata = { |
88 | &smsc911x_device, | 122 | &smsc911x_device, |
89 | &led_device, | 123 | &led_device, |
124 | &keys_device, | ||
90 | }; | 125 | }; |
91 | 126 | ||
92 | static int __init rsk7203_devices_setup(void) | 127 | static int __init rsk7203_devices_setup(void) |