Add new keyboards
Replace micmute and darp9 layouts with new keyboards. Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
63
src/keyboard/system76/18H9LHA04/include/board/keymap.h
Normal file
63
src/keyboard/system76/18H9LHA04/include/board/keymap.h
Normal file
@ -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 <common/keymap.h>
|
||||
|
||||
// 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
|
7
src/keyboard/system76/18H9LHA04/keyboard.mk
Normal file
7
src/keyboard/system76/18H9LHA04/keyboard.mk
Normal file
@ -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
|
26
src/keyboard/system76/18H9LHA04/keymap/default.c
Normal file
26
src/keyboard/system76/18H9LHA04/keymap/default.c
Normal file
@ -0,0 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
// 18H9-9430G-RGB-RF - X2
|
||||
|
||||
#include <board/keymap.h>
|
||||
|
||||
// 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
|
63
src/keyboard/system76/18H9LHA05/include/board/keymap.h
Normal file
63
src/keyboard/system76/18H9LHA05/include/board/keymap.h
Normal file
@ -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 <common/keymap.h>
|
||||
|
||||
// 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
|
7
src/keyboard/system76/18H9LHA05/keyboard.mk
Normal file
7
src/keyboard/system76/18H9LHA05/keyboard.mk
Normal file
@ -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
|
26
src/keyboard/system76/18H9LHA05/keymap/default.c
Normal file
26
src/keyboard/system76/18H9LHA05/keymap/default.c
Normal file
@ -0,0 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
// 18H9-NEW10-white-RF - X2
|
||||
|
||||
#include <board/keymap.h>
|
||||
|
||||
// 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
|
Reference in New Issue
Block a user