Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+48 -29
+1 -26
arch/arm/plat-samsung/include/plat/keypad.h
··· 13 13 #ifndef __PLAT_SAMSUNG_KEYPAD_H 14 14 #define __PLAT_SAMSUNG_KEYPAD_H 15 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 - */ 33 - struct 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 - }; 16 + #include <linux/input/samsung-keypad.h> 42 17 43 18 /** 44 19 * samsung_keypad_set_platdata - Set platform data for Samsung Keypad device.
+3 -2
drivers/input/keyboard/Kconfig
··· 441 441 442 442 config KEYBOARD_SAMSUNG 443 443 tristate "Samsung keypad support" 444 - depends on SAMSUNG_DEV_KEYPAD 444 + depends on HAVE_CLK 445 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 449 To compile this driver as a module, choose M here: the 449 450 module will be called samsung-keypad.
+1 -1
drivers/input/keyboard/samsung-keypad.c
··· 22 22 #include <linux/platform_device.h> 23 23 #include <linux/slab.h> 24 24 #include <linux/sched.h> 25 - #include <plat/keypad.h> 25 + #include <linux/input/samsung-keypad.h> 26 26 27 27 #define SAMSUNG_KEYIFCON 0x00 28 28 #define SAMSUNG_KEYIFSTSCLR 0x04
+43
include/linux/input/samsung-keypad.h
··· 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 + */ 33 + struct 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 */