diff options
-rw-r--r-- | arch/arm/mach-shmobile/board-kota2.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-kota2.c b/arch/arm/mach-shmobile/board-kota2.c index 8a6b85a52cb7..849423cddca9 100644 --- a/arch/arm/mach-shmobile/board-kota2.c +++ b/arch/arm/mach-shmobile/board-kota2.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/gpio.h> | 31 | #include <linux/gpio.h> |
32 | #include <linux/input.h> | 32 | #include <linux/input.h> |
33 | #include <linux/input/sh_keysc.h> | 33 | #include <linux/input/sh_keysc.h> |
34 | #include <linux/gpio_keys.h> | ||
34 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
35 | #include <mach/sh73a0.h> | 36 | #include <mach/sh73a0.h> |
36 | #include <mach/common.h> | 37 | #include <mach/common.h> |
@@ -114,9 +115,40 @@ static struct platform_device keysc_device = { | |||
114 | }, | 115 | }, |
115 | }; | 116 | }; |
116 | 117 | ||
118 | #define GPIO_KEY(c, g, d) { .code = c, .gpio = g, .desc = d, .active_low = 1 } | ||
119 | |||
120 | static struct gpio_keys_button gpio_buttons[] = { | ||
121 | GPIO_KEY(KEY_VOLUMEUP, GPIO_PORT56, "+"), /* S2: VOL+ [IRQ9] */ | ||
122 | GPIO_KEY(KEY_VOLUMEDOWN, GPIO_PORT54, "-"), /* S3: VOL- [IRQ10] */ | ||
123 | GPIO_KEY(KEY_MENU, GPIO_PORT27, "Menu"), /* S4: MENU [IRQ30] */ | ||
124 | GPIO_KEY(KEY_HOMEPAGE, GPIO_PORT26, "Home"), /* S5: HOME [IRQ31] */ | ||
125 | GPIO_KEY(KEY_BACK, GPIO_PORT11, "Back"), /* S6: BACK [IRQ0] */ | ||
126 | GPIO_KEY(KEY_PHONE, GPIO_PORT238, "Tel"), /* S7: TEL [IRQ11] */ | ||
127 | GPIO_KEY(KEY_POWER, GPIO_PORT239, "C1"), /* S8: CAM [IRQ13] */ | ||
128 | GPIO_KEY(KEY_MAIL, GPIO_PORT224, "Mail"), /* S9: MAIL [IRQ3] */ | ||
129 | /* Omitted button "C3?": GPIO_PORT223 - S10: CUST [IRQ8] */ | ||
130 | GPIO_KEY(KEY_CAMERA, GPIO_PORT164, "C2"), /* S11: CAM_HALF [IRQ25] */ | ||
131 | /* Omitted button "?": GPIO_PORT152 - S12: CAM_FULL [No IRQ] */ | ||
132 | }; | ||
133 | |||
134 | static struct gpio_keys_platform_data gpio_key_info = { | ||
135 | .buttons = gpio_buttons, | ||
136 | .nbuttons = ARRAY_SIZE(gpio_buttons), | ||
137 | .poll_interval = 250, /* polled for now */ | ||
138 | }; | ||
139 | |||
140 | static struct platform_device gpio_keys_device = { | ||
141 | .name = "gpio-keys-polled", /* polled for now */ | ||
142 | .id = -1, | ||
143 | .dev = { | ||
144 | .platform_data = &gpio_key_info, | ||
145 | }, | ||
146 | }; | ||
147 | |||
117 | static struct platform_device *kota2_devices[] __initdata = { | 148 | static struct platform_device *kota2_devices[] __initdata = { |
118 | ð_device, | 149 | ð_device, |
119 | &keysc_device, | 150 | &keysc_device, |
151 | &gpio_keys_device, | ||
120 | }; | 152 | }; |
121 | 153 | ||
122 | static struct map_desc kota2_io_desc[] __initdata = { | 154 | static struct map_desc kota2_io_desc[] __initdata = { |