diff mbox

[v7,1/2] input: add support for Nomadik SKE keypad controller

Message ID 20100930024045.GD5260@core.coreip.homeip.net (mailing list archive)
State New, archived
Headers show

Commit Message

Dmitry Torokhov Sept. 30, 2010, 2:40 a.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 3450b74..5265fb9 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -177,7 +177,7 @@  static const unsigned int ux500_keymap[] = {
 	KEY(3, 2, KEY_7),
 };
 
-static struct matrix_keymap_data ux500_keymap_data = {
+static const struct matrix_keymap_data ux500_keymap_data = {
 	.keymap         = ux500_keymap,
 	.keymap_size    = ARRAY_SIZE(ux500_keymap),
 };
diff --git a/arch/arm/plat-nomadik/include/plat/ske.h b/arch/arm/plat-nomadik/include/plat/ske.h
index 148b2bc..31382fb 100644
--- a/arch/arm/plat-nomadik/include/plat/ske.h
+++ b/arch/arm/plat-nomadik/include/plat/ske.h
@@ -40,7 +40,7 @@ 
 struct ske_keypad_platform_data {
 	int (*init)(void);
 	int (*exit)(void);
-	struct matrix_keymap_data *keymap_data;
+	const struct matrix_keymap_data *keymap_data;
 	u8 krow;
 	u8 kcol;
 	u8 debounce_ms;
diff --git a/drivers/input/keyboard/nomadik-ske-keypad.c b/drivers/input/keyboard/nomadik-ske-keypad.c
index 8c6ce8a..6e0f230 100644
--- a/drivers/input/keyboard/nomadik-ske-keypad.c
+++ b/drivers/input/keyboard/nomadik-ske-keypad.c
@@ -83,7 +83,7 @@  static void ske_keypad_set_bits(struct ske_keypad *keypad, u16 addr,
 }
 
 /*
- * ske_keypad_chip_init : init keypad controller configuration
+ * ske_keypad_chip_init: init keypad controller configuration
  *
  * Enable Multi key press detection, auto scan mode
  */
@@ -144,7 +144,7 @@  static void ske_keypad_read_data(struct ske_keypad *keypad)
 	 * Read the auto scan registers
 	 *
 	 * Each SKE_ASRx (x=0 to x=3) contains two row values.
-	 * lower byte contains row value for coloumn 2*x,
+	 * lower byte contains row value for column 2*x,
 	 * upper byte contains row value for column 2*x + 1
 	 */
 	for (i = 0; i < SKE_NUM_ASRX_REGISTERS; i++) {
@@ -152,7 +152,7 @@  static void ske_keypad_read_data(struct ske_keypad *keypad)
 		if (!ske_asr)
 			continue;
 
-		/* now that ASRx is zero, find out the coloumn x and row y*/
+		/* now that ASRx is zero, find out the column x and row y*/
 		if (ske_asr & 0xff) {
 			col = i * 2;
 			status = ske_asr & 0xff;
@@ -251,7 +251,7 @@  static int __devinit ske_keypad_probe(struct platform_device *pdev)
 
 	keypad->clk = clk_get(&pdev->dev, NULL);
 	if (IS_ERR(keypad->clk)) {
-		dev_err(&pdev->dev, "failed to clk_get\n");
+		dev_err(&pdev->dev, "failed to get clk\n");
 		error = PTR_ERR(keypad->clk);
 		goto err_iounmap;
 	}
@@ -285,8 +285,8 @@  static int __devinit ske_keypad_probe(struct platform_device *pdev)
 		goto err_clk_disable;
 	}
 
-	error = request_irq(keypad->irq, ske_keypad_irq, 0,
-			"ske-keypad", keypad);
+	error = request_threaded_irq(keypad->irq, NULL, ske_keypad_irq,
+				     IRQF_ONESHOT, "ske-keypad", keypad);
 	if (error) {
 		dev_err(&pdev->dev, "allocate irq %d failed\n", keypad->irq);
 		goto err_clk_disable;