|
@@ -181,3 +181,125 @@
|
|
|
static const unsigned int htc_herald_keymap[] = {
|
|
|
KEY(0, 0, KEY_RECORD), /* Mail button */
|
|
|
KEY(1, 0, KEY_CAMERA), /* Camera */
|
|
|
+ KEY(2, 0, KEY_PHONE), /* Send key */
|
|
|
+ KEY(3, 0, KEY_VOLUMEUP), /* Volume up */
|
|
|
+ KEY(4, 0, KEY_F2), /* Right bar (landscape) */
|
|
|
+ KEY(5, 0, KEY_MAIL), /* Win key (portrait) */
|
|
|
+ KEY(6, 0, KEY_DIRECTORY), /* Right bar (protrait) */
|
|
|
+ KEY(0, 1, KEY_LEFTCTRL), /* Windows key */
|
|
|
+ KEY(1, 1, KEY_COMMA),
|
|
|
+ KEY(2, 1, KEY_M),
|
|
|
+ KEY(3, 1, KEY_K),
|
|
|
+ KEY(4, 1, KEY_SLASH), /* OK key */
|
|
|
+ KEY(5, 1, KEY_I),
|
|
|
+ KEY(6, 1, KEY_U),
|
|
|
+ KEY(0, 2, KEY_LEFTALT),
|
|
|
+ KEY(1, 2, KEY_TAB),
|
|
|
+ KEY(2, 2, KEY_N),
|
|
|
+ KEY(3, 2, KEY_J),
|
|
|
+ KEY(4, 2, KEY_ENTER),
|
|
|
+ KEY(5, 2, KEY_H),
|
|
|
+ KEY(6, 2, KEY_Y),
|
|
|
+ KEY(0, 3, KEY_SPACE),
|
|
|
+ KEY(1, 3, KEY_L),
|
|
|
+ KEY(2, 3, KEY_B),
|
|
|
+ KEY(3, 3, KEY_V),
|
|
|
+ KEY(4, 3, KEY_BACKSPACE),
|
|
|
+ KEY(5, 3, KEY_G),
|
|
|
+ KEY(6, 3, KEY_T),
|
|
|
+ KEY(0, 4, KEY_CAPSLOCK), /* Shift */
|
|
|
+ KEY(1, 4, KEY_C),
|
|
|
+ KEY(2, 4, KEY_F),
|
|
|
+ KEY(3, 4, KEY_R),
|
|
|
+ KEY(4, 4, KEY_O),
|
|
|
+ KEY(5, 4, KEY_E),
|
|
|
+ KEY(6, 4, KEY_D),
|
|
|
+ KEY(0, 5, KEY_X),
|
|
|
+ KEY(1, 5, KEY_Z),
|
|
|
+ KEY(2, 5, KEY_S),
|
|
|
+ KEY(3, 5, KEY_W),
|
|
|
+ KEY(4, 5, KEY_P),
|
|
|
+ KEY(5, 5, KEY_Q),
|
|
|
+ KEY(6, 5, KEY_A),
|
|
|
+ KEY(0, 6, KEY_CONNECT), /* Voice button */
|
|
|
+ KEY(2, 6, KEY_CANCEL), /* End key */
|
|
|
+ KEY(3, 6, KEY_VOLUMEDOWN), /* Volume down */
|
|
|
+ KEY(4, 6, KEY_F1), /* Left bar (landscape) */
|
|
|
+ KEY(5, 6, KEY_WWW), /* OK button (portrait) */
|
|
|
+ KEY(6, 6, KEY_CALENDAR), /* Left bar (portrait) */
|
|
|
+};
|
|
|
+
|
|
|
+static const struct matrix_keymap_data htc_herald_keymap_data = {
|
|
|
+ .keymap = htc_herald_keymap,
|
|
|
+ .keymap_size = ARRAY_SIZE(htc_herald_keymap),
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_kp_platform_data htcherald_kp_data = {
|
|
|
+ .rows = 7,
|
|
|
+ .cols = 7,
|
|
|
+ .delay = 20,
|
|
|
+ .rep = true,
|
|
|
+ .keymap_data = &htc_herald_keymap_data,
|
|
|
+};
|
|
|
+
|
|
|
+static struct resource kp_resources[] = {
|
|
|
+ [0] = {
|
|
|
+ .start = INT_7XX_MPUIO_KEYPAD,
|
|
|
+ .end = INT_7XX_MPUIO_KEYPAD,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device kp_device = {
|
|
|
+ .name = "omap-keypad",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &htcherald_kp_data,
|
|
|
+ },
|
|
|
+ .num_resources = ARRAY_SIZE(kp_resources),
|
|
|
+ .resource = kp_resources,
|
|
|
+};
|
|
|
+
|
|
|
+/* GPIO buttons for keyboard slide and power button */
|
|
|
+static struct gpio_keys_button herald_gpio_keys_table[] = {
|
|
|
+ {BTN_0, HTCHERALD_GPIO_POWER, 1, "POWER", EV_KEY, 1, 20},
|
|
|
+ {SW_LID, HTCHERALD_GPIO_SLIDE, 0, "SLIDE", EV_SW, 1, 20},
|
|
|
+
|
|
|
+ {KEY_LEFT, HTCPLD_GPIO_LEFT_KBD, 1, "LEFT", EV_KEY, 1, 20},
|
|
|
+ {KEY_RIGHT, HTCPLD_GPIO_RIGHT_KBD, 1, "RIGHT", EV_KEY, 1, 20},
|
|
|
+ {KEY_UP, HTCPLD_GPIO_UP_KBD, 1, "UP", EV_KEY, 1, 20},
|
|
|
+ {KEY_DOWN, HTCPLD_GPIO_DOWN_KBD, 1, "DOWN", EV_KEY, 1, 20},
|
|
|
+
|
|
|
+ {KEY_LEFT, HTCPLD_GPIO_LEFT_DPAD, 1, "DLEFT", EV_KEY, 1, 20},
|
|
|
+ {KEY_RIGHT, HTCPLD_GPIO_RIGHT_DPAD, 1, "DRIGHT", EV_KEY, 1, 20},
|
|
|
+ {KEY_UP, HTCPLD_GPIO_UP_DPAD, 1, "DUP", EV_KEY, 1, 20},
|
|
|
+ {KEY_DOWN, HTCPLD_GPIO_DOWN_DPAD, 1, "DDOWN", EV_KEY, 1, 20},
|
|
|
+ {KEY_ENTER, HTCPLD_GPIO_ENTER_DPAD, 1, "DENTER", EV_KEY, 1, 20},
|
|
|
+};
|
|
|
+
|
|
|
+static struct gpio_keys_platform_data herald_gpio_keys_data = {
|
|
|
+ .buttons = herald_gpio_keys_table,
|
|
|
+ .nbuttons = ARRAY_SIZE(herald_gpio_keys_table),
|
|
|
+ .rep = true,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device herald_gpiokeys_device = {
|
|
|
+ .name = "gpio-keys",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &herald_gpio_keys_data,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+/* LEDs for the Herald. These connect to the HTCPLD GPIO device. */
|
|
|
+static struct gpio_led gpio_leds[] = {
|
|
|
+ {"dpad", NULL, HTCPLD_GPIO_LED_DPAD, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"kbd", NULL, HTCPLD_GPIO_LED_KBD, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"vibrate", NULL, HTCPLD_GPIO_LED_VIBRATE, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"green_solid", NULL, HTCPLD_GPIO_LED_GREEN_SOLID, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"green_flash", NULL, HTCPLD_GPIO_LED_GREEN_FLASH, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"red_solid", "mmc0", HTCPLD_GPIO_LED_RED_SOLID, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"red_flash", NULL, HTCPLD_GPIO_LED_RED_FLASH, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"wifi", NULL, HTCPLD_GPIO_LED_WIFI, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"bt", NULL, HTCPLD_GPIO_LED_BT, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|
|
|
+ {"caps", NULL, HTCPLD_GPIO_LED_CAPS, 0, 0, LEDS_GPIO_DEFSTATE_OFF},
|