2021-06-04 16:22:10 -06:00

81 lines
3.2 KiB
C

// 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 16
// Keymap input pins
#define KM_IN 8
// common/keymap.h requires KM_LAY, KM_OUT, and KM_IN definitions
#include <common/keymap.h>
// Conversion of physical ANSI layout to keyboard matrix
#define LAYOUT( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, \
K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, \
K60, K61, K62 \
) { \
{ ___, ___, ___, ___, ___, ___, K52, ___ }, \
{ ___, ___, ___, ___, ___, ___, K50, K56 }, \
{ ___, ___, ___, ___, ___, ___, K53, K55 }, \
{ ___, ___, ___, ___, ___, ___, K40, K4B }, \
{ K42, K41, K30, K31, K20, ___, K54, K21 }, \
{ K44, K43, ___, K33, ___, ___, ___, K23 }, \
{ K51, K45, K34, K35, K24, K25, ___, ___ }, \
{ ___, K46, K36, K26, K12, K11, K10, K00 }, \
{ K28, K47, K27, K15, K14, K13, K02, K01 }, \
{ K22, K37, K38, ___, K17, K16, K04, K03 }, \
{ K32, K48, K39, K29, K19, K18, K06, K05 }, \
{ ___, K58, K49, K3A, K2A, K1A, K08, K07 }, \
{ ___, ___, K4A, K3B, K2B, K1B, K0A, K09 }, \
{ ___, ___, K0D, K2C, K1C, K62, K0E, K0B }, \
{ ___, K2D, K60, K1D, K57, K0F, ___, K0G }, \
{ ___, ___, K3C, ___, K61, K0C, ___, K59 } \
}
// Conversion of physical ISO layout to keyboard matrix
#define LAYOUT_ISO( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, \
K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, \
K60, K61, K62 \
) { \
{ ___, ___, ___, ___, ___, ___, K52, ___ }, \
{ ___, ___, ___, ___, ___, ___, K50, K56 }, \
{ ___, ___, ___, ___, ___, ___, K53, K55 }, \
{ ___, ___, ___, ___, ___, ___, K40, K4C }, \
{ K43, K42, K30, K31, K20, ___, K54, K21 }, \
{ K45, K44, ___, K33, ___, ___, ___, K23 }, \
{ K51, K46, K34, K35, K24, K25, ___, ___ }, \
{ ___, K47, K36, K26, K12, K11, K10, K00 }, \
{ K28, K48, K27, K15, K14, K13, K02, K01 }, \
{ K22, K37, K38, ___, K17, K16, K04, K03 }, \
{ K32, K49, K39, K29, K19, K18, K06, K05 }, \
{ ___, K58, K4A, K3A, K2A, K1A, K08, K07 }, \
{ ___, K41, K4B, K3B, K2B, K1B, K0A, K09 }, \
{ K3C, ___, K0D, K2C, K1C, K62, K0E, K0B }, \
{ ___, ___, K60, K1D, K57, K0F, ___, K0G }, \
{ ___, ___, K2D, ___, K61, K0C, ___, K59 } \
}
// 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 0
#define MATRIX_FN_OUTPUT 6
#endif // _BOARD_KEYMAP_H