From de57799530d3184722532f93d156364067d8fcd5 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 28 May 2016 11:56:06 -0400 Subject: [PATCH] brings alps64 up-to-date (needs testing) --- keyboard/alps64/Makefile | 9 +++--- keyboard/alps64/{keymap_common.c => alps64.c} | 31 +++++++++++++------ keyboard/alps64/{keymap_common.h => alps64.h} | 21 ++----------- keyboard/alps64/config.h | 5 +++ keyboard/alps64/keymaps/default.c | 4 +-- keyboard/alps64/keymaps/hasu.c | 4 +-- keyboard/alps64/matrix.c | 5 +-- quantum/matrix.c | 6 ++-- quantum/quantum.h | 1 + 9 files changed, 44 insertions(+), 42 deletions(-) rename keyboard/alps64/{keymap_common.c => alps64.c} (57%) rename keyboard/alps64/{keymap_common.h => alps64.h} (87%) diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile index 7634c4280..bd6ecb6b9 100644 --- a/keyboard/alps64/Makefile +++ b/keyboard/alps64/Makefile @@ -42,14 +42,14 @@ TARGET = alps64 # Directory common source filess exist +TOP_DIR = ../.. TMK_DIR = ../../tmk_core # Directory keyboard dependent files exist TARGET_DIR = . # project specific files -SRC = keymap_common.c \ - matrix.c \ +SRC = alps64.c \ led.c ifdef KEYMAP @@ -127,8 +127,7 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # Search Path VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) -include $(TMK_DIR)/protocol/lufa.mk -include $(TMK_DIR)/common.mk -include $(TMK_DIR)/rules.mk +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/alps64/keymap_common.c b/keyboard/alps64/alps64.c similarity index 57% rename from keyboard/alps64/keymap_common.c rename to keyboard/alps64/alps64.c index fdb1769e1..dde10c11e 100644 --- a/keyboard/alps64/keymap_common.c +++ b/keyboard/alps64/alps64.c @@ -14,17 +14,30 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "keymap_common.h" +#include "quantum.h" +#define LED_ON() do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0) +#define LED_OFF() do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0) +#define LED_TGL() do { DDRC |= (1<<5); PINC |= (1<<5); } while (0) + +__attribute__ ((weak)) +void matrix_init_user(void) { -/* translates key to keycode */ -uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key) -{ - return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]); } -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint8_t keycode) -{ - return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; +__attribute__ ((weak)) +void matrix_scan_user(void) { + +} + +void matrix_init_kb(void) { + LED_ON(); + _delay_ms(500); + LED_OFF(); + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); } diff --git a/keyboard/alps64/keymap_common.h b/keyboard/alps64/alps64.h similarity index 87% rename from keyboard/alps64/keymap_common.h rename to keyboard/alps64/alps64.h index 957db5792..d0777201e 100644 --- a/keyboard/alps64/keymap_common.h +++ b/keyboard/alps64/alps64.h @@ -14,25 +14,10 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef KEYMAP_COMMON_H -#define KEYMAP_COMMON_H - -#include -#include -#include -#include "keycode.h" -#include "action.h" -#include "action_macro.h" -#include "report.h" -#include "host.h" -#include "print.h" -#include "debug.h" -#include "keymap.h" - - -extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -extern const uint16_t fn_actions[]; +#ifndef ALPS64_H +#define ALPS64_H +#include "quantum.h" /* Alps64 keymap definition macro */ #define KEYMAP( \ diff --git a/keyboard/alps64/config.h b/keyboard/alps64/config.h index 824d3e830..858a82ecd 100644 --- a/keyboard/alps64/config.h +++ b/keyboard/alps64/config.h @@ -18,6 +18,7 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H +#include "config_common.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED @@ -31,6 +32,10 @@ along with this program. If not, see . #define MATRIX_ROWS 8 #define MATRIX_COLS 8 +#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7 } +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, C2 } +#define UNUSED_PINS + /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST diff --git a/keyboard/alps64/keymaps/default.c b/keyboard/alps64/keymaps/default.c index a54899196..2c45dc7f3 100644 --- a/keyboard/alps64/keymaps/default.c +++ b/keyboard/alps64/keymaps/default.c @@ -1,6 +1,6 @@ -#include "keymap_common.h" +#include "alps64.h" -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ KEYMAP( \ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS, BSPC, \ diff --git a/keyboard/alps64/keymaps/hasu.c b/keyboard/alps64/keymaps/hasu.c index d297d72fe..e93dd0d41 100644 --- a/keyboard/alps64/keymaps/hasu.c +++ b/keyboard/alps64/keymaps/hasu.c @@ -1,9 +1,9 @@ -#include "keymap_common.h" +#include "alps64.h" /* * Hasu */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Default Layer * ,-----------------------------------------------------------. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | diff --git a/keyboard/alps64/matrix.c b/keyboard/alps64/matrix.c index 5638d7f69..805999d4a 100644 --- a/keyboard/alps64/matrix.c +++ b/keyboard/alps64/matrix.c @@ -55,10 +55,6 @@ uint8_t matrix_cols(void) return MATRIX_COLS; } -#define LED_ON() do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0) -#define LED_OFF() do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0) -#define LED_TGL() do { DDRC |= (1<<5); PINC |= (1<<5); } while (0) - void matrix_init(void) { // initialize row and col @@ -160,6 +156,7 @@ static void unselect_rows(void) PORTC &= ~0b00000100; } + static void select_row(uint8_t row) { // Output low(DDR:1, PORT:0) to select diff --git a/quantum/matrix.c b/quantum/matrix.c index d5fd7def8..412662a79 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -68,8 +68,10 @@ uint8_t matrix_cols(void) { void matrix_init(void) { /* frees PORTF by setting the JTD bit twice within four cycles */ - MCUCR |= _BV(JTD); - MCUCR |= _BV(JTD); + #ifdef __AVR_ATmega32U4__ + MCUCR |= _BV(JTD); + MCUCR |= _BV(JTD); + #endif /* initializes the I/O pins */ #if DIODE_DIRECTION == COL2ROW for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { diff --git a/quantum/quantum.h b/quantum/quantum.h index 69a0d8126..71533f48b 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -23,6 +23,7 @@ #include "eeconfig.h" #include #include +#include extern uint32_t default_layer_state;