mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 01:54:00 +00:00
Input: pxa27x_keypad - rename the driver (was pxa27x_keyboard)
The controller should really be called keypad, and also align the naming of functions and structures to use "pxa27x_keypad" as prefix, instead of "pxakbd". Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
cec69c376b
commit
0e5f11aa80
@ -260,13 +260,13 @@ config KEYBOARD_OMAP
|
|||||||
module will be called omap-keypad.
|
module will be called omap-keypad.
|
||||||
|
|
||||||
config KEYBOARD_PXA27x
|
config KEYBOARD_PXA27x
|
||||||
tristate "PXA27x keyboard support"
|
tristate "PXA27x keypad support"
|
||||||
depends on PXA27x
|
depends on PXA27x
|
||||||
help
|
help
|
||||||
Enable support for PXA27x matrix keyboard controller
|
Enable support for PXA27x keypad controller
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called pxa27x_keyboard.
|
module will be called pxa27x_keypad.
|
||||||
|
|
||||||
config KEYBOARD_AAED2000
|
config KEYBOARD_AAED2000
|
||||||
tristate "AAED-2000 keyboard"
|
tristate "AAED-2000 keyboard"
|
||||||
|
@ -19,7 +19,7 @@ obj-$(CONFIG_KEYBOARD_TOSA) += tosakbd.o
|
|||||||
obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o
|
obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o
|
||||||
obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
|
obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
|
||||||
obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
|
obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
|
||||||
obj-$(CONFIG_KEYBOARD_PXA27x) += pxa27x_keyboard.o
|
obj-$(CONFIG_KEYBOARD_PXA27x) += pxa27x_keypad.o
|
||||||
obj-$(CONFIG_KEYBOARD_AAED2000) += aaed2000_kbd.o
|
obj-$(CONFIG_KEYBOARD_AAED2000) += aaed2000_kbd.o
|
||||||
obj-$(CONFIG_KEYBOARD_GPIO) += gpio_keys.o
|
obj-$(CONFIG_KEYBOARD_GPIO) += gpio_keys.o
|
||||||
obj-$(CONFIG_KEYBOARD_HP6XX) += jornada680_kbd.o
|
obj-$(CONFIG_KEYBOARD_HP6XX) += jornada680_kbd.o
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* linux/drivers/input/keyboard/pxa27x_keyboard.c
|
* linux/drivers/input/keyboard/pxa27x_keypad.c
|
||||||
*
|
*
|
||||||
* Driver for the pxa27x matrix keyboard controller.
|
* Driver for the pxa27x matrix keyboard controller.
|
||||||
*
|
*
|
||||||
@ -33,21 +33,21 @@
|
|||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
#include <asm/arch/pxa-regs.h>
|
#include <asm/arch/pxa-regs.h>
|
||||||
#include <asm/arch/irqs.h>
|
#include <asm/arch/irqs.h>
|
||||||
#include <asm/arch/pxa27x_keyboard.h>
|
#include <asm/arch/pxa27x_keypad.h>
|
||||||
|
|
||||||
#define DRIVER_NAME "pxa27x-keyboard"
|
#define DRIVER_NAME "pxa27x-keypad"
|
||||||
|
|
||||||
#define KPASMKP(col) (col/2 == 0 ? KPASMKP0 : \
|
#define KPASMKP(col) (col/2 == 0 ? KPASMKP0 : \
|
||||||
col/2 == 1 ? KPASMKP1 : \
|
col/2 == 1 ? KPASMKP1 : \
|
||||||
col/2 == 2 ? KPASMKP2 : KPASMKP3)
|
col/2 == 2 ? KPASMKP2 : KPASMKP3)
|
||||||
#define KPASMKPx_MKC(row, col) (1 << (row + 16 * (col % 2)))
|
#define KPASMKPx_MKC(row, col) (1 << (row + 16 * (col % 2)))
|
||||||
|
|
||||||
static struct clk *pxakbd_clk;
|
static struct clk *pxa27x_keypad_clk;
|
||||||
|
|
||||||
static irqreturn_t pxakbd_irq_handler(int irq, void *dev_id)
|
static irqreturn_t pxa27x_keypad_irq_handler(int irq, void *dev_id)
|
||||||
{
|
{
|
||||||
struct platform_device *pdev = dev_id;
|
struct platform_device *pdev = dev_id;
|
||||||
struct pxa27x_keyboard_platform_data *pdata = pdev->dev.platform_data;
|
struct pxa27x_keypad_platform_data *pdata = pdev->dev.platform_data;
|
||||||
struct input_dev *input_dev = platform_get_drvdata(pdev);
|
struct input_dev *input_dev = platform_get_drvdata(pdev);
|
||||||
unsigned long kpc = KPC;
|
unsigned long kpc = KPC;
|
||||||
int p, row, col, rel;
|
int p, row, col, rel;
|
||||||
@ -93,7 +93,7 @@ static irqreturn_t pxakbd_irq_handler(int irq, void *dev_id)
|
|||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pxakbd_open(struct input_dev *dev)
|
static int pxa27x_keypad_open(struct input_dev *dev)
|
||||||
{
|
{
|
||||||
/* Set keypad control register */
|
/* Set keypad control register */
|
||||||
KPC |= (KPC_ASACT |
|
KPC |= (KPC_ASACT |
|
||||||
@ -108,21 +108,21 @@ static int pxakbd_open(struct input_dev *dev)
|
|||||||
KPREC = 0x7F;
|
KPREC = 0x7F;
|
||||||
|
|
||||||
/* Enable unit clock */
|
/* Enable unit clock */
|
||||||
clk_enable(pxakbd_clk);
|
clk_enable(pxa27x_keypad_clk);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pxakbd_close(struct input_dev *dev)
|
static void pxa27x_keypad_close(struct input_dev *dev)
|
||||||
{
|
{
|
||||||
/* Disable clock unit */
|
/* Disable clock unit */
|
||||||
clk_disable(pxakbd_clk);
|
clk_disable(pxa27x_keypad_clk);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
static int pxakbd_suspend(struct platform_device *pdev, pm_message_t state)
|
static int pxa27x_keypad_suspend(struct platform_device *pdev, pm_message_t state)
|
||||||
{
|
{
|
||||||
struct pxa27x_keyboard_platform_data *pdata = pdev->dev.platform_data;
|
struct pxa27x_keypad_platform_data *pdata = pdev->dev.platform_data;
|
||||||
|
|
||||||
/* Save controller status */
|
/* Save controller status */
|
||||||
pdata->reg_kpc = KPC;
|
pdata->reg_kpc = KPC;
|
||||||
@ -131,9 +131,9 @@ static int pxakbd_suspend(struct platform_device *pdev, pm_message_t state)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int pxakbd_resume(struct platform_device *pdev)
|
static int pxa27x_keypad_resume(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct pxa27x_keyboard_platform_data *pdata = pdev->dev.platform_data;
|
struct pxa27x_keypad_platform_data *pdata = pdev->dev.platform_data;
|
||||||
struct input_dev *input_dev = platform_get_drvdata(pdev);
|
struct input_dev *input_dev = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
mutex_lock(&input_dev->mutex);
|
mutex_lock(&input_dev->mutex);
|
||||||
@ -144,8 +144,8 @@ static int pxakbd_resume(struct platform_device *pdev)
|
|||||||
KPREC = pdata->reg_kprec;
|
KPREC = pdata->reg_kprec;
|
||||||
|
|
||||||
/* Enable unit clock */
|
/* Enable unit clock */
|
||||||
clk_disable(pxakbd_clk);
|
clk_disable(pxa27x_keypad_clk);
|
||||||
clk_enable(pxakbd_clk);
|
clk_enable(pxa27x_keypad_clk);
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&input_dev->mutex);
|
mutex_unlock(&input_dev->mutex);
|
||||||
@ -153,19 +153,19 @@ static int pxakbd_resume(struct platform_device *pdev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define pxakbd_suspend NULL
|
#define pxa27x_keypad_suspend NULL
|
||||||
#define pxakbd_resume NULL
|
#define pxa27x_keypad_resume NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int __devinit pxakbd_probe(struct platform_device *pdev)
|
static int __devinit pxa27x_keypad_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct pxa27x_keyboard_platform_data *pdata = pdev->dev.platform_data;
|
struct pxa27x_keypad_platform_data *pdata = pdev->dev.platform_data;
|
||||||
struct input_dev *input_dev;
|
struct input_dev *input_dev;
|
||||||
int i, row, col, error;
|
int i, row, col, error;
|
||||||
|
|
||||||
pxakbd_clk = clk_get(&pdev->dev, "KBDCLK");
|
pxa27x_keypad_clk = clk_get(&pdev->dev, "KBDCLK");
|
||||||
if (IS_ERR(pxakbd_clk)) {
|
if (IS_ERR(pxa27x_keypad_clk)) {
|
||||||
error = PTR_ERR(pxakbd_clk);
|
error = PTR_ERR(pxa27x_keypad_clk);
|
||||||
goto err_clk;
|
goto err_clk;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,8 +179,8 @@ static int __devinit pxakbd_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
input_dev->name = DRIVER_NAME;
|
input_dev->name = DRIVER_NAME;
|
||||||
input_dev->id.bustype = BUS_HOST;
|
input_dev->id.bustype = BUS_HOST;
|
||||||
input_dev->open = pxakbd_open;
|
input_dev->open = pxa27x_keypad_open;
|
||||||
input_dev->close = pxakbd_close;
|
input_dev->close = pxa27x_keypad_close;
|
||||||
input_dev->dev.parent = &pdev->dev;
|
input_dev->dev.parent = &pdev->dev;
|
||||||
|
|
||||||
input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
|
input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP) |
|
||||||
@ -194,7 +194,7 @@ static int __devinit pxakbd_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
error = request_irq(IRQ_KEYPAD, pxakbd_irq_handler, IRQF_DISABLED,
|
error = request_irq(IRQ_KEYPAD, pxa27x_keypad_irq_handler, IRQF_DISABLED,
|
||||||
DRIVER_NAME, pdev);
|
DRIVER_NAME, pdev);
|
||||||
if (error) {
|
if (error) {
|
||||||
printk(KERN_ERR "Cannot request keypad IRQ\n");
|
printk(KERN_ERR "Cannot request keypad IRQ\n");
|
||||||
@ -230,45 +230,45 @@ static int __devinit pxakbd_probe(struct platform_device *pdev)
|
|||||||
err_free_dev:
|
err_free_dev:
|
||||||
input_free_device(input_dev);
|
input_free_device(input_dev);
|
||||||
err_alloc:
|
err_alloc:
|
||||||
clk_put(pxakbd_clk);
|
clk_put(pxa27x_keypad_clk);
|
||||||
err_clk:
|
err_clk:
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __devexit pxakbd_remove(struct platform_device *pdev)
|
static int __devexit pxa27x_keypad_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct input_dev *input_dev = platform_get_drvdata(pdev);
|
struct input_dev *input_dev = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
input_unregister_device(input_dev);
|
input_unregister_device(input_dev);
|
||||||
free_irq(IRQ_KEYPAD, pdev);
|
free_irq(IRQ_KEYPAD, pdev);
|
||||||
clk_put(pxakbd_clk);
|
clk_put(pxa27x_keypad_clk);
|
||||||
platform_set_drvdata(pdev, NULL);
|
platform_set_drvdata(pdev, NULL);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct platform_driver pxakbd_driver = {
|
static struct platform_driver pxa27x_keypad_driver = {
|
||||||
.probe = pxakbd_probe,
|
.probe = pxa27x_keypad_probe,
|
||||||
.remove = __devexit_p(pxakbd_remove),
|
.remove = __devexit_p(pxa27x_keypad_remove),
|
||||||
.suspend = pxakbd_suspend,
|
.suspend = pxa27x_keypad_suspend,
|
||||||
.resume = pxakbd_resume,
|
.resume = pxa27x_keypad_resume,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = DRIVER_NAME,
|
.name = DRIVER_NAME,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init pxakbd_init(void)
|
static int __init pxa27x_keypad_init(void)
|
||||||
{
|
{
|
||||||
return platform_driver_register(&pxakbd_driver);
|
return platform_driver_register(&pxa27x_keypad_driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit pxakbd_exit(void)
|
static void __exit pxa27x_keypad_exit(void)
|
||||||
{
|
{
|
||||||
platform_driver_unregister(&pxakbd_driver);
|
platform_driver_unregister(&pxa27x_keypad_driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(pxakbd_init);
|
module_init(pxa27x_keypad_init);
|
||||||
module_exit(pxakbd_exit);
|
module_exit(pxa27x_keypad_exit);
|
||||||
|
|
||||||
MODULE_DESCRIPTION("PXA27x Matrix Keyboard Driver");
|
MODULE_DESCRIPTION("PXA27x Keypad Controller Driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
@ -1,7 +1,7 @@
|
|||||||
#define PXAKBD_MAXROW 8
|
#define PXAKBD_MAXROW 8
|
||||||
#define PXAKBD_MAXCOL 8
|
#define PXAKBD_MAXCOL 8
|
||||||
|
|
||||||
struct pxa27x_keyboard_platform_data {
|
struct pxa27x_keypad_platform_data {
|
||||||
int nr_rows, nr_cols;
|
int nr_rows, nr_cols;
|
||||||
int keycodes[PXAKBD_MAXROW][PXAKBD_MAXCOL];
|
int keycodes[PXAKBD_MAXROW][PXAKBD_MAXCOL];
|
||||||
int gpio_modes[PXAKBD_MAXROW + PXAKBD_MAXCOL];
|
int gpio_modes[PXAKBD_MAXROW + PXAKBD_MAXCOL];
|
Loading…
x
Reference in New Issue
Block a user