|
28 | 28 | #include <linux/spi/spi.h>
|
29 | 29 | #include <linux/regulator/machine.h>
|
30 | 30 | #include <linux/fsl_devices.h>
|
| 31 | +#include <linux/input/matrix_keypad.h> |
31 | 32 |
|
32 | 33 | #include <mach/hardware.h>
|
33 | 34 | #include <asm/mach-types.h>
|
@@ -82,6 +83,35 @@ static int mx31_3ds_pins[] = {
|
82 | 83 | MX31_PIN_USBOTG_DIR__USBOTG_DIR,
|
83 | 84 | MX31_PIN_USBOTG_NXT__USBOTG_NXT,
|
84 | 85 | MX31_PIN_USBOTG_STP__USBOTG_STP,
|
| 86 | + /*Keyboard*/ |
| 87 | + MX31_PIN_KEY_ROW0_KEY_ROW0, |
| 88 | + MX31_PIN_KEY_ROW1_KEY_ROW1, |
| 89 | + MX31_PIN_KEY_ROW2_KEY_ROW2, |
| 90 | + MX31_PIN_KEY_COL0_KEY_COL0, |
| 91 | + MX31_PIN_KEY_COL1_KEY_COL1, |
| 92 | + MX31_PIN_KEY_COL2_KEY_COL2, |
| 93 | + MX31_PIN_KEY_COL3_KEY_COL3, |
| 94 | +}; |
| 95 | + |
| 96 | +/* |
| 97 | + * Matrix keyboard |
| 98 | + */ |
| 99 | + |
| 100 | +static const uint32_t mx31_3ds_keymap[] = { |
| 101 | + KEY(0, 0, KEY_UP), |
| 102 | + KEY(0, 1, KEY_DOWN), |
| 103 | + KEY(1, 0, KEY_RIGHT), |
| 104 | + KEY(1, 1, KEY_LEFT), |
| 105 | + KEY(1, 2, KEY_ENTER), |
| 106 | + KEY(2, 0, KEY_F6), |
| 107 | + KEY(2, 1, KEY_F8), |
| 108 | + KEY(2, 2, KEY_F9), |
| 109 | + KEY(2, 3, KEY_F10), |
| 110 | +}; |
| 111 | + |
| 112 | +static struct matrix_keymap_data mx31_3ds_keymap_data = { |
| 113 | + .keymap = mx31_3ds_keymap, |
| 114 | + .keymap_size = ARRAY_SIZE(mx31_3ds_keymap), |
85 | 115 | };
|
86 | 116 |
|
87 | 117 | /* Regulators */
|
@@ -367,6 +397,8 @@ static void __init mxc_board_init(void)
|
367 | 397 | spi_register_board_info(mx31_3ds_spi_devs,
|
368 | 398 | ARRAY_SIZE(mx31_3ds_spi_devs));
|
369 | 399 |
|
| 400 | + mxc_register_device(&imx_kpp_device, &mx31_3ds_keymap_data); |
| 401 | + |
370 | 402 | mx31_3ds_usbotg_init();
|
371 | 403 | mxc_register_device(&mxc_otg_udc_device, &usbotg_pdata);
|
372 | 404 |
|
|
0 commit comments