Commit 68aeee98 authored by Evgeniy Dushistov's avatar Evgeniy Dushistov Committed by Dmitry Torokhov

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: default avatarEvgeniy A. Dushistov <dushistov@mail.ru>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent ee3514b2
...@@ -367,6 +367,7 @@ config KEYBOARD_MAPLE ...@@ -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
......
...@@ -84,26 +84,6 @@ static int max7359_read_reg(struct i2c_client *client, int reg) ...@@ -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, ...@@ -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,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment