forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Added integration of IBM Trackpoint
- Loading branch information
dbroqua
committed
May 26, 2017
1 parent
0a4a966
commit 81e85a1
Showing
9 changed files
with
180 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
ifndef MAKEFILE_INCLUDED | ||
include ../../../Makefile | ||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# IBM Trackpoint demonstration | ||
|
||
This is just a simple demo to show how to integrate IBM Trackpoint in QMK. | ||
|
||
Some documentation: | ||
* [How to wire IBM Trackpoint](https://github.com/alonswartz/trackpoint) | ||
* [QMK documentation](https://docs.qmk.fm/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
#ifndef CONFIG_H | ||
#define CONFIG_H | ||
|
||
#include "config_common.h" | ||
|
||
#define VENDOR_ID 0x1234 | ||
#define PRODUCT_ID 0x5678 | ||
#define DEVICE_VER 0x0001 | ||
#define MANUFACTURER QMK | ||
#define PRODUCT TRACKPOINT-DEMO | ||
#define DESCRIPTION Simple demonstration for IBM Trackpoint integration | ||
|
||
#define MATRIX_ROWS 1 | ||
#define MATRIX_COLS 3 | ||
|
||
#ifdef PS2_USE_USART | ||
#define PS2_CLOCK_PORT PORTD | ||
#define PS2_CLOCK_PIN PIND | ||
#define PS2_CLOCK_DDR DDRD | ||
#define PS2_CLOCK_BIT 5 | ||
#define PS2_DATA_PORT PORTD | ||
#define PS2_DATA_PIN PIND | ||
#define PS2_DATA_DDR DDRD | ||
#define PS2_DATA_BIT 2 | ||
|
||
/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */ | ||
/* set DDR of CLOCK as input to be slave */ | ||
#define PS2_USART_INIT() do { \ | ||
PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \ | ||
PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \ | ||
UCSR1C = ((1 << UMSEL10) | \ | ||
(3 << UPM10) | \ | ||
(0 << USBS1) | \ | ||
(3 << UCSZ10) | \ | ||
(0 << UCPOL1)); \ | ||
UCSR1A = 0; \ | ||
UBRR1H = 0; \ | ||
UBRR1L = 0; \ | ||
} while (0) | ||
#define PS2_USART_RX_INT_ON() do { \ | ||
UCSR1B = ((1 << RXCIE1) | \ | ||
(1 << RXEN1)); \ | ||
} while (0) | ||
#define PS2_USART_RX_POLL_ON() do { \ | ||
UCSR1B = (1 << RXEN1); \ | ||
} while (0) | ||
#define PS2_USART_OFF() do { \ | ||
UCSR1C = 0; \ | ||
UCSR1B &= ~((1 << RXEN1) | \ | ||
(1 << TXEN1)); \ | ||
} while (0) | ||
#define PS2_USART_RX_READY (UCSR1A & (1<<RXC1)) | ||
#define PS2_USART_RX_DATA UDR1 | ||
#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1))) | ||
#define PS2_USART_RX_VECT USART1_RX_vect | ||
#endif | ||
|
||
#define MATRIX_COL_PINS { F1, F4, F5 } | ||
#define MATRIX_ROW_PINS { F0 } | ||
#define UNUSED_PINS | ||
|
||
/* COL2ROW or ROW2COL */ | ||
#define DIODE_DIRECTION COL2ROW | ||
|
||
#define DEBOUNCING_DELAY 5 | ||
|
||
#define LOCKING_SUPPORT_ENABLE | ||
#define LOCKING_RESYNC_ENABLE | ||
|
||
/* key combination for command */ | ||
#define IS_COMMAND() ( \ | ||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
) | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#include "trackpoint.h" | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[0] = KEYMAP( | ||
KC_BTN1, KC_BTN3, KC_BTN2 \ | ||
) | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
MCU = atmega32u4 | ||
F_CPU = 16000000 | ||
ARCH = AVR8 | ||
F_USB = $(F_CPU) | ||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
OPT_DEFS += -DBOOTLOADER_SIZE=512 | ||
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) | ||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) | ||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) | ||
CONSOLE_ENABLE ?= yes # Console for debug(+400) | ||
COMMAND_ENABLE ?= yes # Commands for debug and configuration | ||
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend | ||
NKRO_ENABLE ?= no # USB Nkey Rollover | ||
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default | ||
MIDI_ENABLE ?= no # MIDI controls | ||
UNICODE_ENABLE ?= no # Unicode | ||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
AUDIO_ENABLE ?= no # Audio output on port C6 | ||
|
||
PS2_MOUSE_ENABLE ?= yes | ||
PS2_USE_USART ?= yes | ||
|
||
ifndef QUANTUM_DIR | ||
include ../../Makefile | ||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#include "trackpoint.h" | ||
|
||
void matrix_init_kb(void) { | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#ifndef TRACKPOINT_H | ||
#define TRACKPOINT_H | ||
|
||
#include "quantum.h" | ||
|
||
#define KEYMAP( \ | ||
k00, k01, k02 \ | ||
) \ | ||
{ \ | ||
{ k00, k01, k02} \ | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters