aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2011-11-08 02:59:41 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2011-11-15 12:46:14 -0500
commit8d964a2872ea0914e00bc7798e68899e01715185 (patch)
treee55e7ed48bdf53637cb53d18d436bf0e4cecdab0
parent400bf2995be617474ebc4b2a0989f2b0a0e498cf (diff)
Input: samsung-keypad - enable compiling on other platforms
There is nothing in keypad platform definitions that requires the driver be complied on Samsung platform only, so let's move them out of the platform subdirectory and relax the dependencies. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--arch/arm/plat-samsung/include/plat/keypad.h27
-rw-r--r--drivers/input/keyboard/Kconfig5
-rw-r--r--drivers/input/keyboard/samsung-keypad.c2
-rw-r--r--include/linux/input/samsung-keypad.h43
4 files changed, 48 insertions, 29 deletions
diff --git a/arch/arm/plat-samsung/include/plat/keypad.h b/arch/arm/plat-samsung/include/plat/keypad.h
index b59a6483cd8a..c81ace332a1e 100644
--- a/arch/arm/plat-samsung/include/plat/keypad.h
+++ b/arch/arm/plat-samsung/include/plat/keypad.h
@@ -13,32 +13,7 @@
13#ifndef __PLAT_SAMSUNG_KEYPAD_H 13#ifndef __PLAT_SAMSUNG_KEYPAD_H
14#define __PLAT_SAMSUNG_KEYPAD_H 14#define __PLAT_SAMSUNG_KEYPAD_H
15 15
16#include <linux/input/matrix_keypad.h> 16#include <linux/input/samsung-keypad.h>
17
18#define SAMSUNG_MAX_ROWS 8
19#define SAMSUNG_MAX_COLS 8
20
21/**
22 * struct samsung_keypad_platdata - Platform device data for Samsung Keypad.
23 * @keymap_data: pointer to &matrix_keymap_data.
24 * @rows: number of keypad row supported.
25 * @cols: number of keypad col supported.
26 * @no_autorepeat: disable key autorepeat.
27 * @wakeup: controls whether the device should be set up as wakeup source.
28 * @cfg_gpio: configure the GPIO.
29 *
30 * Initialisation data specific to either the machine or the platform
31 * for the device driver to use or call-back when configuring gpio.
32 */
33struct samsung_keypad_platdata {
34 const struct matrix_keymap_data *keymap_data;
35 unsigned int rows;
36 unsigned int cols;
37 bool no_autorepeat;
38 bool wakeup;
39
40 void (*cfg_gpio)(unsigned int rows, unsigned int cols);
41};
42 17
43/** 18/**
44 * samsung_keypad_set_platdata - Set platform data for Samsung Keypad device. 19 * samsung_keypad_set_platdata - Set platform data for Samsung Keypad device.
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index 90d5f0a8f882..cdc385b2cf7d 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -441,9 +441,10 @@ config KEYBOARD_PMIC8XXX
441 441
442config KEYBOARD_SAMSUNG 442config KEYBOARD_SAMSUNG
443 tristate "Samsung keypad support" 443 tristate "Samsung keypad support"
444 depends on SAMSUNG_DEV_KEYPAD 444 depends on HAVE_CLK
445 help 445 help
446 Say Y here if you want to use the Samsung keypad. 446 Say Y here if you want to use the keypad on your Samsung mobile
447 device.
447 448
448 To compile this driver as a module, choose M here: the 449 To compile this driver as a module, choose M here: the
449 module will be called samsung-keypad. 450 module will be called samsung-keypad.
diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboard/samsung-keypad.c
index d244fdf9ecdf..1a2b755564f2 100644
--- a/drivers/input/keyboard/samsung-keypad.c
+++ b/drivers/input/keyboard/samsung-keypad.c
@@ -22,7 +22,7 @@
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/slab.h> 23#include <linux/slab.h>
24#include <linux/sched.h> 24#include <linux/sched.h>
25#include <plat/keypad.h> 25#include <linux/input/samsung-keypad.h>
26 26
27#define SAMSUNG_KEYIFCON 0x00 27#define SAMSUNG_KEYIFCON 0x00
28#define SAMSUNG_KEYIFSTSCLR 0x04 28#define SAMSUNG_KEYIFSTSCLR 0x04
diff --git a/include/linux/input/samsung-keypad.h b/include/linux/input/samsung-keypad.h
new file mode 100644
index 000000000000..f25619bfd8a8
--- /dev/null
+++ b/include/linux/input/samsung-keypad.h
@@ -0,0 +1,43 @@
1/*
2 * Samsung Keypad platform data definitions
3 *
4 * Copyright (C) 2010 Samsung Electronics Co.Ltd
5 * Author: Joonyoung Shim <jy0922.shim@samsung.com>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2 of the License, or (at your
10 * option) any later version.
11 */
12
13#ifndef __SAMSUNG_KEYPAD_H
14#define __SAMSUNG_KEYPAD_H
15
16#include <linux/input/matrix_keypad.h>
17
18#define SAMSUNG_MAX_ROWS 8
19#define SAMSUNG_MAX_COLS 8
20
21/**
22 * struct samsung_keypad_platdata - Platform device data for Samsung Keypad.
23 * @keymap_data: pointer to &matrix_keymap_data.
24 * @rows: number of keypad row supported.
25 * @cols: number of keypad col supported.
26 * @no_autorepeat: disable key autorepeat.
27 * @wakeup: controls whether the device should be set up as wakeup source.
28 * @cfg_gpio: configure the GPIO.
29 *
30 * Initialisation data specific to either the machine or the platform
31 * for the device driver to use or call-back when configuring gpio.
32 */
33struct samsung_keypad_platdata {
34 const struct matrix_keymap_data *keymap_data;
35 unsigned int rows;
36 unsigned int cols;
37 bool no_autorepeat;
38 bool wakeup;
39
40 void (*cfg_gpio)(unsigned int rows, unsigned int cols);
41};
42
43#endif /* __SAMSUNG_KEYPAD_H */