]> git.donarmstrong.com Git - tmk_firmware.git/commitdiff
Add bootmagic keys.(hhkb)
authortmk <nobody@nowhere>
Tue, 22 Jan 2013 03:30:30 +0000 (12:30 +0900)
committertmk <nobody@nowhere>
Wed, 23 Jan 2013 14:51:15 +0000 (23:51 +0900)
- kick bootloader
- enable debug print

common/keyboard.c
keyboard/hhkb/config.h

index ea4d0ee7e6128457479a286250113a690fe091b4..9f0ca76769216dbc184735189084a8fed3e92cfd 100644 (file)
@@ -40,6 +40,17 @@ void keyboard_init(void)
 
     timer_init();
     matrix_init();
+
+    /* boot magic keys goes here */
+    matrix_scan();
+#ifdef IS_BOOTMAGIC_BOOTLOADER
+    /* kick up bootloader */
+    if (IS_BOOTMAGIC_BOOTLOADER()) bootloader_jump();
+#endif
+#ifdef IS_BOOTMAGIC_DEBUG
+    if (IS_BOOTMAGIC_DEBUG()) debug_enable = true;
+#endif
+
 #ifdef PS2_MOUSE_ENABLE
     ps2_mouse_init();
 #endif
index cca75f2434d9692d2ea09cc53ed5095d3e008aa9..66dede9a5cf31d6e8010c57e69cf3301c000878c 100644 (file)
@@ -37,6 +37,20 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define MATRIX_COLS 8
 
 
+/* 
+ * Boot magic keys
+ * call some function by pressing key when pluging cable or powering on.
+ */
+/* key position on matrix(ROW:COL) */
+#define KEY_FN          0x54
+#define KEY_D           0x14
+#define KEY_IS_ON(key)  matrix_is_on((key)>>4, (key)&0xF)
+/* kick up bootloader */
+#define IS_BOOTMAGIC_BOOTLOADER()       KEY_IS_ON(KEY_FN)
+/* debug on */
+#define IS_BOOTMAGIC_DEBUG()            KEY_IS_ON(KEY_D)
+
+
 /* key combination for command */
 #define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))