From 8e6d938f904813dd5f2606882e4e6a460317fc84 Mon Sep 17 00:00:00 2001 From: Tim Crawford Date: Fri, 16 Jun 2023 14:38:16 -0600 Subject: [PATCH] Add new keyboards Replace micmute and darp9 layouts with new keyboards. Signed-off-by: Tim Crawford --- .../system76/18H9LHA04/include/board/keymap.h | 63 +++++++++++++++++++ src/keyboard/system76/18H9LHA04/keyboard.mk | 7 +++ .../system76/18H9LHA04/keymap/default.c | 26 ++++++++ .../system76/18H9LHA05/include/board/keymap.h | 63 +++++++++++++++++++ src/keyboard/system76/18H9LHA05/keyboard.mk | 7 +++ .../system76/18H9LHA05/keymap/default.c | 26 ++++++++ 6 files changed, 192 insertions(+) create mode 100644 src/keyboard/system76/18H9LHA04/include/board/keymap.h create mode 100644 src/keyboard/system76/18H9LHA04/keyboard.mk create mode 100644 src/keyboard/system76/18H9LHA04/keymap/default.c create mode 100644 src/keyboard/system76/18H9LHA05/include/board/keymap.h create mode 100644 src/keyboard/system76/18H9LHA05/keyboard.mk create mode 100644 src/keyboard/system76/18H9LHA05/keymap/default.c diff --git a/src/keyboard/system76/18H9LHA04/include/board/keymap.h b/src/keyboard/system76/18H9LHA04/include/board/keymap.h new file mode 100644 index 0000000..f73d9fa --- /dev/null +++ b/src/keyboard/system76/18H9LHA04/include/board/keymap.h @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: GPL-3.0-only + +#ifndef _BOARD_KEYMAP_H +#define _BOARD_KEYMAP_H + +// Keymap layers (normal, Fn) +#define KM_LAY 2 +// Keymap output pins +#define KM_OUT 18 +// Keymap input pins +#define KM_IN 8 + +// common/keymap.h requires KM_LAY, KM_OUT, and KM_IN definitions +#include + +// International keys +#ifndef KI1 +#define KI1 K_INT_1 +#endif +#ifndef KI2 +#define KI2 K_INT_2 +#endif + +// clang-format off +// Conversion of physical layout to keyboard matrix +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C \ +) { \ + { ___, ___, ___, ___, ___, ___, K50, K57 }, \ + { ___, ___, ___, ___, ___, ___, K53, K55 }, \ + { ___, ___, ___, ___, ___, ___, K40, K4B }, \ + { K52, ___, ___, ___, ___, ___, ___, K54 }, \ + { K41, K1H, ___, K2F, K4E, ___, ___, ___ }, \ + { K0I, K22, ___, ___, K1E, K3D, K3F, K30 }, \ + { K0J, K1B, K23, K39, ___, ___, K47, ___ }, \ + { K38, K26, K1A, K24, ___, K3A, K20, K00 }, \ + { K5B, K37, K2C, K19, K25, K07, K18, K01 }, \ + { K5C, K34, K36, K02, ___, K4G, K3B, K45 }, \ + { K1F, K48, ___, K2B, K32, K08, K06, K12 }, \ + { K1G, K49, K17, K33, ___, ___, K11, K2A }, \ + { K2D, KI1, K31, K4A, KI2, K03, K28, K16 }, \ + { ___, K44, K0D, K09, K46, K29, K15, K05 }, \ + { K21, K0A, K2E, K04, K3E, K0E, K0F, K14 }, \ + { K56, K42, K3C, K2H, K27, K2G, K13, K1D }, \ + { K0H, K0G, K43, K4C, K59, K10, K0B, K0C }, \ + { K35, K1C, K4F, K51, K4D, K58, K5A, ___ } \ +} +// clang-format on + +// Position of physical Esc key in the matrix +#define MATRIX_ESC_INPUT 7 +#define MATRIX_ESC_OUTPUT 7 + +// Position of physical Fn key in the matrix +#define MATRIX_FN_INPUT 3 +#define MATRIX_FN_OUTPUT 17 + +#endif // _BOARD_KEYMAP_H diff --git a/src/keyboard/system76/18H9LHA04/keyboard.mk b/src/keyboard/system76/18H9LHA04/keyboard.mk new file mode 100644 index 0000000..5b7eafc --- /dev/null +++ b/src/keyboard/system76/18H9LHA04/keyboard.mk @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-3.0-only + +KEYMAP?=default +keyboard-y += keymap/$(KEYMAP).c + +INCLUDE += $(KEYBOARD_DIR)/keyboard.mk +CFLAGS+=-I$(KEYBOARD_DIR)/include diff --git a/src/keyboard/system76/18H9LHA04/keymap/default.c b/src/keyboard/system76/18H9LHA04/keymap/default.c new file mode 100644 index 0000000..703de6a --- /dev/null +++ b/src/keyboard/system76/18H9LHA04/keymap/default.c @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-3.0-only + +// 18H9-9430G-RGB-RF - X2 + +#include + +// clang-format off +uint16_t __code KEYMAP[KM_LAY][KM_OUT][KM_IN] = { +LAYOUT( + K_ESC, K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, K_F9, K_F10, K_F11, K_F12, K_PRINT_SCREEN, K_INSERT, K_DEL, K_HOME, K_END, K_PGUP, K_PGDN, + K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP, K_NUM_LOCK, K_NUM_SLASH, K_NUM_ASTERISK, K_NUM_MINUS, + K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_BACKSLASH, K_NUM_7, K_NUM_8, K_NUM_9, K_NUM_PLUS, + K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER, K_NUM_4, K_NUM_5, K_NUM_6, + K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_RIGHT_SHIFT, K_UP, K_NUM_1, K_NUM_2, K_NUM_3, K_NUM_ENTER, + K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_APP, K_RIGHT_CTRL, K_LEFT, K_DOWN, K_RIGHT, K_NUM_0, K_NUM_PERIOD +), +LAYOUT( + K_ESC, K_TOUCHPAD, K_MIC_MUTE, K_MUTE, K_F4, K_VOLUME_DOWN, K_VOLUME_UP, K_DISPLAY_MODE, K_BRIGHTNESS_DOWN, K_BRIGHTNESS_UP, K_CAMERA_TOGGLE, K_AIRPLANE_MODE, K_SUSPEND, K_PRINT_SCREEN, K_SCROLL_LOCK, K_DEL, K_HOME, K_END, K_PAUSE, K_PAUSE, + K_PLAY_PAUSE, K_FAN_TOGGLE, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP, K_NUM_LOCK, K_KBD_COLOR, K_KBD_TOGGLE, K_KBD_DOWN, + K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_BACKSLASH, K_NUM_7, K_NUM_8, K_NUM_9, K_KBD_UP, + K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER, K_NUM_4, K_NUM_5, K_NUM_6, + K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_RIGHT_SHIFT, K_UP, K_NUM_1, K_NUM_2, K_NUM_3, K_NUM_ENTER, + K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_APP, K_RIGHT_CTRL, K_LEFT, K_DOWN, K_RIGHT, K_NUM_0, K_NUM_PERIOD +) +}; +// clang-format on diff --git a/src/keyboard/system76/18H9LHA05/include/board/keymap.h b/src/keyboard/system76/18H9LHA05/include/board/keymap.h new file mode 100644 index 0000000..f73d9fa --- /dev/null +++ b/src/keyboard/system76/18H9LHA05/include/board/keymap.h @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: GPL-3.0-only + +#ifndef _BOARD_KEYMAP_H +#define _BOARD_KEYMAP_H + +// Keymap layers (normal, Fn) +#define KM_LAY 2 +// Keymap output pins +#define KM_OUT 18 +// Keymap input pins +#define KM_IN 8 + +// common/keymap.h requires KM_LAY, KM_OUT, and KM_IN definitions +#include + +// International keys +#ifndef KI1 +#define KI1 K_INT_1 +#endif +#ifndef KI2 +#define KI2 K_INT_2 +#endif + +// clang-format off +// Conversion of physical layout to keyboard matrix +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I, K0J, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, \ + K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C \ +) { \ + { ___, ___, ___, ___, ___, ___, K50, K57 }, \ + { ___, ___, ___, ___, ___, ___, K53, K55 }, \ + { ___, ___, ___, ___, ___, ___, K40, K4B }, \ + { K52, ___, ___, ___, ___, ___, ___, K54 }, \ + { K41, K1H, ___, K2F, K4E, ___, ___, ___ }, \ + { K0I, K22, ___, ___, K1E, K3D, K3F, K30 }, \ + { K0J, K1B, K23, K39, ___, ___, K47, ___ }, \ + { K38, K26, K1A, K24, ___, K3A, K20, K00 }, \ + { K5B, K37, K2C, K19, K25, K07, K18, K01 }, \ + { K5C, K34, K36, K02, ___, K4G, K3B, K45 }, \ + { K1F, K48, ___, K2B, K32, K08, K06, K12 }, \ + { K1G, K49, K17, K33, ___, ___, K11, K2A }, \ + { K2D, KI1, K31, K4A, KI2, K03, K28, K16 }, \ + { ___, K44, K0D, K09, K46, K29, K15, K05 }, \ + { K21, K0A, K2E, K04, K3E, K0E, K0F, K14 }, \ + { K56, K42, K3C, K2H, K27, K2G, K13, K1D }, \ + { K0H, K0G, K43, K4C, K59, K10, K0B, K0C }, \ + { K35, K1C, K4F, K51, K4D, K58, K5A, ___ } \ +} +// clang-format on + +// Position of physical Esc key in the matrix +#define MATRIX_ESC_INPUT 7 +#define MATRIX_ESC_OUTPUT 7 + +// Position of physical Fn key in the matrix +#define MATRIX_FN_INPUT 3 +#define MATRIX_FN_OUTPUT 17 + +#endif // _BOARD_KEYMAP_H diff --git a/src/keyboard/system76/18H9LHA05/keyboard.mk b/src/keyboard/system76/18H9LHA05/keyboard.mk new file mode 100644 index 0000000..5b7eafc --- /dev/null +++ b/src/keyboard/system76/18H9LHA05/keyboard.mk @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-3.0-only + +KEYMAP?=default +keyboard-y += keymap/$(KEYMAP).c + +INCLUDE += $(KEYBOARD_DIR)/keyboard.mk +CFLAGS+=-I$(KEYBOARD_DIR)/include diff --git a/src/keyboard/system76/18H9LHA05/keymap/default.c b/src/keyboard/system76/18H9LHA05/keymap/default.c new file mode 100644 index 0000000..62053a3 --- /dev/null +++ b/src/keyboard/system76/18H9LHA05/keymap/default.c @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-3.0-only + +// 18H9-NEW10-white-RF - X2 + +#include + +// clang-format off +uint16_t __code KEYMAP[KM_LAY][KM_OUT][KM_IN] = { +LAYOUT( + K_ESC, K_F1, K_F2, K_F3, K_F4, K_F5, K_F6, K_F7, K_F8, K_F9, K_F10, K_F11, K_F12, K_PRINT_SCREEN, K_INSERT, K_DEL, K_HOME, K_END, K_PGUP, K_PGDN, + K_TICK, K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP, K_NUM_LOCK, K_NUM_SLASH, K_NUM_ASTERISK, K_NUM_MINUS, + K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_BACKSLASH, K_NUM_7, K_NUM_8, K_NUM_9, K_NUM_PLUS, + K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER, K_NUM_4, K_NUM_5, K_NUM_6, + K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_RIGHT_SHIFT, K_UP, K_NUM_1, K_NUM_2, K_NUM_3, K_NUM_ENTER, + K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_APP, K_RIGHT_CTRL, K_LEFT, K_DOWN, K_RIGHT, K_NUM_0, K_NUM_PERIOD +), +LAYOUT( + K_ESC, K_TOUCHPAD, K_MIC_MUTE, K_MUTE, K_F4, K_VOLUME_DOWN, K_VOLUME_UP, K_DISPLAY_MODE, K_BRIGHTNESS_DOWN, K_BRIGHTNESS_UP, K_CAMERA_TOGGLE, K_AIRPLANE_MODE, K_SUSPEND, K_PRINT_SCREEN, K_SCROLL_LOCK, K_DEL, K_HOME, K_END, K_PAUSE, K_PAUSE, + K_PLAY_PAUSE, K_FAN_TOGGLE, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9, K_0, K_MINUS, K_EQUALS, K_BKSP, K_NUM_LOCK, K_KBD_BKL, K_KBD_TOGGLE, K_KBD_DOWN, + K_TAB, K_Q, K_W, K_E, K_R, K_T, K_Y, K_U, K_I, K_O, K_P, K_BRACE_OPEN, K_BRACE_CLOSE, K_BACKSLASH, K_NUM_7, K_NUM_8, K_NUM_9, K_KBD_UP, + K_CAPS, K_A, K_S, K_D, K_F, K_G, K_H, K_J, K_K, K_L, K_SEMICOLON, K_QUOTE, K_ENTER, K_NUM_4, K_NUM_5, K_NUM_6, + K_LEFT_SHIFT, K_Z, K_X, K_C, K_V, K_B, K_N, K_M, K_COMMA, K_PERIOD, K_SLASH, K_RIGHT_SHIFT, K_UP, K_NUM_1, K_NUM_2, K_NUM_3, K_NUM_ENTER, + K_LEFT_CTRL, KT_FN, K_LEFT_SUPER, K_LEFT_ALT, K_SPACE, K_RIGHT_ALT, K_APP, K_RIGHT_CTRL, K_LEFT, K_DOWN, K_RIGHT, K_NUM_0, K_NUM_PERIOD +) +}; +// clang-format on