input/tc3589x: add tc3589x keypad support
Add support for the keypad controller module found on the TC3589X devices. This driver default adds the support for TC35893 device. Signed-off-by: Sundar Iyer <sundar.iyer@stericsson.com> Acked-by: Dmitry Torokhov <dtor@mail.ru> [Some minor fixups for compilation] Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
This commit is contained in:

committed by
Linus Walleij

parent
11c8ea81cc
commit
09c730a488
@@ -132,6 +132,14 @@ static struct resource gpio_resources[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource keypad_resources[] = {
|
||||
{
|
||||
.start = TC3589x_INT_KBDIRQ,
|
||||
.end = TC3589x_INT_KBDIRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct mfd_cell tc3589x_dev_gpio[] = {
|
||||
{
|
||||
.name = "tc3589x-gpio",
|
||||
@@ -140,6 +148,14 @@ static struct mfd_cell tc3589x_dev_gpio[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct mfd_cell tc3589x_dev_keypad[] = {
|
||||
{
|
||||
.name = "tc3589x-keypad",
|
||||
.num_resources = ARRAY_SIZE(keypad_resources),
|
||||
.resources = &keypad_resources[0],
|
||||
},
|
||||
};
|
||||
|
||||
static irqreturn_t tc3589x_irq(int irq, void *data)
|
||||
{
|
||||
struct tc3589x *tc3589x = data;
|
||||
@@ -255,8 +271,18 @@ static int __devinit tc3589x_device_init(struct tc3589x *tc3589x)
|
||||
dev_info(tc3589x->dev, "added gpio block\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
if (blocks & TC3589x_BLOCK_KEYPAD) {
|
||||
ret = mfd_add_devices(tc3589x->dev, -1, tc3589x_dev_keypad,
|
||||
ARRAY_SIZE(tc3589x_dev_keypad), NULL,
|
||||
tc3589x->irq_base);
|
||||
if (ret) {
|
||||
dev_err(tc3589x->dev, "failed to keypad child\n");
|
||||
return ret;
|
||||
}
|
||||
dev_info(tc3589x->dev, "added keypad block\n");
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int __devinit tc3589x_probe(struct i2c_client *i2c,
|
||||
|
Reference in New Issue
Block a user