Input: max7359_keypad - switch to using matrix_keypad_build_keymap()

max7359_build_keycode() does the same thing as matrix_keypad_build_keymap(),
but the latter can also handle DT bindings.

Tested on beagleboard-xm.

Signed-off-by: Evgeniy A. Dushistov <dushistov@mail.ru>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
Evgeniy Dushistov 2015-05-15 13:49:00 -07:00 committed by Dmitry Torokhov
parent ee3514b225
commit 68aeee98ee
2 changed files with 10 additions and 21 deletions

View File

@ -367,6 +367,7 @@ config KEYBOARD_MAPLE
config KEYBOARD_MAX7359 config KEYBOARD_MAX7359
tristate "Maxim MAX7359 Key Switch Controller" tristate "Maxim MAX7359 Key Switch Controller"
select INPUT_MATRIXKMAP
depends on I2C depends on I2C
help help
If you say yes here you get support for the Maxim MAX7359 Key If you say yes here you get support for the Maxim MAX7359 Key

View File

@ -84,26 +84,6 @@ static int max7359_read_reg(struct i2c_client *client, int reg)
return ret; return ret;
} }
static void max7359_build_keycode(struct max7359_keypad *keypad,
const struct matrix_keymap_data *keymap_data)
{
struct input_dev *input_dev = keypad->input_dev;
int i;
for (i = 0; i < keymap_data->keymap_size; i++) {
unsigned int key = keymap_data->keymap[i];
unsigned int row = KEY_ROW(key);
unsigned int col = KEY_COL(key);
unsigned int scancode = MATRIX_SCAN_CODE(row, col,
MAX7359_ROW_SHIFT);
unsigned short keycode = KEY_VAL(key);
keypad->keycodes[scancode] = keycode;
__set_bit(keycode, input_dev->keybit);
}
__clear_bit(KEY_RESERVED, input_dev->keybit);
}
/* runs in an IRQ thread -- can (and will!) sleep */ /* runs in an IRQ thread -- can (and will!) sleep */
static irqreturn_t max7359_interrupt(int irq, void *dev_id) static irqreturn_t max7359_interrupt(int irq, void *dev_id)
{ {
@ -232,7 +212,15 @@ static int max7359_probe(struct i2c_client *client,
input_set_capability(input_dev, EV_MSC, MSC_SCAN); input_set_capability(input_dev, EV_MSC, MSC_SCAN);
input_set_drvdata(input_dev, keypad); input_set_drvdata(input_dev, keypad);
max7359_build_keycode(keypad, keymap_data); error = matrix_keypad_build_keymap(keymap_data, NULL,
MAX7359_MAX_KEY_ROWS,
MAX7359_MAX_KEY_COLS,
keypad->keycodes,
input_dev);
if (error) {
dev_err(&client->dev, "failed to build keymap\n");
return error;
}
error = devm_request_threaded_irq(&client->dev, client->irq, NULL, error = devm_request_threaded_irq(&client->dev, client->irq, NULL,
max7359_interrupt, max7359_interrupt,