summaryrefslogtreecommitdiff
path: root/quantum
diff options
context:
space:
mode:
Diffstat (limited to 'quantum')
-rw-r--r--quantum/config_common.h116
-rw-r--r--quantum/keymap_common.c19
-rw-r--r--quantum/matrix.c10
3 files changed, 141 insertions, 4 deletions
diff --git a/quantum/config_common.h b/quantum/config_common.h
new file mode 100644
index 0000000000..da53fce89b
--- /dev/null
+++ b/quantum/config_common.h
@@ -0,0 +1,116 @@
+#ifndef CONFIG_DEFINITIONS_H
+#define CONFIG_DEFINITIONS_H
+
+#define B0 0x20
+#define B1 0x21
+#define B2 0x22
+#define B3 0x23
+#define B4 0x24
+#define B5 0x25
+#define B6 0x26
+#define B7 0x27
+#define C0 0x30
+#define C1 0x31
+#define C2 0x32
+#define C3 0x33
+#define C4 0x34
+#define C5 0x35
+#define C6 0x36
+#define C7 0x37
+#define D0 0x40
+#define D1 0x41
+#define D2 0x42
+#define D3 0x43
+#define D4 0x44
+#define D5 0x45
+#define D6 0x46
+#define D7 0x47
+#define E0 0x50
+#define E1 0x51
+#define E2 0x52
+#define E3 0x53
+#define E4 0x54
+#define E5 0x55
+#define E6 0x56
+#define E7 0x57
+#define F0 0x60
+#define F1 0x61
+#define F2 0x62
+#define F3 0x63
+#define F4 0x64
+#define F5 0x65
+#define F6 0x66
+#define F7 0x67
+
+#define COL2ROW 0x0
+#define ROW2COL 0x1
+
+#ifdef BLUETOOTH_ENABLE
+#ifdef __AVR_ATmega32U4__
+ #define SERIAL_UART_BAUD 9600
+ #define SERIAL_UART_DATA UDR1
+ #define SERIAL_UART_UBRR ((F_CPU/(16UL*SERIAL_UART_BAUD))-1)
+ #define SERIAL_UART_RXD_VECT USART1_RX_vect
+ #define SERIAL_UART_TXD_READY (UCSR1A&(1<<UDRE1))
+ #define SERIAL_UART_INIT() do { \
+ UBRR1L = (uint8_t) SERIAL_UART_UBRR; /* baud rate */ \
+ UBRR1H = (uint8_t) (SERIAL_UART_UBRR>>8); /* baud rate */ \
+ UCSR1B = (1<<TXEN1); /* TX: enable */ \
+ UCSR1C = (0<<UPM11) | (0<<UPM10) | /* parity: none(00), even(01), odd(11) */ \
+ (0<<UCSZ12) | (1<<UCSZ11) | (1<<UCSZ10); /* data-8bit(011) */ \
+ sei(); \
+ } while(0)
+#else
+# error "USART configuration is needed."
+#endif
+
+
+// I'm fairly sure these aren't needed, but oh well - Jack
+
+/*
+ * PS/2 Interrupt configuration
+ */
+#ifdef PS2_USE_INT
+/* uses INT1 for clock line(ATMega32U4) */
+#define PS2_CLOCK_PORT PORTD
+#define PS2_CLOCK_PIN PIND
+#define PS2_CLOCK_DDR DDRD
+#define PS2_CLOCK_BIT 1
+
+#define PS2_DATA_PORT PORTD
+#define PS2_DATA_PIN PIND
+#define PS2_DATA_DDR DDRD
+#define PS2_DATA_BIT 0
+
+#define PS2_INT_INIT() do { \
+ EICRA |= ((1<<ISC11) | \
+ (0<<ISC10)); \
+} while (0)
+#define PS2_INT_ON() do { \
+ EIMSK |= (1<<INT1); \
+} while (0)
+#define PS2_INT_OFF() do { \
+ EIMSK &= ~(1<<INT1); \
+} while (0)
+#define PS2_INT_VECT INT1_vect
+#endif
+
+/*
+ * PS/2 Busywait configuration
+ */
+#ifdef PS2_USE_BUSYWAIT
+#define PS2_CLOCK_PORT PORTD
+#define PS2_CLOCK_PIN PIND
+#define PS2_CLOCK_DDR DDRD
+#define PS2_CLOCK_BIT 1
+
+#define PS2_DATA_PORT PORTD
+#define PS2_DATA_PIN PIND
+#define PS2_DATA_DDR DDRD
+#define PS2_DATA_BIT 0
+#endif
+
+#endif
+
+#endif
+
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c
index 66cf2883c7..c9e1494fd9 100644
--- a/quantum/keymap_common.c
+++ b/quantum/keymap_common.c
@@ -37,15 +37,18 @@ action_t action_for_key(uint8_t layer, keypos_t key)
// Has a modifier
action_t action;
// Split it up
- action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF);
+ action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key
return action;
} else if (keycode >= 0x2000 && keycode < 0x3000) {
- // Is a shortcut for function layer, pull last 12bits
+ // Is a shortcut for function layer, pull last 12bits
+ // This means we have 4,096 FN macros at our disposal
return keymap_func_to_action(keycode & 0xFFF);
} else if (keycode >= 0x3000 && keycode < 0x4000) {
+ // When the code starts with 3, it's an action macro.
action_t action;
action.code = ACTION_MACRO(keycode & 0xFF);
return action;
+#ifdef BACKLIGHT_ENABLE
} else if (keycode >= BL_0 & keycode <= BL_15) {
action_t action;
action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F);
@@ -66,10 +69,12 @@ action_t action_for_key(uint8_t layer, keypos_t key)
action_t action;
action.code = ACTION_BACKLIGHT_STEP();
return action;
- } else if (keycode == RESET) {
+#endif
+ } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here
bootloader_jump();
return;
- } else if (keycode == DEBUG) {
+ } else if (keycode == DEBUG) { // DEBUG is 0x5001
+ // TODO: Does this actually work?
print("\nDEBUG: enabled.\n");
debug_enable = true;
return;
@@ -79,15 +84,21 @@ action_t action_for_key(uint8_t layer, keypos_t key)
action_t action;
action.code = ACTION_LAYER_SET(layer, when);
return action;
+#ifdef MIDI_ENABLE
} else if (keycode >= 0x6000 && keycode < 0x7000) {
action_t action;
action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8);
return action;
+#endif
+#ifdef UNICODE_ENABLE
} else if (keycode >= 0x8000) {
action_t action;
uint16_t unicode = keycode & ~(0x8000);
action.code = ACTION_FUNCTION_OPT(unicode & 0xFF, (unicode & 0xFF00) >> 8);
return action;
+#endif
+ } else {
+
}
switch (keycode) {
diff --git a/quantum/matrix.c b/quantum/matrix.c
index 97642a4a4e..95bf4c0973 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -47,6 +47,16 @@ static void init_cols(void);
static void unselect_rows(void);
static void select_row(uint8_t row);
+__attribute__ ((weak))
+void * matrix_init_kb(void) {
+
+};
+
+__attribute__ ((weak))
+void * matrix_scan_kb(void) {
+
+};
+
inline
uint8_t matrix_rows(void)
{