|
@@ -58,6 +58,9 @@
|
|
|
#include <linux/mfd/pcf50633/pmic.h>
|
|
|
#include <linux/mfd/pcf50633/backlight.h>
|
|
|
|
|
|
+#include <linux/input.h>
|
|
|
+#include <linux/gpio_keys.h>
|
|
|
+
|
|
|
#include <asm/mach/arch.h>
|
|
|
#include <asm/mach/map.h>
|
|
|
#include <asm/mach/irq.h>
|
|
@@ -489,6 +492,36 @@ static struct s3c2410_hcd_info gta02_usb_info __initdata = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+/* Buttons */
|
|
|
+static struct gpio_keys_button gta02_buttons[] = {
|
|
|
+ {
|
|
|
+ .gpio = GTA02_GPIO_AUX_KEY,
|
|
|
+ .code = KEY_PHONE,
|
|
|
+ .desc = "Aux",
|
|
|
+ .type = EV_KEY,
|
|
|
+ .debounce_interval = 100,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .gpio = GTA02_GPIO_HOLD_KEY,
|
|
|
+ .code = KEY_PAUSE,
|
|
|
+ .desc = "Hold",
|
|
|
+ .type = EV_KEY,
|
|
|
+ .debounce_interval = 100,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct gpio_keys_platform_data gta02_buttons_pdata = {
|
|
|
+ .buttons = gta02_buttons,
|
|
|
+ .nbuttons = ARRAY_SIZE(gta02_buttons),
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device gta02_buttons_device = {
|
|
|
+ .name = "gpio-keys",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = >a02_buttons_pdata,
|
|
|
+ },
|
|
|
+};
|
|
|
|
|
|
static void __init gta02_map_io(void)
|
|
|
{
|
|
@@ -511,6 +544,7 @@ static struct platform_device *gta02_devices[] __initdata = {
|
|
|
&s3c_device_iis,
|
|
|
&samsung_asoc_dma,
|
|
|
&s3c_device_i2c0,
|
|
|
+ >a02_buttons_device,
|
|
|
};
|
|
|
|
|
|
/* These guys DO need to be children of PMU. */
|